2.0 KiB
Notes
-
Open3D
registration_generalized_icpis more robust for noisy depth data but requires normal estimation. -
Multi-scale ICP significantly improves convergence range by starting with large voxels (4x base).
-
Information matrix from
get_information_matrix_from_point_cloudsis essential for weighting edges in the pose graph. -
Initial relative transform from extrinsics is crucial for ICP convergence when cameras are far apart in camera frame.
-
Pose graph optimization should only include the connected component reachable from the reference camera to avoid singular systems.
-
Transforming point clouds to camera frame before pairwise ICP allows using the initial extrinsic-derived relative transform as a meaningful starting guess.
-
Pose graph construction must strictly filter for the connected component reachable from the reference camera to ensure a well-constrained optimization problem.
-
Aligned build_pose_graph signature with plan (returns PoseGraph only).
-
Implemented disconnected camera logging within build_pose_graph.
-
Re-derived optimized_serials in refine_with_icp to maintain node-to-serial mapping consistency.
-
Open3D
PoseGraphEdge(source, target, T)expectsTto beT_{target\_source}. -
When monkeypatching for tests, ensure all internal calls are accounted for, especially when production code has bugs that need to be worked around or highlighted.
-
Integrated ICP refinement into
refine_ground_plane.pyCLI, enabling optional global registration after ground plane alignment. -
Added
_meta.icp_refinedblock to output JSON to track ICP configuration and success metrics.
ICP Registration
- GICP method in requires normals, which are estimated internally if not provided.
- Synthetic tests for ICP should use deterministic seeds for point cloud generation to ensure stability.
ICP Registration
- GICP method in
pairwise_icprequires normals, which are estimated internally if not provided. - Synthetic tests for ICP should use deterministic seeds for point cloud generation to ensure stability.