registration_metrics op• Data kinds: pose × pose → measurement
• Call: import fullseye as fs; fs.ledger.rotation_translation_error(gt, est) (to call the implementation directly, import registration_eval; registration_eval.rotation_translation_error(gt, est); from the registry, ops3d.get("rotation_translation_error"))
The relative rotation error (geodesic angle [deg], RRE) and relative translation error (RTE) between two 4×4 transforms.
RRE = angle(gt_R^T · est_R) = atan2(|axial(dR − dRᵀ)|/2, (tr−1)/2) in degrees. For a rotation difference by angle θ about any axis, RRE=θ. RTE = ‖gt_t − est_t‖. → (rre_deg, rte). Non-4×4 raises ValueError (fail-closed).
• gt / est: 4×4 homogeneous transforms (top-left 3×3 is the rotation, right column the translation). Non-finite values give ValueError.
• rre_deg is in degrees in [0, 180] (atan2 taking sin from the skew-symmetric part and cos from the trace; arccos has a √ε floor near 1 and answered 0 for anything at or below 1e-6° -- fixed 2026-10-07). rte is the norm of the difference of the translation columns, in coordinate units. The translation column depends on the origin of the rotation, so for the same pose error, the farther the origin is from the object, the larger RTE comes out (compare only transforms that use the same frame convention).
• Orthogonality of the rotation matrix is not checked, so pass a correct transform built from the (R,t) output of gicp etc. with make_transform of the same module. Whereas inlier_ratio / registration_recall measure via residuals on the point cloud, this one measures the difference of the transform parameters themselves.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• reg_eval — py -3.11 examples_3d/reg_eval.py
measurement as input)vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle
registration_metrics)inlier_ratio · rmse_inliers · registration_recall
*Provenance: registration_eval.py — 3D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.