pose_graph op• 데이터 종류: pose × pose → pose
• 호출: import fullseye as fs; fs.ledger.relative_pose(pose_i, pose_j)(구현을 직접 호출하려면 import pose_graph; pose_graph.relative_pose(pose_i, pose_j), 원장에서 가져오려면 ops3d.get("relative_pose"))
T_i⁻¹ ∘ T_j = i←j 의 상대 자세. pose_* = [rvec|t] (6,). → (rvec_ij (3,), t_ij (3,)).
자세의 규약은 world←body(p_world = R p_body + t). T_i⁻¹ = (R_iᵀ, -R_iᵀ t_i) 와 T_j 를합성해 R_ij = R_iᵀ R_j, t_ij = R_iᵀ (t_j - t_i) 를 구하고, 회전은 회전 벡터(축 × 각 [rad], scipy 의 as_rotvec)로 되돌려 반환한다. 이것은 "프레임 i 에서 본 프레임 j 의 자세"이며, optimize_pose_graph 에 넘기는 에지 (i, j, rvec_ij, t_ij) 의 측정값을 이 규약으로 만들면 그대로정합한다(GT 자세로부터의 합성 에지 생성에도 쓴다).
• pose_i / pose_j: 길이 6 의 [rvec(3) | t(3)]. 형상 검증은 하지 않는다(pose[:3] / pose[3:] 로 슬라이스할 뿐).
• 단위는 병진이 좌표의 단위, 회전이 rad. 반환되는 rvec_ij 의 각도는 [0, π] 로 접힌다.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• pose_graph_slam — py -3.11 examples_3d/pose_graph_slam.py
• sfm_recon — py -3.11 examples_3d/sfm_recon.py
pose 를 입력으로 받는 것)fuse_to_voxel · pose_error · bundle_adjust · mean_reprojection_error · optimize_pose_graph · mean_edge_error · rotation_translation_error
pose_graph)optimize_pose_graph · mean_edge_error
*Provenance: pose_graph.py — 3D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.