Hand-Eye Calibration Problem

This tutorial aims to describe the problem that the hand-eye calibration solves as well as to introduce robot poses and coordinate systems that are required for the hand-eye calibration. If you are not familiar with (robot) poses and coordinate systems, check out Position, Orientation and Coordinate Transformations.

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

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

  1. the robot base coordinate system

  2. the end-effector coordinate system

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

To be able to pick an object, the robot controller needs to know the object’s pose (position and orientation) relative to the robot base frame. It also requires knowledge about the robot’s geometry.


This combined information is sufficient to compute the joint angles that will move the end-effector/gripper towards the object.

../../../_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 camera can now see the object in its field of view, but relative to its own coordinate system.


To enable the robot to pick the object it is necessary to transform the object’s coordinates from the camera coordinate system to the robot base coordinate system.

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

The coordinate transformation that enables this is:

  • \(H^{ROB}_{CAM}\) - pose of the camera relative to the robot base

This transformation is constant and the result of hand-eye calibration.


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

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

Zivid camera can now see the object in its field of view, but relative to its own coordinate system.


To enable the robot to pick the object it is necessary to transform the object’s coordinates from the camera coordinate system to the robot base coordinate system.

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

The coordinate transformations that enable this are:

  • \(H^{EE}_{CAM}\) - pose of the camera relative to the end-effector

  • \(H^{ROB}_{EE}\) - pose of the end-effector relative to the robot base

The former is constant and the result of hand-eye calibration, while the latter known and provided by the robot controller.


Once the pose circle is closed, it is possible to calculate one pose from the other poses in the circle. In this case, the pose of the object relative to the robot:

\[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.