Who produces this edge?
Robot FK, camera calibration, PnP, SLAM, a TCP file, or manual configuration.
Robot Transform Chains & System Calibration
The visual estimate CTO is one edge in a robot system. The executable pose BTO also depends on frame directions, hand–eye extrinsics, robot kinematics, TCP, time synchronization, mount rigidity, and an error budget.
01 · Frame Contract
Use the coordinate-system topic's column-vector convention: the superscript is the output frame and the subscript is the input frame. Multiply only when adjacent frame names cancel.
Robot FK, camera calibration, PnP, SLAM, a TCP file, or manual configuration.
Specify parent/child, active/passive, and row/column conventions.
m/mm, rad/deg, clock domain, valid interval, source version.
Numerical ranges, loop closure, held-out poses, and actual contact outcomes.
| Symbol | Physical meaning | System boundary | Temporal behavior | Primary source |
|---|---|---|---|---|
| B · base | Robot base | Reference frame for the controller's forward kinematics; may differ from the cell world / map | Usually static | Robot controller / cell calibration |
| E · flange | Flange / terminal link | The final mechanical interface defined by the robot manufacturer, distinct from the tool tip | Moves with the joints | forward kinematics |
| U · tool / TCP | Tool center point | The point / axis that performs grasping, welding, probing, or suction tasks | Rigidly attached to E | TCP / tool calibration |
| C · camera optical | Camera optical frame | A 6D estimator commonly outputs ᶜTₒ; RGB and depth may each have their own C | Depends on mounting topology | intrinsic + extrinsic |
| T · calibration target | Calibration board / fiducial | Provides observations of known geometry; may be fixed to the base or mounted on the flange | Determined by the capture setup | target detector / PnP |
| O · object | Target object frame | Reference for model points, symmetry, and grasp relations; endpoint of online visual estimates | Scene-dependent | pose estimator |
| G · grasp | Candidate grasp frame | Derived from O through an object-to-grasp transform; multiple equivalent candidates may exist | Moves with O | grasp generator |
| W / M | Cell world / map | Shared reference for multiple robots, cameras, SLAM, or measurement systems | May be static or drift | survey / SLAM / robot-world calibration |
02 · Eye-in-Hand, Eye-to-Hand & Hybrid
The rigid bodies carrying the camera and target determine which transforms stay constant across samples. A shared API name does not replace physical modeling.
Eye-in-hand
Eye-to-hand
Multi-camera / hybrid
The camera edge moves with its robot-FK parent; dynamic chains require a shared physical time.
The camera is a static child of the base; robot E lies on a separate calibration-target or execution branch.
TCP is independent of the camera/object chain; correct vision does not guarantee a correct tool frame.
03 · Derive AX=XB
For this eye-in-hand derivation: Gᵢ = ᴮTₑᵢ, X = ᴱT꜀, Oᵢ = ᶜTₜᵢ, and target T is fixed to the base.
Both X = ᴮT꜀ and Y = ᴱTₜ are unknown. This belongs to simultaneous robot-world / hand–eye calibration; it cannot be treated as having only one unknown X.
Papers may write AX=YB, AX=ZB, or other arrangements. Letters do not define semantics: list the frames connected by every quantity and fix the gauge.
Every independent loop provides closure. Shared edges induce correlated errors, so covariance terms cannot be assumed to add independently.
Interactive Lab
The three experiments ask how to compose the chain, when X can be uniquely recovered, and which error source exhausts task tolerance first. Continue adjusting parameters after selecting any preset.
Interactive · Transform Graph, AX=XB & Deployment Budget
Active path
Object in base
TCP in base
Round trip
Contract audit
Excitation
Estimated X
Held-out X error
AX=XB residual
Calibration gate
Static extrinsic
Temporal
Task-point budget
Dominant source
Deployment gate
04 · Solvers & Observability
Tsai, Park, Horaud, Daniilidis, and nonlinear refinement cannot create information from pure translation, a shared rotation axis, wrong directions, or a bent target.
| Method family | Core idea | Suitable uses | Engineering cautions |
|---|---|---|---|
| Tsai–Lenz · separable | Rotation first, then translation; a classical linear construction | Simple and fast; suitable for well-excited motions and low-noise initialization | Rotation noise propagates into translation; verify A/B, gripper↔base, and target↔camera directions in the paper and API |
| Park–Martin · Lie group | Constructs exact and least-squares AX=XB on SO(3) / SE(3) | Clear geometric interpretation; Lie algebra can handle rotation | Specify the log branch, behavior near π, weighting, and unit scales |
| Horaud–Dornaika · quaternion / nonlinear | Compares linear, quaternion, and simultaneous rotation–translation optimization | An entry point to classical solver families and nonlinear refinement | Quaternion signs, left/right multiplication, and rotation/translation weights are easy to mishandle |
| Daniilidis · dual quaternion | Represents rotation and translation together with dual quaternions and solves via SVD | Solves both components together without fully separating them | Still cannot fix degenerate motions, incorrect observations, or robot-kinematics bias |
| Andreff et al. · online / SfM | Kronecker / linear structure, extensible to settings without known target motion | Suitable for online use and more general observation relationships | Parameter scales, noise models, and structure-recovery gauge require additional constraints |
| Nonlinear joint refinement | Directly minimizes target reprojection, 3D residuals, and kinematic / temporal model residuals with robust losses | Can include distortion, rolling shutter, time offsets, covariance, and outliers | Initialization, gauge, and correlated-parameter trade-offs matter; lower training residuals do not imply held-out accuracy |
Include at least two nonparallel relative rotation axes, preferably covering multiple spatial directions
With only a shared rotation axis, some translation / rotation constraints along that axis are unobservable or ill-conditionedUse sufficiently large positive and negative angles while remaining safe, keeping the target visible, and ensuring stable PnP
Many tiny 1° motions are less useful than a few clear large rotations; corner / PnP noise can overwhelm the differencesVary camera–target distance, lateral position, wrist orientation, and lever arm
Calibrating only a small region mixes robot-kinematics bias with extrinsics and fails when extrapolated farther awayEnsure sufficient target pixels, varied tilts, no overexposure or strong glare, and a complete corner distribution
Frontal planes, tiny distant targets, blur, or bent boards jointly bias camera/PnP and hand–eye estimationAfter stopping, wait for mechanical vibration and auto-exposure to settle; record mid-exposure time and robot pose
Treating arrival time as exposure time during motion fits temporal bias into spatial extrinsicsRepeat forward and reverse paths at representative speeds, payloads, and cable configurations
Backlash, gravity-induced flex, thermal drift, and cable forces cannot be explained by one fixed XHold out robot poses / workspace regions / sessions; do not validate on duplicated frames from the same stop
Adjacent-frame leakage makes closure and reprojection appear unusually stable05 · Calibration Stack
Separate parameter blocks and give each independent observations, validation, and versions. Joint optimization can improve consistency, but still requires gauge choices, priors, and held-out acceptance tests.
| Parameter block | Contents | Estimation strategy | Independent validation |
|---|---|---|---|
| Camera intrinsic | K, distortion, resolution, focus / zoom / temperature | Planar calibration at varied tilts + nonlinear reprojection; save image dimensions and camera model | Reprojection, image edges, held-out views, and board flatness |
| Target geometry / detector | Point coordinates, tag size, board warp, subpixel corners, and PnP | Measure the physical target; freeze detector / dictionary / corner conventions | Per-point residuals, front/back sides / IDs, and varied distances and poses |
| Hand–eye | ᴱT꜀ or an equivalent fixed rigid edge | AX=XB / joint refinement; motion excitation comes before solver selection | Held-out static-target closure and agreement across solvers |
| Robot-world / base-camera | ᴮT꜀ and possibly ᵂTᴮ, ᴱTₜ | Jointly solve AX=ZB / X Oᵢ = GᵢY with an explicitly fixed gauge | Loop closure across robots/cameras and independent measured points |
| TCP / target mount | Tip translation and tool orientation in ᴱTᵤ, ᴱTₜ | Pivot calibration for the tip; multiple planes / poses or known axes for orientation | Touch fixtures, varied approach directions / payloads |
| Robot kinematics | joint zero, link geometry, encoder, compliance, backlash | Factory / metrology calibration; cannot all be absorbed into hand–eye X | pose accuracy vs repeatability, workspace map, ISO-style path tests |
| RGB–depth / multi-camera | Cᵣ↔C_d, C₁↔C₂, depth scale / bias | Synchronized multiview targets / 3D planes; joint or global graph refinement | RGB-depth edges, 3D plane residuals, and cross-camera closure |
| Temporal calibration | clock offset/skew, latency, jitter, rolling shutter readout | Hardware triggering / PTP; otherwise joint temporal–extrinsic estimation with sufficiently excited motion | Held-out dynamic residuals at different speeds / directions |
Keep the tool tip at one point in the base frame while changing flange orientation. Each pose satisfies:
Joint zeros, link lengths, encoders, backlash, compliance, and thermal drift make ᴮTₑ errors vary with q / load / direction. Structured workspace residual fields call for robot-kinematics or compensation models, rather than more hand–eye degrees of freedom.
static edge: ᴱT꜀, ᴱTᵤ, ᴮT꜀ configuration: ᴮTₑ(q; θ_kin) dynamic nuisance: flex(q, load, T), backlash(direction) temporal state: q(t), exposure(t), latency / jitter
06 · Temporal Calibration & Error Propagation
Camera-message arrival, exposure start/midpoint/end, robot-controller sample time, and host clocks may differ. A Δt invisible at rest becomes millimeters and degrees during motion.
A global shutter can use mid-exposure time; a rolling shutter also requires row-wise readout timing.
May come from the camera clock; map it to a common clock using offset/skew.
Includes transport, driver, queue, and scheduling jitter; cannot directly serve as the sampling time.
Interpolate joints / SE(3) at exposure time; record the interpolation method and extrapolation gate.
| Error source | Typical signature | Isolation experiment | Corrective action |
|---|---|---|---|
| Hand–eye rotation | Position errors on distant targets grow with lever arm and have strong directionality | δp ≈ [p]×δθ; plot a vector field over distance / workspace | Recapture multiaxis motion; check mount rigidity and target / PnP bias |
| Hand–eye translation | An approximately constant shift whose direction changes under parent-frame rotation | Mean static-target offset in the base frame; closure across poses | Re-estimate the fixed edge; avoid misattributing TCP / base errors to X |
| Clock offset / latency | Error follows velocity, reverses sign with motion direction, and disappears at rest | Regress residuals against linear / angular velocity; vary speed and direction | Hardware synchronization, shared clocks, exposure-time interpolation, and offset/skew estimation |
| Rolling shutter | Residuals at the top/bottom of one frame have opposite signs or vary with readout direction | Per-row residual versus row/time; high-speed rotation sequences | Model readout time, reduce motion, or use a global shutter |
| TCP / target mounting | Persistent touch / grasp offsets even when visual overlays are entirely correct | Pivot / touch tests; vary approach direction | Calibrate ᴱTᵤ / ᴱTₜ without changing camera extrinsics |
| Robot accuracy / flex | Commands repeat consistently but absolute positions are biased; depends on payload / pose / temperature | Independent tracker, forward/reverse and payload slices, workspace error maps | Kinematic / compliance calibration or closed-loop compensation |
| Intrinsic / distortion | Good results at the image center but systematic edge errors; pose changes with board position in the image | Per-point reprojection and radial plots on held-out views | Fix focus/resolution, recalibrate K/distortion, and update K for crop/resize |
| Target / PnP bias | Consistent pose biases for different target orientations or tag IDs | Change boards, point sets, and PnP methods; check physical dimensions / flatness | Rigid precision targets, joint refinement, robust corners, and uncertainty |
| Base/world mismatch | Each camera is internally consistent, but coordinates fail to close across devices / cells | Frame-graph loop residuals and known measured points | Retain a single authoritative static edge; calibrate and version ᵂTᴮ |
| External drift | Gradual degradation or occasional jumps after deployment | Fixed-fiducial heartbeat, closure CUSUM, and temperature / collision logs | Recalibration gates, mechanical locating pins, online status, and safe fallback |
07 · Validation Ladder
Validation using the same sensor, board, and trajectory may share systematic biases. Later validation levels are better able to break this shared-source self-consistency.
Whether AX=XB / reprojection fits the training motions
Necessary but insufficient; degenerate data can also yield low residualsCompute Zᵢ = Gᵢ X Oᵢ for each held-out pose and inspect SE(3) dispersion
Directly validates the complete static eye-in-hand chainWhether X is stable across Tsai/Park/Daniilidis/nonlinear solvers and bootstrap subsets
Reveals ill-conditioning, outliers, and implementation-convention errorsTouch known points with the TCP, or use a laser tracker / external metrology system
Avoids self-consistency caused by errors shared by the same camera/targetCompare residuals along the same path at different speeds and in opposite directions
Separates spatial extrinsics, timing bias, backlash, and flexSlice by deployed volume, payload, cable configuration, and thermal steady state
Establishes the validity domain and worst regions for a fixed XOpen loop versus visual servoing, nominal versus perturbed conditions, and real grasp/insertion trials
Maps millimeter / degree errors to task success and safetyFixed targets / loop closure, timestamp health, mounting shocks, and uncertainty
Detects deployment drift and triggers abstention / recalibrationSuggested held-out calibration report
calibration_id / solver / source_commit / frame_convention camera serial + K/distortion/resolution/focus + target asset hash robot serial + controller/kinematic version + tool/load + temperature motion excitation: axis spread / relative-angle distribution / workspace hull train: reprojection + AX=XB residual + outlier list held-out: target closure translation_xyz / rotation vector / P50/P90/max dynamic: clock model / speed bins / direction bins / rolling-shutter config independent: touch/tracker/task trials + failures + safety margin valid_from / valid_until / mount event / online heartbeat threshold
08 · Open Loop, Visual Servo & Closed-Loop Operation
Open-loop execution relies on a single ᴮTₒ estimate; visual servoing feeds visual error into the control loop. Both must handle visibility, latency, control rate, speed limits, uncertainty, and safety interlocks.
Intuitive trajectories and compatibility with 3D targets; depends on pose and hand–eye / robot models
Pose-mode jumps, calibration bias, depth/scale errors, and large initial errors can produce incorrect Cartesian motionRobust to some calibration errors and better at retaining targets in view
Depth estimation, local stability regions, degenerate features, and camera retreat remain concernsBalances field-of-view retention against Cartesian trajectories
Control laws, coordinate conventions, and switching conditions must agreeCan correct some static bias and target motion
Cannot automatically fix timing mismatch, wrong frames, occlusion failure, or unsafe actions; speed / confidence gates are requiredCheck target visibility, sensor health, pose modes, and the confidence contract.
Interpolate q(t) and propagate pose / calibration uncertainty into the task frame.
Acquire / slow / abstain when outside the calibration domain, error budget, or field of view.
Execute small steps while monitoring residual decrease, latency, and contact state.
09 · Failure Taxonomy & Release Gate
End-effector offsets have many causes beyond 6D pose. Use stationary/moving, forward/reverse, near/far, center/edge, and light/heavy-payload comparisons to identify error sources quickly.
Sweep speed and direction. If residuals follow the signs of v and ω, spatial recalibration usually treats the symptom rather than the cause.
Divide position residuals by distance and slice by image radius.
Use an independent touch fixture and vary approach direction; leave camera extrinsics unchanged.
Plot workspace vector fields; inspect extrapolation beyond the calibration hull and dependence on payload / pose.
List the unique authoritative edges and remove duplicate static-transform publishers.
Hash calibration files, K, tools, controllers, and mount events; add startup assertions.
Release gate · Before a robot may use a visual pose