/faster_lio_sam

FASTER-LIO-SAM: A SLAM system based on iVox and GTSAM.

Primary LanguageC++

faster_lio_sam

INTRODUCTION

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:

  1. ImageProjection.cpp: Undistort scan using IMU measurements and high frequency odometry information.
  2. fusionOptimization.cpp: Fusion of LiDAR and IMU based on iterative error state Kalman filter (IESKF) and iVox to estimate global state (PVQ).
  3. imuPreintegration.cpp: Based on ISAM2, the IMU pre-integration factor and the odometry factor are used to jointly estimate the bias of the IMU.
  4. 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.

drawing drawing


faster-lio

[ours] faster_lio_sam

Demo video

PARKING LOT

OPEN SPACE

DEPEND

  1. ROS (melodic)
  2. glog: sudo apt-get install libgoogle-glog-dev
  3. eigen: sudo apt-get install libeigen3-dev
  4. pcl: sudo apt-get install libpcl-dev
  5. OpenCV
  6. GTSAM
  7. livox_ros_driver

BUILD

  • Download the package from git, and upzip the library in the thirdparty:
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
  • Upgrade the g++ compiler to 9.0 or higher by:
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++
  • Compile with catkin build
catkin build faster_lio_sam

RUN

1. Prepare your rosbag

Using Livox's custom message types

!!! IMU messages must contain attitude information !!!

image-20220609210621982

2. Set calibration parameters

!!! 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 ~~~)

3. Set LiDAR parameters

Livox Mid-70

lidar0:
  N_SCAN: 1
  Horizon_SCAN: 10000
  lidarMinRange: 1.0
  lidarMaxRange: 200.0

4. Launch

roslaunch faster_lio_sam run.launch
rosbag play [YOUR_ROSBAG] --clock

RESULT

image-20220609224033773

image-20220609224241533

THANKS

FAST_LIO

faster-lio

loam_velodyne

LIO-SAM

livox_mapping

LINS---LiDAR-inertial-SLAM