The EuRoC MAV dataset is the primary validation dataset for VINS-Fusion. Recorded aboard micro aerial vehicles in indoor environments, it provides synchronized stereo images, IMU measurements, and accurate ground-truth poses—making it ideal for benchmarking all three sensor configurations that VINS-Fusion supports: monocular camera with IMU, stereo cameras with IMU, and stereo cameras alone.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/HKUST-Aerial-Robotics/Vins-Fusion/llms.txt
Use this file to discover all available pages before exploring further.
Download the dataset
Download the EuRoC MAV Dataset and extract the bag files to a folder of your choice, referred to below asYOUR_DATASET_FOLDER. The examples on this page use the MH_01_easy sequence.
Run the estimator
Open four terminals. In each one you will run a separate process: RViz for visualization, the VINS odometry node, optionally the loop fusion node, and finally the bag player. All three sensor configurations share the same terminal layout—only the config file and mode differ.- Monocular + IMU
- Stereo + IMU
- Stereo only
This mode uses a single camera combined with IMU measurements. It is the most constrained configuration and requires accurate IMU noise parameters for good performance.
Loop closure
Theloop_fusion_node runs as a separate process alongside the main estimator. It detects previously visited places using a DBoW2 vocabulary and corrects accumulated drift by adding loop-closure constraints to the pose graph.
Loop closure is evaluated separately from the raw odometry. The KITTI Odometry Benchmark results reported in the VINS-Fusion paper were produced without loop closure enabled.
loop_fusion_node is optional: omitting terminal 3 still gives you full VIO odometry. When it is running, both paths are published simultaneously.
RViz visualization
Starting RViz withroslaunch vins vins_rviz.launch loads the pre-configured display layout. Two trajectory paths are shown:
| Color | Source |
|---|---|
| Green | VIO odometry from vins_node |
| Red | Loop-closure-corrected odometry from loop_fusion_node |
loop_fusion_node is running. If you are not running loop closure, only the green path is displayed.
Running with Docker
If you built VINS-Fusion inside Docker, use therun.sh script from the docker/ directory instead of calling rosrun directly:
rosbag play.