Production Preparation Processes

Zivid SDK에는 시스템을 설정하고 생산을 준비하는 데 도움이 되는 여러 프로세스와 도구가 있습니다. 배포하기 전에 권장하는 필수 항목은 다음과 같습니다.

  • warm-up

  • infield correction

  • hand-eye calibration

이러한 프로세스를 사용하여 작업 온도, 거리 및 FOV 에 대해 카메라를 최적화하기 위해 생산 조건을 모방하려고 합니다. 생산 중 처리 시간을 줄여 피킹 속도를 최대화하는 데 도움이 되는 다른 도구는 다음과 같습니다.

  • downsampling

  • transforming and ROI box filtering

Robot Calibration

생산을 시작하기 전에 로봇이 잘 보정되어 위치 정확도가 좋은지 확인해야 합니다. 로봇 운동학적 교정 및 로봇 마스터링/영점 조정에 대한 자세한 내용은 로봇 공급업체에 문의하십시오.

Warm-up

Zivid 3D 카메라가 예열되고 열 평형에 도달하도록 허용하면 애플리케이션의 전반적인 정확성과 성공을 향상시킬 수 있습니다. 애플리케이션이 엄격한 허용 오차를 요구하는 경우(예: 카메라에서 미터 거리당 허용 오차가 5mm 미만인 애플리케이션 선택)에 권장됩니다. 예열된 카메라는 Infield Correction과 Hand-Eye Calibration 결과를 모두 개선합니다.

Warmup

카메라를 예열하기 위해 코드 샘플을 실행하여 주기 시간과 카메라 설정 경로를 제공할 수 있습니다.

Sample: warmup.py

python /path/to/warmup.py --settings-path /path/to/settings.yml --capture-cycle 6.0

워밍업이 필요한 이유와 SDK로 워밍업을 수행하는 방법을 더 잘 이해하려면 Warm-up 를 확인하십시오.

카메라가 10분 이상 사진을 찍지 못하는 시간이 길어지는 경우, Thermal Stabilization 를 기능을 활성화해 놓는 것이 매우 좋습니다.

infield correction

Infield correction은 Zivid 카메라의 Dimension Trueness을 확인하고 수정하도록 설계된 유지 관리 도구입니다. 사용자는 시야각(FOV)의 여러 지점에서 포인트 클라우드의 Dimension Trueness을 확인하고 해당 애플리케이션에 적합한지 결정할 수 있습니다. 확인 결과 카메라가 애플리케이션에 대해 충분히 정확하지 않은 것으로 나타나면 포인트 클라우드의 Dimension Trueness을 높이기 위해 수정을 수행할 수 있습니다. 여러 측정의 평균 Dimension Trueness 오차는 0에 가까울 것으로 예상됩니다(<0.1%).

Why is this necessary?

당사의 카메라는 산업 작업 환경을 견딜 수 있도록 제작되었으며 계속해서 고품질 포인트 클라우드를 반환합니다. 그러나 대부분의 고정밀 전자 기기와 마찬가지로 최상의 성능을 유지하기 위해 약간의 조정이 필요할 수 있습니다. 카메라가 환경에 상당한 변화를 겪거나 무리한 작업을 하는 경우 새로운 설정에서 최적으로 작동하려면 보정이 필요할 수 있습니다.

처음 하는 경우 Infield Correction 을 자세히 읽어보십시오.

infield verification을 실행할 때 빈의 상단과 하단 모두에서 Dimension Trueness가 양호한지 확인하십시오. 온암 애플리케이션의 경우 infield verification을 수행할 때 로봇을 캡처 포즈로 이동합니다. 검증 결과가 좋으면 Infield Correction을 실행할 필요가 없습니다.

Calibration board at bin top for infield verification Calibration board at bin top for infield verification
Calibration board at bin bottom for infield verification Calibration board at bin bottom for infield verification

Infield Correction이 필요한 경우 최적의 결과를 위해 전체 작업 볼륨을 확장합니다. 이는 Zivid calibration board 를 주어진 거리의 여러 위치에 배치하고 전체 보드가 FOV 안에 있도록 하면서 다양한 거리에서 수행하는 것을 의미합니다. 빈의 바닥에 있는 두 개의 위치와 상단의 두 개의 위치는 Piece Picking에 충분합니다. 자세한 내용은 Guidelines for Performing Infield Correction 을 확인하십시오.

카메라에서 Infield Verification 또는 Correction을 실행하려면 다음을 사용할 수 있습니다.

  • Zivid Studio

  • CLI tool

  • SDK

