ICP and NDT both estimate a rigid transform between a source point cloud and a target. ICP repeatedly forms point or surface correspondences and reduces their error. NDT represents target points as distributions in spatial cells and optimizes source likelihood against them.
Neither method is a universal global relocalizer. Initial pose, cloud overlap, scene geometry, sampling scale, motion distortion and dynamic objects determine the convergence basin. A converged status or small score does not prove the robot is at the correct place.
Use this guide with the 2D versus 3D LiDAR guide and robot SLAM guide. Treat every registration output as a hypothesis that must pass independent gates.
Define source, target and transform direction
The source is the cloud transformed during optimization; the target is the reference cloud or map representation. Libraries differ in naming and returned transformation convention. Write the expected source-to-target mapping in a synthetic unit test.
Both clouds need consistent units, frames, acquisition timing and relevant spatial extent. A correct optimizer cannot repair a meter-versus-millimeter error or stale transform chain.
Record which points were eligible, not only the final matrix.

ICP iterates correspondences and transform updates
Basic ICP finds a nearest target point for each selected source point, rejects or weights correspondences, estimates a rigid transform and repeats. Point-to-point minimizes Euclidean point distance; point-to-plane uses target normals and can converge efficiently on surfaces when normals are reliable.
The current PCL ICP tutorial demonstrates source, target, convergence, fitness score and final transform. A production system also needs preprocessing, robust rejection and acceptance logic.
| Property | ICP | NDT | Shared dependency |
|---|---|---|---|
| Target model | Points or surfaces | Voxel distributions | Correct frame |
| Association | Explicit nearest match | Cell probability | Sufficient overlap |
| Scale control | Correspondence and normal radius | Voxel resolution | Scene feature size |
| Initial pose | Local basin | Local basin | Odometry or coarse match |
| Output gate | Residual and inliers | Likelihood or score | Independent motion check |
NDT aligns points to voxel distributions
NDT partitions target space into cells and estimates a mean and covariance for occupied cells. Optimization seeks a transform that places source points in probable target distributions. Resolution controls the spatial scale represented by each cell.
The current PCL NDT tutorial explicitly sets voxel resolution, step size, termination criteria and an odometry-derived initial guess. Those example values are not universal settings.
Supply an initial pose within a validated basin
Wheel odometry, IMU integration, a previous scan or a coarse global matcher can initialize local registration. Initial translation and rotation errors interact with overlap and repeated structure. The basin can be asymmetric across directions.
Sweep initial errors on recorded data and plot correct convergence, wrong convergence and rejection. Do not publish only the best initialization or the average final error.
Match preprocessing scale to sensor and scene
Range cropping, self filtering, ground handling and voxel downsampling shape the objective. A leaf size larger than a required feature can erase it; a very small leaf increases computation and can preserve sensor noise without adding geometry.
For ICP, choose correspondence distance and normal neighborhood from point spacing and expected error. For NDT, choose resolution relative to structural scale and density. Keep parameters with the dataset and software version.

Measure overlap before trusting a score
Partial overlap is normal between moving scans, but non-overlapping points can dominate false correspondences or empty cells. Crop to plausible common space and use robust weights or rejection. Estimate overlap or inlier ratio as part of acceptance.
A low residual on a small repeated patch can still correspond to the wrong location. Require enough spatial distribution and independent pose plausibility.
| Failure scene | Ambiguous direction | Symptom | Required gate |
|---|---|---|---|
| Single plane | Motion along plane or rotation about normal | Low residual, drifting pose | Eigenvalue or geometry test |
| Long corridor | Along-corridor translation | Several plausible alignments | Motion and map context |
| Repeated racks | Discrete wrong location | Confident pose jump | Place verification |
| Low overlap | Many rejected points | Unstable or biased transform | Overlap threshold |
| Dynamic crowd | Moving correspondences | Time-varying residual | Dynamic filtering |
Detect degeneracy in weak geometry
A flat wall strongly constrains distance normal to the wall but weakly constrains translation along it. Long corridors and repeated shelves create additional ambiguous directions. The optimizer can report convergence while the Hessian or information matrix is poorly conditioned.
Monitor geometric eigenvalues, covariance proxies or direction-specific observability. Reduce trust or defer updates in weak directions instead of treating a scalar score as isotropic certainty.
Remove dynamic and self points intentionally
People, vehicles, swinging doors, vegetation and the robot itself can violate the static-scene assumption. Ground may help orientation or overwhelm other geometry depending on the task. Filtering decisions change both accuracy and observability.
Test the same route at several dynamic fractions. Preserve raw clouds and masks so a failure can be traced to sensing, filtering or optimization.
Do not equate convergence with correctness
A convergence flag usually means an internal change or iteration criterion was met. Fitness or likelihood describes the chosen objective under accepted data. Neither verifies the global place, transform jump, motion feasibility or independent sensor agreement.
Gate translation and rotation increments, inlier distribution, overlap, residual shape and disagreement with odometry or IMU. Define reject, retry and degraded behavior.
Combine coarse and fine registration when justified
A coarse matcher, larger NDT resolution or feature-based alignment can widen capture range, followed by ICP refinement at a smaller scale. This staged design can be effective but introduces more thresholds and failure combinations.
Validate the transition and propagate uncertainty. Fine ICP cannot rescue a confidently wrong coarse match; it may simply polish the wrong local optimum.
Benchmark compute and correctness across conditions
Vary initial error, overlap, point count, density, motion speed, scene type, dynamic fraction and ground-truth transform. Measure runtime distribution, correct-convergence rate, wrong-convergence rate, reject rate and final error. Hardware and implementation determine speed; algorithm name alone does not.
Record deadline misses and backlog. A fast average with occasional stale registration can destabilize navigation. Use the rosbag2 workflow for reproducible inputs.
Log enough context to reproduce a registration decision
Store source and target identifiers, crop and filters, initial transform, algorithm and parameters, iteration count, termination reason, score, inliers, overlap, output transform and gate decision. Log software and map versions.
Release with a concise checklist.
- Fix source-target direction and time.
- Sweep the full initial-error basin.
- Tune scale from sensor spacing and scene structure.
- Detect overlap loss, dynamics and degeneracy.
- Gate convergence with independent pose evidence.
Frequently asked questions
Is ICP or NDT always faster?
No. Point count, neighborhood work, voxel resolution, implementation, hardware and convergence criteria determine runtime.
Can NDT find global pose without an initial guess?
Not reliably as a general rule. It is normally used as local registration with a bounded initial estimate.
Does a low ICP fitness score prove the pose is correct?
No. Repeated or weak geometry can produce a small local residual at the wrong transform.
Is point-to-plane ICP always better than point-to-point?
No. It needs reliable normals and suitable surfaces; noise, edges and poor normal neighborhoods can hurt.
Can ICP and NDT be combined?
Yes. A coarse stage may initialize a finer stage, but both stages and the transition need independent validation.
Local Convergence and Pose-Acceptance Boundary
Registration scores are algorithm-relative evidence, not global localization truth. Reject outputs outside the validated geometry, overlap and initial-error envelope.