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 节点形式运行该流水线。 |
| 丰富的日志与调试工具 | 控制台统计、可视化工具和单元测试帮助开发者性能分析。 |
快速入门(概览)
- 安装依赖 – GTSAM ≥ 4.1,OpenCV ≥ 3.4,OpenGV,glog/gflags,DBoW2,Kimera‑RPGO,ANMS。提供 Docker 镜像以实现一键安装。
- 构建 – 参考
docs/kimera_vio_install.md(CMake + make)。若使用 ROS,请将Kimera‑VIO‑ROS克隆至 catkin 工作空间并一同构建。 - 在数据集上运行 – 仓库附带 EuRoC MAV 基准测试脚本。示例:
使用./scripts/stereoVIOEuroc.bash -p ~/Euroc/V1_01_easy # 基础运行 ./scripts/stereoVIOEuroc.bash -p ~/Euroc/V1_01_easy -lcd # 启用回环检测-r启用结构正则性。 - 检查结果 – 可视化工具显示实时姿态、点云和网格;日志保存在
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 镜像 – 安装说明中提供预构建容器。
相关
- 项目
- 项目
- 项目
- 项目
- 项目