D-LIOM: Tightly-coupled Direct LiDAR-Inertial Odometry and Mapping
Our paper: we have corrected some typos and errors in Section III-D of the previous version of the paper, the revised version can be accessed here. When amending our paper, I would like to say thanks to Sky Shaw, who has found my errors and warmly provided his suggestions.
Related video: A running demo can be found at https://youtu.be/21J2QLUQbno or at https://www.bilibili.com/video/BV14y4y157du.
Sensor suite supported
- 6-axis IMU + Velodyne/Ouster/Robosense LiDAR (Livox LiDAR can be also supported if the data of which is tansformed to the format of velodyne's, i.e., PointXYZRT.)
Prerequisites
-
Install depends follow the instructions of "cartographer" and "cartographer_ros" respectively.
-
Build OpenCV 3.3.1 (other version may work fine if it includes implementation of SURF keypoint detector) from source with "opencv_contrib"
-
Build GTSAM 4.0.2 with compile options as follows:
cmake -DGTSAM_USE_SYSTEM_EIGEN=ON -DGTSAM_WITH_TBB=OFF -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_COMPILE_OPTIONS_PUBLIC="" ..
-
Build PCL 1.8.0 with compile options as follows:
cmake -DPCL_ENABLE_SSE=OFF ..
Build
-
Clone this repository in your ROS workspace
-
Set CMake variable "OpenCV_DIR" in the root CMakeLists.txt of "cartographer".
-
Return to the root folder of your ROS workspace (which has the same directory as this "README" file) and run:
catkin_make_isolated
Run an online demo
TONGJI Dataset
-
Some demo sequences can be downloaded via:
- TONGJI dataset: link, pwd: hfrl
-
roslaunch dlio demo_dlio_tongji.launch bag_filename:=BAG_FILE_PATH
where BAG_FILE_PATH is the full path of the downloaded bag file in your device -
Some results on the self-collected TONGJI dataset.
NTU-VIRAL
-
The dataset is available online at NTU-VIRAL
-
```roslaunch dlio demo_dlio_viral.launch bag_filename:=BAG_FILE_PATH```
where BAG_FILE_PATH is the full path of the downloaded bag file in your device
-
Results on VIRAL
KAIST-Complex Urban Dataset
-
The dataset is available online at KAIST
-
Play KAIST bag follow the instruction: file_player
-
roslaunch dlio demo_dlio_kaist.launch
-
Results on KAIST "Urban-09" and "Urban-10"
Your own data
- Write a urdf file of your device and save it to folder 'urdf'
- Write a configuration file of your data and save it to 'config'
- Write a launch file of your data and save it to 'launch'
- Run your bag as above examples
Run offline and view mapping result
Launch dlio offline
roslaunch dlio dlio_offline_tongji bag_filenames:=BAG_FILE_PATH
View mapping result
roslaunch dlio dlio_map_viewer_rectified urdf_filename:=tongji pose_graph_pb_filename:=PG_FILENAME range_data_pb_filename:=RD_FILENAME rate:=100
where PG_FILENAME and RD_FILENAME are binary pbstream files saved to disk when launch the offline script above.
Acknowledgements
- The authors of cartographer
- The authors of cartographer_ros
- The authors of LIO-SAM
- The authors of VINS-Mono
- The authors of VIO-Doc