Infield correction을 처음 실행하는 경우 Zivid Studio를 사용하는 것이 좋습니다.

Infield correction 실행에 대한 단계별 가이드는 Running Infield Correction 을 확인하십시오.

Hand-Eye Calibration

In the table below, you can find our recommendations on which hand-eye calibration tool to use based on your goals and requirements. For a detailed analysis of the tools and their features, see How to run and integrate Zivid Hand-Eye Calibration.

Goal

Recommended Tool

Guided, no-code workflow

Hand-Eye GUI

Minimal integration example

Programmatic Hand-Eye Calibration

Existing dataset

Hand-Eye GUI

Any robot

Hand-Eye GUI or RoboDK Hand-Eye sample

UR robot

Hand-Eye GUI or UR Hand-Eye sample

../../../_images/hand-eye-poses.png

After completing hand-eye calibration, you may want to verify that the resulting transformation matrix is correct and within the accuracy requirements. Our recommendation is to perform the touch test with the robot, which is a physical test that requires a verification end-of-arm tooling. For a detailed walkthrough, see check the tutorial: Any Robot + RoboDK + Python: Verify Hand-Eye Calibration Result via Touch Test.

터치 테스트의 예상 결과입니다.

Alternative options are provided on How to Verify Hand-Eye Calibration page.

Color Balance

SDK에는 빨간색, 초록색, 파란색 채널의 색상 균형 값을 조정하는 기능이 있습니다. 하지만 Camera Selector based on Scene Volume 에서 볼 수 있듯이, 조각 선택에 권장되는 카메라는 고유한 색상 균형을 가지고 있습니다. 매우 강하고 완벽한 흰색이 아닌 주변광은 색상 이미지의 RGB 값에 최소한의 영향을 미칩니다. 따라서 카메라에서 추가적인 색상 균형 알고리즘을 실행할 필요가 없습니다.

아래 이미지는 Zivid 2+ MR130으로 다양한 주변광 조건에서 촬영한 2D 컬러 이미지의 세부 정보를 보여줍니다.

300 LUX

1000 LUX

2000 LUX

3200K

2d_images_mr130_lux_kelvins

5000K

6500K

color Inconsistency in form of random green or pink tint in your color images 발견되면 해당 지역의 그리드 주파수(50Hz 또는 60Hz)에 맞는 Presets을 선택하세요.

ROI Box Filtering

카메라 시야는 종종 Region of Interest 관심 영역(ROI)보다 큽니다. 데이터 처리를 최적화하기 위해 빈 주변에 ROI 상자를 설정하고 포인트 클라우드를 적절히 잘라 빈의 내용만 캡처할 수 있습니다. ROI 상자 필터링은 캡처 시간을 단축할 뿐만 아니라 알고리즘에서 사용하는 데이터 포인트 수를 줄여 알고리즘의 속도와 효율성을 향상시킵니다.

작은 포인트 클라우드는 캡처 속도가 빠르고, 감지 속도도 빨라지고 전체 피킹 주기도 짧아집니다.

Bin coordinate system

구현 예시로 ROI Box via Checkerboard 을 확인하십시오. 이 튜토리얼은 Zivid calibration board 사용하여 체커보드에 상대적으로 주어진 ROI 상자를 기반으로 포인트 클라우드를 필터링하는 방법을 보여줍니다.

ROI 자르기 전 포인트 클라우드 ROI 자르기 전 포인트 클라우드
ROI 자르기 후 포인트 클라우드 ROI 자르기 후 포인트 클라우드
Example and Performance

다음은 ROI 박스 필터링이 유용한 저사양 PC(Intel Iris Xe 통합 노트북 GPU 및 1G 네트워크 카드)를 사용하여 대규모 포인트 클라우드를 처리하는 예입니다.

고정형 Zivid 2+ MR130 카메라를 장착한 로봇이 600 x 400 x 300mm 크기의 통에서 물건을 집어 올리는 모습을 상상해 보세요. 로봇과의 충분한 간격을 확보하기 위해 카메라는 통 상단에서 1700mm 거리에 설치되어 약 1000 x 800mm의 시야각(FOV)을 제공합니다. 이 거리에 카메라를 설치하면 시야각(FOV)의 상당 부분이 ROI(관심 영역) 밖에 위치하게 되어 각 면에서 픽셀 열/행의 약 20/25%를 잘라낼 수 있습니다. 아래 표에서 볼 수 있듯이 ROI 박스 필터링을 사용하면 캡처 시간을 크게 단축할 수 있습니다.

../../../_images/roi_example_bin_picking.png

Presets

