Skip to content

EdgarFx/BoWG_VINS_Loop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BoWG_VINS_Loop

VINS-Fusion with BoWG Loop Closure Detection

This repository presents an enhanced version of VINS-Fusion that incorporates our proposed Bag-of-Word-Groups (BoWG) method for robust loop closure detection. The integration primarily focuses on improving the loop closure capabilities within the loop_fusion package, aiming to achieve reliable and efficient visual place recognition in SLAM applications.

Method

BoWG demo detector on New College dataset

Method

VINS-Fusion with BoWG on EuRoC MH_03_medium sequence

1. Prerequisites

1.1 Ubuntu and ROS

Ubuntu 20.04. ROS Noetic. ROS Installation.

1.2. Ceres Solver

Follow Ceres Installation.

2. Build BoWG_VINS_Loop

Clone the repository and catkin build:

cd ~/catkin_ws/src
git clone https://github.com/EdgarFx/BoWG_VINS_Loop.git
cd ../
catkin build
source ~/catkin_ws/devel/setup.bash

(if you fail in this step, try to find another computer with clean system or reinstall Ubuntu and ROS)

3. EuRoC Example

Download EuRoC MAV Dataset to YOUR_DATASET_FOLDER. Take MH_01 for example, you can run BoWG_VINS_Loop with three sensor types (monocular camera + IMU, stereo cameras + IMU and stereo cameras). Open four terminals, run vins odometry, visual loop closure, rviz and play the bag file respectively. Green path is VIO odometry; red path is odometry under visual loop closure.

3.1 Monocualr camera + IMU

    roslaunch vins vins_rviz.launch
    rosrun vins vins_node ~/catkin_ws/src/BoWG_VINS_Loop/config/euroc/euroc_mono_imu_config.yaml 
    rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/BoWG_VINS_Loop/config/euroc/euroc_mono_imu_config.yaml ~/catkin_ws/src/BoWG_VINS_Loop/config/euroc/euroc_bowg_config.yaml
    rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag

3.2 Stereo cameras + IMU

    roslaunch vins vins_rviz.launch
    rosrun vins vins_node ~/catkin_ws/src/BoWG_VINS_Loop/config/euroc/euroc_stereo_imu_config.yaml 
    rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/BoWG_VINS_Loop/config/euroc/euroc_stereo_imu_config.yaml ~/catkin_ws/src/BoWG_VINS_Loop/config/euroc/euroc_bowg_config.yaml
    rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag

3.3 Stereo cameras

    roslaunch vins vins_rviz.launch
    rosrun vins vins_node ~/catkin_ws/src/BoWG_VINS_Loop/config/euroc/euroc_stereo_config.yaml 
    rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/BoWG_VINS_Loop/config/euroc/euroc_stereo_config.yaml ~/catkin_ws/src/BoWG_VINS_Loop/config/euroc/euroc_bowg_config.yaml
    rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag

For more information about the use of the SLAM system, please refer to VINS-Fusion.

4. Acknowledgements

We use VINS-Fusion as the SLAM framework, ceres solver for non-linear optimization and BoWG for loop detection, a generic camera model and GeographicLib.

5. License

The source code is released under GPLv3 license.

About

Integrates Bag-of-Word-Groups (BoWG) loop closure detection into VINS-Fusion

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages