chore(icp): relax ICPConfig defaults per Oracle recommendations
This commit is contained in:
@@ -41,3 +41,14 @@
|
||||
- `test_compute_fpfh_features`: Validates feature dimension and count.
|
||||
- `test_global_registration_known_transform`: Confirms RANSAC can recover a known large transform (30 deg rotation).
|
||||
- `test_refine_with_icp_global_init_success`: End-to-end test showing global init can recover from a very bad initial guess (90 deg error) where local ICP would fail.
|
||||
|
||||
## Task 8: Relax ICPConfig defaults
|
||||
- Relaxed defaults for ICPConfig to improve convergence and allow more flexible corrections.
|
||||
- New defaults:
|
||||
- min_fitness: 0.15
|
||||
- min_overlap_area: 0.5
|
||||
- gravity_penalty_weight: 2.0
|
||||
- max_correspondence_distance_factor: 2.5
|
||||
- max_translation_m: 0.3
|
||||
- max_rotation_deg: 10.0
|
||||
- Verified with 36 passing tests and clean basedpyright (0 errors, though many warnings due to missing stubs).
|
||||
|
||||
@@ -25,14 +25,14 @@ class ICPConfig:
|
||||
max_iterations: list[int] = field(default_factory=lambda: [50, 30, 14])
|
||||
method: str = "point_to_plane" # "point_to_plane" or "gicp"
|
||||
band_height: float = 0.3 # Near-floor band height in meters
|
||||
min_fitness: float = 0.3 # Min ICP fitness to accept pair
|
||||
min_overlap_area: float = 1.0 # Min XZ overlap area in m^2
|
||||
min_fitness: float = 0.15 # Min ICP fitness to accept pair
|
||||
min_overlap_area: float = 0.5 # Min XZ overlap area in m^2
|
||||
overlap_margin: float = 0.5 # Inflate bboxes by this margin (m)
|
||||
overlap_mode: str = "xz" # 'xz' or '3d'
|
||||
gravity_penalty_weight: float = 10.0 # Soft constraint on pitch/roll
|
||||
max_correspondence_distance_factor: float = 1.4
|
||||
max_rotation_deg: float = 5.0 # Safety bound on ICP delta
|
||||
max_translation_m: float = 0.1 # Safety bound on ICP delta
|
||||
gravity_penalty_weight: float = 2.0 # Soft constraint on pitch/roll
|
||||
max_correspondence_distance_factor: float = 2.5
|
||||
max_rotation_deg: float = 10.0 # Safety bound on ICP delta
|
||||
max_translation_m: float = 0.3 # Safety bound on ICP delta
|
||||
region: str = "floor" # "floor", "hybrid", or "full"
|
||||
robust_kernel: str = "none" # "none" or "tukey"
|
||||
robust_kernel_k: float = 0.1
|
||||
|
||||
Reference in New Issue
Block a user