Robust Kernels Library¶
TUM Autonomous Motorsport package for robust kernels for scan registration
Robust kernels down-weight correspondences with large residuals so that outliers (dynamic objects,
wrong matches) do not dominate the registration. The kernel is a compile-time property of the config
(TConfig::KERNEL) and returns a scalar weight w ∈ [0, 1] for a residual, given a
kernel_scale. Implementations are based on
small_gicp
and KISS-ICP.
Available Kernels¶
| Kernel | Weight w(r) |
Behavior |
|---|---|---|
NONE |
1 |
No down-weighting; plain least squares. |
HUBER |
1 if ‖r‖² < s, else s / ‖r‖² |
Quadratic for inliers, linear for outliers; mild down-weighting. |
CAUCHY |
1 / (1 + ‖r/s‖²) |
Smooth, heavier down-weighting than Huber; never reaches zero. |
GEMANMCCLURE |
s² / (s + ‖r‖²)² |
Strong outlier rejection, weight → 0 for large residuals; KISS-ICP default. |
WELSCH |
exp(-‖r/s‖²) |
Exponential cut-off; the most aggressive, effectively hard-rejects far residuals. |
Here r is the correspondence residual and s the kernel_scale.