/D-LIOM

Tightly-coupled Direct LiDAR-Inertial Odometry and Mapping Based on Cartographer3D.

Primary LanguageC++

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