Hand-Eye Calibration Solution

The previous part of this tutorial presented the problem that the hand-eye calibration needs to solve. This tutorial describes the background idea for a solution. The core idea is the same for eye-to-hand systems and eye-in-hand systems. Therefore, we first provide a detailed solution for the eye-to-hand configuration. Then, we point out the differences in the eye-in-hand configuration.

Note

You don’t need a tool, 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 end-effector refers to the tool flange/end-link.

Eye-to-hand

How to solve the eye-to-hand calibration?

The first step is choosing a calibration object, e.g. a

checkerboard. DaoAI checkerboards will be covered in the

next part of this tutorial.

../../../_images/hand1.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 O B J C A M ) can be estimated.

../../../_images/hand2.png

To calculate the relative pose between the camera and

the robot ( H C A M R O B ), we somehow need to close the circle

between the poses.

../../../_images/hand3.png

The pose of the end-effector relative to the robot base ( H E E R O B

) is also known, provided by the robot controller.

../../../_images/hand4.png

The missing pose that will close the pose circle is the

pose of the object relative to the end-effector ( H O B J E E ).

../../../_images/hand5.png

To get ‘rid’ of this pose or ‘fix’ it, we can mount the

calibration object onto the end-effector.

../../../_images/tohand5.png

Now it seems we have everything to close the pose circle

and thus calculate the pose of the camera relative to the

robot ( H C A M R O B ). However, it is not that simple.

../../../_images/tohand11.png

This is because we haven’t really got ‘rid’ of the relative

pose ( H O B J E E ). However, we have made it constant. Now, H O B J E E

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 C A M R O B can be expressed as a

function of the remaining two variable, known poses:

  1. Robot to end-effector H E E R O B

  2. Camera to calibration object H O B J C A M and one

    constant, unknown pose H O B J E E .

With this set of equations, it is possible to utilize an

optimization technique, such as Tsai’s method, to

calculate the desired pose H C A M R O B .

../../../_images/tohand21.png

Eye-in-hand

How to solve the eye-in-hand calibration?

The situation is very similar for eye-in-hand systems. In

this case the calibration object is fixed to the work

environment. Thus, it is ensured that its pose relative to

the robot base is constant during the robot motion.

../../../_images/inhand11.png

This allows us to express the pose of the camera relative

to the end-effector ( H C A M E E ) as a function of two variable,

known poses:

  1. Robot to end-effector H E E R O B

  2. Camera to calibration object H O B J C A M and one

    constant, unknown pose H O B J R O B .

Just as in the eye-to-hand configuration case, we can

solve for H C A M E E .

../../../_images/inhand2.png

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