OpenVINS is an open-source research platform for visual-inertial navigation developed by the Robot Perception and Navigation Group (RPNG) at the University of Delaware. At its core is a Multi-State Constraint Kalman Filter (MSCKF) that fuses sparse visual feature tracks with inertial measurements from an IMU to estimate 6-DoF pose in real time. The system supports ROS 1, ROS 2, and standalone (ROS-free) builds, and ships with configurations for popular research datasets including EuRoC MAV, TUM-VI, UZH-FPV, and KAIST Urban.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/rpng/open_vins/llms.txt
Use this file to discover all available pages before exploring further.
Installation
Install OpenVINS with ROS 1, ROS 2, or as a standalone library. Covers all dependencies and build options.
Quick Tutorial
Run OpenVINS on the EuRoC MAV dataset in minutes and visualize the estimated trajectory.
Sensor Calibration
Calibrate camera intrinsics, IMU noise, and camera-IMU extrinsics using Kalibr and allan_variance_ros.
Supported Datasets
Download links, groundtruth files, and configuration files for all supported VIO benchmark datasets.
Key capabilities
MSCKF Estimator
Sliding-window filter with modular covariance type system and First-Estimates Jacobian (FEJ) consistency.
Online Calibration
Simultaneously estimates camera-IMU transform, time offset, camera intrinsics, and inertial intrinsics online.
Visual Simulator
SE(3) B-spline simulator generates synthetic IMU and camera measurements for algorithm development.
Evaluation Suite
Compute ATE, RPE, NEES, and RMSE against groundtruth trajectories with included Python scripts.
Get started
Install dependencies and build
Follow the installation guide to set up ROS and build the OpenVINS workspace with
catkin build (ROS 1) or colcon build (ROS 2).Download a dataset
Grab an EuRoC MAV rosbag from the datasets page — the V1_01_easy sequence is a good starting point.
Run the estimator
Launch OpenVINS with the provided EuRoC configuration and play the bag. See the tutorial for the exact commands.
System architecture
OpenVINS is organized into four main packages:| Package | Purpose |
|---|---|
ov_core | Feature tracking (KLT, descriptor), camera models, IMU types, SE(3) math utilities |
ov_init | Static and dynamic visual-inertial filter initialization |
ov_msckf | Core MSCKF estimator, state propagation, SLAM/MSCKF/ZUPT update steps |
ov_eval | Trajectory accuracy evaluation, timing analysis, plotting scripts |
OpenVINS is a research platform released under GPL-3.0. If you use it in published work, please cite the ICRA 2020 paper by Geneva et al.