robot-notes — 機器人知識筆記 GitHub ↗
本章與本頁目次

模擬

robot-notes /模擬/用 Isaac Sim + Isaac Lab 模擬 AMR

用 Isaac Sim + Isaac Lab 模擬室內自主移動機器人(AMR)

整理 NVIDIA 官方資料,聚焦「室內自主移動機器人 / 差速 AMR」場景下,如何用 Isaac Sim 與 Isaac Lab 做機器人模擬、ROS2 串接與強化學習訓練。

名詞速記

  • AMR(Autonomous Mobile Robot) — 自主移動機器人,能自行規劃路徑、避障的輪式機器人(送餐機、倉儲搬運車屬於此類)。
  • 差速驅動(differential drive) — 兩個獨立驅動輪靠左右輪速差來轉向的底盤,本筆記的目標機型。
  • 版本資訊以本文標示日期(SIGGRAPH 2025 GA)為準,實際開發請以官方最新版為準。

1. Isaac Sim 與 Isaac Lab 是什麼、怎麼分工

名稱 一句話定義 角色
OpenUSD(Universal Scene Description) 一套描述 3D 場景與資產的開放檔案格式與資料模型,原由 Pixar 開發 場景、機器人、資產怎麼定義與互通的底層格式
NVIDIA Omniverse 以 OpenUSD 為核心的 3D 模擬與協作平台 提供 RTX 算繪、物理、模擬基礎工具(Kit)
Isaac Sim 建構在 Omniverse 上的機器人模擬器 機器人專屬工具:感測器模擬、URDF 匯入、ROS2 橋接、合成資料生成
Isaac Lab 建構在 Isaac Sim 上的開源機器人學習框架 強化學習(RL)/ 模仿學習(imitation learning)的訓練工作流

層次關係(由下而上):OpenUSD(資料格式)→ Omniverse(模擬平台)→ Isaac Sim(機器人模擬器)→ Isaac Lab(機器人學習框架)

左側四層堆疊:OpenUSD 資料格式在最底,往上是 Omniverse 模擬平台、Isaac Sim 機器人模擬器、Isaac Lab 學習框架;右側官方工作流三步循環:Isaac Sim 組機器人→Isaac Lab 訓練→回 Isaac Sim 評估

這張圖的右半邊值得多看一眼:兩個工具不是「二選一」,而是輪流上場。模型與場景的組裝在 Isaac Sim 做,訓練搬到 Isaac Lab,訓完的 policy 再回 Isaac Sim 評估——評估不過就回頭改設計或換 reward,再繞一圈。

官方建議工作流:在 Isaac Sim 裡組好機器人 → 在 Isaac Lab 裡訓練 → 回到 Isaac Sim 評估與測試

版本概況(2025–2026)


2. 組一個 AMR 模擬要哪些要素

2.1 把機器人模型放進場景(URDF → USD)

室內 AMR 通常已有 URDF(Unified Robot Description Format,描述機器人連桿與關節的 XML 格式)。Isaac Sim 用 URDF Importer 擴充功能把它轉成 USD:

2.2 加感測器(相機 / LiDAR / IMU)

Isaac Sim 提供機器人常用感測器的模擬:

2.3 加物理(差速驅動)

物理由 Omniverse 內建的 PhysX 解算。差速底盤的驅動鏈,在 Isaac Sim 裡用 OmniGraph Action Graph(視覺化的節點式運算圖)串起來,核心兩個節點:


3. ROS2 Bridge:跟 Nav2 串接

Isaac Sim 透過 ROS 2 Bridge 擴充功能跟 ROS2 對接。支援 Humble(較舊文件)與 Jazzy Jalisco(Isaac Sim 5.0 完整支援);實務上 Nova Carter 等樣板仍以 Humble 為主。

ROS2 環境須在啟動 Isaac Sim 前先 source,讓 bridge 載入系統的 ROS2 函式庫。

一台 AMR 跑 Nav2 時的 topic 流向

Isaac Sim 對外 publish(模擬器當作真實機器人在發資料):

Topic 訊息型別 內容
/scan sensor_msgs/LaserScan 2D 雷射掃描(由點雲經 pointcloud_to_laserscan 轉出)
/point_cloud sensor_msgs/PointCloud2 LiDAR 點雲(實務用 PointCloud2,非舊版 PointCloud)
/odom nav_msgs/Odometry 里程計
/tf tf2_msgs/TFMessage 座標轉換樹
/map nav_msgs/OccupancyGrid 佔據柵格地圖
/clock 模擬時間(讓 ROS2 用模擬時鐘)

Isaac Sim 對外 subscribe(接收外部命令):

