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_nvbloxbasic_examples/isaac_ros_visual_slamadvanced_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
- 功能:TSDF/ESDF 3D 重建,可用深度相機或資料集即時建圖。
- 執行:
./launch_isaac.sh basic_examples/isaac_ros_nvblox - 官方文件:https://nvidia-isaac-ros.github.io/v/release-3.2/repositories_and_packages/isaac_ros_nvblox/isaac_ros_nvblox/index.html

5.2 isaac_ros_visual_slam
- 功能:視覺 SLAM,支援相機/IMU 工作流程。
- 執行:
./launch_isaac.sh basic_examples/isaac_ros_visual_slam - 官方文件:https://nvidia-isaac-ros.github.io/v/release-3.2/repositories_and_packages/isaac_ros_visual_slam/isaac_ros_visual_slam/index.html

5.3 isaac_ros_yolov8
- 功能:YOLOv8 物件偵測推論,適合即時感知整合。
- 執行:
./launch_isaac.sh basic_examples/isaac_ros_yolov8 - 官方文件:https://nvidia-isaac-ros.github.io/v/release-3.2/repositories_and_packages/isaac_ros_object_detection/isaac_ros_yolov8/index.html

5.4 isaac_ros_unet
- 功能:UNet 語意分割,用於場景理解、可行區辨識等。
- 執行:
./launch_isaac.sh basic_examples/isaac_ros_unet - 官方文件:https://nvidia-isaac-ros.github.io/v/release-3.2/repositories_and_packages/isaac_ros_image_segmentation/isaac_ros_unet/index.html

5.5 isaac_ros_centerpose
- 功能:6DoF 姿態估測,常用於夾取與定位對位。
- 執行:
./launch_isaac.sh basic_examples/isaac_ros_centerpose - 官方文件:https://nvidia-isaac-ros.github.io/v/release-3.2/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_centerpose/index.html

5.6 isaac_ros_occupancy_grid_localizer
- 功能:在 2D 佔據格建好的地圖上進行定位,常見於室內導航/AMR。
- 執行:
./launch_isaac.sh basic_examples/isaac_ros_occupancy_grid_localizer - 官方文件:https://nvidia-isaac-ros.github.io/v/release-3.2/repositories_and_packages/isaac_ros_mapping_and_localization/isaac_ros_occupancy_grid_localizer/index.html

6. 建立自訂 App
每個範例資料夾都包含:
install_app.sh:下載資源、安裝依賴、環境初始化。run_app.sh:啟動命令(通常是ros2 launch ...)。
自訂流程:
- 複製一個範例資料夾(或以
apps/develop為模板)。 - 在
install_app.sh編寫你的安裝/準備步驟。 - 在
run_app.sh放入 ROS 2 啟動指令。 - 用相同入口執行:
./launch_isaac.sh <your_app_path>。