C++ libraries for multi primitive-to-primitive ICP algorithms and flexible point cloud processing pipelines.
mp2p_icp is a C++ library implementing multi primitive-to-primitive Iterative Closest Point (ICP) algorithms for 3D point cloud registration. It solves the problem of accurately aligning point clouds from sensors like LIDAR by matching various geometric primitives (points, planes, lines) rather than just points, leading to more robust alignment in challenging environments. It is a core component used within the MOLA SLAM framework for lidar odometry.
Robotics engineers and researchers working on SLAM, lidar odometry, and 3D mapping who need robust, flexible point cloud registration algorithms. Developers integrating advanced ICP capabilities into C++-based perception or mapping pipelines, particularly within ROS/ROS 2 ecosystems.
Developers choose mp2p_icp for its advanced multi-primitive matching capabilities, which provide superior robustness and accuracy compared to standard point-to-point ICP. Its comprehensive suite of processing filters, solvers, and practical command-line tools offers a complete, production-ready solution for point cloud alignment and manipulation.
Multi primitive-to-primitive (MP2P) ICP algorithms in C++
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports matching points, planes, lines, and covariances, enabling robust registration in complex environments as shown in the pairing strategies documentation.
Includes various matchers (e.g., point-to-plane, adaptive) and solvers (e.g., Horn, OLAE), allowing customization for different registration scenarios.
Provides command-line applications like kitti2mm and mm-viewer for data conversion, visualization, and ICP execution without coding, enhancing practicality.
Offers filters for decimation, statistical outlier removal, and feature extraction (e.g., FilterEdgesPlanes), essential for point cloud preprocessing.
Heavily integrated with ROS build systems and MOLA framework, making setup and use challenging for projects outside this ecosystem.
Requires expertise in ICP algorithms and 3D geometry, with complex configuration options that may overwhelm developers new to point cloud processing.
Multi-primitive matching and comprehensive features can be computationally intensive, trading off speed for accuracy compared to simpler alternatives.