Level 06 / 11
VIO / VINS
Fusing cameras with IMUs — filtering vs optimization
Key Concepts
- Tightly-coupled vs Loosely-coupled — Joint vs separate optimization of visual and inertial measurements
- Filter-based vs Optimization-based — EKF approaches vs nonlinear optimization (BA)
- IMU preintegration — Integrating IMU measurements between keyframes (Lupton 2012; on-manifold formulation: Forster 2015)
- IMU noise model — Bias, random walk, Allan variance
- Observability — 4 unobservable DoF in VIO (3-DoF global translation + yaw); scale becomes additionally unobservable under constant-acceleration motion
- Deployed VIO — Commercial XR stacks (Meta Quest, ARKit/ARCore) are the highest-volume deployed VIO systems — worth studying as case studies
Foundations
Filter-based
Optimization-based
| System |
Author/Year |
Key Concepts |
| OKVIS |
Leutenegger 2015 |
Keyframe-based, tightly-coupled, sliding window optimization |
| VINS-Mono |
Qin 2018 |
Tightly-coupled, relocalization, loop closure, pose graph optimization |
| VI-DSO |
von Stumberg 2018 |
Direct sparse VIO, dynamic marginalization, photometric error |
| VINS-Fusion |
Qin 2019 |
Stereo + GPS fusion extension |
| maplab |
Schneider 2018 |
Multi-session visual-inertial mapping framework |
| Kimera-VIO |
Rosinol 2020 |
Fast VIO frontend for Kimera pipeline, structureless vision factors |
| Basalt |
Usenko 2020 |
Non-linear factor recovery (NFR) of marginalization priors, visual-inertial odometry + mapping |
| ORB-SLAM3 |
Campos 2020 |
VIO mode, multi-map, IMU initialization |
| DM-VIO |
von Stumberg 2022 |
Direct (DSO-based) monocular VIO, delayed marginalization, pose-graph BA for IMU initialization |
| OKVIS2 |
Leutenegger 2022 |
Multi-session, improved marginalization |
| AirVO |
Xu 2023 |
Point-line VIO, illumination-robust |
| OKVIS2-X |
Boche & Leutenegger 2025 |
Multi-sensor SLAM (Visual+Inertial+Depth+LiDAR+GNSS), dense volumetric occupancy maps, submapping for large-scale (9km+), EuRoC/Hilti22 SOTA |