ICP Registration Pipeline Example
SUMMARY
ICP Registration Pipeline Example demonstrates how to align two point clouds using the Vitreous SDK’s Iterative Closest Point (ICP) functions. It covers the full pipeline, including preprocessing, feature estimation, and refinement.
This example is useful in industrial, mobile, and humanoid robotics pipelines for 6D pose estimation, object alignment, and environment mapping. For instance, it can register a scanned part to a CAD model in manufacturing, align consecutive LIDAR frames for mobile robot localization, or merge point clouds from a humanoid robot’s sensors for manipulation tasks.
Use these Skills when you want to accurately align point clouds for perception, pose estimation, or mapping workflows.
The Pipeline
This pipeline focuses on precise alignment of known object models to observed point clouds using a coarse-to-fine registration strategy.
Input Point Cloud
↓
Downsample & Preprocess
↓
Plane Segmentation & Filtering
↓
Subtract Background
↓
Cluster Objects
↓
Coarse Registration (Centroid Alignment)
↓
ICP Refinement
↓
Estimated 6D PosesThe output of this pipeline is a set of rigid transformations that precisely align known models to the observed scene.
INFO
This pipeline is commonly applied after object detection, where detected object clusters are registered against known CAD or template models to estimate precise poses.
The Skills
The pipeline is composed of the following Vitreous Skills and operations, listed in the order they are applied:
filter_point_cloud_using_voxel_downsampling
Reduces point cloud density for faster and more stable processing.segment_point_cloud_using_plane
Detects the dominant planar surface (e.g., table or ground).filter_point_cloud_using_plane_splitting
Splits the point cloud relative to the detected plane.filter_point_cloud_using_plane_proximity
Filters points near the plane to remove surface-adjacent noise.subtract_point_clouds
Removes background or unwanted geometry from the scene.cluster_point_cloud_using_dbscan
Segments individual object candidates from the scene.convert_mesh_to_point_cloud
Converts CAD or template models into point clouds for registration.register_point_clouds_using_cuboid_translation_sampler_icp
Performs coarse alignment between model and scene clusters.register_point_clouds_using_point_to_plane_icp
Refines alignment to estimate accurate 6D poses.
Examples
This pipeline can be applied to various registration scenarios. The following examples illustrate how the same pipeline behaves across different objects, viewpoints, and sensing conditions.
Example 1: Registering Two Viewpoints
Pipeline Parameters
voxel_size=2Plane Segmentation
distance_threshold=1Plane Splitting
keep_positive_side=TruePlane Proximity Filter
distance_threshold=4Subtract Point Clouds
distance_threshold=0.1DBSCAN Clustering
max_distance=20min_points=50Point-to-Point ICP
max_iterations=500max_correspondence_distance=5min_fitness_score=0.01Input: Source and Target Point Clouds
Output: Registered Point Clouds
Example 2: Multi-Frame Registration
Pipeline Parameters
voxel_size=2Plane Segmentation
distance_threshold=1Plane Splitting
keep_positive_side=TruePlane Proximity Filter
distance_threshold=4Subtract Point Clouds
distance_threshold=0.1DBSCAN Clustering
max_distance=20min_points=50Point-to-Point ICP
max_iterations=500max_correspondence_distance=5min_fitness_score=0.01Input: Source and Target Point Clouds
Output: Registered Point Clouds
Example 3: Colored ICP Registration
Pipeline Parameters
voxel_size=2Plane Segmentation
distance_threshold=1Plane Splitting
keep_positive_side=FalsePlane Proximity Filter
distance_threshold=4Subtract Point Clouds
distance_threshold=0.1DBSCAN Clustering
max_distance=20min_points=50Point-to-Point ICP
max_iterations=500max_correspondence_distance=10min_fitness_score=0.01Input: Source and Target Point Clouds
Output: Registered Point Clouds
The Code
INFO
The runnable implementation for this pipeline will be available soon.
Meanwhile, you’re encouraged to explore the individual Skills to better understand each step of the pipeline.
Alternate Pipeline
If your goal is to detect and localize unknown objects rather than align known models, consider using the Object Detection Pipeline Example.
In many applications, the two pipelines are used together:
- Object Detection Pipeline → segment and localize objects
- ICP Registration Pipeline → estimate precise 6D poses for each detected object

