픽셀당 3D 단위 - Helsparrow/OpenpnpDocs_KR GitHub Wiki

뭡니까 이게?

아시다시피, 물체가 카메라에 가까울수록 카메라 뷰에 더 크게 나타납니다. 특정 모양, 크기 또는 거리를 측정하거나 감지해야 하는 경우 대상이 어느 거리에 있는지 알아야 합니다. 픽 앤 플레이스 기계에서 이를 보장하는 첫 번째이자 가장 중요한 방법은 이러한 모든 대상(호밍 fuducial, PCB, 피더, 노즐 팁 교환기 등)이 모두 카메라로부터 동일한 거리에 있는지 확인하는 것입니다. 즉, 하나의 범용 기계 테이블 표면 레벨과 모두 동일한 평면입니다. Z좌표가 모두 같습니다.

참고: 이는 모든 기계에서 여전히 매우 중요한 설계 목표입니다. 여기서 논의하고 있는 보정은 2단계 폴백만 가능합니다. 균일한 Z를 사용하면 달성 가능한 정밀도가 훨씬 더 높습니다.

그러나 이것은 특히 DIY 환경에서 항상 가능한 것은 아닙니다. 일부 피더는 테이블 상단 등에 장착될 수 있습니다. OpenPnP 3D Units per Pixel(Tony Luken이 OpenPnP로 가져옴)을 입력합니다. 이들은 서로 다른 거리, 즉 서로 다른 Z 좌표에서 카메라 화면 배율을 결정하는 데 사용됩니다. Z 좌표가 알려질 때마다(예: 피더의 선택 위치 Z) 이제 자동으로 nits per Pixel이라고 하는 보기 배율을 Z로 조정할 수 있습니다.

픽셀당 3D 단위 보정 및 활성화

문제 및 솔루션 마법사에서 비전 솔루션를 사용하면 픽셀당 카메라 3D 단위가 자동으로 보정됩니다.

동영상을 시청한 다음 본 문서로 돌아오십시오.

모든 단계가 완료되면 카메라에 활성화된 3D Calibration이 표시됩니다.

3D Units per Pixel

Units per Pixel은 "실제 단위에서 1픽셀이 얼마나 큰지"에 대한 멋진 이름입니다. 스크린샷(위)의 숫자는 실제 세계에서 하나의 픽셀이 약 0.03213mm x 0.03216mm를 커버한다는 것을 의미합니다.

Default Working Plane은 기계의 매우 중요한 Z 좌표입니다. 인트로에서 이야기했던 "범용 테이블 표면 Z"를 설정합니다. 호밍 fiducial, 1차 교정 fiducial은 반드시 동일한 Z 높이에 있어야 합니다. PCB 표면 수준과 두 카메라의 초점면도 절대적으로 이 Z 높이와 일치해야 합니다.

수동 3D 보정도 가능합니다. 카메라 마법사의 지침을 따르십시오:

Manual Calibration

카메라 Z 축은 시야 평면을 설정합니다.

픽셀당 3D 단위가 효과적이려면 카메라에 가상 Z 축이 할당되어 있어야 합니다(구동 축 매핑 참조). ). 카메라가 비전 작업을 수행하기 위해 위치로 이동할 때마다(예: 피더의 픽업 위치 위) 물리적으로 X, Y로 이동하지만 가상으로 Z로도 이동합니다. 이렇게 Z를 이동하면 암묵적으로 픽셀당 단위가 올바른 배율로 설정됩니다.

시야 평면 Z는 이제 카메라 보기 오른쪽 아래 모서리에 표시되며 눈금자 십자선이 활성화된 경우 눈금자의 눈금이 배율에 따라 어떻게 변경되는지 확인할 수 있습니다(머신 컨트롤에서 카메라를 선택하고 Z를 위 아래로 조그):

Camera View 3D Z

