A real-time Livox LiDAR+IMU odometry package. Our main work is to redesign an efficient and accurate SLAM scheme based on the excellent ideas of FAST_LIO/faster-lio/LIO-SAM. The specific steps of the system are as follows:
ImageProjection.cpp
: Undistort scan using IMU measurements and high frequency odometry information.fusionOptimization.cpp
: Fusion of LiDAR and IMU based on iterative error state Kalman filter (IESKF) and iVox to estimate global state (PVQ).imuPreintegration.cpp
: Based on ISAM2, the IMU pre-integration factor and the odometry factor are used to jointly estimate the bias of the IMU.Pose Optimazation
: This function is not included in this project, we recommend users to refer to livox_backend. The mentioned project uses a distance-based loop closure detector for global pose graph optimization.
faster-lio |
[ours] faster_lio_sam |
sudo apt-get install libgoogle-glog-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libpcl-dev
cd ~/ros/catkin_ws/src
git clone https://github.com/GDUT-Kyle/faster_lio_sam
cd faster_lio_sam/thirdparty
tar -xvf tbb2018_20170726oss_lin.tgz
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-9
sudo apt install g++-9
cd /usr/bin
sudo rm gcc g++
sudo ln -s gcc-9 gcc
sudo ln -s g++-9 g++
catkin build faster_lio_sam
rosbag
Using Livox's custom message types
!!! [IMU messages must contain attitude information]() !!!
!!! [IMU消息必须包含姿态信息]() !!!
!!! In the current version, the extrinsic transformation matrix between LiDAR and IMU is the identity matrix . (The extrinsic transformation part in the code will be corrected as soon as possible ~~~)
Livox Mid-70
lidar0:
N_SCAN: 1
Horizon_SCAN: 10000
lidarMinRange: 1.0
lidarMaxRange: 200.0
roslaunch faster_lio_sam run.launch
rosbag play [YOUR_ROSBAG] --clock