# Hand-eye Calibration Overview

The primary purpose of hand-eye calibration is to calibrate one or more cameras to a motion stage, by establishing a correspondence between features found in images taken by the cameras to the physical coordinates of these features as the motion stage moves to known commanded poses. In addition to other information, the hand-eye calibration results contain a mathematical transform to map image coordinate positions to and from their corresponding coordinates in the coordinate system defined by the motion axes of the stage.

The goal of hand-eye calibration is to obtain accurate estimates for:

- Single-camera single-view calibration model that characterizes the non-linear mapping between image coordinate system and camera coordinate system of each camera.
- Placement pose of each camera.
- Placement pose of the calibration target.
- The mapping from commanded pose to the actual physical pose of the stage in the home coordinate system.

To calibrate, the user must rigidly attach a calibration target to a precision motion stage, e.g. the end-effector of a precision robot arm. The user then commands the motion stage to move the calibration target to a few different commanded poses. It is required that all commanded poses are known. An image of the target is taken by each of the cameras at each such pose. This is called the "stationary-camera configuration".

Alternatively, the cameras may be attached rigidly to the motion stage while the calibration target is fixed. An image of the target is taken by each of the cameras for each pose of the motion stage. This is called the "moving-camera configuration".

When features of the part to be aligned are known in the motion stage coordinate system, the transformation required to align the part are computed in the motion stage coordinate system. Some lower accuracy motion stages may exhibit a skew between the X motion axis and Y motion axis , or a difference in the unit travel between the two axes, or a scale error in the unit travel from the intended nominal value.

The hand-eye calibration process estimates the following systematic errors of a motion stage:

- The magnitude of X unit travel. The direction of the X unit travel is accurate by definition
- The direction of the Y unit travel, i.e., motionYAxisHome2D.angle(). By the definition of Home2D, this should be close to +90 degrees on realistic motion stages
- The magnitude of Y unit travel

During the hand-eye calibration process, AlignPlus recommends that the commanded poses include

- Translation only motion, in the X and Y directions.
- Rotation only motion, with a fixed X and Y value

When a motion device moves in this fashion, AlignPlus produces a calibration report, described in a later section, that contains the scaling and skew information for the motion stage.