NVIDIA-ISAAC-ROS/isaac_ros_visual_slam

Visual SLAM/odometry package based on NVIDIA-accelerated cuVSLAM

NVIDIA‑ISAAC‑ROS / isaac_ros_visual_slam

是什麼 – 一個在 Jetson 或相容 NVIDIA 硬體上執行 NVIDIA 加速視覺慣性 SLAM(VSLAM)的 ROS 2 套件。它接收立體相機影像(以及可選的 IMU)輸入,並輸出高頻率的位移估計與可由機器人導航系統使用的地圖。

為何重要 – 透過將繁重的影像處理與關鍵點比對工作卸載至 GPU,系統可在 >250 fps 下追蹤數十萬個特徵點,且平移誤差低於 1%,遠快於傳統純 CPU 的 SLAM(例如 ORB‑SLAM2)。這使得在功耗與延遲至關重要的嵌入式平台實現即時定位成為可能。

核心元件

  • isaac_ros_visual_slam – 主要節點,執行 cuVSLAM 庫,發布 /odom/map 通訊,並整合迴圈封閉功能。
  • isaac_ros_visual_slam_interfaces – 節點所使用的 ROS 2 訊息定義。
  • GPU 加速的 cuVSLAM 庫(針對 x86_64 與 aarch64 從原始碼建置)。

主要功能

  • 立體視覺慣性里程計 – 利用雙相機的視差與 IMU 資料估計 6-DoF 運動。
  • GPU 加速特徵檢測與比對 – 支援比純 CPU 方法即時處理更多關鍵點。
  • 統計最佳化之迴圈封閉 – 當機器人再次造訪先前地圖區域時減少漂移。
  • 原生 ROS 2 支援 – 可直接與 Nav2、TF2 及其他 ROS 2 工具整合。
  • 經過基準測試的效能 – 在 Jetson AGX Xavier 上每幀耗時 0.007 秒,KITTI 里程計基準測試中平移誤差為 0.94 %(優於 ORB‑SLAM2)。

典型應用場景

  • GPS 無法使用的室內移動機器人。
  • 需要輕量級、純視覺里程計的無人機。
  • 融合多個 VSLAM 流以實現冗餘的多相機系統。
  • 已在 NVIDIA Jetson 上運行的任何 ROS 2 平台,希望在無需 LiDAR 的情況下取得高頻率姿態估計。

快速入門

  1. 前置條件 – ROS 2(humble/iron),NVIDIA Jetson(或支援 CUDA 的相容 x86_64 系統),校準過的立體相機對,可選 IMU。
  2. 安裝 – 按照 README 中的 Quickstart 連結,使用 vcsapt 取得套件,再以 colcon build 建置。最新提交(2026‑08‑18)會自動為您的架構從原始碼建置 cuVSLAM 庫。
  3. 執行示範 – 使用提供的啟動檔(例如 ros2 launch isaac_ros_visual_slam visual_slam.launch.py)啟動,並將您的相機通訊對應至預期的 ROS 通訊。
  4. 可視化 – 使用 rviz2 查看位移、地圖與迴圈封閉標記。README 中包含即時輸出的 GIF。

限制 / 注意事項

  • 性能基準僅在 Nova Orin 相容系統上保證;其他硬體可能幀率較低。
  • VSLAM 依賴足夠的視覺紋理;特徵稀少的場景(如空白牆壁)會退化為僅 IMU 的 VIO,可能導致精度下降。
  • 需要 CUDA 相容 GPU;無法在純 CPU 機器上執行。
  • 迴圈封閉為統計方法,若存在極端長期漂移,可能需要額外的地圖管理。

更多資源

  • 按需網路研討會:Pinpoint, 250 fps, ROS 2 Localization with VSLAM on Jetson
  • README 中連結的詳細文件與 API 參考。
  • 與 ORB‑SLAM2 的對比及 KITTI 基準測試結果。

以上所有資訊均直接取自倉儲的 README;未添加任何外部假設。

相關

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