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 的情況下取得高頻率姿態估計。
快速入門
- 前置條件 – ROS 2(humble/iron),NVIDIA Jetson(或支援 CUDA 的相容 x86_64 系統),校準過的立體相機對,可選 IMU。
- 安裝 – 按照 README 中的 Quickstart 連結,使用
vcs或apt取得套件,再以colcon build建置。最新提交(2026‑08‑18)會自動為您的架構從原始碼建置 cuVSLAM 庫。 - 執行示範 – 使用提供的啟動檔(例如
ros2 launch isaac_ros_visual_slam visual_slam.launch.py)啟動,並將您的相機通訊對應至預期的 ROS 通訊。 - 可視化 – 使用
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;未添加任何外部假設。
相關
- 專案
- 專案
- 專案
- 專案
- 專案