ICP is the algorithm that aligns two 3D scans by repeatedly matching nearest points and nudging one cloud onto the other — the core of lidar odometry, 3D mapping, and fitting scans to models.
ICP lines up two 3D scans of the same place. It pairs each point with the nearest point in the other scan, computes the move that best overlaps them, applies it, and repeats until they snap together — like sliding two transparent maps until they match.
A lidar takes a 3D snapshot; a moment later it takes another from a slightly different spot. To know how the robot moved — or to stitch the scans into a map — you must figure out the exact rotation and translation between them. That's what Iterative Closest Point does.
For each point in cloud A, find the closest point in cloud B (the correspondence).
Compute the single rigid transform (rotation + translation) that best maps A's points onto their matches.
Apply it, then repeat — the matches improve, the clouds slide closer, and after a few iterations they lock together.
The ICP loop
Each pass improves the correspondences, so the alignment tightens step by step until the two scans overlap.
Where robots use it
Lidar odometry — align consecutive scans to estimate how far the robot moved, a drift-resistant complement to wheel odometry.
3D mapping and SLAM — register many scans into one consistent model; scan-matching front-ends lean on ICP or its variants.
Object pose fitting — snap a known CAD model onto sensor points to find a part's exact 6-DOF pose for grasping.
The pitfalls
ICP needs a decent initial guess — start too far off and it locks onto the wrong local minimum and aligns things incorrectly. It also struggles with partial overlap (scans that only share part of the scene) and moving objects. Variants harden it: point-to-plane ICP converges faster on flat surfaces, and robust weighting or the Normal Distributions Transform (NDT) handle noise and outliers better. In practice a coarse global alignment feeds a fine ICP polish.
Why it matters
ICP is the workhorse of 3D registration — the quiet step that turns a stream of disconnected scans into coherent motion estimates and maps. Understanding it is essential to lidar-based navigation and 3D perception.