A camera bolted to a robot wrist needs two calibrations, and most fixed-camera guides cover only one of them. The robot has to know where the optical centre sits relative to the flange — a tool frame (TCP) job. The vision side has to know what one pixel means in millimetres — the grid job — and that mapping holds only at the pose where the grid was shot. This guide runs the robot-held case end to end: define the camera TCP with a four-point definition that uses the focus-distance readout as its touch probe, pin the working distance to ±0.2 mm, fixture the grid so the result survives production, then choose between returning to one calibration pose per shot and solving the camera-to-flange transform once for every wrist pose.
Two calibrations, not one
A fixed camera needs one calibration: pixels to world, done once, valid until someone touches the lens. A wrist camera needs that plus a second transform from camera to flange, and the two answers travel together.
The robot-side half is mechanical. Define a tool whose origin sits at the optical centre, at the focus distance in front of the lens, exactly as you would define a pointer. The vision-side half is the grid calibration, and it carries a catch that the integrated-vision manual for one major robot line states plainly: "In case the camera is mounted on the robot it has to move to the calibration pose before taking a photo during production."
That sentence decides your architecture. Either every production image is taken at the calibration pose, or you solve the camera-to-flange transform once and convert targets from the live pose. Everything below feeds that choice.
Define the camera TCP like a pointer tip
A four-point TCP definition wants one physical point approached from four different orientations. A camera cannot touch anything, so let the focus meter do the touching. If you have never run the procedure with a probe, it is the same walk-through as four-point TCP method for robot tool frames.
- Set the lens focus to the planned working distance and lock it: tape the ring, switch autofocus off.
- Fix one small target on the table at a known height — a printed dot on a plate is enough.
- Approach the dot from four wrist orientations, at least 30° apart in tilt and roll. At each approach, jog until the focus-distance readout returns the calibration distance, then record the flange pose.
- Define the tool from the four poses and refine with extra points if the controller offers them.
A pointer tip is the alternative, and some teams prefer it: mount a short probe in front of the lens, cut to the focus distance, and run an ordinary TCP definition on the tip. The tip length then is the standoff. The focus-meter route needs no machining and leaves the optics untouched.
Four points give the TCP position only. The rotation half of the camera-to-flange transform — the optical axis direction — comes out of the grid solve below, not from the TCP definition. If the controller offers a six-point TCP-and-orientation method, take it; the focus meter still enforces the distance at every approach.
Worked example: 1 mm of Z error at a 300 mm standoff
Inputs, and where each comes from: WD = 300 mm, the focus-meter distance the TCP approaches target, typical for a wrist camera over a mid-size part; field of view 100 mm wide, sized to a 90 mm part with margin; Z error 1 mm at one approach, what a missed focus read or a loose bracket screw costs.
Rule: image scale changes inversely with distance, so the relative scale error is the depth error over the distance.
Arithmetic:
- 1 mm ÷ 300 mm = 0.00333, so 0.33% scale error.
- At the field edge, 50 mm from centre: 50 mm × 0.00333 = 0.17 mm.
- Across the full 100 mm field: 100 mm × 0.00333 = 0.33 mm.
Result and decision: one millimetre of Z spread between approaches puts features 0.17 mm out at the edges — most of a ±0.3 mm pick tolerance spent before the robot's own repeatability enters. Hold every approach within ±0.2 mm of the 300 mm calibration distance: 0.2 mm ÷ 300 mm = 0.067%, which is 0.07 mm across a 100 mm field. If the focus meter will not repeat to ±0.2 mm, fix the bracket or the target-dot lighting before calibrating anything else.
Fixture the grid, don't measure it
The grid calibration measures where the board is, so it does not need to be pre-located precisely relative to the robot. A holder printed and seated to a fixture datum is already more than enough. What the board needs is this:
- A rigid seat. The board must return to the same place months later. Clamp or bolt the holder; a board that can be nudged silently invalidates every number downstream.
- Part height. Put the pattern plane at the plane of the features you measure. At a 300 mm standoff, a board 5 mm below the part plane maps scale off by 5 mm ÷ 300 mm = 1.7% — five times the TCP error you just eliminated.
- Focus and fill. Corners sharp across the frame, the grid occupying most of the image.
- An unambiguous frame. Different row and column counts cannot be read flipped 180°; a symmetric pattern needs a marked origin corner. Wrong pitch or a flipped origin produces exactly the failures in the checkerboard camera calibration error article.
For a single-pose production setup, define the work object on the board — with the pointer or from the calibration result — and teach pick positions against that frame. Accuracy of that definition transfers straight into your taught positions; the calibration itself does not care where the board sits.
Fixture the board off the wrist on one of the camera stands:
- Type
- Camera stands
The LS-MNT-0040 slide-table stand carries a 700 mm column and a 400 x 450 mm base, room to hold the grid flat beside a compact arm with height adjustment to spare.
One pose or one transform: the decision
The fixed-pose route calibrates once at the same pose production will use, so the manual's warning costs nothing — the robot returns there for every shot anyway. Take it when every part is photographed from one taught position, which is the common station setup.
The transform route captures the grid at 8-15 wrist orientations, board still the whole time, recording the flange pose with every image. The solve returns the camera-to-flange transform once, and in production each snapshot converts pixel targets to base coordinates through its own flange pose. Take it when the process genuinely needs the camera at many poses: angled scans, tray layers, hundreds of taught positions. Never re-shoot the grid per part pose; the transform exists so you never do.
Capturing the grid from well-spread wrist positions is the same pose-selection problem covered in eye in hand calibration pose selection, and the nine-point alignment behind most wizards is a simplified version of the same solve.
| Fixed calibration pose | Hand-eye transform | |
|---|---|---|
| Grid shots | One | 8-15 wrist orientations, board still |
| Solve yields | Pixels to work-object plane, true at one pose | Camera-to-flange transform, valid at any pose |
| Production shots | Only at the calibration pose | Any pose, flange pose recorded with each image |
| Extra robot motion per shot | Return to the calibration pose | None |
| Limits | Approach repeatability, ±0.2 mm at a 300 mm standoff | Bracket rigidity and robot absolute accuracy |
An N-point calibration looks like a third option and is not: it is still a single-plane, single-pose mapping, fitted by a different method on the same one-pose image. Pose freedom comes from the hand-eye transform, not from a different fit on the same picture. When layers force a handful of distinct viewpoints, teaching one snapshot position per layer sits sensibly between the two columns. Once solved, the camera-to-flange result is a fixed offset, and publishing it as a static camera transform keeps downstream code identical whether the camera rides the wrist or the frame.
Choosing a camera that lives on the wrist
Shutter first: the camera itself moves between exposures, so a global shutter forgives the vibration that follows an in-position signal. A rolling shutter works, but only behind a settle time — trigger on in-position plus a fixed dwell.
Size the optics before choosing the body. Coverage follows FOV = WD × sensor width ÷ f, so f = WD × sensor width ÷ FOV. At a 300 mm standoff with a 100 mm field, a 1/1.7" sensor (about 7.5 mm wide) needs f = 300 mm × 7.5 mm ÷ 100 mm = 22.5 mm: a 25 mm lens lands near 90 mm, a 20 mm lens near 113 mm. At 2.5 MP across 100 mm the pixel pitch is about 0.05 mm, comfortable for features of 0.3 mm and larger.
Keep the payload short and stiff: a compact body close to the flange, a machined bracket, and a service loop so wrist motion never tensions the connector. The GigE camera on a robot wrist article covers the network and cabling side.
For a wrist payload, a compact global-shutter C-mount body keeps inertia down:
- Sensor format
- 1/1.7"
- Lens mount
- C-mount
- Interface
- GigE
- Resolution
- Up to 3 MP
The MV-CU020-90GC is a 2.5 MP colour GigE camera with a global shutter, a C-mount and a 1/1.7" sensor.
If the inspection should run on the camera itself, with no PC pulling frames across the network, start in the smart cameras category:
- Interface
- GigE
- Resolution
- 6-10 MP
- Sensor format
- 1/2.4"
- Shutter
- Rolling
The MV-SC5060XM-08M-WBN pairs a 6 MP mono sensor with an integrated 8 mm M12 lens. Its rolling shutter is harmless in this workflow because capture already waits for a settled pose. Smart-camera suites rarely ship a robot hand-eye wizard; running the solve when no wizard exists is the workaround.
Checks before you trust the numbers
- Focus locked. Autofocus off, ring taped, distance logged. Focus also drifts with ambient temperature through the shift, so re-check the readout between shifts — see camera focus drift with temperature.
- TCP spread. The focus readout across all approaches within ±0.2 mm of the calibration distance.
- Residuals. Average reprojection residual below about 0.3 px with nothing above 1 px; the targets and what a breach means are in camera calibration residual values.
- End-to-end, five ways. Place a known part, transform its position from five different wrist orientations, compare. On a 90-100 mm field, agreement within ±0.3 mm passes. Error growing toward the edges points at working distance or distortion; a constant offset points at the TCP or the flange transform, and diagnosing an eye-in-hand pick point offset walks that split.
- After contact. Any collision, lens clean or bracket screw touched means re-running the TCP check before trusting coordinates again; systematic fault-finding for that situation lives in troubleshooting robot TCP calibration and tool frame setup errors.
When the usual answer is wrong
- Re-shooting the grid at each production pose. Weeks of robot time to reproduce what the transform gives once.
- A zoom or varifocal lens on the wrist. One bump invalidates the intrinsics instantly; a fixed-focus lens earns its keep on a moving camera.
- Commanded pose instead of the reported flange pose in the transform: backlash and compliance land straight in the targets. Record the flange pose the robot reports with each image.
- Calibrating under room light, producing under the ring light. Corner detection shifts with the lighting and the scale drifts with it, so calibrate under production lighting.
Size your own standoff and field with the formulas above, pick the body from the camera finder or the area scan cameras category, and walk the whole chain in the camera configurator. When a station refuses to close, contact the applications team, and the remaining calibration and integration guides sit on the robot vision systems topic page.
Questions
Does the checkerboard need to be precisely located relative to the robot?
No. The grid calibration itself measures where the board is, so pre-measuring its position adds nothing to the result. The board needs a rigid fixture that returns it to the same seat, a pattern plane at part height, and enough fill in the image. At a 300 mm working distance, 5 mm of height offset between board and part plane already costs 1.7% scale.
Can a standard four-point TCP method work for a camera that cannot touch anything?
Yes — the focus-distance readout replaces the touch. Lock the focus, aim at one fixed mark from four very different wrist orientations, adjust each approach until the readout returns the calibration distance, then define the tool. Hold every approach within ±0.2 mm of the 300 mm calibration distance and the scale error stays under 0.07% on a 100 mm field.
Does the camera have to return to the calibration pose for every production photo?
Only with a single-pose calibration: an N-point or grid mapping is true at exactly the pose where it was shot, so budget the return trip into every cycle. A hand-eye solve captures the grid at 8-15 wrist orientations once, yields the camera-to-flange transform, and then any wrist pose works because targets are converted through the flange pose recorded with each image.
How many grid poses does a hand-eye calibration need?
Six is the practical floor for a stable solve; 8-15 gives margin. Mix tilts and rolls so no two poses are near-parallel, keep the board perfectly still for the whole capture, and record the flange pose with every image. Poor pose spread shows up immediately as a large reprojection residual.
Do I need a fiducial on the checkerboard?
Not necessarily — you need an unambiguous frame. A board with different row and column counts, such as 9 x 6, cannot be read flipped 180°. If your pattern is symmetric, mark the origin corner, or define the work object afterwards with a pointer touch on a known grid corner so taught positions stay consistent between calibration and production.
What repeatability should I expect after calibrating a wrist camera?
Budget it in layers: the TCP scale term is 0.07 mm across a 100 mm field when approaches hold ±0.2 mm at 300 mm, add the calibration residual scaled to your field, then the robot's own repeatability from its data sheet. Check the total end to end by transforming one known part position from five wrist orientations; ±0.3 mm agreement is a workable acceptance target.


