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 鏡像 – 安裝說明中提供預建構容器。
相關
- 專案
- 專案
- 專案
- 專案
- 專案