ICP vs NDT for Point-Cloud Registration

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.

Point clouds entering ICP correspondence matching and NDT voxel distribution optimization
ICP scores explicit correspondences; NDT scores source points against target-cell distributions. Source: Physical AI Lab.

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.

PropertyICPNDTShared dependency
Target modelPoints or surfacesVoxel distributionsCorrect frame
AssociationExplicit nearest matchCell probabilitySufficient overlap
Scale controlCorrespondence and normal radiusVoxel resolutionScene feature size
Initial poseLocal basinLocal basinOdometry or coarse match
Output gateResidual and inliersLikelihood or scoreIndependent 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.

Five-stage ICP and NDT registration validation
Fitness and convergence flags must be interpreted with overlap and independent pose evidence. Source: Physical AI Lab.

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 sceneAmbiguous directionSymptomRequired gate
Single planeMotion along plane or rotation about normalLow residual, drifting poseEigenvalue or geometry test
Long corridorAlong-corridor translationSeveral plausible alignmentsMotion and map context
Repeated racksDiscrete wrong locationConfident pose jumpPlace verification
Low overlapMany rejected pointsUnstable or biased transformOverlap threshold
Dynamic crowdMoving correspondencesTime-varying residualDynamic 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.