참고: 이것은 테스트되지 않았지만 이론적으로 피사체에 초점을 맞추기 위해 위아래로 이동할 수 있는 자체 실제/물리적 Z축이 있는 카메라에 대해 동일한 방식으로 작동해야 합니다. 이 시나리오에서는 픽셀당 단위가 변경되지 않지만 카메라 보기 또는 초점면은 변경됩니다. 카메라는 여전히 초점면에서 거리가 있기 때문에 카메라를 Z에서 아래로 이동하는 것은 여전히 안전합니다. 1:1 작동 원리는 Z축을 사용하여 피사체에 "초점을 맞추는" 것이 매우 자연스러운 일임을 보여줍니다.

피더 사용

Computer Vision을 사용하는 모든 OpenPnP 피더는 이제 3D에서 작동해야 합니다(그렇지 않은 경우 버그를 보고하십시오 :-)). 스케일이 중요한 경우, 예: 크기와 피치로 캐리어 테이프 스프로킷 구멍을 인식하려면 관련 Z를 알아야 합니다. 따라서 이 Z 좌표가 아직 설정되지 않은 경우 오류가 표시될 수 있습니다:

Z missing Error

새 피더를 설정하는 경우 루틴을 변경해야 할 수도 있습니다. 항상 Z를 먼저 프로브하고 입력하십시오. 간단한 피더의 경우 Z 좌표를 복사할 수 있습니다(잠시 후 마음으로 알게 될 것입니다). BlindsFeeder 및 ReferencePushPullFeeder는 각각 이미 존재하는 array 또는 template 피더에서 Z를 자동으로 제안합니다.

일부 피더 유형의 경우 파이프라인 편집에도 Z가 필요합니다(파이프라인이 올바르게 작동하려면 픽셀당 단위가 필요하므로). Z가 누락된 경우에도 동일한 오류 대화상자가 나타납니다.

ReferenceStripFeeder

다음은 일반적인 Z보다 높은 ReferenceStripFeeder의 자동 설정을 보여줍니다(의도적으로 ~7mm로 지지됨). 일반 설정에 실패했으나(픽셀당 3D 단위 없을 때) 3D 보정을 사용하면 작동합니다! 자동 설정 후 눈금자 틱이 2mm 부품 포켓과 어떻게 아주 잘 정렬되는지 관찰하십시오.

3d-calibration-stripfeeder

BlindsFeeder

유사하게 BlindsFeeder 덮개 가장자리 보정(덮개 열림 닫힘)을 수행합니다. 이것은 이제 뱅온이며 반복은 항상 다음 전에 초과 보상됩니다:

3d-calibration-blindsfeeder

ReferencePushPullFeeder

ReferencePushPullFeeder에서 스프로킷 구멍 및 OCR 인식(OCR 관심 영역 크기 조정 포함)과 동일합니다.

3d-calibration-pushpullfeeder

다른 유형의 피더

시력이 있는 다른 피더 유형도 테스트는 하지 않았지만 3D 작동을 지원하기 위해 재작업되었습니다. 발생할 수 있는 문제가 있으면 보고하십시오.

노즐 팁 체인저

이제 노즐 팁 체인저 비전에서도 3D 보정을 사용합니다. 템플릿 샷을 정의하는 데 사용되는 위치는 임의의 Z 좌표를 가지기 때문에(노즐 팁이 체인저의 구조 아래로 다이빙됨), Z를 오프셋하기 위한 새로운 Adjust Z* 필드가 있습니다:

Nozzle Tip Changer

Other Uses

  • PCB fiducials will be correctly detected and more efficiently closed in on, according to the PCB Z. Please note that having your PCB at a Z other than your Default Working Plane is still not recommended!
  • Visual Homing is assumed (by definition) to be at Default Working Plane, as set on the Camera. You must make sure that the visual homing fiducial and your primary calibration fiducial are both at the same Z coordinate i.e. what will be Default Working Plane. These are the very foundations of your machine calibration, so there is deliberately no flexibility there!