# 建立 UR10 + Robotiq 2F-140 自訂模型流程筆記 > 以下內容來自 Nvidia 深度學習學院課程 -- 「Train Your Second Robot in Isaac Lab」 --- ## 一、任務說明 本次任務是將 **UR10 機械手臂** 與 **Robotiq 2F-140 夾爪** 組合成單一機器人模型, 並為後續在 **Isaac Lab** 進行控制策略訓練做準備。 訓練目標: 讓機械手臂的當前姿態(current pose)對齊到指定的目標姿態(goal pose)。 --- ## 二、整體流程概念 Isaac Sim 與 Isaac Lab 的角色分工如下: 1. **Isaac Sim**:建立與模擬機器人環境(相當於「模擬舞台」)。 2. **Isaac Lab**:在模擬環境中訓練控制策略(相當於「學習平台」)。 3. **完整流程**: 設定模型 → 在 Lab 中訓練 → 回到 Sim 驗證成果。 --- ## 三、OpenUSD 的基本觀念 Isaac Sim 與 Omniverse 的底層架構皆建立於 **OpenUSD**。 OpenUSD 讓模型之間的組合具備「非破壞性」與「可重複使用」特性。 常見三個核心概念: | 概念 | 說明 | 作用 | | ------------------------ | -------------- | --------- | | Reference(參照) | 引用外部模型,不直接複製內容 | 模型共享與即時更新 | | Payload(載入) | 載入模型實體,會佔用檔案空間 | 適合獨立場景使用 | **為什麼重要:** 使用 Reference 能同時保留模型關聯與靈活性, 這是製作機器人組合模型的核心機制。 --- ## 四、開啟 Isaac Sim 並設定引用模式 ### 1. 啟動 Isaac Sim 進入 Isaac Lab 目錄後開啟終端機: * Linux ``` ./isaaclab.sh --sim ``` * Windows ``` .\isaaclab.bat --sim ``` 若使用獨立安裝版本,也可直接啟動 Isaac Sim。 ### 2. 設定引用模式 進入: ``` Edit → Preferences → Stage → Import ``` 將 **Drag & Drop USD Method** 設為 `reference`。 **理由**: 設定為 Reference 模式能確保場景以非破壞式方式引用模型, 而非複製完整內容,讓整個檔案更輕量且易於更新。 <p style="display:flex; align-items:center; justify-content:center;"> <img src="https://hackmd.io/_uploads/SJAKoJTpex.png" width="90%"> </p>> --- ## 五、加入 UR10 機械手臂模型 在 **Content Browser** 前往: ``` /Isaac/IsaacLab/Robots/UniversalRobots/UR10/ ``` 將 `ur10_instanceable.usd` 拖入 **Stage Panel**。 **說明**: Instanceable 模型可被多次重用,能節省記憶體, 也可在不同場景重複引用相同基底。 --- ## 六、加入 Robotiq 2F-140 夾爪模型 在 **Content Browser** 前往: ``` /Isaac/Robots/Robotiq/2F-140/ ``` 將 `Robotiq_2F_140_physics_edit.usd` 拖入 **Stage Panel**。 --- ## 七、移除多餘的 Articulation Root 在 **Stage Panel** 中選取 `Robotiq_2F_140_physics_edit`。 在 **Property Editor** 右側找到 **Physics Articulation Root**, 點擊紅色 X 移除。 **理由**: * 每個「Articulation Root」代表一個獨立的關節系統。 * 若機械手臂與夾爪都有各自的 Root,Isaac Sim 會視為兩個分離剛體。 * 我們希望整體作為一個統一的機械鏈(UR10 → 夾爪), 所以必須保留單一 Root(UR10 的那個)。 <p style="display:flex; align-items:center; justify-content:center;"> <img src="https://hackmd.io/_uploads/r1m43JaTxl.png" width="90%"> </p>> --- ## 八、將夾爪掛載至手臂末端 ### 1. 暫時關閉位置保留設定 進入: ``` Edit → Preferences → Stage → Authoring ``` 將 **Keep World Transform When Reparenting** 關閉。 Isaac Sim 5.0 版本可設為 **Ask**。 **為什麼要關閉**: 關閉後重新掛接(Reparent)時,夾爪會移動以對齊新的父節點(UR10 末端)。 若保持開啟,位置不會變動,夾爪仍會漂浮在原處。 ### 2. 掛接夾爪至 UR10 末端 在 **Stage Panel** 中,將夾爪拖曳到: ``` ur10_instanceable/ee_link ``` 若出現提示,選擇 **Keep Prim Transform**。 此時夾爪會自動對齊至手臂末端位置。 --- ## 九、恢復設定並整理層級結構 為保持場景清晰: 1. 開啟 Preferences → Stage 將 **Keep World Transform When Reparenting** 開啟。 2. 將夾爪 Xform(`Robotiq_2F_140_physics_edit`)拖回 World 下層。 3. 若出現提示,選擇 **Inherit Parent Transform**。 **理由**: 這樣可保持結構簡潔,同時保留正確的物理位置。 --- ## 十、Parenting(父子層級)原理說明 USD 場景中,每個物件稱為 **Prim**。 當一個 Prim 放在另一個 Prim 下方時,稱為 **Parenting(掛接)**。 * 預設行為是:保持世界座標不變(位置不動)。 * 若關閉「Keep World Transform」,物件會依父物件重新對齊。 這個機制能靈活控制模型在空間中如何繼承座標與運動。 --- ## 十一、建立物理連結(Fixed Joint) 目前夾爪雖在手臂末端,但在物理層面尚未相連。 若按下 Play,夾爪會自由落下。 ### 操作步驟 1. 展開機械手臂與夾爪的 Xform 層級。 2. 選取手臂的 `ee_link`。 3. 按住 Ctrl,選取夾爪的 `robotiq_base_link`。 4. 右鍵 → Create → Physics → Joint → Fixed Joint。 **說明**: * Fixed Joint = 剛性連接,兩物體間不再有相對運動。 * 選擇順序會決定連接方向。 (先選手臂,再選夾爪 → 表示從手臂連到夾爪。) **結果**: 夾爪現在與手臂成為一個連動的物理系統。 按下 Play 時不再會下墜。 --- ## 十二、儲存與驗證 1. 儲存場景為: ``` UR-with-gripper.usd ``` 若使用 Brev 環境,建議儲存在 `/workspace/`。 2. 按左側 Play,驗證夾爪是否穩定附著。 **說明**: 這樣就完成了一個可重用的完整組合模型, 能直接在 Isaac Lab 中呼叫與訓練。 --- ## 十三、補充:關鍵概念原理整理 | 名稱 | 功能 | 在此任務的作用 | | --------------------- | ----------------- | ------------------------- | | **Reference** | 引用外部 USD 模型,不複製內容 | 用於同時載入 UR10 與 2F-140 模型 | | **Payload** | 載入模型實體(完整嵌入) | 本任務未使用,避免檔案臃腫 | | **Parenting** | 在場景層級中掛接父子關係 | 將夾爪掛到 UR10 末端 | | **Articulation Root** | 關節系統的起點,控制所有子關節 | 保留 UR10 的 Root,移除夾爪的 Root | | **Fixed Joint** | 剛性物理連接,無相對運動 | 讓夾爪與手臂成為一體,不會掉落 | --- ## 十四、總結表 | 步驟 | 目的 | 原因說明 | | ----------------------- | ----------- | ----------------- | | 設定 reference 模式 | 以非破壞式引用模型 | 確保原始模型可更新與共享 | | 加入 UR10 與夾爪模型 | 匯入元件 | 建立組合基礎 | | 移除 Articulation Root | 維持單一關節系統 | 避免重複物理系統 | | 關閉 Keep World Transform | 讓夾爪自動貼合手臂末端 | 重新掛接位置正確 | | 建立 Fixed Joint | 物理連結手臂與夾爪 | 防止模擬時掉落 | | 儲存整合 USD | 建立可重用模型 | 用於後續 Isaac Lab 訓練 | --- 希望我的內容對你有所幫助,想看到更多內容歡迎追蹤我的 IG、Threads 等平台。 Threads:[@minimalist_shine](https://www.threads.com/@minimalist_shine) IG:[@minimalist_shine](https://www.instagram.com/minimalist_shine/)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up