MIT-SPARK/Kimera-VIO

Visual Inertial Odometry with SLAM capabilities and 3D Mesh generation.

Kimera‑VIO – 开源视觉-惯性里程计

是什么 – Kimera‑VIO 是一个 C++ 库,融合双目(或单目)相机图像与 IMU 测量值,实时估计机器人的 6-DoF 姿态。它基于因子图优化(GTSAM),提供完整流水线:前端特征跟踪、IMU 预积分、后端优化、可选的回环检测,以及 3D 网格生成。

为何重要 – 精确的状态估计是自主机器人、无人机、AR/VR 头显以及任何需要在移动中知道自己位置的系统的核心构建模块。Kimera‑VIO 提供无需依赖 GPS 的度量尺度里程计,可在单台笔记本电脑(Ubuntu 20.04)或 ROS 工作空间中运行。


主要功能

功能 详情
双目 + IMU(或单目 + IMU) 使用两台相机实现度量尺度;可降级为单相机。
因子图后端 使用 GTSAM 优化姿态,支持流形上的预积分理论,实现快速、精确的 VIO。
结构正则性(可选) 利用平面/线性约束提升精度(ICRA 2019 论文)。
回环检测与位姿图优化 默认禁用;通过 -lcd 标志启用以闭合回环并运行全局位姿图优化。
3D 网格输出 机器人移动过程中生成环境的密集网格。
ROS 包装器 独立仓库(Kimera‑VIO‑ROS)允许以 ROS 节点形式运行该流水线。
丰富的日志与调试工具 控制台统计、可视化工具和单元测试帮助开发者性能分析。

快速入门(概览)

  1. 安装依赖 – GTSAM ≥ 4.1,OpenCV ≥ 3.4,OpenGV,glog/gflags,DBoW2,Kimera‑RPGO,ANMS。提供 Docker 镜像以实现一键安装。
  2. 构建 – 参考 docs/kimera_vio_install.md(CMake + make)。若使用 ROS,请将 Kimera‑VIO‑ROS 克隆至 catkin 工作空间并一同构建。
  3. 在数据集上运行 – 仓库附带 EuRoC MAV 基准测试脚本。示例:
    ./scripts/stereoVIOEuroc.bash -p ~/Euroc/V1_01_easy   # 基础运行
    ./scripts/stereoVIOEuroc.bash -p ~/Euroc/V1_01_easy -lcd   # 启用回环检测
    
    使用 -r 启用结构正则性。
  4. 检查结果 – 可视化工具显示实时姿态、点云和网格;日志保存在 output_logs/ 目录下。

典型应用场景

  • 研究 – 在 EuRoC 或自定义数据集上基准测试 VIO 算法;实验回环检测或正则性约束。
  • 机器人开发 – 集成至无人机或地面机器人,通过 ROS 包装器实现机载状态估计。
  • 建图 – 移动过程中生成室内环境的度量尺度 3D 网格。

许可证

Kimera‑VIO 采用宽松的 BSD 许可证发布,允许商业和学术使用。


快速参考链接

  • 论文Kimera: an Open‑Source Library for Real‑Time Metric‑Semantic Localization and Mapping (ICRA 2020) – https://arxiv.org/abs/1910.02490
  • 文档 – 安装、参数、调试和开发指南位于 docs/ 文件夹中。
  • 构建状态 – README 顶部的持续集成徽章。
  • Docker 镜像 – 安装说明中提供预构建容器。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目