Hand-Eye Calibration Solution

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

참고

You don’t need an end-of-arm tooling, or to know its pose (if you have one attached) to do the hand-eye calibration. The Tool Center Point (TCP) value does not affect the hand-eye calibration result. In this article and later tutorials, the term end-effector refers to the tool flange (last link of the robot).

How to solve the hand-eye calibration?

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

The calibration object is of known geometry. Thus, it can be detected from the camera image.


Further, its pose relative to the camera (\(H^{CAM}_{OBJ}\)) can be estimated.

../../../_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

To get rid of this pose or fix it, we can mount the calibration object onto the end-effector.

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

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

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

This is because we haven’t really got rid of the relative pose (\(H^{EE}_{OBJ}\)). However, we have made it constant, ensuring that pose of the calibration object relative to the end-effector (\(H^{EE}_{OBJ}\)) will not change during the motion of the robot.


This enables us to move a robot to a set of different postures.


For each one, \(H^{ROB}_{CAM}\) can be expressed as a function of the remaining two variable, known poses:

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

  • Camera to calibration object \(H^{CAM}_{OBJ}\)

and one constant, unknown pose:

  • End-effector to calibration object \(H^{EE}_{OBJ}\).

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

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

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-camera-on-robot.png

The calibration object is of known geometry. Thus, it can be detected from the camera image.


Further, its pose relative to the camera (\(H^{CAM}_{OBJ}\)) can be estimated.

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

To calculate the relative pose between the camera and the end-effector (\(H^{EE}_{CAM}\)), we somehow need to close the circle between the poses.

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

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

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

The missing pose that will close the pose circle is the pose of the object relative to robot base (\(H^{ROB}_{OBJ}\)).

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

To get rid of this pose or fix it, we must rigidly mount the calibration object.


This is to ensure the pose of the calibration object relative to the robot base (\(H^{ROB}_{OBJ}\)) remains constant during the motion of the robot.

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

Now we have everything to close the pose circle and thus calculate the pose of the camera relative to the end-effector (\(H^{EE}_{CAM}\)).


During the hand-eye calibration process, the robot is moved to a set of different postures.


For each one, \(H^{EE}_{CAM}\) can be expressed as a function of the remaining two variable, known poses:

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

  • Camera to calibration object \(H^{CAM}_{OBJ}\)

and one constant, unknown pose:

  • Robot to object \(H^{ROB}_{OBJ}\).

With this set of equations, it is possible to utilize an optimization technique, such as Tsai’s method, to calculate the desired pose \(H^{EE}_{CAM}\).

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

Now that we’ve explained how to solve the hand-eye calibration problem, let’s see learn about Hand-Eye Calibration Object options.