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
-
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 ..
-
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
-
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.
-
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
- 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
roslaunch ctlvi ctlvi_offline_tongji bag_filenames:=BAG_FILE_PATH
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.
- The authors of cartographer
- The authors of cartographer_ros
- The authors of LVI-SAM
- The authors of VINS-Mono
- The authors of CLINS
Following the licenses of the above acknowledged repositories.