MIT-SPARK/Kimera-VIO
Visual Inertial Odometry with SLAM capabilities and 3D Mesh generation.
Kimera‑VIO – Open‑source Visual‑Inertial Odometry
What it is – Kimera‑VIO is a C++ library that fuses stereo (or mono) camera images with IMU measurements to estimate a robot’s 6‑DoF pose in real time. It builds on factor‑graph optimization (GTSAM) and provides a full pipeline: front‑end feature tracking, IMU pre‑integration, backend optimization, optional loop‑closure detection, and 3‑D mesh generation.
Why it matters – Accurate state estimation is a core building block for autonomous robots, drones, AR/VR headsets, and any system that needs to know where it is while moving. Kimera‑VIO delivers metric‑scale odometry without relying on GPS and can run on a single laptop (Ubuntu 20.04) or inside a ROS workspace.
Key capabilities
| Feature | Details |
|---|---|
| Stereo + IMU (or Mono + IMU) | Uses two cameras for metric scale; can fall back to a single camera. |
| Factor‑graph backend | Optimizes poses with GTSAM, supporting the on‑manifold pre‑integration theory for fast, accurate VIO. |
| Structural regularities (optional) | Exploits planar/line constraints to improve accuracy (ICRA 2019 paper). |
| Loop‑closure & pose‑graph optimization | Disabled by default; enable with -lcd flag to close loops and run global pose‑graph optimization. |
| 3‑D mesh output | Generates a dense mesh of the environment as the robot moves. |
| ROS wrapper | Separate repository (Kimera‑VIO‑ROS) lets you run the pipeline as ROS nodes. |
| Extensive logging & debugging tools | Console stats, visualizer, and unit tests help developers profile performance. |
Getting started (high‑level)
- Install dependencies – GTSAM ≥ 4.1, OpenCV ≥ 3.4, OpenGV, glog/gflags, DBoW2, Kimera‑RPGO, ANMS. A Docker image is provided for a one‑click setup.
- Build – Follow
docs/kimera_vio_install.md(CMake + make). If you use ROS, cloneKimera‑VIO‑ROSinto a catkin workspace and build together. - Run on a dataset – The repo ships scripts for the EuRoC MAV benchmark. Example:
Use./scripts/stereoVIOEuroc.bash -p ~/Euroc/V1_01_easy # basic run ./scripts/stereoVIOEuroc.bash -p ~/Euroc/V1_01_easy -lcd # with loop closure-rto enable structural regularities. - Inspect results – The visualizer shows live pose, point cloud, and mesh; logs are saved under
output_logs/.
Typical use cases
- Research – Benchmark VIO algorithms on EuRoC or custom datasets; experiment with loop‑closure or regularity constraints.
- Robotics development – Integrate into a drone or ground robot for on‑board state estimation (via the ROS wrapper).
- Mapping – Produce metric‑scale 3‑D meshes of indoor environments while moving.
License
Kimera‑VIO is released under the permissive BSD license, allowing commercial and academic use.
Quick reference links
- Paper – Kimera: an Open‑Source Library for Real‑Time Metric‑Semantic Localization and Mapping (ICRA 2020) – https://arxiv.org/abs/1910.02490
- Documentation – Installation, parameters, debugging, and development guides are in the
docs/folder. - Build status – Continuous‑integration badge at the top of the README.
- Docker image – See the installation notes for a pre‑built container.
Related
- Project
- Project
- Project
- Project
- Project