Robot calibration estimates the parameters that make a robot's measurements and commands agree on the physical world. Classical kinematic calibration has four steps: modeling, measurement, identification and correctionSource 10.

A white and black Leica laser tracker on a tripod aims a red laser line at the inside of a large rust-coloured steel ring in a factory hall.
A Leica ATS600 laser tracker measuring a large steel part. Kinematic calibration relies on external instruments like this for its measurement step, recording where the tool really is.
Photo: FanchonH / Wikimedia Commons. Licence: CC BY-SA 4.0.

Self-check

On many objects, a grasp misses by a small offset in one direction that grows with distance from the wrist camera. What should you inspect first?
Read the reasoning
  • Check the hand-eye rotation and its residualA small angular transform error creates lateral position error that grows with working distance. The consistent direction is a calibration signature.
  • Collect more demonstrations at longer distancesMore data can teach a stable bias, but the distance-dependent systematic direction points to geometry. Fixing the transform removes the error for every policy and dataset.
  • Fine-tune a larger vision encoderCapacity does not make the camera and robot frames agree. A larger model may conceal the bias on familiar poses and retain the same physical defect.

Systematic, geometry-dependent misses are calibration evidence; measure the transform before changing the learner.

The calibration chain

A manipulation system chains camera intrinsics, depth alignment, extrinsics, joint zeroes, link and tool parameters, payload, timing and actuator response. FoundationPose tracks novel-object poses with or without a modelSource 9, but a wrong hand-eye transform still misplaces the grasp.

Camera-to-hand chain
A wrong measurement anywhere makes the hand miss the box
robot armwristcamerahandboxhow far each jointturns, and how longeach arm part iswhere the camera isfixed on the wristthe camera's measure ofhow far away the box ishow far thefingertips reachThe hand mustreach this spot
what the arm measureswhat the camera measures

Schematic: not drawn to scale

The robot reaches what its camera sees only through these measurements, so each one must be checked.
How this was made
The drawing is a schematic. Each arrow is a link between two frames, places the robot keeps track of; the dot marks the spot on the box the hand must reach, and the robot base is where the drawn robot arm stands. To find the box, the robot chains robot base to wrist, wrist to camera and camera to box. It places the gripper through robot base to wrist and wrist to hand, the gripper tip. An error on any of these links moves where the gripper lands relative to the box. Calibration measures each link.
Each number comes from a different study and robot: a humanoid's kinematics, a wrist camera's CAD values and a Kinect depth sensor. The numbers show the size of error each link can carry, not one robot's error budget.
  • robot base to wrist, set by joint readings and link lengths. Nguyen and colleagues calibrated a humanoid from 31 chosen postures and cut its RMS error 2.3-fold against the manufacturer's model. Source: Nguyen et al. 2025.
  • wrist to camera, set by hand-eye calibration. OmniCalib found the CAD values for a wrist camera off by up to 10.56 mm and 1.74 degrees, and writes back only the corrections its observability checks support. Source: Lu et al. 2026.
  • camera to box, set by what the camera measures (depth). Khoshelham and Oude Elberink found that a Kinect depth sensor’s random depth error grows from a few millimetres to about 4 cm at its maximum range. Source: Khoshelham et al. 2012.
  • wrist to hand, set by tool offset. No source here reports a measured error for the tool offset. It is checked by touching one point with the gripper tip from several angles.
The article recommends storing each calibration together with its residuals, the error left over after calibrating.

Four calibrated links join the robot base to the box its camera sees: calibration cut a humanoid's error 2.3-fold, a wrist camera's drawing values were off by up to 10.56 mm and 1.74 degrees, a Kinect's depth error reaches about 4 cm, and the tool offset has no sourced error.

The four links and their measured errors
linkwhat sets itmeasured error
robot base to wristjoint readings and link lengthsRMS error cut 2.3-fold by calibration
wrist to camerahand-eye calibrationup to 10.56 mm and 1.74 degrees from CAD
camera to boxwhat the camera measures (depth)random depth error up to about 4 cm
wrist to handtool offsetno sourced error; checked by touching one point from several angles

Camera intrinsics

Intrinsics map pixels to rays through focal lengths, principal point and lens distortion. Zhang's method recovers them from a planar pattern at a few unknown orientationsSource 1, and Kannala and Brandt's generic model covers wide-angle and fisheye lensesSource 11. Refit after any focus, resolution or crop change.

Depth is a measurement model

Stereo depth error scales with the square of distance, and repetitive structures make matches ambiguousSource 6; the D400 datasheet adds saturation from specular reflectionsSource 5. Kinect random error grows from a few millimeters to about 4 cm at maximum rangeSource 12, and a joint depth-color calibration with a depth-distortion model beat the manufacturer'sSource 13.

Hand-eye calibration

Hand-eye calibration finds the gripper-to-camera transform for a wrist camera, or base-to-camera for a fixed one. Shiu and Ahmad cast it as AX=XBAX = XBSource 2, Tsai and Lenz solved it in about 100+64N{}100 + 64N arithmetic operations for NN robot stationsSource 3, and Park and Martin derived closed-form exact and least-squares solutionsSource 14.

Close view of a red Baxter robot arm's wrist, with a small camera lens above a two-finger parallel gripper, in an office with computers behind it.
Baxter's wrist carries a camera beside its gripper. Hand-eye calibration solves AX = XB for the fixed transform between that camera and the gripper.
Photo: Gustavo A. Casañ / Wikimedia Commons. Licence: CC BY-SA 4.0.