這些 publish/subscribe 都在 OmniGraph Action Graph 裡用對應節點(transform tree publisher、odometry publisher、joint state publisher 等)搭出來。

Isaac Sim 與 Nav2 的雙向資料流:模擬器 publish /scan、/point_cloud、/odom、/tf、/map、/clock 給 Nav2;Nav2 回傳 /cmd_vel 進到 Twist Subscribe 節點,經 Differential Controller、Articulation Controller 驅動輪子

兩個方向合起來就是一個閉環:感測資料出去、速度命令回來、車動了、感測資料再出去。值得注意的是右邊那塊——Nav2 完全不知道自己接的是模擬器還是真車。這個「分不出來」不是巧合,而是刻意的:因為分不出來,同一份 Nav2 設定才能原封不動搬上實車,於是 sim-to-real 那邊列的「模擬與實車軟體棧不一致」整類落差就不會發生。

樣板機器人與套件

Isaac Sim 內附可直接跑 Nav2 的樣板:


4. 強化學習訓練迴圈(Isaac Lab)

先釘住五個 RL 詞,不然這一節會全是黑話:

  • policy(策略)——一個函式,吃「現在看到什麼」吐「現在該做什麼」。訓練出來的模型就是它。
  • observation(觀測)——這一步餵給 policy 的東西(光達、關節角、目標方位…)。不等於環境的全部真實狀態。
  • action(動作)——policy 能下的指令(輪速、關節力矩…)。
  • reward(回報)——這一步做得好不好的分數。訓練就是在調 policy 讓累積分數最高。
  • episode(回合)——一次從重置到結束(達標、翻車或超時)的完整過程。

Isaac Lab 把 RL 任務建模成 MDP(Markov Decision Process,馬可夫決策過程——「下一步只跟現在的狀態與動作有關,跟怎麼走到現在的無關」這個假設):環境提供當前 observation,agent 給出 action,環境回傳下一個 state、reward、done 旗標與 episode 資訊。

定義環境的兩種寫法

寫法 說明
Manager-Based(管理器式) 模組化:分別定義 Observations / Actions / Rewards / Terminations 的 config 類別,另可加 Event(隨機化)與 Curriculum(課程學習)。
Direct(直接式) 單一類別包辦所有環境邏輯,對 observation 計算、action 套用、reward 計算有更直接的控制。

核心管理器:

大規模平行化

Isaac Lab 支援向量化環境(vectorized environments):用 num_envs 指定子環境數量,可達數千個同時跑。每次 step() 收到一批 action、回傳一批 observation,GPU 上平行模擬讓資料收集量級提升,大幅縮短訓練時間。

演算法、RL 函式庫與 policy 產出


5. 合成資料生成(Replicator)

Omniverse Replicator = Isaac Sim 內的合成資料生成(SDG, Synthetic Data Generation)框架,用 omni.replicator 擴充。室內 AMR 常用它生成感知模型的訓練資料。


6. 硬體 / 安裝需求

GPU 與系統需求(Isaac Sim)

項目 最低 建議 理想
GPU GeForce RTX 4080(16GB) GeForce RTX 5080(16GB) RTX PRO 6000 Blackwell(48GB)
CPU Intel i7(7代)/ Ryzen 5 Intel i7(9代)/ Ryzen 7 i9 X-series / Threadripper
核心數 4 8 16
RAM 32GB 64GB 64GB
儲存 50GB SSD 500GB SSD 1TB NVMe SSD

Headless 與容器化

領域備註:本團隊規範一律用 docker 建立編譯/執行環境,不污染系統環境。Isaac Sim 走官方 NGC container + headless 跑法,符合此原則。


7. Isaac Sim vs Gazebo 定位

Gazebo 是 ROS 生態長年的開源機器人模擬器,輕量、社群成熟、跟 ROS/ROS2 整合直接,適合一般導航 / 控制演算法的功能驗證與 CI,對 GPU 沒有硬性 RT Core 要求。Isaac Sim 走 GPU 加速的高擬真路線:RTX 物理算繪、貼近真實的感測器(相機 / RTX LiDAR)、OpenUSD 場景、Replicator 合成資料,並透過 Isaac Lab 支援數千環境平行 RL 訓練;代價是硬體門檻高(需含 RT Core 的 RTX GPU)。室內 AMR 若只驗 Nav2 行為,Gazebo 足夠;若要做感知模型合成資料、sim-to-real RL、或高擬真感測器測試,Isaac Sim + Isaac Lab 較合適。兩者皆可透過 ROS2 bridge 與 Nav2 串接。


參考來源(均為 NVIDIA 官方)

本文部分版本號與數字若與你手上的安裝版本不符,以官方對應版本文件為準。