31 Commits

Author SHA1 Message Date
crosstyan 58d95df311 feat(aruco): implement core alignment utilities for ground plane alignment 2026-02-06 10:41:15 +00:00
crosstyan 46dcfec648 feat: enhance recording_multi.py and svo_playback.py with new CLI options and features 2026-02-05 09:55:07 +00:00
crosstyan afc8e9034d chore(sisyphus): clear boulder state after plan completion 2026-02-05 05:12:53 +00:00
crosstyan e033657bff docs(plan): mark depth output DoD items complete via unit tests 2026-02-05 05:11:54 +00:00
crosstyan 553cc457f0 refactor(cli): extract depth postprocess and add tests
- Extract apply_depth_verify_refine_postprocess() from main() for testability
- Add test_depth_cli_postprocess.py using mocks to validate JSON and CSV behavior
- Keeps CLI behavior unchanged
2026-02-05 05:07:48 +00:00
crosstyan 15337d2d15 docs(plan): mark non-regression DoD item complete 2026-02-05 04:58:46 +00:00
crosstyan e8a8156e0b fix(cli): disable depth unless verify/refine enabled
- Ensure default extrinsics calibration runs with depth mode NONE
- Depth is only enabled when --verify-depth or --refine-depth is set
- Document opt-in behavior in notepad
2026-02-05 04:58:17 +00:00
crosstyan 23233c9138 docs(notepad): record missing marker-visible SVO blocker 2026-02-05 04:54:47 +00:00
crosstyan 0d71ef9f64 docs(plan): update depth-extrinsic-verify completion checkboxes 2026-02-05 04:47:33 +00:00
crosstyan ffdedad7e7 docs(draft): capture depth extrinsic verify notes 2026-02-05 04:46:24 +00:00
crosstyan d2674f76d6 chore(sisyphus): update boulder state for depth-extrinsic-verify 2026-02-05 04:46:04 +00:00
crosstyan 6d3c5cc5c1 feat(cli): add depth verify/refine outputs and tests
- Retrieve depth + confidence measures from SVOReader when depth enabled
- Compute depth residual metrics and attach to output JSON
- Optionally write per-corner residual CSV via --report-csv
- Post-process refinement: optimize final pose and report pre/post metrics
- Add unit tests for depth verification and refinement modules
- Add basedpyright dev dependency for diagnostics
2026-02-05 04:44:34 +00:00
crosstyan 882d9348a6 docs(plan): start depth-extrinsic-verify and mark tasks 1-4 complete 2026-02-05 04:19:08 +00:00
crosstyan 9f4abc21c7 feat(cli): integrate depth verification into calibration workflow 2026-02-05 04:09:09 +00:00
crosstyan f6b6db5999 feat(cli): add depth verification and refinement flags
- Add --verify-depth / --no-verify-depth flag
- Add --refine-depth / --no-refine-depth flag
- Add --depth-mode with choices: NEURAL, ULTRA, PERFORMANCE, NONE
- Add --depth-confidence-threshold flag
- Add --report-csv flag for optional CSV output
2026-02-05 03:48:56 +00:00
crosstyan 73782a7c2d feat(aruco): add depth refinement module with bounded optimization
- Add extrinsics_to_params() and params_to_extrinsics() conversions
- Add depth_residual_objective() with regularization
- Add refine_extrinsics_with_depth() using L-BFGS-B
- Add scipy dependency for optimization
- Enforce bounds on rotation (±5°) and translation (±5cm)
2026-02-05 03:47:39 +00:00
crosstyan 78ebe9a32e feat(aruco): add depth verification module with residual computation
- Add DepthVerificationResult dataclass for metrics
- Add project_point_to_pixel() for 3D to 2D projection
- Add compute_depth_residual() with median window sampling
- Add verify_extrinsics_with_depth() for batch verification
- Support confidence-based filtering
2026-02-05 03:45:20 +00:00
crosstyan bd9ea1c795 feat(aruco): extend SVOReader with depth map support
- Add depth_mode parameter to SVOReader.__init__()
- Add enable_depth property
- Add depth_map field to FrameData dataclass
- Add _retrieve_depth(), get_depth_at(), get_depth_window_median() methods
- Update grab_all() and grab_synced() to retrieve depth when enabled
2026-02-05 03:43:21 +00:00
crosstyan fbfed24fc3 docs(plan): mark aruco-svo-calibration plan as complete
All 8 tasks implemented:
- Task 1: pose_math.py - Transform utilities
- Task 2: marker_geometry.py - Parquet loader
- Task 3: detector.py - ArUco detection
- Task 4: svo_sync.py - Multi-SVO sync
- Task 5: pose_averaging.py - Robust averaging
- Task 6: preview.py - Visualization
- Task 7: calibrate_extrinsics.py - Main CLI
- Task 8: Unit tests (all passing)

All Definition of Done criteria met:
- CLI help works
- Marker validation works
- Tests pass (10/10)
- Preview mode functional
2026-02-05 03:37:27 +00:00
crosstyan aa08bb9c9f fix(aruco): add dist parameter and handle single-point case in compute_reprojection_error
- Add optional dist parameter to match test expectations
- Handle single-point case where squeeze() removes necessary dimension
- Fixes failing tests in test_pose_math.py
2026-02-05 03:35:09 +00:00
crosstyan 1025bcbd8a feat(aruco): add pose math utilities for transform operations 2026-02-05 03:19:13 +00:00
crosstyan 9c861105f7 feat: add aruco-svo-calibration plan and utils scripts
- Add comprehensive work plan for ArUco-based multi-camera calibration
- Add recording_multi.py for multi-camera SVO recording
- Add streaming_receiver.py for network streaming
- Add svo_playback.py for synchronized playback
- Add zed_network_utils.py for camera configuration
- Add AGENTS.md with project context
2026-02-05 03:17:05 +00:00
crosstyan d1e58245a6 test: add pytest suite for pose utilities
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-04 11:55:38 +00:00
crosstyan 69a3d1e8bf Add extrinsic calibration CLI tool
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-04 11:44:49 +00:00
crosstyan 43e736faac Add ArUco detection and pose estimation modules
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-04 11:44:37 +00:00
crosstyan 0c4e906dcf Update dependencies for calibration tool
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-04 11:44:27 +00:00
crosstyan 071cf7f572 chore: update .gitignore and remove tracked pycache
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-04 11:44:19 +00:00
crosstyan a0ad369211 python workspace 2026-02-04 15:42:08 +08:00
crosstyan e7c5176229 Add depth sensing sample and OpenGL tests
- Implemented a new sample application in main.cpp to capture and display a live 3D point cloud using the ZED SDK and OpenGL.
- Created test_opengl.cpp to demonstrate basic OpenGL rendering with depth testing using two triangles.
- Added test_points.cpp to visualize a grid of colored points in OpenGL, showcasing point rendering capabilities.
2026-01-20 10:31:35 +08:00
crosstyan 61ad8346af Add .gitignore, update Dockerfile, and enhance README with udev rules and calibration instructions 2026-01-19 16:18:15 +08:00
crosstyan 4e8a4a5579 init 2026-01-19 12:18:03 +08:00