Hand-Eye Calibration Solution

이 튜토리얼의 이전 부분에서는 핸드-아이 칼리브레이션이 해결해야 하는 문제를 제시했습니다. 이 자습서에서는 솔루션에 대한 배경 아이디어를 설명합니다. 핵심 아이디어는 Eye-to-hand 시스템과 Eye-in-hand 시스템에서 동일합니다. 따라서 우리는 먼저 Eye-to-hand의 구성에 대한 자세한 솔루션을 제공합니다. 그런 다음 Eye-in-hand의 구성과의 차이점을 설명합니다.

참고

핸드-아이 칼리브레이션을 수행하기 위해 도구가 필요하지 않고 도구의 자세(연결된 경우)를 알 필요가 없습니다. 도구 중심점(TCP) 값은 핸드-아이 칼리브레이션 결과에 영향을 미치지 않습니다. 이 문서 및 이후 자습서에서 엔드 이펙터는 도구 플랜지/엔드 링크를 나타냅니다.

Eye-to-hand

Eye-to-hand 칼리브레이션을 하는 방법은 무엇일까요?

The first step is choosing a calibration object, e.g. a checkerboard. Zivid calibration objects (checkerboards and ArUco markers) will be covered in the next part of this tutorial.

../../../_images/hand-eye-robot-and-calibration-board.png

칼리브레이션 개체는 알려진 형상입니다. 따라서 카메라 이미지에서 감지할 수 있습니다. 또한 카메라를 기준으로 한 포즈(\(H^{CAM}_{OBJ}\)) 추정할 수 있다.

../../../_images/hand-eye-robot-and-calibration-board-camera-object-pose.png

카메라와 로봇 사이의 상대 포즈를 계산하려면(\(H^{ROB}_{CAM}\)), 어떻게든 포즈 사이의 원을 닫아야 합니다.

../../../_images/hand-eye-robot-and-calibration-board-camera-object-pose-and-rob-cam-pose.png

로봇 베이스에 대한 엔드 이펙터의 자세(\(H^{ROB}_{EE}\))는 로봇 컨트롤러에서 제공하는 것으로도 알려져 있습니다.

../../../_images/hand-eye-robot-and-calibration-board-camera-object-pose-and-rob-cam-pose-and-rob-ee.png

포즈 원을 닫을 누락된 포즈는 엔드 이펙터를 기준으로 한 칼리브레이션 대상의 포즈입니다. (\(H^{EE}_{OBJ}\))

../../../_images/hand-eye-robot-and-calibration-board-all-poses.png

이 포즈를 ‘제거’하거나 ‘고정’하기 위해 칼리브레이션 개체(체커보드)를 엔드 이펙터에 설치할 수 있습니다.

../../../_images/hand-eye-calibration-board-mounted-on-camera.png

이제 포즈 서클이 닫혔고 로봇에 대한 카메라의 포즈를 계산할 모든 것이 있는 것 같습니다(\(H^{ROB}_{CAM}\)). 그러나 그렇게 간단하지 않습니다.

../../../_images/hand-eye-calibration-board-mounted-on-camera-with-poses.png

상대 포즈( \(H^{EE}_{OBJ}\) )를 ‘제거’ 하지 못했기 때문입니다. 그러나 우리는 그것을 일정하게 만들었습니다. 이제 \(H^{EE}_{OBJ}\) 로봇이 움직이는 동안 변경되지 않습니다.

이를 통해 로봇을 다양한 자세로 움직일 수 있습니다. 각각에 대해, \(H^{ROB}_{CAM}\) 을 나머지 두 변수와 알려진 포즈의 함수로 표현할 수 있습니다.:

  1. 로봇에서 엔드 이펙터로 \(H^{ROB}_{EE}\)

  2. 보정 대상에 대한 카메라 \(H^{CAM}_{OBJ}\) 그리고 하나의 일정하고 알 수 없는 포즈 \(H^{EE}_{OBJ}\).

이 방정식 세트를 사용하면 Tsai의 방법과 같은 최적화 기술을 활용하여 원하는 포즈 \(H^{ROB}_{CAM}\) 를 계산할 수 있습니다.

../../../_images/hand-eye-calibration-board-mounted-on-camera-with-all-poses.png

Eye-in-hand

Eye-in-hand 칼리브레이션을 하는 방법은 무엇일까요?

상황은 Eye-in-hand 시스템에서도 매우 유사합니다. 이 경우 칼리브레이션 대상(체커보드)은 작업 환경에 고정됩니다. 따라서 대상의 포즈는 로봇이 움직이는 동안 로봇 베이스를 기준의 포즈가 일정하도록 보장됩니다.

../../../_images/hand-eye-robot-and-calibration-board-camera-on-robot.png

이를 통해 엔드 이펙터를 기준으로 카메라의 포즈(\(H^{EE}_{CAM}\)) 를 알려진 두 가지 포즈의 함수로 표현할 수 있습니다.:

  1. 로봇에서 엔드 이펙터로 \(H^{ROB}_{EE}\)

  2. 칼리브레이션 대상에 대한 카메라 포즈 \(H^{CAM}_{OBJ}\) 그리고 하나의 일정하고 알 수 없는 포즈 \(H^{ROB}_{OBJ}\).

Eye-to-hand 구성의 경우와 마찬가지로 다음을 해결할 수 있습니다. \(H^{EE}_{CAM}\).

../../../_images/hand-eye-calibration-board-with-all-poses-eye-in-hand.png

핸드-아이 칼리브레이션 문제를 해결하는 방법을 설명했으므로 이제 칼리브레이션 대상 Calibration Object 에 대해 알아보겠습니다.