Hand-Eye Calibration Problem

이 튜토리얼은 핸드-아이 칼리브레이션이 해결하는 문제를 설명하고, 핸드-아이 칼리브레이션에 필요한 로봇 포즈 및 좌표계를 소개합니다. (로봇) 포즈 및 좌표계에 익숙하지 않다면 Position, Orientation and Coordinate Transformations 문서를 참조하십시오.

로봇은 어떻게 물건을 집을 수 있습니까?

카메라가 없는 로봇부터 시작해 봅시다. 두 가지 주요 좌표계는 다음과 같습니다.

  1. 로봇 베이스 좌표계

  2. 엔드 이펙터 좌표계

../../../../_images/hand-eye-robot-ee-robot-base-coordinate-systems.png

물체를 집어 올리려면 로봇 컨트롤러는 로봇 기준 좌표계에 대한 물체의 자세(위치 및 방향)를 알아야 합니다. 또한 로봇의 기하학적 구조에 대한 정보도 필요합니다.


이러한 정보를 종합하면 엔드 이펙터/그리퍼를 물체 쪽으로 이동시키는 데 필요한 관절 각도를 계산하기에 충분합니다.

../../../../_images/hand-eye-robot-robot-to-object.png

이제 로봇에 대한 객체의 자세를 알 수 없다고 가정해 보겠습니다. Zivid 3D 비전이 적용되는 부분입니다.

../../../../_images/hand-eye-robot-robot-to-object-with-camera.png

이제 로봇에 대한 객체의 자세를 알 수 없다고 가정해 보겠습니다. Zivid 3D 비전이 적용되는 부분입니다.

../../../../_images/hand-eye-robot-robot-to-object-with-camera-on-arm.png

Zivid 포인트 클라우드는 Zivid 카메라의 좌표계를 기준으로 지정됩니다. 이 좌표계의 원점은 Zivid 이미저 렌즈(내부 2D 카메라)의 중앙에 고정됩니다. 머신 비전 소프트웨어는 이 데이터 포인트 모음에서 감지 및 위치 파악 알고리즘을 실행할 수 있습니다. Zivid 카메라의 좌표계( \(H^{CAM}_{OBJ}\) )에서 물체의 자세를 결정할 수 있습니다.

../../../../_images/hand-eye-full-circle-system.png

Zivid 카메라는 이제 시야각 내에 있는 물체를 볼 수 있지만, 이는 카메라 자체의 좌표계를 기준으로 한 상대적인 모습입니다.


로봇이 물체를 집을 수 있도록 하려면 물체의 좌표를 카메라 좌표계에서 로봇 베이스 좌표계로 변환해야 합니다.

../../../../_images/hand-eye-robot-robot-to-object-and-camera-to-object.png

이를 가능하게 하는 좌표 변환은 다음과 같습니다.

  • \(H^{ROB}_{CAM}\) - 로봇 베이스에 대한 카메라의 포즈

이 변환은 일정하며 핸드-아이 칼리브레이션의 결과입니다.


포즈 서클이 닫히면 포즈 서클 안의 다른 포즈로부터 하나의 포즈를 계산할 수 있습니다. 이 경우 로봇을 기준으로 한 물체의 포즈입니다. 이것은 로봇에 상대적인 카메라의 포즈와 카메라를 기준으로 한 물체의 포즈를 후 곱하면 알 수 있습니다.:

\[H^{ROB}_{OBJ}=H^{ROB}_{CAM} \cdot H^{CAM}_{OBJ}\]
../../../../_images/hand-eye-eye-to-hand-all-poses.png

Zivid 카메라는 이제 시야각 내에 있는 물체를 볼 수 있지만, 이는 카메라 자체의 좌표계를 기준으로 한 상대적인 모습입니다.


로봇이 물체를 집을 수 있도록 하려면 물체의 좌표를 카메라 좌표계에서 로봇 베이스 좌표계로 변환해야 합니다.

../../../../_images/hand-eye-robot-robot-to-object-and-camera-to-object-on-arm.png

이를 가능하게 하는 좌표 변환은 다음과 같습니다.

  • \(H^{EE}_{CAM}\) - 엔드 이펙터에 대한 카메라의 포즈

  • \(H^{ROB}_{EE}\) - 로봇 베이스에 대한 엔드 이펙터의 포즈

전자는 일정하며 핸드-아이 칼리브레이션의 결과인 반면, 후자는 로봇 컨트롤러에 의해 알려져 있고 제공됩니다.


포즈 서클이 닫히면 서클 안의 다른 포즈들로부터 하나의 포즈를 계산할 수 있습니다. 이 경우 로봇에 대한 물체의 포즈는 다음과 같습니다.

\[H^{ROB}_{OBJ}=H^{ROB}_{EE} \cdot H^{EE}_{CAM} \cdot H^{CAM}_{OBJ}\]
../../../../_images/hand-eye-eye-in-hand-all-poses.png

핸드-아이 칼리브레이션 문제를 정의했으므로 이제 핸드-아이 칼리브레이션 방법에 대해 알아보겠습니다. Hand-Eye Calibration Solution.