Fast-lio with loop factor and GPS factor for back-end optimization. lio and back-end implementation are moved to "include/core" for better readability.
GPS information is integrated into fast_lio-sam_loop-gps to build a consistent map in a large-scale environment. We mainly follow the implementation in LIO-SAM-6axis about the system init when we use a 6-axis imu. In addition, we add a two-manual parameter (manual_gps_init+manual_init_yaw) when you are sure about the transformation between the imu and ENU coordinate system. The rebuild ikd-tree modes can still be chosen when the loop closes(correct_fe_en parameter in config file).
The system computing efficiency is better than LIO-SAM-6axis for incrementally maintaining about ikd-tree map in the odometry. So, using correct_fe_en == false is better for most cases.
gcc and g++ 7.5.0 are tested OK.
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.
Use 4.0.0 version in ubuntu 18.04.
Follow the "rviz_satellite" bag in LIO-SAM-6axis for better visualization.
Clone the repository and catkin_make:
cd ~/$A_ROS_DIR$/src
git clone https://github.com/Hero941215/fast_lio-sam_loop-gps
cd fast_lio-sam_loop-gps
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 (vlp-16):
rosbag play XXX.bag
roslaunch fast_lio_sam_loop mapping_velodyne_gps.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, LIO-SAM, LIO-SAM-6axis.
