Skip to content

GringePP/FAST-LIVO2-RTK

 
 

Repository files navigation

FAST-LIVO2-RTK

FAST-LIVO2-RTK extends FAST-LIVO2 with RTK/GNSS-constrained global optimization for long-term LiDAR-visual mapping.

Key highlights include:

  1. Fully Reproducible: Complete open-source software and hardware setup guaranteeing fully reproducible LIVO-RTK experiments.
  2. Robust Initialization Module: Built-in initialization featuring DTW-based time offset estimation and hand-eye extrinsic calibration.
  3. LIV-RTK Fusion Paradigm: A comprehensive example paradigm for fusing LIVO trajectories with RTK observations.

📬 For further assistance or inquiries, please feel free to contact Chunran Zheng at zhengcr@connect.hku.hk.

FAST-LIVO2 and FAST-LIVO2-RTK comparison in a degraded LiDAR-visual scene
Collected in a challenging scene with degraded geometry and texture. a2, b2, c2: FAST-LIVO2 baseline. a1, b1, c1: results after RTK fusion.

1. Prerequisited

1.1 Ubuntu and ROS

Ubuntu 18.04~20.04. See ROS Installation.

1.2 PCL, Eigen, and OpenCV

PCL>=1.8, Eigen>=3.3.4, OpenCV>=4.2.

1.3 Sophus

Install the non-templated/double-only version of Sophus.

git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build && cd build && cmake ..
make
sudo make install

1.4 Vikit

Vikit provides the camera models and math utilities required by this project. Put it in your catkin workspace source folder.

cd ~/catkin_ws/src
git clone https://github.com/xuankuzcr/rpg_vikit.git

1.5 RTK Dependencies

The RTK branch depends on the GNSS ROS message package used by the u-blox/GVINS toolchain. Put it in the same catkin workspace:

cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/gnss_comm.git

GTSAM is used for factor graph-based post-processing optimization.

git clone https://github.com/borglab/gtsam.git
cd gtsam
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..
make -j$(nproc)
sudo make install

GeographicLib is used for converting geographic coordinates to local Cartesian coordinates.

sudo apt-get install libgeographic-dev ros-${ROS_DISTRO}-eigen-conversions

2. Run our examples

Download the provided RTK test rosbag file: RTK-Dataset.

  1. Launch the system and load the configuration file:
roslaunch fast_livo HH.launch
  1. Play the rosbag. Once the sequence is finished, press Enter in the terminal running the launch file to trigger the backend optimizer.
rosbag play HH-LVGO-01.bag

3. Appendix

Time Synchronization:

The diagram illustrates the time synchronization scheme among GNSS, LiDAR, and image data.

Time synchronization diagram

Hardware Platform:

The table below summarizes the main devices used by the platform.

Device Image Model Description
LiDAR Livox Mid-360 LiDAR Model: Livox Mid-360
Camera MV-CB016-10GC-S-W camera Model: MV-CB016-10GC-S-W
GNSS Receiver u-blox ZED-F9P GNSS receiver Model: u-blox ZED-F9P
Computing Unit N100 mini PC Model: N100 mini PC
Synchronization Controller STM32 synchronization controller Model: STM32

4. Acknowledgements

This repository is built on top of FAST-LIVO2 and uses several open-source libraries and packages, including GTSAM, GeographicLib, and gnss_comm.

About

FAST-LIVO2 with RTK/GNSS-constrained Global Optimization.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 94.8%
  • Python 3.1%
  • CMake 1.1%
  • Other 1.0%