1.2 KiB
1.2 KiB
2026-02-10T09:45:00Z Session bootstrap
- Initial notepad created for full-icp-pipeline execution.
- Baseline code references verified in
aruco/icp_registration.pyandrefine_ground_plane.py.
Task 2: Point Extraction Functions
Learnings
- Open3D's
remove_statistical_outlierreturns a tuple(pcd, ind), whereindis the list of indices. We only need the point cloud. estimate_normalswithKDTreeSearchParamHybridis robust for mixed geometry (floor + walls).- Hybrid extraction strategy:
- Extract floor band (spatial filter).
- Extract vertical points (normal-based filter:
abs(normal · floor_normal) < 0.3). - Combine using boolean masks on the original point set to avoid duplicates.
extract_scene_pointsprovides a unified interface for different registration strategies (floor-only vs full-scene).
Decisions
- Kept
extract_near_floor_bandas a standalone function for backward compatibility and as a helper forextract_scene_points. - Used
mode='floor'as default to match existing behavior. - Implemented
preprocess_point_cloudto encapsulate downsampling and SOR, making the pipeline cleaner. - Added
regionfield toICPConfigto control the extraction mode in future tasks.