- 2025.3.7:add supervins1.0.
- 2024.10.6:add base code
- 2024.8.7:add demo.
- 2024.7.31:Publish a preprint(Journal in submission).Preprint: https://arxiv.org/abs/2407.21348
If you want to watch the full demo video, please click the link
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.
Ubuntu 64-bit 20.04. ROS Noetic. ROS Installation
OpenCV4.2.0. OpenCV4.2.0
if you use Ubuntu 20.04, you can install it by:sudo apt-get install libopencv-dev
Follow Ceres Installation. Ceres 2.1.0.
onnxruntime-linux-x64-gpu-1.16.3
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
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
cd ~/catkin_ws/src
git clone https://github.com/luohongk/SuperVINS.git
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
- 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")
cd ~/catkin_ws
catkin_make
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
Please refer to the official repository of DBoW3 yourself. This project does not provide
https://github.com/rmsalinas/DBow3
- VINS-Fusion,SuperPoint,DBoW3,LightGlue-OnnxRunner
- I would like to thank the Wuhan University BRAIN Lab for its strong support for this project. Please continue to pay attention to the latest research of the Wuhan University BRAIN Lab. Welcome to follow Wuhan University BRAIN Lab WeChat Official Account!