title: Implement --render-space in visualize_extrinsics.py

status: closed

issue_type: task

created_by: crosstyan

close_reason: Implemented --render-space with opencv/opengl choices and updated README


title: Fix basedpyright errors in aruco/pose_averaging.py

close_reason: Fixed basedpyright errors


title: Update visualization conventions docs for compare_pose_sets

close_reason: Added documentation for compare_pose_sets.py input formats to docs/visualization-conventions.md


title: Migrate visualize_extrinsics to Plotly with diagnose mode

issue_type: feature

close_reason: Fixed QA issues: Y-up enforcement, README sync, dependencies


title: Create camera pose comparison script

close_reason: Implemented compare_pose_sets.py script and verified with provided command.


title: Add manual ground-plane overlay to visualize_extrinsics.py

close_reason: Implemented ground-plane overlay with CLI options and updated README.


title: Add explicit validation for 4x4 transformation matrices in compare_pose_sets.py

close_reason: Added explicit validation for 4x4 transformation matrices in parse_pose() with context-aware error messages. Verified with existing data.


title: Implement ground_plane.py for floor detection and alignment

close_reason: Implemented ground_plane.py with core primitives and tests


title: Fix depth pooling fallback threshold

close_reason: Updated fallback threshold to strict comparison


title: Robust Optimizer Implementation

close_reason: Implemented robust optimizer with least_squares and soft_l1 loss, updated tests


title: Implement refine_ground_plane.py CLI

close_reason: Implemented refine_ground_plane.py CLI and tests


title: Document marker parquet structure

close_reason: Documented parquet structure in aruco/markers/PARQUET_FORMAT.md


title: Implement ground plane orchestration

close_reason: Implemented per-camera ground plane correction


title: Implement global world-basis conversion for Plotly visualization

close_reason: Implemented global world-basis conversion


title: Integrate multi-frame depth pooling into calibrate_extrinsics.py

close_reason: Implemented multi-frame depth pooling and verified with tests


title: Complete ground_plane.py implementation and testing

close_reason: Completed ground_plane.py implementation and testing with full coverage


title: Add CLI option for ArUco dictionary in calibrate_extrinsics.py

close_reason: Implemented multi-frame depth pooling in calibrate_extrinsics.py


title: Inspect tmp_visualizer.html camera layout

notes: Inspected tmp_visualizer.html. cam_0 is at (0,0,0). cam_1 is at (1,0,0). cam_2 is at (0, 0.5, 1.0). Axes are RGB=XYZ. Layout matches expected synthetic geometry.

close_reason: Inspection complete. Layout matches synthetic input.


title: Update visualization conventions documentation

close_reason: Updated documentation with current policy checklist, metadata details, and known pitfalls


title: Implement geometry-first auto-align heuristic

close_reason: Closed


title: Implement core alignment utilities (Task 1)

close_reason: Implemented compute_face_normal, rotation_align_vectors, and apply_alignment_to_pose in aruco/alignment.py


title: Implement aruco/depth_save.py

close_reason: Implemented depth_save.py with HDF5 persistence and passed tests/type checks


title: Update visualization conventions docs with alignment details

close_reason: Added alignment methodology section to docs


title: Implement depth-mode argument resolution in calibrate_extrinsics.py

close_reason: Implemented depth-mode argument resolution logic and verified with multiple test cases.


title: Add --origin-axes-scale option to visualize_extrinsics.py

close_reason: Implemented --origin-axes-scale option and verified with rendering.


title: Implement Y-down auto-align and add metadata to extrinsics output

close_reason: Implemented Y-down auto-align and added metadata to extrinsics output JSON.


title: Create apply_calibration_to_fusion_config.py script

close_reason: Script created and verified with smoke test and type checking.


title: Integrate --save-depth flag into calibrate_extrinsics.py

close_reason: Implemented --save-depth flag and integration tests


title: Research scipy.optimize.least_squares robust optimization for depth residuals

close_reason: Research completed and recommendations provided.


title: Unit Hardening (P0)

close_reason: Implemented unit hardening in SVOReader: set coordinate_units=METER and guarded manual conversion in _retrieve_depth. Added depth sanity logs.


title: Move parquet documentation to docs/

close_reason: Moved parquet documentation to docs/marker-parquet-format.md


title: Update compare_pose_sets.py with Plotly visualization

close_reason: Added Plotly visualization to compare_pose_sets.py with camera frustums, axes, and ground plane overlay.


title: Search for depth unit conversion and scaling patterns

close_reason: Exhaustive search completed. Identified manual scaling in svo_sync.py and SDK-level scaling in depth_sensing.py. Documented risks in learnings.md.


title: Add --cv-to-opengl option to apply_calibration_to_fusion_config.py

close_reason: Added --cv-to-opengl option with matrix conversion logic and documentation.


title: Produce A/B visualization comparison for CV world basis

close_reason: Generated A/B comparison images and analyzed visual differences. Source files remain unchanged.


title: Update documentation for robust depth refinement

close_reason: Documentation updated with robust refinement details


title: Remove --cv-to-opengl option from apply_calibration_to_fusion_config.py

close_reason: Removed --cv-to-opengl option and associated logic as requested.


title: Add type hints and folder-aware --svo input in calibrate_extrinsics.py

close_reason: Implemented type hints and directory expansion for --svo


title: Add script to visualize generated camera extrinsics

close_reason: Implemented visualize_extrinsics.py utility script and verified with example data.


title: Implement RMSE-based fallback for depth pooling

close_reason: Implemented RMSE-based fallback and verified with tests


title: Add --min-markers CLI and rejection debug logs in calibrate_extrinsics

close_reason: Added --min-markers (default 1), rejection debug logs, and clarified accepted-pose summary label


title: Implement Best-Frame Selection for depth verification

close_reason: Implemented best-frame selection with scoring logic and verified with tests.


title: Refactor visualize_extrinsics.py to use true global basis conversion

close_reason: Refactored visualize_extrinsics.py to use true global basis conversion


title: Refactor ground_plane.py to use dataclasses

close_reason: Refactored ground_plane.py to use FloorPlane and FloorCorrection dataclasses


title: Fix basedpyright errors in tests and exclude ogl_viewer

close_reason: Fixed basedpyright errors


title: Add debug logs for successful ArUco detection

close_reason: Added loguru debug logs for successful ArUco detections in calibrate_extrinsics loop