refactor: things

This commit is contained in:
2026-03-06 17:17:59 +08:00
parent 8c6087683f
commit 33ab1a5d9d
171 changed files with 293 additions and 29894 deletions
@@ -0,0 +1,15 @@
## [2026-02-09] Dependency Update
- Encountered a TOML parse error during the first `edit` attempt due to incorrect escaping of quotes and newlines in the `newString`. Fixed by providing the literal string in a subsequent `edit` call.
## [2026-02-09] Final Integration
- No regressions found in the full test suite.
- basedpyright warnings are mostly related to missing stubs for third-party libraries (h5py, open3d, plotly) and deprecated type hints in older Python patterns, which are acceptable given the project's current state and consistency with existing code.
## Working Tree Cleanup
- Restored deleted legacy plan files in .sisyphus/plans/
- Restored unintended modifications to apply_calibration_to_fusion_config.py
- Restored unintended modifications to ../zed_settings/inside_shared_manual.json
- Verified that implementation files (aruco/ground_plane.py, calibrate_extrinsics.py, refine_ground_plane.py, tests/test_ground_plane.py) remain intact.
## Issues Encountered
- Initial implementation placed `ground_refine` directly under camera nodes, which could break schema-strict consumers like `calibrate_extrinsics.py` output expectations.
@@ -0,0 +1,42 @@
## [2026-02-09] Dependency Update
- Added `open3d` and `h5py` to `pyproject.toml`.
- Successfully synced with `uv sync`.
- Verified imports:
- open3d: 0.19.0
- h5py: 3.15.1
## [2026-02-09] Ground Plane Detection Implementation
- Implemented `unproject_depth_to_points` using vectorized NumPy operations for efficiency.
- Implemented `detect_floor_plane` using Open3D's `segment_plane` (RANSAC) with deterministic seeding.
- Implemented `compute_consensus_plane` with weighted averaging and normal alignment to handle flipped normals.
- Implemented `compute_floor_correction` using `rotation_align_vectors` for minimal rotation (preserving yaw) and vertical translation.
- Added comprehensive tests covering edge cases (outliers, bounds, identity transforms).
- Refactored to use `FloorPlane` and `FloorCorrection` dataclasses for structured outputs.
- Fixed test logic for `compute_consensus_plane` to correctly account for normal normalization effects on `d`.
- Verified type safety with `basedpyright` (0 errors, only expected warnings).
## [2026-02-09] Ground Plane Diagnostic Visualization
- Implemented `create_ground_diagnostic_plot` using Plotly `go.Figure`.
- Visualization includes:
- World origin axes (RGB triad).
- Consensus plane surface (semi-transparent gray).
- Per-camera floor points (scatter3d).
- Camera positions before (red) and after (green) refinement.
- Added `save_diagnostic_plot` for HTML export.
- Verified with smoke tests in `tests/test_ground_plane.py`.
## [2026-02-09] Final Integration
- Full test suite (90 tests) passed successfully.
- basedpyright verified on new modules (depth_save.py, ground_plane.py, refine_ground_plane.py).
- README updated with Ground Plane Refinement workflow.
## [2026-02-09] Documentation Hardening
- Updated `docs/calibrate-extrinsics-workflow.md` with detailed implementation notes.
- Documented the HDF5 depth data schema for reproducibility.
- Clarified the "Consensus-Relative Correction" strategy vs. absolute alignment.
- Added explicit tuning guidance for `stride`, `ransac-dist-thresh`, and `max-rotation-deg` based on implementation constraints.
## Schema Compatibility Fix
- Moved per-camera ground refinement diagnostics to `_meta.ground_refined.per_camera` to maintain compatibility with consumers expecting only `pose` in camera nodes.
- Preserved `<camera_sn>.pose` contract.