Skip to content

A real-time visual-inertial SLAM framework for challenging imaging conditions (integrated deep learning features)

License

Notifications You must be signed in to change notification settings

luohongk/SuperVINS

Repository files navigation

SuperVINS: A Real-Time Visual-Inertial SLAM Framework for Challenging Imaging Conditions

[PDF] [Code] [Pages]

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

News

Demo

GIF

Video

If you want to watch the full demo video, please click the link

1 Introduction

This project is improved based on VINS-Fusion. VINS-Fusion is a well-known SLAM framework. The original version of VINS-Fusion front-end uses traditional geometric feature points and then performs optical flow tracking. This project uses the feature point method, introduces SuperPoint feature points and feature descriptors, and uses the LightGlue network for feature matching. In the loopback part, the original VINS-Fusion extracts the brief descriptor and uses DBoW2 for loopback detection. This project uses DBoW3 and SuperPoint deep learning descriptors for loopback detection. Created a SLAM system based on deep learning.

Why is it called SuperVINS? We named this project in honor of SuperPoint and VINS-Fusion. In this project, "Super" does not mean "super and excellent", it just means that the SuperPoint descriptor runs through the front-end and loop closure detection. "VINS" means that this project uses the visual-inertial fusion algorithm, Meanwhile,it is also to thank VINS-Fusion for its outstanding contribution.

2 Build Project

2.1 Ubuntu and ROS

Ubuntu 64-bit 20.04. ROS Noetic. ROS Installation

2.2 OpenCV

OpenCV4.2.0. OpenCV4.2.0

if you use Ubuntu 20.04, you can install it by:sudo apt-get install libopencv-dev

2.3 Ceres Solver

Follow Ceres Installation. Ceres 2.1.0.

2.4 ONNX RUNTIME

onnxruntime-linux-x64-gpu-1.16.3

2.5 install libraries to the specified path

If you want to install the third-party library in the specified path, you can follow the steps below

mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX="/some/where/local"  ..
make -j4
make install

3 Create a ROS1 workspace

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
catkin_init_workspace
cd ~/catkin_ws
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bash
source ~/.bashrc

4 How does it work?

4.1 Clone project

  cd ~/catkin_ws/src
  git clone https://github.com/luohongk/SuperVINS.git

4.2 Data download

You can download the specified data set yourself, or you can use download_data.sh to download the data set. The download method is as follows.

cd ~/catkin_ws/src/SuperVINS
chmod +x download_data.sh
./download_data.sh

4.3 Path change

  • file:vins_estimator\CMakeLists.txt , supervins_loop_fusion\CMakeLists.txt , camera_models\CMakeLists.txt
change
set(ONNXRUNTIME_ROOTDIR "/home/lhk/Thirdparty/onnxruntime")
find_package(Ceres REQUIRED PATHS "/home/lhk/Thirdparty/Ceres")
to
set(ONNXRUNTIME_ROOTDIR "your onnxruntime path")
find_package(Ceres REQUIRED PATHS "you Ceres path")

4.4 Compile project

cd ~/catkin_ws
catkin_make

4.5 Run the project

roslaunch supervins supervins_rviz.launch
rosrun supervins supervins_node ~/catkin_ws/src/SuperVINS/config/euroc/euroc_mono_imu_config.yaml
(SuperVINS1.0 currently does not support loop detection)rosrun supervins_loop_fusion supervins_loop_fusion_node ~/catkin_ws/src/SuperVINS/config/euroc/euroc_mono_imu_config.yaml
rosbag play ~/catkin_ws/src/SuperVINS/data/V2_01_easy.bag

4.6 Train vocabulary

Please refer to the official repository of DBoW3 yourself. This project does not provide
https://github.com/rmsalinas/DBow3

Thanks

About

A real-time visual-inertial SLAM framework for challenging imaging conditions (integrated deep learning features)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published