Acquisition Time

Capture Time

No ROI

ROI

No ROI

ROI

Consumer Goods Quality

0.15 s

0.15 s

0.9 s

0.35 s

Downsampling

참고

Presets을 선택하면 다운샘플링도 선택할 수 있습니다. 하지만 이것이 무엇을 의미하는지 이해하려면 Sampling (3D) 을 참조하세요.

일부 애플리케이션에는 고밀도 포인트 클라우드 데이터가 필요하지 않습니다. 예를 들어 상자 표면에 평면을 맞추는 상자 감지와 물체가 뚜렷하고 쉽게 식별할 수 있는 기능이 있는 CAD 일치가 있습니다. 또한 이 데이터 양은 머신 비전 알고리즘이 애플리케이션에 필요한 속도로 처리하기에는 너무 큰 경우가 많습니다. 포인트 클라우드 다운샘플링이 작동하는 애플리케이션입니다.

포인트 클라우드 컨텍스트에서 다운샘플링은 동일한 3D 표현을 유지하면서 공간 해상도를 줄이는 것입니다. 일반적으로 데이터를 보다 관리하기 쉬운 크기로 변환하여 저장 및 처리 요구 사항을 줄이는 데 사용됩니다.

Zivid SDK를 사용하여 포인트 클라우드를 다운샘플링하는 방법에는 두 가지가 있습니다.

  1. Settings::Processing::Resampling (Resampling) 설정을 통해 제어됩니다. 즉, 캡처 설정을 통해 제어됩니다.

  2. API PointCloud::downsample 을 통해.

두 경우 모두 포인트 클라우드에 동일한 작업이 적용됩니다. API 버전을 통해 그 자리에서 다운샘플링하거나 다운샘플링된 데이터로 새로운 포인트 클라우드 인스턴스를 생성할 수 있습니다.

다운샘플링 전 ROI 크롭 포인트 클라우드 다운샘플링 전 ROI 크롭 포인트 클라우드
다운샘플링 후 ROI가 잘린 포인트 클라우드 다운샘플링 후 ROI가 잘린 포인트 클라우드

현재 포인트 클라우드를 수정하는 다운샘플링을 내부에서 수행할 수 있습니다.

소스로 이동

소스

pointCloud.downsample(Zivid::PointCloud::Downsampling::by2x2);
소스로 이동

소스

pointCloud.Downsample(Zivid.NET.PointCloud.Downsampling.By2x2);
소스로 이동

source

point_cloud.downsample(zivid.PointCloud.Downsampling.by2x2)

다운샘플링된 포인트 클라우드를 기존 포인트 클라우드를 변경하지 않는 새로운 포인트 클라우드 인스턴스로 가져올 수도 있습니다.

소스로 이동

소스

auto downsampledPointCloud = pointCloud.downsampled(Zivid::PointCloud::Downsampling::by2x2);
소스로 이동

소스

var downsampledPointCloud = pointCloud.Downsampled(Zivid.NET.PointCloud.Downsampling.By2x2);
소스로 이동

source

downsampled_point_cloud = point_cloud.downsampled(zivid.PointCloud.Downsampling.by2x2)

Zivid SDK는 다음과 같은 다운샘플링 비율을 지원합니다: by2x2 , by3x3by4x4, 그리고 다운샘플링을 여러 번 수행할 수 있습니다.

포인트 클라우드를 다운샘플링하려면 코드 샘플을 실행할 수 있습니다.

Sample: downsample.py

python /path/to/downsample.py --zdf-path /path/to/file.zdf

ZDF 파일이 없는 경우 다음 코드 샘플을 실행할 수 있습니다. 설정으로 캡처한 Zivid 포인트 클라우드를 파일에 저장합니다.

Sample: capture_with_settings_from_yml

python /path/to/capture_with_settings_from_yml.py --settings-path /path/to/settings.yml

다운샘플링에 대한 자세한 내용은 Downsample 을 참조하십시오.

축하합니다! 당신은 당신의 Piece Picking system을 생산에 투입할 준비를 하기 위한 Zivid의 모든 내용을 다루었습니다. Maintenance 에서는 최소한의 다운타임으로 Piece Picking cell이 안정적인지 확인하기 위해 수행하는 구체적인 프로세스에 대해 설명합니다.

Version History

SDK

Changes

2.12.0

ROI 상자 필터링이 캡처 시간을 단축하는 방법을 보여주는 섹션을 추가했습니다.

2.10.0

Monochrome CaptureDownsampling 을 대체할 수 있는 보다 빠른 대안을 제공합니다.