Fast-lio with loop closing function. isam2 is used for pose graph optimization. The loop and odometry are integrated into a unified file. Supports full operation on long sequence datasets, such as urbanNAV dataset (FAST_LIO_SAM will crash in about 10 minutes).
In the config file, if keyframe_pub_en and loop_en are true, the loop-closing function is enabled. Then, when correct_fe_en is "true", it means that the front-end ikd-tree will reconstruct when a loop occurs, and "false" means it will not reconstruct. For "false" case, drawing on the LOAM concept, the transform from the map coordinate system to the odom coordinate system is maintained and used to correct the FAST-LIO pose to the map system, providing initial pose graph. Therefore, Fast-lio2's ikd tree does not require reconstruction, ensuring that the front-end can always run efficiently.
Sparse_raw_point_cloud_en is set to true, which allows for downsampling of keyframes stored globally and controlling the running memory to make the system run longer.
Important Notes:
- A Bug is fixed (2025-04-02): we fixed bug in the reconstruct() function provided by FAST_LIO_LC, FAST_LIO_SAM. Now, both correct_fe_en == true or correct_fe_en == false, the system can run stably. Howerver, when correct_fe_en == true, reconstruct a ikd-tree map usually need more time for odometry, and the odometry pose will jump. So, we recommend correct_fe_en == false.
gcc and g++ 7.5.0 are tested OK. However, gcc and g++ 10.3.0 are not OK for the gtsam we use.
Ubuntu >= 18.04
ROS >= Melodic. ROS Installation
PCL >= 1.8, Follow PCL Installation.
Eigen >= 3.3.3, Follow Eigen Installation.
Follow livox_ros_driver Installation.
Clone the repository and catkin_make:
cd ~/$A_ROS_DIR$/src
git clone https://github.com/Hero941215/fast_lio-sam_loop
cd fast_lio-sam_loop
git submodule update --init
cd ../..
catkin_make
source devel/setup.bash
- Remember to source the livox_ros_driver before build (follow 1.3 livox_ros_driver)
3.1. Download Dataset (UrbanNAV):
rosbag play XXX.bag
roslaunch fast_lio_sam_loop mapping_velodyne.launch
rosservice call /service/save_map
Thanks for LOAM(J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time), FAST-LIO2,FAST_LIO_SAM, FAST_LIO_LC.