System designHow-to

Eye in hand calibration pose selection: robot positions that work

Pick robot wrist poses for eye-in-hand calibration: target coverage, incidence angle, rotational diversity, and fixing rejected calibration poses.

LumaSpec Vision8 min read Share on LinkedIn

On this page 8 sections
  1. 01Why the pose set matters more than the solver
  2. 02Match the target size to the working distance first
  3. 03Pose selection, step by step
  4. 04The rejection message, decoded
  5. 05Verifying the result
  6. 06Calibrating with a 3D camera
  7. 07Pre-collection checklist
  8. 08Questions

Eye-in-hand calibration puts the camera on the robot wrist, so the unknown transform sits between the flange and the camera. The solver needs paired samples: each robot pose plus the marker pose seen from it. Most failed collections are not solver problems at all — they fail at pose selection, with the target sliding out of view or every pose sharing nearly the same orientation. The classic symptom is a calibration tool that rejects each new position with a message like "cannot calibrate from this position." This walkthrough tells you how to choose wrist poses that the solver accepts, so you can collect a full set in one session and trust the result.

Why the pose set matters more than the solver

The hand-eye equation AX = XB relates the camera-to-target motion between poses to the flange motion reported by the robot. Rotation and translation decouple: rotation is solved first, and translation is only observable once rotation is known. Two consequences drive everything below.

First, poses that differ only by translation add almost nothing. The rotation part of the system becomes rank-deficient if all wrist orientations are the same, and the solver either fails or returns a transform that drifts with distance. Second, each marker detection is noisy, so you need enough independent orientations to average that noise out. A good set is 10 to 15 poses whose camera-to-target viewing directions differ by 20 to 30 degrees or more, spread across at least two rotation axes.

If your collection failed before it started, check the plugin and dependency side first: hand-eye calibration plugin load failure: diagnostic steps and hand-eye calibration build errors: resolve dependency mismatches cover the software faults that look like pose problems.

Match the target size to the working distance first

Before touching the robot, fix the geometry. You want the marker to span roughly a quarter to a half of the image width at the wrist poses you plan to use. A 60 mm marker imaged from 500 mm with a 1/1.7" sensor and a typical 6 mm wide-angle lens covers only a small patch of the frame, so corner detection is noisy; a marker that fills the frame will not survive the wrist rotations you need.

marker_fraction = (marker_size × focal_length) / (distance × sensor_width)

The camera resolution calculator turns sensor and lens numbers into pixels-per-millimeter so you can check detection quality before collecting anything. For coverage margins on the target itself, including lens coverage at your chosen distance, see calibration target field of view and lens coverage margins.

For a typical tabletop collection, a 50 to 100 mm square marker at 200 to 500 mm working distance works with most C-mount cameras. A 12 MP USB3 camera such as LS-CMR-0166 gives plenty of pixels for corner detection at these distances.

Area scan cameras12 MP USB3 area scan camera, IMX226, 1/1.7" rolling shutter, 30 fps, 4000 × 3000 resolution (LS-CMR-0166)LS-CMR-0166
Sensor format
1/1.7"
Interface
USB3
Resolution
12 MP
Shutter
Rolling
$560.00View partBuild a system with it

Pose selection, step by step

  1. Park the target. Bolt or clamp the calibration target to a rigid fixture on the table. The target frame must not move relative to the robot base during the whole collection — one bump invalidates every sample taken before it. A heavy stand with a large base, like the LS-MNT-0040, holds the fixture steady.
  2. Find the neutral pose. Jog the wrist until the marker sits near the image center, viewed as square-on as the wrist allows. Record it. This is pose 1.
  3. Rotate the wrist, don't just translate. From the neutral pose, tilt the wrist 20 to 30 degrees about the flange X axis, re-centering the marker with small joint changes. That is pose 2. Repeat for the flange Y axis (pose 3) and a roll about the camera axis (pose 4).
  4. Combine rotations. Poses 5 onward combine tilts: X+Y, X-Y, X+roll, Y+roll, and larger tilts toward 40 degrees. Re-center the marker after each rotation using translations only — translations are for keeping the target in view, rotations are for making the system solvable.
  5. Watch the incidence angle. Keep the angle between the camera axis and the target normal under about 45 degrees. Beyond that, the marker foreshortens, corner detection degrades, and some trackers lose it entirely.
  6. Check each sample before accepting. In the calibration UI, confirm the marker overlay locks onto the corners with small residuals. Reject and re-jog any sample where the detection jitters.
  7. Collect 10 to 15 accepted samples, then compute. Judge the result by the reported residual, not by whether the solver finished.
Camera standsMachine vision camera stand, professional slide-table type, height 700 mm, 400 x 450 mm base (LS-MNT-0040)LS-MNT-0040
Type
Camera stands
$629.00View partBuild a system with it

The rejection message, decoded

