INS-Centric Visual-Inertial Navigation System With LiDAR Enhancement
This repository provides a modified version of IC-GVINS that supports pure VINS. Besides, we also implement the LiDAR-enhanced method in LE-VINS into this repository.
Authors: Hailiang Tang, Xiaoji Niu, and Tisheng Zhang from the Integrated and Intelligent Navigation (i2Nav) Group, Wuhan University.
Related Paper:
Contacts:
We recommend you use Ubuntu 18.04 or Ubuntu 20.04 with the newest compiler (gcc>=8.0 or clang>=6.0).
# gcc-8
sudo apt install gcc-8 g++-8
# Clang
# sudo apt install clang
Follow ROS Melodic installation instructions for Ubuntu 18.04 and ROS Noetic installation instructions for Ubuntu 20.04.
The supported version is OpenCV (>=3.2.0). You can install OpenCV from your system repository or build from the source code. OpenCV 4 is also supported.
Threading Building Blocks (TBB) are used for parallel processing. We recommend you use oneTBB, and install the latest released version. You should install oneTBB before Ceres Solver.
We use Ceres Solver (>=2.1.0) to solve the non-linear least squares problem. Please follow Ceres installation instructions.
The dependencies Eigen (>=3.3.7), glog (>=0.4.0) are also used. You can install them as follows:
sudo apt install libeigen3-dev libgoogle-glog-dev
The yaml-cpp is employed for reading configurations. It can be installed as:
sudo apt install libyaml-cpp-dev
# Make workspace directory
mkdir ~/workspace && cd ~/workspace
mkdir src && cd src
# Clone the repository into src directory
git clone https://github.com/i2Nav-WHU/LE-VINS.git
# To workspace directory
cd ..
# Build the source code using catkin_make
catkin_make -j8 -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8
If you have already downloaded the open-sourced dataset, run the following commands.
# Open a terminal and source the workspace environments
# For bash
source ~/workspace/devel/setup.bash
# For zsh
# source ~/workspace/devel/setup.zsh
# Run LE-VINS node
# 1. Download the dataset.
# 2. Modify the configurations in le_vins.yaml.
# 3. Change the path in the follwoing command.
# 4. Run the follwoing command.
roslaunch le_vins le_vins_read.launch configfile:=path/le_vins.yaml bagfile:=path/rosbag.bag
Please be careful the following notes:
You can run LE-VINS in visual-inertial mode using the open-sourced IC-GVINS dataset.
The R3LIVE dataset is supported. However, you should be careful about the following issues:
The FusionPortableV2 dataset is supported, and the vehicle sequences have been fully tested. The STIM-300 IMU, the left camera, and the Ouster LiDAR are employed.
You can run LE-VINS with your self-collected dataset. Keep in mind the following notes:
We use evo to evaluate the TUM trajectory files. We also provide some useful scripts (evaluate_odometry) for evaluation.
We thanks the following projects for the helps in developing and evaluating the LE-VINS:
The source code is released under GPLv3 license.
We are still working on improving the codes. For any technical issues, please contact Dr. Hailiang Tang ([email protected]) or open an issue at this repository.
For commercial usage, please contact Prof. Xiaoji Niu ([email protected]).