Files
zed-playground/py_workspace/.sisyphus/notepads/ground-plane-refinement/learnings.md
T

43 lines
2.3 KiB
Markdown

## [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.