The calibration tool reports a translation residual of 1-2 cm, and the question on the bench is whether that is simply what this hardware can do. It is not. A jointed robot arm with a depth camera and a printed target is a millimetre-class system once the capture is disciplined, and this guide gives you the band to expect, the physics that sets it, and the capture faults that inflate a residual by an order of magnitude. It is written for anyone commissioning eye-to-hand or eye-in-hand calibration on a UR10e-class cobot with a depth camera. You will get the standoff rule, the pose-spread rule, the lock-down checks, a verification procedure that separates solver residual from real pick accuracy, and a decision at the end: when to re-capture, and when to actually change hardware. More robot-vision guides sit on the robotics topic page.
Is 1-2 cm a normal hand-eye calibration translation error?
No — for a rigid-target calibration on a healthy depth camera, plan on 1-5 mm of translation error, so a residual of 1-2 cm is three to ten times worse than the method should deliver and almost always means the capture, not the hardware, is at fault.
Two reference points frame the answer. Published evaluations of marker-free, learning-based hand-eye methods in unstructured environments report mean translation errors around 25 mm — that is the price of working without a target. A classical rigid-target session removes that price: the target hands the solver thousands of precisely known correspondences per pose, so the same class of hardware lands an order of magnitude tighter. Second, read the tool's number correctly: it is a residual, a measure of how consistently all your poses fit one rigid transform. A small residual says the session was self-consistent; it does not say the robot will hit the part at runtime. That is why the verification procedure below tests on poses the solver never saw.
What error can this camera and robot actually reach?
With a stereo depth camera, a flat rigid target and 15-30 well-spread poses, 1-5 mm of translation residual is the realistic band, and 2-3 mm is common once capture discipline is right; the robot's own repeatability, about ±0.05 mm for a UR10e-class cobot, is not the limiter.
The arm repeats hundreds of times tighter than the residuals you are chasing, so the reachable band is set by the sensor's depth noise, the target's rigidity and your pose spread. Solver choice barely moves the needle: differences between the classic closed-form methods (Tsai, Park, dual-quaternion variants) on clean data are small fractions of a millimetre. Those three levers — noise, rigidity, diversity — are exactly what the next sections quantify, so treat a 1-2 cm residual as a capture fault until each one is proven clean.
Why does standoff distance blow up the depth error?
Stereo depth noise grows with the square of distance, so a sensor with about 2% depth error at 2 m (40 mm) carries roughly 10 mm of per-pose noise at 1 m and 3.6 mm at 0.6 m; halving the standoff cuts depth noise to a quarter.
Depth from stereo comes from triangulation, and the uncertainty scales as δz ∝ z² / (f·B), where f is the focal length and B the stereo baseline. That quadratic law is behind the datasheet-class figure of roughly 2% depth error at 2 m for consumer active-stereo depth cameras, and it is the most common reason a tidy-looking session still lands in centimetres: every pose was captured at arm's length.
Commit to a capture band of 0.4-0.8 m and the per-pose noise falls to a few millimetres before anything else is touched. A target that looks small at 1.5 m compounds the problem, as the checkerboard-at-distance guide explains. If the cell geometry truly forces a long standoff, the fix is hardware, not patience: a longer stereo baseline or a projected-pattern sensor, covered in the stereo baseline guide and the 3D camera working distance guide.
Is autofocus or auto-exposure corrupting each pose?
If the camera refocuses or re-exposes between poses, every pose is measured at a slightly different scale and brightness, which shifts detected target corners by millimetres and inflates the residual; lock focus, exposure and white balance before the first capture and touch nothing until the last one.
Three mechanisms live here. Focus: when poses are detected on the RGB stream and autofocus is on, each refocus nudges the effective focal length, and a 1% shift moves a corner sitting 150 mm off-axis by about 1.5 mm (0.01 × 150 mm), straight into the solution. Exposure: auto-exposure changes brightness between poses, marker thresholds move, and detected corner centres drift by fractions of a pixel to whole pixels. Motion: a frame grabbed before the arm settles carries real pose error and blur — at a residual 50 mm/s of wrist drift and a 10 ms exposure, the smear is 0.5 mm.
The fixes are mechanical. Disable autofocus in the camera's focus controls and set focus once at the working distance: the autofocus calibration article walks the lock-in, and the repeatable focus-position habit keeps it stable between sessions. Set manual exposure and gain — 8-16 ms covers most bench lighting with blur under 0.2 mm at settle. Gate each capture on the controller: wait 500 ms after the motion command completes and confirm actual joint speeds read zero before triggering.
How much damage does a moved or flexing target do?
A target that slides, tilts or bows between samples injects its own motion into the solution — 5 mm of target shift between two poses is 5 mm of error the solver cannot distinguish from a robot error — so bolt the target to a rigid plate and never touch it mid-session.
The solver assumes one rigid target for the whole session, so target motion enters millimetre for millimetre. Paper glued to cardboard bows with humidity: 1 mm of bow across the board is roughly 1 mm of depth bias on the corner set. A magnetic mount on a guard rail moves when something bumps it, and nobody notices. Bolt the target to a 3-5 mm aluminium or acrylic plate, check flatness against a straightedge, and mark its position so a knock is detectable. If the plate moves at all, re-run the session; never blend captures taken before and after a move. Rigid fixturing on the camera side belongs to the same discipline — camera stands and brackets exist for exactly this — and the moved-parts drift article shows what one shift does to a calibration that was once good.
How many poses do you need, and where should they sit?
Plan 15-30 poses spread over at least 90° of wrist rotation on two different axes and 0.4-0.8 m of distance range with the target filling 40-60% of the frame; a flat sweep of similar poses leaves the translation along the viewing axis poorly constrained and the residual inflated.
Pose diversity is what lets the solver separate the rotation part of the transform from the translation part. With the target only translated in a plane, distance along the viewing axis stays entangled with focal length and the residual absorbs the ambiguity. Tilt the target ±30-45°, roll the wrist through at least 90° on two axes, and keep the target centred — lens distortion is worst at the frame edges, and edge corners carry the largest reprojection error. Ten poses is the floor; 15-30 is the comfortable band; place them at two or three distances inside the 0.4-0.8 m band rather than at one distance. The eye-in-hand pose-selection guide shows the same spread logic from the wrist side, and it transfers to eye-to-hand unchanged.
How do you verify the calibration before trusting picks?
Split the session: calibrate on one set of 15 poses, then re-detect the target on 5-10 fresh poses the solver never saw; if validation residuals stay under 3 mm and two independent sessions agree within 3 mm, trust the calibration — if not, the capture is still the problem.
The tool's residual is computed on the poses you fed it, so it flatters a session that shares one systematic fault. Validation poses give the honest number, and a physical test gives the one that matters at the part: command the tool centre to a point computed from a fresh camera detection, then measure the mismatch with feeler gauges — expect 3 mm or better on a disciplined set-up, and treat 5 mm as the signal to re-capture.
Rotation residuals hide inside translation misses through the lever arm:
At θ = 0.5° and a 300 mm camera-to-tool lever, e = 300 × 0.00873 = 2.6 mm, so audit the rotation residual too. The calibration accuracy verification procedure gives the full test, the eye-to-hand verification guide covers the base-frame case, and the residual values guide explains which average and maximum residuals to accept.
When is the hardware actually the limit?
Genuinely bad hardware shows up before the math: a depth image full of holes, an IR projector that has died, a lens scratched or delaminating, or a camera mount that rings when the robot stops; if none of those is present, 1-2 cm is not a hardware ceiling.
Run three checks before blaming the sensor. Depth fill: at the capture distance, the target surface should read solid depth — better than 90% fill; a target full of holes means weak reflection or a failing projector. Projector: view the emitter through a phone camera; a working IR projector shows a live speckle pattern. Mount: push the camera lightly and watch the depth image — a mount that rings or shifts needs re-fixturing before any statistics mean anything. If all three pass, work the fix order below. If depth fill is genuinely poor at the working distance, the sensor is the answer:
- Type
- Stereo / structured light
For wrist-mounted work, the MV-DPS200P-02 is a projected structured-light 3D camera: the projected pattern holds depth density on matte targets where passive stereo thins out. Compare it with the other depth classes on the specs that matter for your standoff:
| Specification | MV-DPS200P-02 | MV-DLS300P-04 | MV-DT01WMU |
|---|---|---|---|
| Near field of view | 180 mm × 160 mm @ 250 mm | 280 mm × 220 mm @ 400 mm | – |
| Far field of view | 420 mm × 320 mm @ 500 mm | 620 mm × 440 mm @ 800 mm | – |
| Clearance distance (CD) | 250 mm | 400 mm | – |
| Measurement range (MR) | 250 mm | 400 mm | – |
| Repeatability (Z-axis) | 0.02 mm @ 300 mm | 0.03 mm @ 600 mm | ±(10+0.5%depth1)mm |
| VDI/VDE accuracy | 0.03 mm @ 300 mm | 0.05 mm @ 600 mm | – |
| Resolution | 3200 × 1944 @ RGB image; 1632 × 1264 @ depth map | 3200 × 1944 @ RGB image; 1632 × 1080 @ depth map | Depth map: 640 × 480 @ 30 fps; RGB image: 1280 × 1024 @ 30 fps |
| Data type | Raw image (mono + color), Depth map, RGB-D image | Raw image (mono + color), Depth map, RGB-D image | Intensity image, Color image, Depth map |
| Acquisition time | 0.2 ~ 0.7 s | 0.4~0.9 s | – |
| Image output latency | 0.5 ~ 1.2 s | 0.8~1.5 s | 133 ms |
| Dimension | 126 mm × 90 mm × 50 mm | 236.3 mm × 79.8 mm × 98.5 mm | 91 mm × 26 mm × 31.2 mm |
| Weight | 0.74 kg | Approx. 1.3 kg | Approx. 70 g |
| Price | $8,829.00 · quoted | $16,579.00 · quoted | Price on request |
Values as printed in each product's data sheet; open a part for its drawing and full specifications.
The 3D sensors category also holds the laser profiler alternatives for profile-level precision when the part geometry demands it.
| Cause | Test | Fix | Typical gain |
|---|---|---|---|
| Captured while the arm was still settling | Re-run 5 poses with a 1 s dwell after motion | Wait for joint speeds to read zero, then 300-500 ms | 5-10 mm |
| Autofocus or auto-exposure riding between poses | Watch the focus motor hunt during the session | Lock focus, exposure and gain for the whole session | 2-8 mm |
| Target moved or flexed | Inspect the mount after every tenth pose | Bolt to a 3-5 mm aluminium or acrylic plate | About 1:1 with the movement |
| Poses too similar | Plot the spread: two axes, at least 90° | Re-capture 15-30 poses with tilt and distance range | Centimetres to millimetres |
| Standoff too far | Apply the squared-distance law to your distance | Move captures into 0.4-0.8 m | 2-10 mm per pose |
| Damaged optics or dead projector | Depth fill on target; speckle check | Clean, re-fixture, or replace the sensor | Case by case |
What is the fix order, start to finish?
Work down this order and stop when the residual drops below 3 mm: focus and exposure first, then target rigidity, then standoff, then pose spread, then settle timing — each step costs minutes, and the first three fix the large majority of centimetre-level residuals.
- Lock focus, exposure and gain at the working distance and leave them untouched — autofocus rides cost millimetres per pose.
- Bolt the target to a rigid plate and mark its position — target motion enters the result millimetre for millimetre.
- Move the capture band to 0.4-0.8 m — depth noise falls with the square of distance.
- Spread 15-30 poses over 90° on two axes with ±30-45° tilt — diversity separates rotation from translation.
- Gate each capture on 500 ms of dwell and zero joint speed — moving frames carry real pose error and blur.
- Calibrate on one set, validate on 5-10 unseen poses — the honest residual is the unseen one.
- Repeat the whole session and compare: two results within 3 mm confirm the capture; results 10 mm apart say re-capture again or replace the sensor.
The decision, per case: a 1-2 cm residual with any of the first five causes unresolved — re-capture and expect 1-5 mm; a residual that survives two disciplined sessions 10 mm apart — the sensor or its mount is the fault; a 2-3 mm residual that still misses picks — audit the rotation residual and the tool-frame lever arm, not the calibration. If you are specifying hardware for a new cell instead, the camera finder filters the 3D sensors by type, the system configurator assembles camera, mount and controller into one bill of materials, and the team on the contact page will review a residuals report against your cell layout before you order.
Questions
What rotation error should I expect next to the translation error?
Expect 0.05-0.2° from a clean session. Rotation reaches the part through the lever arm: 0.1° at a 300 mm tool offset puts the tool point out by about 0.5 mm (300 × tan 0.1°), so rotation only becomes visible when the camera sits far from the tool centre point.
How large should the calibration target be?
Big enough to fill 40-60% of the frame at your capture distance. At 0.6 m with a typical wide-angle depth camera (85-90° horizontal field), the frame is about 1.1 m wide, so a 0.5 m board is right; at 1 m the frame grows to about 1.9 m and a 1 m target earns its space.
Should the camera sit on the wrist or on the base for better accuracy?
Accuracy potential is the same either way: the solver quality, not the mounting side, sets the residual. Choose by what you need at runtime — eye-in-hand for scanning at each pose, eye-to-hand for a fixed inspection volume. Every cause and fix in this guide applies to both set-ups.
Can I average several calibrations to shrink the error?
No — rotations do not average like numbers, and blending transforms can hide a capture fault instead of fixing it. Re-run the full session twice instead: two independent results within 3 mm of each other confirm the capture; results 10 mm apart tell you the session, not the solver, is the variable.
How long does a good capture session take?
About 20-30 minutes end to end: 15-20 poses at roughly 30 seconds each once jogging is smooth, plus the unseen validation poses and a repeat session. The time goes into settling and pose spread, both of which are what pull the residual from centimetres to millimetres.
