VINS-Mono

Qin 2018 · Paper

One-line summary — VINS-Mono is a complete tightly-coupled monocular visual-inertial estimator — robust initialization, sliding-window optimization with two-way marginalization, tightly-coupled relocalization, and 4-DoF pose-graph loop closure — that became one of the most widely used VIO systems in robotics.

Problem

A monocular camera with a low-cost IMU forms the minimum sensor suite for metric six-DoF state estimation — but the lack of any direct distance measurement poses significant challenges in IMU processing, estimator initialization, extrinsic calibration, and nonlinear optimization. Initialization is usually the most fragile step for monocular VINS, and eliminating long-term drift requires loop detection, relocalization, and global optimization in one system. VINS-Mono’s goal was a single robust, versatile, complete package covering all of it, with failure recovery included.

Method & architecture

The pipeline: KLT optical flow over Shi-Tomasi corners (RANSAC fundamental-matrix outlier rejection) → visual-inertial alignment initialization → sliding-window VIO (Ceres) → marginalization → DBoW2/BRIEF loop detection → tightly-coupled relocalization → 4-DoF pose graph.

Results

On EuRoC (MH_03_median, MH_05_difficult) VINS-Mono’s pure VIO matches OKVIS mono/stereo in accuracy, and with loop closure it has the smallest translation error. In a 2.5 km mixed indoor/outdoor walk, final drift was [−5.47, 2.76, −0.29] m (0.88% of trajectory) without loop closure vs. OKVIS’s 2.36%, and [−0.032, 0.09, −0.07] m with loop correction. A 5.62 km, 1 h 34 min handheld circuit of the HKUST campus (25 Hz camera / 200 Hz IMU) ran in real time on an i7-4790 (feature tracking 15+5 ms at 25 Hz, window optimization 50 ms at 10 Hz, loop detection 100 ms, pose-graph optimization 130 ms) and stayed nearly drift-free against the map. Onboard closed-loop MAV flight tracking a figure-eight (61.97 m, loop closure disabled) gave [0.08, 0.09, 0.13] m final drift — 0.29%. The system was also ported to iOS (VINS-Mobile) and compared against Google Tango on a 264 m walk, with open-source releases for both PC and phone.

Why it matters for SLAM

VINS-Mono is arguably the reference monocular VIO system: it packaged the sliding-window + marginalization architecture pioneered by OKVIS with a practical linear initialization and a full relocalization/loop-closure back-end, all in one open-source release that runs on drones and phones. Its design choices — preintegration, Huber-robust unit-sphere reprojection factors, two-way marginalization, 4-DoF pose graph — became the standard pattern that later systems (VINS-Fusion, ORB-SLAM3’s inertial mode, many commercial trackers) follow or refine.