OpenVINS

Geneva 2020 · Paper

One-line summary — OpenVINS is an open-source, modular MSCKF-based VIO research platform from the University of Delaware that packages an on-manifold sliding-window Kalman filter with FEJ consistency, online camera intrinsic/extrinsic and time-offset calibration, a full visual-inertial simulator, and evaluation tooling — becoming the de-facto standard MSCKF implementation.

Problem

Despite MSCKF’s influence since 2007, no authoritative, documented open-source implementation existed, which made reproducing results and comparing filter-based against optimization-based VIO genuinely difficult; existing codebases had hard-coded assumptions and lacked evaluation tools. Real deployments additionally require online calibration of the camera-IMU extrinsics, camera intrinsics, and the time offset between camera and IMU clocks, and EKF inconsistency (spurious information gain along unobservable directions) was well understood in theory but rarely addressed in released code.

Method & architecture

xk=[xIxCxMxWCtI],xI=[GIkqˉGpIkGvIkbωba],\mathbf{x}_k = \begin{bmatrix} \mathbf{x}_I^\top & \mathbf{x}_C^\top & \mathbf{x}_M^\top & \mathbf{x}_W^\top & {}^Ct_I \end{bmatrix}^\top, \qquad \mathbf{x}_I = \begin{bmatrix} {}^{I_k}_G\bar{q}^\top & {}^G\mathbf{p}_{I_k}^\top & {}^G\mathbf{v}_{I_k}^\top & \mathbf{b}_{\omega}^\top & \mathbf{b}_{a}^\top \end{bmatrix}^\top,

where xC\mathbf{x}_C stacks the clone poses, xM\mathbf{x}_M the landmarks (global 3D, full inverse depth, or anchored representations), and xW\mathbf{x}_W each camera’s intrinsics ζ\zeta and IMU-camera extrinsics. The inertial state lives on M=H×R12\mathcal{M} = \mathbb{H} \times \mathbb{R}^{12} (15 DoF) with a quaternion boxplus qˉδθ[12δθ1]qˉ\bar q \boxplus \delta\boldsymbol{\theta} \simeq \begin{bmatrix} \tfrac{1}{2}\delta\boldsymbol{\theta} \\ 1 \end{bmatrix} \otimes \bar q.

Results

In 20-run Monte-Carlo simulation (mono camera 10 Hz, IMU 400 Hz with ADIS16448 noise, window size 11, up to 100 tracks/frame and 50 SLAM landmarks, 1 px noise): with online calibration enabled, ATE with bad initial calibration is 0.218°/0.139 m — essentially matching the 0.212°/0.134 m obtained with true calibration, with consistent NEES (~2); with calibration disabled and bad guesses, ATE explodes to 5.432°/508.7 m and NEES diverges. Calibration parameters converge rapidly from poor initial guesses. On the EuRoC MAV Vicon-room sequences (10 runs each, V2_03 excluded), monocular OpenVINS-SLAM averages 1.445°/0.079 m ATE — the best of the compared monocular systems — vs. OKVIS 1.911°/0.154 m, ROVIO (maplab) 2.054°/0.140 m, R-VIO 1.693°/0.149 m, and VINS-Fusion VIO 2.926°/0.104 m; the stereo variants are similarly competitive against Basalt, ICE-BA, and S-MSCKF.

Why it matters for SLAM

OpenVINS turned the filter-based lineage (MSCKF, FEJ/observability-constrained EKF work) into an accessible, documented codebase — the standard open MSCKF referenced across the VIO literature, and the foundation for follow-on research on multi-camera, multi-IMU, and Schmidt-filter SLAM. It made FEJ-based observability enforcement and online spatiotemporal calibration the expected defaults in EKF-based VIO, and its simulator and evaluation toolbox significantly lowered the barrier to entry for VIO research. If you want to learn how a production-quality EKF-based VIO works — or need a lightweight estimator for a compute-constrained robot — this is the reference system to study.