This repository includes the source code the paper Fast and Robust Iterative Closet Point.
Authors: Juyong Zhang, Yuxin Yao, Bailin Deng.
This code is protected under patent. It can be only used for research purposes. If you are interested in business purposes/for-profit use, please contact Juyong Zhang (the author, email: juyong@ustc.edu.cn).
The code is compiled using CMake and requires Eigen. It has been tested on Ubuntu 16.04 with gcc 5.4.0 and on Windows with Visual Studio 2015. An executable FRICP will be generated.
The program is run with four input parameters:
- an input file storing the source point cloud;
- an input file storing the target point cloud;
- an output path storing the registered source point cloud and transformation;
- registration method:
0: ICP
1: AA-ICP
2: Ours (Fast ICP)
3: Ours (Robust ICP)
4: ICP Point-to-plane
5: Our (Robust ICP point-to-plane)
6: Sparse ICP
7: Sparse ICP point to plane
You can ignore the last parameter, in which case our Robust ICP will be used by default. If you have an initial transformation to help registration, you can set use_init=true and the file_init is the initial file name in main.cpp . Both input and output transformations are 4x4 matrices.
Example:
$ FRICP ./data/target.ply ./data/source.ply ./data/res/ 3
But obj and ply files are supported.
The code is adapted from the Sparse ICP implementation released by the authors.