When the tool says it cannot calibrate from the current position, one of three checks has failed, in this order of likelihood:

  • Target not detected, or detected poorly. The marker is clipped at the image edge, too small, blurred by motion, or foreshortened. Fix by re-centering with translations and checking the overlay.
  • Sample adds no information. The wrist orientation is too close to a previous sample. The tool wants a minimum angular distance between samples; if you moved only in translation, rotate the wrist 20 degrees or more and try again. This is the most common trap, because translating feels like progress.
  • Motion planning failed. The planner could not reach your jogged position at the set velocity scaling. Lower the speed or pick a reachable pose; a slower collection you finish beats a fast one you abandon.

If the collection ran fine but the result is unusable afterwards, vision calibration recovery after camera or robot changes covers what to redo when the camera mount or tooling has since changed.

Verifying the result

A low residual only proves the solution fits the samples. Verify it against poses the solver never saw:

  1. Move to two fresh poses that view the target from different directions.
  2. Transform the detected marker pose into the robot base frame through your new hand-eye result.
  3. Compare the two estimates of the target position. Agreement to within about 0.5 to 1 mm at 300 mm distance is a good result for a marker-based collection; disagreement of several millimeters means the pose set lacked angular spread.
  4. If verification fails, recollect with more rotation diversity before changing solvers or thresholds.

Calibrating with a 3D camera

The same pose rules apply when the wrist camera is a structured-light or stereo 3D camera, except coverage is tighter. A depth camera's usable field is narrower than its color stream's, and close-range dropout can hide the target even when the color image looks fine — depth image field of view: why stereo coverage is smaller explains the geometry. Keep the target well inside the depth range, and prefer a laser-galvanometer stereo unit like the MV-DLS300P-04 for close-range wrist work, or browse the full 3D sensors range for your working distance.

3D sensorsHikrobot MV-DLS300P-04 Laser galvanometer stereo cameraMV-DLS300P-04
Type
Stereo / structured light
$16,579.00 · quotedView and quote

You can compare candidate wrist cameras side by side in the area scan cameras finder, or start from a known camera and let the system configurator match the lens and stand.

Pre-collection checklist

  • Target rigidly fixed; no compliance between target and robot base.
  • Marker spans a quarter to half the image width at the planned poses.
  • Camera cable dressed so wrist rotation cannot tug it mid-collection.
  • Planned set includes rotations about at least two axes, 20 to 30 degrees apart.
  • Velocity and acceleration scaling low enough that motion planning always succeeds.
  • Verification poses prepared in advance, different from the calibration poses.

A careful half hour of planning the pose set saves an afternoon of rejected samples and a calibration you cannot trust. If you want a second opinion on camera placement or target sizing for your cell, contact our applications team with your working distance and part sizes.

Questions

Why does eye-in-hand calibration refuse certain robot positions?

The calibration node checks the marker pose against two criteria: the target must be detected in the image with low uncertainty, and the new sample must add information the solver does not already have. If the marker is at the image edge, viewed at a shallow angle, or the wrist rotation barely changed from the previous sample, the sample is rejected. Move until the target sits near the image center at a square view, and rotate the wrist substantially between samples.

How many poses does eye-in-hand calibration need?

Theoretically two rotations about non-parallel axes suffice; in practice 10 to 15 poses give a robust result because each marker detection carries noise. Fewer than 8 poses and one bad detection can skew the whole solution. More than about 20 well-spread poses adds little accuracy while increasing the chance of a bumped camera or target. Judge the result by the reprojection or residual error, not by the pose count.

Is translational movement between poses enough for hand-eye calibration?

No. The hand-eye equation separates rotation and translation, and translation can only be recovered after rotation is known. If every pose keeps the camera orientation identical and only translates the wrist, the rotation block of the system is rank-deficient and the solver fails or returns garbage. Each pose must change the camera orientation relative to the target, ideally 20 to 30 degrees or more, about different axes.

How close should the calibration target be to the camera?

Close enough that the marker spans roughly a quarter to a half of the image width: small markers far away give noisy corner detection, while markers filling the entire frame are hard to keep fully visible as the wrist rotates. Use a square target of 50 to 100 mm for typical tabletop working distances of 200 to 500 mm. Match the marker size to the distance before you start, not after rejections.

Can I calibrate eye-in-hand with a depth or 3D camera instead of a marker?

Yes. A structured-light or stereo 3D camera can calibrate against a known plane or 3D target instead of a flat marker, and the same pose rules apply: full target coverage, near-square incidence, and real rotational diversity between wrist poses. Keep the target inside the depth camera's usable range, because depth coverage is usually narrower than the color field of view.

How do I verify the calibration is actually good?

Move the robot to two or three poses that were not used in the calibration set, and check that the target's estimated position in the robot base frame agrees across them to within a millimeter-scale tolerance. If the estimates disagree, the usual culprits are repeated orientations in the pose set, a loose camera mount, or a target that moved during collection. Recollect with more angular spread before touching the solver.