Point Cloud Registration Alignment
Two scans of one room start misaligned. Registration finds the rotation and shift that snap them together for mapping and tracking.
Why Does This Exist?
Lidar frames, room scans, and CAD models live in different coordinates until aligned. Registration exists as the snap step behind mapping, visual SLAM loop repair, and object pose: find correspondences, solve , verify on overlap. Without it scans stay as floating shells.
Local refinement is ICP; learned global matching is Deep Global Registration; image analog is image registration.
Think of It Like This
Aligning two transparencies of stars
Lay two star transparencies offset on a projector and slide one until constellations overlap. A rough corner match gets close; nudging individual stars locks it.
Coarse matches are the corner slide and ICP is the nudge. The analogy stops at outliers: stars rarely lie while scans carry moving people that must be ignored.
How It Actually Works
Coarse stage extracts descriptors such as FPFH or learned FCGF, matches them, and runs RANSAC for a rough and that survives up to percent outliers. Fine stage runs point-to-plane ICP on the overlap region. Success needs overlap above about percent; below that symmetry and repetition dominate. Error reports translation in centimeters plus rotation in degrees on the overlapping points only.
Worked numbers
Two room scans share percent overlap. Coarse RANSAC from matches keeps inliers and lands within m and degrees. ICP refines to m and degrees mean error on overlap. A percent-overlap pair from opposite doors fails with m error despite low residuals on the sliver.
Code
def apply_rigid(pts: list[tuple[float, float]], angle_deg: float, tx: float) -> list[tuple[float, float]]: import math a = math.radians(angle_deg) # 2D stand-in for 3D rigid motion return [(x * math.cos(a) - y * math.sin(a) + tx, x * math.sin(a) + y * math.cos(a)) for x, y in pts]
print(apply_rigid([(1.0, 0.0)], 90.0, 0.5)) # -> [(0.5, 1.0)]Watch Out For
Registering near-duplicate hallways
Symmetric corridors give many equally good snaps offset by one door spacing. The symptom is low residual with wrong room assignment. Verify with a second modality such as image overlap or free-space checks before merging maps.
The Quick Version
- Registration solves the rigid and aligning two scans.
- Coarse descriptor matching plus RANSAC survives heavy outliers.
- Fine ICP polishes on the overlap region only.
- Overlap above percent is the practical minimum.
- Reference rooms land under cm and degree with percent overlap.
- Symmetry needs extra verification beyond low residuals.