Vision, Calibration and Accuracy
Repeatability against accuracy, hand-eye calibration, error budgets, conveyor tracking and force sensing.
Repeatability, accuracy and where errors come from
A robot returns to a taught point to within its repeatability (typically ±0.02 to ±0.1 mm). To reach a point that was calculated (from CAD, an offline program or a camera), it has to rely on its internal model of its own geometry, and the real robot differs from the model in small ways: link lengths, joint zero positions, gearbox backlash and elasticity, and temperature. These add up into the absolute accuracy, which is usually several times worse.
Worked example: a tiny zero error at full reach
- A joint zero error of just 0.05° at a reach of 750 mm moves the tool by 750 × 0.000873 = 0.65 mm.
- Add a link-length error of 0.2 mm: combined, 0.68 mm, 23 times the repeatability of ±0.03 mm.
- A taught point includes these errors in the recorded joint angles and so cancels them; a computed point does not. That is why a robot that places beautifully from taught points misses by half a millimeter when fed a CAD position.
| Source of error | Typical size | Cure |
|---|---|---|
| Kinematic (link lengths, joint zeros) | 0.2 to 1 mm | Kinematic calibration with a laser tracker or a calibrated plate |
| Gearbox backlash and compliance | 0.05 to 0.5 mm, load- and pose-dependent | Approach from the same direction; stiff tools; load-dependent compensation |
| Thermal growth | About 0.1 mm or more in the first hour | Warm up the robot; temperature compensation |
| TCP and payload data | Depends on the error | Re-measure after any crash or tool change (see Coordinate Frames and Kinematics) |
| Fixture and part variation | 0.1 to several mm | Locating features; vision; compliance |
| Vision and hand-eye | 0.1 to 1 mm | Calibration of lens and camera, then the hand-eye transform |
An error budget
Placement error is the combined effect of independent errors. They combine by the root of the sum of squares (RSS), not by simple addition, because they are unlikely to all be at their worst together (see the same idea in Sensors, Signal Conditioning and ADCs).
u = √( u1² + u2² + u3² + … )
Worked example: can the cell hold ±0.5 mm?
- Six independent errors (see the figure) add straight to ±1.05 mm, the worst case, but combine to ±0.48 mm by RSS.
- The required tolerance is ±0.5 mm, so the ratio of tolerance to error is 1.05: marginal: the errors use up almost the whole tolerance (a ratio of 3 to 4 or more is comfortable; see the 4:1 idea in Planning a Logging System).
- The largest term, the tool center point error (±0.30 mm), contributes the most. Re-measuring the TCP carefully (to ±0.05 mm, say) reduces the total to ±0.37 mm. Spend effort on the biggest term. The robot’s repeatability of ±0.05 mm is almost irrelevant.
Calibrating the robot, the tool and the cell
| What | How | When |
|---|---|---|
| Mastering (zeroing) the joints | Move each joint to its mark or a master fixture and store the encoder zero | After a motor or gearbox change, or if the encoder battery died (see Commissioning, Maintenance and Troubleshooting) |
| Kinematic calibration | Measure the tool position at many poses with a laser tracker or a camera system; fit the corrections to link lengths and zeros | For offline programs and any computed positions; repeat after a crash |
| TCP and payload | Touch a point from several directions; weigh or identify the load | Every tool change or finger replacement |
| Frame (user frame) calibration | Touch three points on the fixture or the conveyor edge | On set-up and when the fixture may have moved |
| Cell calibration | Match the model in the offline software to the real cell with measured points | Before using an offline program |
- Calibrate where the work is: the calibration is best within the volume where the points were measured.
- Verify, do not assume: after any calibration, drive to a few independent known points and measure the error.
- Keep a record of each calibration with the date, the method and the residual.
Vision guidance
A camera lets a robot find parts that are not in fixed positions: on a conveyor, in a tray, on a table. The camera reports where a part is in its own image; the robot needs it in its own frame. Everything depends on the calibration between them (below). Choose the camera for the accuracy you need: more pixels across the field of view mean a smaller pixel on the part.
Worked example: pixel size and accuracy
- A field of view of 400 mm across 2 448 pixels gives 0.163 mm per pixel. Good software finds an edge or a center to about 0.2 pixel (sub-pixel accuracy), so the image resolution is 0.033 mm.
- The real accuracy is worse: lens distortion, perspective, calibration, lighting and the part itself add error. A common rule is to want a pixel at least 3 times smaller than the tolerance: for ±0.1 mm that is about 0.033 mm per pixel.
- Reducing the field of view to 150 mm with 1 600 pixels gives 0.094 mm per pixel: a tighter view is the cheapest way to better accuracy, at the cost of needing the part in that small area.
- Lighting decides the result: controlled, shaded, diffuse or backlit light gives clean edges; ambient light and shiny parts do not. Telecentric lenses remove perspective for flat parts.
Hand-eye calibration
Hand-eye calibration finds the fixed transform between the camera and the robot. With a camera fixed above the work (eye-to-hand) it is the camera-to-base transform; with a camera on the robot hand (eye-in-hand) it is the camera-to-flange transform, and the arm pose at each picture is added to every measurement.
Worked example: how many views?
- The transform has 6 unknowns (three for position, three for orientation), and each view of a calibration plate at a known pose gives several equations, so 15 or more views, spread over the working volume and with large changes of orientation, give a well-determined answer. Views that only differ in position give a poor result for the rotation.
- The software reports a residual: the difference between where the transform says the plate is and where it was measured. Check that it is smaller than your tolerance, then verify by touching. Move the tool tip to a point the camera locates, and measure the miss with a pointer or a gauge.
- Re-do it after moving the camera, changing the lens or focus, or a robot crash.
- Calibrate the camera first (lens distortion and scale with a plate or dot grid), then the hand-eye transform.
- Use the same height as the work: the calibration plane should be the plane of the parts, or the scale and perspective will be off.
- Fix the camera rigidly: a camera on a flexing bracket changes the calibration by itself.
Conveyor tracking
When parts move on a conveyor, a camera takes a picture at one place and the robot picks later, further down the line. The robot needs to know where the part has moved to. An encoder on the conveyor counts its movement, and the controller adds that distance to the part position found by the camera.
Worked example: a conveyor at 250 mm/s
- The vision system takes 80 ms from trigger to result (camera exposure and trigger 10 ms, image transfer 25 ms, processing 30 ms, result to the robot over the network 15 ms).
- Without tracking, the part moves 250 × 0.080 = 20 mm during an 80 ms delay: the robot picks the wrong place.
- With an encoder, the part’s position is stamped at the instant of the exposure and then updated by the encoder count. The remaining error is the timing jitter of the trigger: 250 × 0.002 = 0.5 mm for a 2 ms jitter. Use a hardware trigger from the encoder, not a software one.
- A 2 000 pulse per revolution encoder in quadrature (×4) on an 80 mm roller (circumference 251.3 mm) gives 31.8 counts per mm: a resolution of 0.031 mm, far better than needed.
- With parts every 150 mm the line delivers 100 parts a minute. A pick window of 600 mm gives the robot 2.4 s to pick each part: the time available per pick sets how many robots the line needs (see Cell Design, PLC Integration and Feeding).
2D, 2.5D and 3D vision
| Type | What it gives | Good for | Notes |
|---|---|---|---|
| 2D | x, y and rotation of parts on a known plane | Parts lying flat on a belt or tray; checking presence | Cheapest; needs known height; lighting critical |
| 2.5D | 2D plus height from a laser line or from size | Variable stacked parts, simple depth | Laser triangulation scans a line as the part moves |
| Stereo | Depth from two cameras | Medium accuracy depth, outdoor-capable | Needs texture on the part; accuracy falls with the square of distance |
| Structured light | Dense 3D by projecting patterns | Bin picking, accurate shape | Shiny parts and ambient light are problems |
| Time of flight and lidar | Depth from the delay of light | Large volumes, pallets, mobile robots | Lower accuracy at short range |
| Deep-learning vision | Detection and classification, learned from examples | Varied, hard-to-model parts and defects | Needs training data; see Machine Learning |
Worked example: depth resolution of a stereo pair
A stereo camera with a focal length of 1 200 pixels and a baseline of 100 mm sees a part 600 mm away with a disparity of f b ÷ Z = 200 pixels. A disparity error of 0.25 pixel gives a depth error of Z² ÷ (f b) × 0.25 = 0.8 mm. At twice the distance the error is four times larger, which is why stereo is used at short range for picking.
- Bin picking adds collision-free grasp planning to the 3D vision, and needs a tool that can reach into a bin (see End-of-Arm Tooling and Grippers). Expect a lower success rate and plan a recovery (shake, re-pick).
- Check the vision cycle against the robot cycle: a 0.6 s analysis can double the time for a 0.6 s move (see Payload, Inertia, Speed and Cycle Time).
Force and torque sensing
A force-torque sensor at the wrist measures the contact forces and moments. It allows the robot to feel: to find a surface, to follow a contour with constant force (polishing, sanding), to insert a part by search, and to detect a collision. Some robots estimate force from motor current instead, with less accuracy.
Worked example: what can it resolve?
A sensor with a range of ±200 N read by a 16-bit converter has a step of 2 × 200 ÷ 216 = 0.006 N; the real noise is larger, perhaps 0.1 to 0.5 N. A contact threshold of 5 N is far above the noise, so the robot stops within a millimeter or two of touching (the distance moved during the stopping time at the search speed: choose a slow search). The tool’s own weight must be subtracted, and it changes with orientation, so measure the tool’s mass and CG (see Payload, Inertia, Speed and Cycle Time).
- Pick the range for the real forces: a 2 kN sensor cannot feel 1 N.
- Allow for temperature drift and zero the sensor before each contact task.
- Force control is slower than position control; use it only where needed (the last few millimeters).
Related
- Industrial Robotics: the overview of this guide.
- Coordinate Frames and Kinematics: frames, the tool center point and transforms.
- End-of-Arm Tooling and Grippers: compliance and insertion.
- Sensors and Field Devices: vision sensors, encoders and force sensors.
- Robotics Tools and Machine Learning: perception in software.
FAQ
Why does my robot miss a point that the camera found?
Usually the hand-eye calibration, the tool center point or the calibration plane (height) is wrong, or the robot’s accuracy is poor away from where it was calibrated. Check each with a known point.
Do I need calibration if I teach all my points?
Not for repeatability: taught points cancel the robot’s errors. You need it for any position computed from CAD, offline programming or a camera.
How accurate can vision guidance be?
It depends on pixel size, lens, lighting and calibration. 0.1 to 0.5 mm is common with a 2D camera and good calibration; better needs a smaller field of view or a high-resolution camera.
How do I track parts on a moving conveyor?
Use an encoder to stamp each part’s position at the exposure and update it as the conveyor moves, with a hardware trigger. Software timing alone gives errors of tens of millimeters.
References
- ISO 9283, Manipulating industrial robots: performance criteria and related test methods (accuracy and repeatability).
- Hartley, R. and Zisserman, A., Multiple View Geometry in Computer Vision, Cambridge University Press; Tsai, R. Y. and Lenz, R. K., “A new technique for fully autonomous and efficient 3D robotics hand/eye calibration”, IEEE Trans. Robotics and Automation, 1989.
- Camera and vision-system makers’ guides on lighting and resolution (Cognex, Keyence, Basler, Zivid).
Last reviewed: October 2026. Errors, resolutions and times are typical and illustrative: measure your own cell.
