giangdao1402 / Ct-LVI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This repository is the implementation of our paper "Ct-LVI: A Framework Towards Continuous-time Laser-Visual-Inertial Odometry and Mapping".

A running demo can be found at https://cslinzhang.github.io/Ct-LVI/Ct-LVI.html


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

Our HD Dataset

  • Some demo sequences can be downloaded via:

    • HD dataset: link, pwd: bsqi
  • Set the file path parameters (TRAJECTORY_BUILDER_3D.lvio_config_filename, POSE_GRAPH.camera_intrinsics_filename, and POSE_GRAPH.dbow_voc_filename) of the config file (tongji.lua)

  • roslaunch ctlvi demo_ctlvi_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 HD dataset.

NTU-VIRAL

  • The dataset is available online at NTU-VIRAL

  • Set the file path parameters (TRAJECTORY_BUILDER_3D.lvio_config_filename, POSE_GRAPH.camera_intrinsics_filename, and POSE_GRAPH.dbow_voc_filename) of the config file (viral.lua)

  • ```roslaunch ctlvi demo_ctlvi_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
    

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 ctlvi ctlvi_offline_tongji bag_filenames:=BAG_FILE_PATH

View mapping result

roslaunch ctlvi ctlvi_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

License

Following the licenses of the above acknowledged repositories.

About


Languages

Language:C++ 95.0%Language:CMake 1.3%Language:Lua 1.2%Language:Python 0.9%Language:Shell 0.6%Language:C 0.5%Language:Starlark 0.4%Language:GLSL 0.0%