/dynamic_lio

A LiDAR-inertial odometry for dynamic environments.

Primary LanguageC++

Dynamic_LIO

Dynamic-LIO is a LiDAR-inertial odometry for dynamic driving scenarios. The front-end odometry is designed based on the framework of SR-LIO, and the back-end loop closure utilizes SC-A-LOAM.

Related Work

SR-LIO: LiDAR-Inertial Odometry with Sweep Reconstruction

Authors: Zikang Yuan, Fengtian Lang, Tianle Xu and Xin Yang

Installation

1. Requirements

GCC >= 7.5.0

Cmake >= 3.16.0

Eigen3 >= 3.3.4

OpenCV >= 3.3

PCL == 1.8 for Ubuntu 18.04, and == 1.10 for Ubuntu 20.04

GTSAM == 4.0.3 for Ubuntu 20.04

ROS

Have Tested On:
OS GCC Cmake Eigen3 OpenCV PCL GTSAM
Ubuntu 20.04 9.4.0 3.16.3 3.3.7 4.2.0 1.10.0 4.0.3

2. Create ROS workspace

mkdir -p ~/Dynamic-LIO/src
cd Dynamic-LIO/src

3. Clone the directory and build

git clone https://github.com/ZikangYuan/dynamic_lio.git
cd ..
catkin_make

Run on Public Datasets

Noted:

A. The warning message "Failed to find match for field 'time'." doesn't matter. It can be ignored.

B. Please create a folder named "output" in "sr_lio" folder before running. When Dynamic-LIO is running, the estimated pose of odometry is recorded in real time in the pose.txt located in the output folder, and the estimated pose with loop closure is recorded in the final_pose.txt located in the output folder after finishing a sequence.

1. Run on ULHK-CA

Please go to the workspace of Dynamic-LIO and open two terminals, type the following command in terminal 1:

cd Dynamic-LIO
source devel/setup.bash
roslaunch sr_lio lio_ulhk_CA.launch

and type the following command in terminal 2:

cd Dynamic-LIO
source devel/setup.bash
roslaunch aloam_velodyne loop_closure.launch

Then open the terminal in the path of the bag file, and type:

rosbag play SEQUENCE_NAME.bag --clock -d 1.0

2. Run on Urban-Nav

Please go to the workspace of Dynamic-LIO and open two terminals, type the following command in terminal 1:

cd Dynamic-LIO
source devel/setup.bash
roslaunch sr_lio lio_urban_nav.launch

and type the following command in terminal 2:

cd Dynamic-LIO
source devel/setup.bash
roslaunch aloam_velodyne loop_closure.launch

Then open the terminal in the path of the bag file, and type:

rosbag play SEQUENCE_NAME.bag --clock -d 1.0

Citation

If you use our work in your research project, please consider citing:

@article{yuan2022sr,
  title={SR-LIO: LiDAR-Inertial Odometry with Sweep Reconstruction},
  author={Yuan, Zikang and Lang, Fengtian and Yang, Xin},
  journal={arXiv preprint arXiv:2210.10424},
  year={2022}
}

Acknowledgments

Thanks for CT-ICP, Fast-LIO, SC-A-LOAM and Open-VINs.