# [研究日誌1] Isaac Lab 安裝與基本教學筆記 2025/03/11 ### **Isaac sim與Lab** * Isaac sim是一個基於NVIDIA Omniverse的參考應用程序,開發人員可以在遵守物理定律的虛擬環境中設計、模擬、測試和訓練基於人工智慧的機器人和自主機器。 * Isaac Lab是建立在Isaac Sim 的基礎上,是一個統一、模組化和開源的機器人學習框架,旨在簡化常見的工作流程,如強化、模仿和演示學習以及運動規劃。 下列Isaac Lab網址整合了目前任務所需的安裝流程,故本篇按照網址指示的步驟進行安裝(按照Isaac sim安裝會出錯) https://isaac-sim.github.io/IsaacLab/main/index.html 2025/03 Nvidia已經停止對 Isaac Sim 4.2.0 及以下版本的支援。因此我們下載最新的 Isaac Sim 4.5.0 > "對於 Ubuntu 22.04 和 Windows 系統,我們建議使用 Isaac Sim pip 安裝。" * **值得注意的是本電腦安裝的是24.04 LTS ,但官方並未宣佈24.04適用於Isaac 4.5.0(只支援20.04 及22.04),但目前使用下並無大問題,有BUG會在後續日誌中補充。** ----------------------------------------------- # **開始pip安裝** #### 1. 以Conda環境下安裝 ``` conda activate env_isaacsim ``` #### 2. 確保cuda pytorch等環境版本匹配 ``` pip install torch==2.5.1 --index-url https://download.pytorch.org/whl/cu121 ``` #### 3. 在安裝 Isaac Sim 之前,請確保已安裝了最新的 pip 版本 ``` pip install --upgrade pip ``` #### 4. 安裝 Isaac Sim 套件 ``` pip install 'isaacsim[all,extscache]==4.5.0' --extra-index-url https://pypi.nvidia.com ``` #### 5. Isaac Lab 儲存庫克隆到工作區: ``` git clone git@github.com:isaac-sim/IsaacLab.git ``` #### 6. 用以下命令安裝相依性apt(在 Ubuntu 上): ``` sudo apt install cmake build-essential ``` ``` ./isaaclab.sh --install # or "./isaaclab.sh -i" ``` #### 7. 驗證 Isaac Lab 若要驗證安裝是否成功,請從儲存庫頂部執行以下命令: ``` # Option 1: Using the isaaclab.sh executable # note: this works for both the bundled python and the virtual environment ./isaaclab.sh -p scripts/tutorials/00_sim/create_empty.py # Option 2: Using python in your virtual environment python scripts/tutorials/00_sim/create_empty.py ``` #### 若出現啟動頁面並開啟順暢則成功,過程中可能出現無回應(是正常的)等待片刻即可,第一次載入可能比較久。若安裝完成即可開始訓練。 #### 因為是最新版本4.5.0,更新不斷,因此以網頁的最新指令為止,此為我的安裝步驟供參考。 --------------------------------------- # 啟動Isaac lab及範例碼測試 ## RL訓練庫介紹與比較 * 官方對於開發建議是建議使用Microsoft Visual Studio Code (VSCode)。 * 官方網址有更詳細介紹Isaac lab的核心概念及可用環境 (包括夾取任務開關抽屜 機器狗 人形 導航等)這邊以手臂夾取及堆疊為主要目標。 > 針對不同應用場景、效能需求、學習架構 各有不同的最佳解決方案。這些 RL 庫在 效能、可擴展性、使用難度、適用場景 上有所不同,因此 NVIDIA 提供 多種選擇,讓使用者能夠根據需求選擇最適合的方案。 以下為不同的Reinforcement Learning Library Comparison 供參考 ![1741660455008](https://hackmd.io/_uploads/Bk4L-XTsye.png) * 我們主要會以SB3及RSL-RL為主來做訓練 ------------------------- ## 啟動Isaac lab * 我們點進強化學習腳本頁面,並找到想使用的RL庫(ex:RSL-RL) https://isaac-sim.github.io/IsaacLab/main/source/overview/reinforcement-learning/rl_existing_scripts.html * 這裡會提供一些官方示例,使用RSL-RL訓練代理 Isaac-Reach-Franka-v0: ### (記得跑時要進入conda環境啟動並cd進IsaacLab的資料夾) ``` # install python module (for rsl-rl) ./isaaclab.sh -i rsl_rl # run script for training ./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Reach-Franka-v0 --headless # run script for playing with 32 environments ./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --load_run run_folder_name --checkpoint model.pt # run script for playing a pre-trained checkpoint with 32 environments ./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --use_pretrained_checkpoint # run script for recording video of a trained agent (requires installing `ffmpeg`) ./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --headless --video --video_length 200 ``` > 例如上述這個我們用Franka手臂進行reach的訓練 > 解釋一下各行的意思 ``` ./isaaclab.sh -i rsl_rl 安裝 RSL-RL 模組(須先執行) ``` ``` ./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Reach-Franka-v0 --headless ``` -p 代表 執行 Python 腳本 scripts/reinforcement_learning/rsl_rl/train.py 執行 RSL-RL 訓練腳本 --task Isaac-Reach-Franka-v0 選擇訓練任務(讓 Franka Panda 手臂學習 Reach (到達) 任務) --headless 以無 GUI 模式訓練(更快,適合伺服器運行) ✅ 這條指令會啟動 RSL-RL 訓練,讓機械手臂學習 Reach 任務。 / ``` ./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task Isaac-Reach-Franka-v0 --num_envs 32 --load_run run_folder_name --checkpoint model.pt ``` scripts/reinforcement_learning/rsl_rl/play.py → 執行 RSL-RL 測試腳本 --task Isaac-Reach-Franka-v0 → 測試 Reach 任務 --num_envs 32 → 同時運行 32 個環境 --load_run run_folder_name → 指定訓練結果的資料夾 --checkpoint model.pt → 載入已訓練的模型 (model.pt) 來執行推論 ✅ 這條指令會使用訓練過的模型,在 32 個環境中同時測試機械手臂的行為。 ----------------------------- # 訓練結果 ### 訓練完成後,我們為求測試速度,只啟動1個環境來檢視訓練結果,如下圖所示 ![1741662638886](https://hackmd.io/_uploads/ByN6F7pjkg.png) 使用 RSL-RL 來運行訓練好的強化學習模型 執行 play.py,載入 Isaac-Reach-Franka-v0 任務 只啟動 1 個環境進行測試 預設載入最後一次訓練的模型(如果有訓練過) ------------------------ ### 2025/03/11 ### 至此Isaac Lab 的安裝與基本教學(跑基礎Reach範例程式)筆記告一段落。 ### 接下來會進行Imitation Learning的範例及研究,也嘗試在Isaac sim中放置攝像機讀取深度及RGB數值,待後續更新。 ----------------------------