relative_pose — 3D pose_graph op

• Datenarten: pose × pose → pose

• Aufruf: import fullseye as fs; fs.ledger.relative_pose(pose_i, pose_j) (die Implementierung direkt: import pose_graph; pose_graph.relative_pose(pose_i, pose_j); aus dem Register: ops3d.get("relative_pose"))

Verwendung

T_i⁻¹ ∘ T_j = die relative Pose i←j. pose_* = [rvec|t] (6,). → (rvec_ij (3,), t_ij (3,)).

Die Pose-Konvention ist world←body (p_world = R p_body + t). Komponiert T_i⁻¹ = (R_iᵀ, -R_iᵀ t_i) und T_j zu R_ij = R_iᵀ R_j und t_ij = R_iᵀ (t_j - t_i) und gibt die Rotation zurückgewandelt als Rotationsvektor (Achse × Winkel [rad], as_rotvec von scipy) zurück. Das ist "die Pose von Frame j, von Frame i aus gesehen", und Messwerte für die an optimize_pose_graph übergebenen Kanten (i, j, rvec_ij, t_ij) sind unverändert konsistent, wenn sie nach dieser Konvention erzeugt werden (wird auch zur Erzeugung synthetischer Kanten aus GT-Posen verwendet).

• pose_i / pose_j: [rvec(3) | t(3)] der Länge 6. Die Form wird nicht geprüft (nur per pose[:3] / pose[3:] geschnitten).

• Einheiten: Translation in Koordinateneinheiten, Rotation in rad. Der Winkel des zurückgegebenen rvec_ij wird auf [0, π] gefaltet.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• pose_graph_slam — py -3.11 examples_3d/pose_graph_slam.py

• sfm_recon — py -3.11 examples_3d/sfm_recon.py

Typkompatible Folge-Operatoren (nehmen pose als Eingabe)

fuse_to_voxel · pose_error · bundle_adjust · mean_reprojection_error · optimize_pose_graph · mean_edge_error · rotation_translation_error

Gleiche Kategorie (pose_graph)

optimize_pose_graph · mean_edge_error


*Provenance: pose_graph.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.