Files
zed-playground/py_workspace/.sisyphus/notepads/full-icp-pipeline/learnings.md
T

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.py and refine_ground_plane.py.

Task 2: Point Extraction Functions

Learnings

  • Open3D's remove_statistical_outlier returns a tuple (pcd, ind), where ind is the list of indices. We only need the point cloud.
  • estimate_normals with KDTreeSearchParamHybrid is robust for mixed geometry (floor + walls).
  • Hybrid extraction strategy:
    1. Extract floor band (spatial filter).
    2. Extract vertical points (normal-based filter: abs(normal · floor_normal) < 0.3).
    3. Combine using boolean masks on the original point set to avoid duplicates.
  • extract_scene_points provides a unified interface for different registration strategies (floor-only vs full-scene).

Decisions

  • Kept extract_near_floor_band as a standalone function for backward compatibility and as a helper for extract_scene_points.
  • Used mode='floor' as default to match existing behavior.
  • Implemented preprocess_point_cloud to encapsulate downsampling and SOR, making the pipeline cleaner.
  • Added region field to ICPConfig to control the extraction mode in future tasks.