OpenCV needs at least two motions with non-parallel rotation axes, so three poses, and strongly recommends many moreSource 15. MoveIt's tutorial reports accuracy plateaus after about 12 or 15 samples in most casesSource 16.

Hand-eye calibration
Three poses solve it; twelve pin it down
3 of 20
Iris: the doubt about where the camera sits3 poses: just enough to solve

Illustrative iris; pose counts cited

More poses shrink the doubt about where the wrist camera sits, until about 12.
How this was made
Hand-eye calibration finds where the camera sits on the wrist by comparing how the arm moved with how the target appeared to move. OpenCV needs at least two motions about non-parallel axes, so at least three poses, and strongly recommends many more. MoveIt's tutorial reports that the calibration improves significantly with a few more samples and typically plateaus after about 12 or 15.
The iris is illustrative: its gap round the camera shrinks with the square root of the number of motions beyond the minimum, the usual behaviour of a least-squares fit, drawn relative to its gap at three poses. The rack's groove after the third hole marks the minimum, and its sunken strip under holes 12 to 15 marks where MoveIt reports the calibration levels off. Real accuracy also depends on how widely the poses spread and on noise. Validate the result in robot coordinates, because image reprojection error alone does not close that loop.

With 3 poses, the minimum OpenCV requires, the camera's place on the wrist can just be solved; the illustrative uncertainty ring then tightens with more poses, and MoveIt reports the calibration typically plateaus after about 12 or 15 samples.

Poses and how much tighter the estimate gets
posestimes tighter than with 3 (illustrative)
3the baseline
62.0
123.2
153.6
204.2

Markerless methods now rival targets: DREAM's single-image accuracy is comparable to multi-frame offline calibrationSource 17, and Hydra reaches 5 mm task-space accuracy against 7 mm for classical methodsSource 19. DRHeC's authors report 88.9% grasp success on a UR5e, 46.3 points above the differentiable-rendering method EasyHeCSource 20 Source 18.

Kinematic and tool calibration

Manufacturing errors and joint compliance shift an assembled arm from its nominal kinematicsSource 4. Nguyen and colleagues calibrated a humanoid from 31 chosen postures and cut RMS error 2.3-fold against the manufacturer's modelSource 21. OmniCalib found CAD wrist-camera extrinsics off by up to 10.56 mm and 1.74 degrees, and writes back only corrections its observability checks supportSource 22.

Time calibration

A late frame misplaces a moving arm. Kalibr estimates time offsets jointly with spatial transformsSource 23, and IEEE 1588 synchronizes networked clocks to sub-microsecond accuracySource 24. On one RealSense D435 and Airbot Play rig, Realtime-VLA V2 measured camera, proprioception and motion delays of 55, 50 and 150 msSource 25.

Time calibration
Fast arms turn camera delay into big misses
50 cm a second
Set the speed, then run the bench50 cm a second · photo 27.5 mm behind

Illustrative bench; measured camera delay

A late photo shows the hand where it was, so faster hands mean bigger misses.
How this was made
A robot pairs each camera photo with the arm position it reads when the photo arrives. If the photo took 55 milliseconds to arrive, it shows the hand where it was 55 milliseconds earlier, so the gap is the hand's speed times that delay. Realtime-VLA V2 measured delays of 55 milliseconds for the camera, 50 for the joint readings and 150 for the motion on one RealSense D435 and Airbot Play rig; the figure uses the camera delay.
The bench is illustrative: a gripper on a belt-driven rail, and a camera that aims a beam at where its latest photo shows the gripper. Running, it moves slowed down twelve times. Time calibration estimates the delay and subtracts it, so the photo is paired with the arm position at the moment it was taken.

At a gripper speed of 50 cm a second, the 55 ms camera delay measured on a RealSense D435 rig puts the camera's beam 27.5 mm behind the gripper's pointer on the ruler; the gap is speed times delay.

Gap between the photographed and the real hand
hand speed (cm a second)gap (mm)
105.5
2513.8
5027.5
10055
Camera delay: Yang et al. 2026.

Dynamics and actuator calibration

Sim-to-real work calls this system identification. Atkeson, An and Hollerbach identified load and link inertial parameters by least squares and beat CAD-derived predictionsSource 26, and Gaz and colleagues first identified the Franka Panda's dynamics, joint friction and feasible parametersSource 27.

Hwangbo and colleagues found actuator dynamics central to ANYmal's transfer gap and learned an actuator network from real measurementsSource 7, and SPI-Active, which chooses identification data actively, beats baselines by 42 to 63% in locomotion transferSource 28. Without measured response, a dataset confuses policy and tracking error.

Calibration versus visual servoing

Visual servoing puts the vision sensor inside the control loop and drives image features toward a target through a task functionSource 8. Its interaction model, velocity commands and safety geometry still need consistent conventions.

Drift and ownership

DROID's per-session checkerboard calibrations were not always accurate, and the dataset provides camera-to-base calibrations for about 36,000 scenesSource 29. Most public datasets lack extrinsics; CalibAll recovered them for about 97,000 episodes across 16 datasetsSource 30. Store each calibration with hardware serials, camera settings, tool, software version, date, procedure and residuals, and redo it after a remount, collision, tool or firmware change.