9c861105f7
- 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
15 lines
1000 B
Markdown
15 lines
1000 B
Markdown
|
|
## ArUco Detector Implementation (2026-02-04)
|
|
- Implemented `aruco/detector.py` using `cv2.aruco.ArucoDetector` (modern API).
|
|
- `detect_markers` returns corners as `(N, 4, 2)` float32 and ids as `(N,)` int32.
|
|
- `build_camera_matrix_from_zed` extracts intrinsics from `sl.Camera` calibration parameters.
|
|
- `estimate_pose_from_detections` uses `cv2.solvePnP` with `SOLVEPNP_SQPNP` flag for robust pose estimation from multiple markers.
|
|
- Reprojection error is calculated using the utility from `aruco/pose_math.py`.
|
|
|
|
## Extrinsics Calibration Tool (2026-02-04)
|
|
- Created `calibrate_extrinsics.py` CLI tool for multi-camera extrinsic calibration.
|
|
- Uses `SVOReader` for synchronized playback and `PoseAccumulator` for robust pose averaging.
|
|
- Computes `T_world_from_cam` by inverting the `solvePnP` result (`T_cam_from_world`).
|
|
- Implements RANSAC-based filtering of poses to handle outliers and noise.
|
|
- Outputs deterministic JSON mapping serial numbers to 4x4 transformation matrices and statistics.
|