# fast_gicp **Repository Path**: Bryan_Jiang/fast_gicp ## Basic Information - **Project Name**: fast_gicp - **Description**: No description available - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-01-01 - **Last Updated**: 2024-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # fast_gicp This package is a collection of GICP-based fast point cloud registration algorithms. It constains a multi-threaded GICP as well as multi-thread and GPU implementations of our voxelized GICP (VGICP) algorithm. All the implemented algorithms have the PCL registration interface so that they can be used as an inplace replacement for GICP in PCL. - FastGICP: multi-threaded GICP algorithm (**\~40FPS**) - FastGICPSingleThread: GICP algorithm optimized for single-threading (**\~15FPS**) - FastVGICP: multi-threaded and voxelized GICP algorithm (**\~70FPS**) - FastVGICPCuda: CUDA-optimized voxelized GICP algorithm (**\~120FPS**) ![proctime](data/proctime.png) [![Build Status](https://travis-ci.org/SMRT-AIST/fast_gicp.svg?branch=master)](https://travis-ci.org/SMRT-AIST/fast_gicp) on melodic & noetic ## Installation ### Dependencies - PCL - Eigen - OpenMP - CUDA (optional) - [Sophus](https://github.com/strasdat/Sophus) - [nvbio](https://github.com/NVlabs/nvbio) We have tested this package on Ubuntu 18.04/20.04 and CUDA 11.1. ### CUDA To enable the CUDA-powered implementations, set ```BUILD_VGICP_CUDA``` cmake option to ```ON```. ### ROS ```bash cd ~/catkin_ws/src git clone https://github.com/SMRT-AIST/fast_gicp --recursive cd .. && catkin_make -DCMAKE_BUILD_TYPE=Release # enable cuda-based implementations # cd .. && catkin_make -DCMAKE_BUILD_TYPE=Release -DBUILD_VGICP_CUDA=ON ``` ### Non-ROS ```bash git clone https://github.com/SMRT-AIST/fast_gicp --recursive mkdir fast_gicp/build && fast_gicp/build cmake .. -DCMAKE_BUILD_TYPE=Release # enable cuda-based implementations # cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_VGICP_CUDA=ON make -j8 ``` ## Benchmark CPU:Core i9-9900K GPU:GeForce RTX2080Ti ```bash roscd fast_gicp/data rosrun fast_gicp gicp_align 251370668.pcd 251371071.pcd ``` ``` target:17249[pts] source:17518[pts] --- pcl_gicp --- single:127.508[msec] 100times:12549.4[msec] fitness_score:0.204892 --- pcl_ndt --- single:53.5904[msec] 100times:5467.16[msec] fitness_score:0.229616 --- fgicp_st --- single:111.324[msec] 100times:10662.7[msec] 100times_reuse:6794.59[msec] fitness_score:0.204379 --- fgicp_mt --- single:20.1602[msec] 100times:1585[msec] 100times_reuse:1017.74[msec] fitness_score:0.204412 --- vgicp_st --- single:112.001[msec] 100times:7959.9[msec] 100times_reuse:4408.22[msec] fitness_score:0.204067 --- vgicp_mt --- single:18.1106[msec] 100times:1381[msec] 100times_reuse:806.53[msec] fitness_score:0.204067 --- vgicp_cuda (parallel_kdtree) --- single:15.9587[msec] 100times:1451.85[msec] 100times_reuse:695.48[msec] fitness_score:0.204061 --- vgicp_cuda (gpu_bruteforce) --- single:53.9113[msec] 100times:3463.5[msec] 100times_reuse:1703.41[msec] fitness_score:0.204049 --- vgicp_cuda (gpu_rbf_kernel) --- single:5.91508[msec] 100times:590.725[msec] 100times_reuse:226.787[msec] fitness_score:0.20557 ``` See [src/align.cpp](https://github.com/SMRT-AIST/fast_gicp/blob/master/src/align.cpp) for the detailed usage. ## Test on KITTI ```bash # Perform frame-by-frame registration rosrun fast_gicp gicp_kitti /your/kitti/path/sequences/00/velodyne ``` ![kitti00](https://user-images.githubusercontent.com/31344317/86207074-b98ac280-bba8-11ea-9687-e65f03aaf25b.png) ## Related packages - [ndt_omp](https://github.com/koide3/ndt_omp) - [fast_gicp](https://github.com/SMRT-AIST/fast_gicp) ## Papers - Kenji Koide, Masashi Yokozuka, Shuji Oishi, and Atsuhiko Banno, Voxelized GICP for fast and accurate 3D point cloud registration [[link]](https://easychair.org/publications/preprint/ftvV) ## Contact Kenji Koide, k.koide@aist.go.jp Robot Innovation Research Center, National Institute of Advanced Industrial Science and Technology, Japan [\[URL\]](https://unit.aist.go.jp/rirc/en/team/smart_mobility.html)