Production Preparation Processes

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

  • warm-up

  • infield correction

  • hand-eye calibration

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

  • transforming 및 ROI 상자 필터링

  • 다운샘플링

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

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

If your camera encounters prolonged periods without capturing that last longer than 10 minutes, it is highly beneficial to enable 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을 실행할 필요가 없습니다.

fig_bp_inf_t

fig_bp_inf_b

Calibration board at bin top for infield verification

Calibration board at bin bottom for infield verification

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

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

  • Zivid Studio

  • CLI 도구

  • SDK

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

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

Hand-Eye Calibration

비전 가이드 로봇 시스템의 피킹 정확도는 카메라, Hand-Eye Calibration, 머신 비전 소프트웨어 및 로봇 위치 지정의 결합된 정확도에 따라 달라집니다. 로봇은 일반적으로 반복성이 높지만 정확하지는 않습니다. 온도, 조인트 마찰, 페이로드 및 제조 공차는 로봇이 사전 프로그래밍된 위치에서 벗어나게 하는 요인 중 일부입니다. 그러나 로봇 자체를 보정하여 로봇 포즈 정확도를 개선할 수 있으며, 이는 피킹 정확도에 영향을 미치는 여러 요소가 있는 복잡한 시스템에 적극 권장됩니다. 로봇이 보정을 잃으면 피킹 정확도가 떨어집니다. Calibration(robot 혹은 hand-eye)을 반복하면 이러한 성능 저하를 보상할 수 있습니다. 또한 카메라를 고정 구조물이나 로봇에서 분리했다가 다시 장착할 때는 Hand-Eye Calibration을 다시 수행해야 합니다.

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

Hand-Eye Calibration을 쉽게 수행할 수 있는 코드 샘플이 있습니다.

또는 CLI 도구를 사용하여 Hand-Eye Calibration 작업을 수행할 수 있습니다.

Hand-Eye Calibration을 완료한 후 결과 변환 매트릭스가 정확하고 정확도 요구 사항 내에 있는지 확인할 수 있습니다. 우리는 두 가지 옵션을 제공합니다:

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

이 주제에 대해 자세히 알아보려면 Hand-Eye Calibration 을 확인하십시오.

ROI Box Filtering

The camera field of view is often larger than our Region of Interest (ROI), e.g., a bin. To optimize data processing, we can set an ROI box around the bin and crop the point cloud accordingly, capturing only the bin contents. ROI box filtering not only decreases the capture time but also reduces the number of data points used by the algorithm, consequently enhancing its speed and efficiency.

Smaller point clouds are faster to capture, and can make the detection faster and total picking cycle times shorter.

Bin coordinate system

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

fig_bef_d_b

fig_aft_d_b

Point cloud before ROI cropping

Point cloud after ROI cropping

Robot Picking example

Here is an example of heavy point cloud processing using a low-end PC (Nvidia MX 250 laptop GPU and a 1G network card) where ROI box filtering is very beneficial.

Imagine a robot picking from a 600 x 400 x 300 mm bin with a stationary-mounted Zivid 2+ M130 camera. For good robot clearance, the camera is mounted at 1700 mm distance from the bin top, providing a FOV of approximately 1000 x 800 mm. With the camera mounted at this distance, a lot of the FOV is outside of the ROI, allowing one to crop ~20/25% of pixel columns/rows from each side. As can be seen from the table below, the capture time can be significantly reduced with ROI box filtering.

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

Presets

Acquisition Time

Capture Time

No ROI

ROI

No ROI

ROI

Manufacturing Specular

0.64 s

0.64 s

2.1 s

1.0 s

Downsampling

참고

Downsampling may not be necessary if Monochrome Capture is employed. Monochrome capture is a hardware-based subsample method that reduces the resolution of the point cloud during capture while also reducing the acquisition and capture time.

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

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

There are two ways to downsample a point cloud with Zivid SDK:

  1. Via the setting Settings::Processing::Resampling (Resampling), which means it’s controlled via the capture settings.

  2. Via the API PointCloud::downsample.

In both cases the same operation is applied to the point cloud. Via the API version you can choose to downsample in-place or get a new point cloud instance with the downsampled data.

fig_bef_r_b

fig_aft_r_b

ROI cropped point cloud before downsampling

ROI cropped point cloud after downsampling

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

소스로 이동

소스

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

소스

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

소스

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

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

소스로 이동

소스

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

소스

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

소스

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 을 참조해주십시오.

축하드립니다! 빈 피킹 시스템을 생산에 투입할 준비를 위해 Zivid가 제공하는 모든 기능을 확인하셨습니다. 다음 섹션은 Maintenance 로, 빈 피킹 셀의 다운타임을 최소화하면서 안정적으로 유지되도록 수행하는 부분에 관련된 내용입니다.

Version History

SDK

Changes

2.12.0

Added section to demonstrate how ROI box filtering provides a speed-up in capture time. Downsampling can now also be done via Zivid::Settings::Resampling. Zivid One+ has reached its End-of-Life and is no longer supported.

2.10.0

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