YJZLuckyBoy / liorf

This repo is modified based on LIO_SAM, which remove the feature extraction module and makes it easier to adapt your sensor.
MIT License
408 stars 81 forks source link

New Feature

------------------- Update Date: 2022-11-20 -------------------

------------------- Update Date: 2022-12-13 -------------------

------------------- Update Date: 2022-12-24 -------------------

------------------- Update Date: 2023-02-11 -------------------

------------------- Update Date: 2024-04-29 -------------------

Blog:LIO-SAM:配置环境、安装测试、适配自己采集数据集

Video:基于LIO-SAM框架SLAM算法开发系列视频

Dependency

Install

  1. Use the following commands to download and compile the package. (The available ROS2 implementation see branch liorf-ros2)
    mkdir -p ~/liorf/src && cd ~/liorf/src
    git clone https://github.com/YJZLuckyBoy/liorf.git
    cd ..
    catkin_make

Run the package

  1. Run the launch file

    source devel/setup.bash
    roslaunch liorf run_kitti.launch
  2. Play existing bag files

    rosbag play kitti_2011_09_30_drive_0018_synced.bag

For fusion gps factor

Mapping

  1. lio-sam dataset

    drawing

  2. M2DGR dataset

    drawing

  3. kitti-05 dataset

    drawing

  4. ubran_hongkong dataset

    drawing

  5. MulRan dataset

    drawing drawing

  6. Multiple Lidar

    drawing drawing

  7. r3live dataset

    drawing drawing drawing

Performance

  1. MulRan

    drawing

  2. Kitti 01

    drawing

    drawing drawing

  3. Kitti 05

    drawing

    drawing drawing

Acknowledgments

Thanks for LIO-SAM, FAST_LIO2, UrbanNavDataset, M2DGR and MulRanDataset.

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.

drawing

drawing drawing drawing drawing

Menu

System architecture

drawing

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

Dependency

This is the original ROS1 implementation of LIO-SAM. For a ROS2 implementation see branch ros2.

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

Using Docker

Build image (based on ROS1 Kinetic):

docker build -t liosam-kinetic-xenial .

Once you have the image, start a container as follows:

docker run --init -it -d \
  -v /etc/localtime:/etc/localtime:ro \
  -v /etc/timezone:/etc/timezone:ro \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e DISPLAY=$DISPLAY \
  liosam-kinetic-xenial \
  bash

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

drawing

drawing

Sample datasets

Run the package

  1. Run the launch file:

    roslaunch lio_sam run.launch
  2. Play existing bag files:

    rosbag play your-bag.bag -r 3

Other notes

drawing drawing

drawing

drawing drawing

drawing drawing

drawing

Service

Issues

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},
  booktitle={IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  pages={5135-5142},
  year={2020},
  organization={IEEE}
}

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

Related Package

Acknowledgement