---
# System prepended metadata

title: Isaac Lab 安裝與基本教學筆記

---

# [研究日誌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數值，待後續更新。
----------------------------