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

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案