跳至主要内容

ISAAC ROS(Advantech Isaac ROS Kit)

本文件說明我們提供的 isaac_ros_base / Isaac ROS 容器化開發與展示框架,協助用戶在研華平台上快速執行 NVIDIA Isaac ROS 官方範例,並延伸同一套 workflow 來打造自有應用。

NOTE

首次執行範例時,系統可能會自動下載/安裝所需的模型、資料集與相依套件,所需時間視網路與硬體而定,屬正常現象。

TIP

預設環境版本

  • Isaac ROS:JetPack 6.1
  • ROS 2:Humble

1. Isaac ROS 簡介

NVIDIA Isaac ROS 是一組建構在 ROS 2 之上的 GPU 加速套件,提供感知、定位、建圖與視覺推論等常見機器人流程所需的最佳化演算法與節點(例如 Visual SLAM、Nvblox 3D 重建、物件偵測、語意分割)。

在 Jetson/GPU 平台上,Isaac ROS 通常以 Docker 容器 形式提供一致的執行環境,降低相依版本落差,讓開發者專注於整合與應用。


2. isaac_ros_base 的優勢

isaac_ros_base 封裝成 Docker 容器,提供開箱即用的 Isaac ROS 開發環境,具備以下好處:

  • 快速導入:免去繁雜的環境建置,直接執行 Isaac ROS 範例。
  • 可重現的開發流程:一致的容器化環境,減少「只在我機器可用」的狀況。
  • 降低相依處理成本:常見依賴與執行前置作業已預先整合。
  • 可擴充的基礎:以此框架為基底,延伸自有的 ROS 2 pipeline 與應用。
  • 容易除錯與維運:變更侷限在容器內,更新與回復更單純。

參考資料:https://nvidia-isaac-ros.github.io/


3. 安裝位置與結構

NOTE

請確認目標系統符合:研華平台、剩餘磁碟空間 ≥ 30 GB、Ubuntu 英文介面,且可連網。

按照安裝程式說明選擇並安裝「Isaac ROS Development Environment」功能後,套件會放在:

  • 根目錄:/usr/local/Advantech/ros/container/ros-demokit/isaac_ros_kit
  • 主要內容:
    • launch_isaac.sh:啟動入口
    • apps/basic_examples:Isaac 官方基礎範例
    • apps/advanced_examples:進階整合(如 nvblox_keep_map)
    • apps/develop:開發者容器與樣板說明

4. 使用方法:單一命令範例

流程概念

launch_isaac.sh
├─ install_app.sh(首次/必要時下載資源)
└─ run_app.sh(每次執行的 ros2 launch ...)

指令用法:

cd /usr/local/Advantech/ros/container/ros-demokit/isaac_ros_kit
./launch_isaac.sh <app_folder> [參數]

<app_folder>apps/ 底下的路徑,例如:

  • basic_examples/isaac_ros_nvblox
  • basic_examples/isaac_ros_visual_slam
  • advanced_examples/nvblox_keep_map

快速體驗:

./launch_isaac.sh basic_examples/isaac_ros_nvblox

NOTE

預設 ROS_DOMAIN_ID=90,如需修改,請調整 launch_isaac.sh 內的設定。


5. 基本範例(Isaac 官方範例)

範例位置:/usr/local/Advantech/ros/container/ros-demokit/isaac_ros_kit/apps/basic_examples

用途:

  • 快速驗證 Isaac ROS 功能是否在目標平台正常運作
  • 作為後續延伸開發的基底(沿用相同的安裝/啟動框架)

5.1 isaac_ros_nvblox

5.2 isaac_ros_visual_slam

5.3 isaac_ros_yolov8

5.4 isaac_ros_unet

5.5 isaac_ros_centerpose

5.6 isaac_ros_occupancy_grid_localizer


6. 建立自訂 App

每個範例資料夾都包含:

  • install_app.sh:下載資源、安裝依賴、環境初始化。
  • run_app.sh:啟動命令(通常是 ros2 launch ...)。

自訂流程:

  1. 複製一個範例資料夾(或以 apps/develop 為模板)。
  2. install_app.sh 編寫你的安裝/準備步驟。
  3. run_app.sh 放入 ROS 2 啟動指令。
  4. 用相同入口執行:./launch_isaac.sh <your_app_path>