Hand-Eye Calibration for Robot Vision Systems

Hand-eye calibration is the process of establishing the precise geometric relationship between a camera's coordinate system and a robot's coordinate system. Without it, a robot cannot act on what a vision system sees — the camera may locate an object accurately, but the robot has no way of knowing where that object is in its own frame of reference.

It is a distinct step from standard camera calibration, which only relates pixels to real-world units. Hand-eye calibration goes further — it answers the question: if the camera sees an object at this position, where exactly does the robot need to move to interact with it?

The Two Configurations

The calibration procedure differs depending on how the camera is mounted.

Eye-in-hand — camera mounted on the robot arm

The camera moves with the robot. The objective is to determine the precise offset and rotation between the camera lens and the robot's tool centre point (TCP).

In a recent application we calibrated a stereo camera mounted on a FANUC robot arm. The procedure involves fixing a calibration target — typically a chequerboard — in a static position, then commanding the robot through a series of positions across all six axes, capturing an image at each pose. At every position, the robot's exact pose is fed into the calibration algorithm alongside the feature data extracted from the image. The algorithm computes the transformation matrix that links the camera's frame of reference to the robot's.

The quality of the result depends heavily on the range and variety of poses used during the calibration sequence — too few, or too similar, and the resulting transformation will be inaccurate at the extremes of the working envelope.

Eye-to-hand — fixed camera looking at the workspace

The camera is static and the robot moves within its field of view. The objective is to map the camera's fixed view onto the robot's coordinate system.

In a delta robot application we delivered, a fixed camera above a conveyor belt identified product positions as items were transported into the robot's working frame. The calibration involved two steps — first calibrating the camera itself using a target placed beneath it, then establishing the robot-to-camera relationship by indexing the conveyor a known distance and manually jogging the robot to known positions on the calibration target. For accuracy, the robot's end effector was replaced with a precision pointer, allowing exact alignment with specific points on the target. The known conveyor movement and robot positions are fed into the robot's hand-eye calibration routine to compute the transformation.

What Makes Hand-Eye Calibration Difficult

The mathematics is well established — the challenge is execution. The accuracy of the final system is only as good as the accuracy of the calibration data fed into it.

Common sources of error include:

  • Insufficient variation in calibration poses — the algorithm needs diverse data to compute a reliable transformation

  • Mechanical flex or backlash in the robot arm — if the robot doesn't reach exactly where it's commanded, the calibration data is corrupted

  • Poor target detection — a poorly printed or damaged chequerboard introduces noise into every measurement

  • Environmental movement — any shift in the camera mount or robot base between calibration and production use invalidates the calibration

A well-executed hand-eye calibration is repeatable and verifiable — the result should be checked against known reference points before the system goes into production.

Working with Oculus Vision

Hand-eye calibration is a routine part of our robot vision work. If you are planning a robot guidance application and want to discuss the vision and calibration requirements, get in touch.