This repository implements ICP, Point-to-Plane ICP, and G-ICP algorithms.
This repository utilizes the Open3D library for PointCloud processing and Ceres-Solver for Nonlinear Optimization.
-
ICP Algorithm : Least-Squares Rigid Motion Using SVD by Olga Sorkine-Hornung and Michael Rabinovich.
-
ICP(point to plane) Algorithm : Linear Least-Squares Optimization for Point-to-Plane ICP Surface Registration by Kok-Lim Low.
-
GICP Algorithm : Generalized-ICP by Aleksandr V. Segal, Dirk Haehnel and Sebastian Thrun.
- Ubuntu
- Open3D
- Ceres-Solver
git clone https://github.com/LimHaeryong/ICP-Implementation.git
cd ICP-Implementation
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
Demonstrates the basic usage of the ICP algorithm. Additionally, compares the results with Open3D's ICP implementation for performance evaluation.
- ICP example
./icp_example
- Point to Plane ICP example
./icp_plane_example
- Generalized ICP example
./gicp_example
The KITTI dataset has been utilized in the examples provided in this repository.