Visual-inertial odometry accumulates drift over time. VINS-Fusion includes an optional loop closure module (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.
loop_fusion) that detects revisited places and corrects this drift through pose graph optimization.
How it works
Keyframe selection
The main estimator publishes keyframes to the loop_fusion node. Each keyframe includes the image, pose, and tracked feature points.
Place recognition
DBoW2 compares BRIEF descriptors from the current keyframe against a vocabulary database built from previous keyframes to find loop candidates.
Geometric verification
Candidate matches are verified geometrically using feature correspondences to reject false positives.
Running loop closure
The loop fusion node is optional and runs as a separate process:Persistent pose graph
The pose graph can be saved and reloaded across sessions:load_previous_pose_graph: 1 allows the estimator to recognize places visited in previous runs, enabling long-term localization.
Loop closure does not affect the real-time VIO estimate — it refines the global trajectory asynchronously. The local estimator window remains unaffected.