Home

Awesome

A simple version of system that can relocalize in a built map is developed in this repository. The sysytem is bsed on LIO_SAM. The repository is developed based on the origional version of LIO-SAM in which the GPS is not fused.

Run the package

  1. Make sure the map should be saved in the right folder:
Firstly, you need to run LIO-SAM, and then save the map in the default folder
  1. Run the launch file:
roslaunch lio_sam run_relocalize.launch
  1. Play existing bag files:
rosbag play your-bag.bag

-A video of the demonstration of the method can be found on YouTube

Notes


LIO-SAM

A real-time lidar-inertial odometry package. We strongly recommend the users read this document thoroughly and test the package with the provided dataset first. A video of the demonstration of the method can be found on YouTube.

<p align='center'> <img src="./config/doc/demo.gif" alt="drawing" width="800"/> </p> <p align='center'> <img src="./config/doc/device-hand-2.png" alt="drawing" width="200"/> <img src="./config/doc/device-hand.png" alt="drawing" width="200"/> <img src="./config/doc/device-jackal.png" alt="drawing" width="200"/> <img src="./config/doc/device-boat.png" alt="drawing" width="200"/> </p>

Menu

System architecture

<p align='center'> <img src="./config/doc/system.png" alt="drawing" width="800"/> </p>

We design a system that maintains two graphs and runs up to 10x faster than real-time.

Dependency

Install

Use the following commands to download and compile the package.

cd ~/catkin_ws/src
git clone https://github.com/TixiaoShan/LIO-SAM.git
cd ..
catkin_make

Prepare lidar data

The user needs to prepare the point cloud data in the correct format for cloud deskewing, which is mainly done in "imageProjection.cpp". The two requirements are:

Prepare IMU data

<p align='center'> <img src="./config/doc/imu-transform.png" alt="drawing" width="800"/> </p>

Sample datasets

Run the package

  1. Run the launch file:
roslaunch lio_sam run.launch
  1. Play existing bag files:
rosbag play your-bag.bag -r 3

Other notes

<p align='center'> <img src="./config/doc/loop-closure.gif" alt="drawing" width="400"/> </p> <p align='center'> <img src="./config/doc/gps-demo.gif" alt="drawing" width="400"/> </p> <p align='center'> <img src="./config/doc/kitti-map.png" alt="drawing" width="300"/> <img src="./config/doc/kitti-demo.gif" alt="drawing" width="300"/> </p> <p align='center'> <img src="./config/doc/ouster-device.jpg" alt="drawing" width="300"/> <img src="./config/doc/ouster-demo.gif" alt="drawing" width="300"/> </p>

Paper

Thank you for citing LIO-SAM (IROS-2020) if you use any of this code.

@inproceedings{liosam2020shan,
  title={LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping},
  author={Shan, Tixiao and Englot, Brendan and Meyers, Drew and Wang, Wei and Ratti, Carlo and Rus Daniela},
  journal={arXiv preprint arXiv:2007.00258}
  year={2020}
}

Part of the code is adapted from LeGO-LOAM.

@inproceedings{legoloam2018shan,
  title={LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain},
  author={Shan, Tixiao and Englot, Brendan},
  booktitle={IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  pages={4758-4765},
  year={2018},
  organization={IEEE}
}

TODO

Acknowledgement