iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
Cloud Native

K8s上的機器人沙盒系列 第 15

Day 15|Isaac Lab 容器化:RL/IL 任務、Python 相依、CUDA/cuDNN 驗證

  • 分享至 

  • xImage
  •  

承接 Day 14(Isaac Sim 容器化),今天來看 Isaac Lab。它是基於 Isaac Sim 的強化學習(RL)/模仿學習(IL)框架,整合了 GPU 加速的物理模擬與 Python 機器學習生態系。我們將說明如何容器化 Isaac Lab,處理 Python 相依、CUDA/cuDNN 驗證,並跑起最小 RL/IL 任務。

A. Isaac Lab 簡介

  • 基礎:以 Isaac Sim 為底層(USD 場景 + PhysX 模擬)。
  • 擴展:提供常見的機器人控制環境(Arm/Legged/Manipulator)。
  • RL/IL 任務:可與 PyTorch、JAX、RLlib 等框架整合。
  • 研究用途:驗證演算法(PPO、SAC)、收集數據、模擬 domain randomization。

B. 容器化思路

  1. 基底映像:從 nvcr.io/nvidia/isaac-sim:2023.1.1 延伸。
  2. 安裝 Isaac Lab:複製 GitHub repo 進容器,或用 pip install -e .
  3. Python 相依:PyTorch、Gymnasium、Hydra、Omni.isaac.lab 套件。
  4. GPU 驗證:容器內必須能正確存取 CUDA/cuDNN。

C. Dockerfile 範例

FROM nvcr.io/nvidia/isaac-sim:2023.1.1

# 環境變數
ENV ACCEPT_EULA=Y \
    PRIVACY_CONSENT=Y \
    ISAACSIM_HEADLESS=true

# 安裝 Python 依賴
RUN apt-get update && apt-get install -y python3-pip git && rm -rf /var/lib/apt/lists/*

# 安裝 PyTorch (與 CUDA 對應版本)
RUN pip3 install torch==2.2.0+cu121 torchvision==0.17.0+cu121 --extra-index-url https://download.pytorch.org/whl/cu121

# 下載 Isaac Lab
RUN git clone https://github.com/isaac-sim/IsaacLab.git /workspace/isaaclab
WORKDIR /workspace/isaaclab
RUN pip3 install -e .

注意:PyTorch CUDA 版本需與 Isaac Sim 映像內的 CUDA/cuDNN 相容。可在容器內 nvcc --versiontorch.cuda.is_available() 驗證。

D. Pod 部署(K8s 範例)

apiVersion: v1
kind: Pod
metadata:
  name: isaac-lab-ppo
  namespace: robotics
spec:
  restartPolicy: Never
  containers:
  - name: isaac-lab
    image: myrepo/isaac-lab:latest
    command: ["python3","scripts/train.py","--task","Cartpole"]
    resources:
      limits:
        nvidia.com/gpu: 1
    volumeMounts:
    - name: datasets
      mountPath: /workspace/datasets
  volumes:
  - name: datasets
    persistentVolumeClaim:
      claimName: pvc-isaac-datasets
  • 這會啟動一個訓練任務,並將數據集掛到 PVC。
  • Cartpole 是最小 RL 任務,可驗證容器是否正常跑訓練 loop。

E. 驗證測試

  1. CUDA 驗證

    kubectl exec -n robotics isaac-lab-ppo -- python3 -c "import torch; print(torch.cuda.is_available())"
    

    預期:輸出 True

  2. cuDNN 驗證

    python3 -c "import torch; print(torch.backends.cudnn.version())"
    

    預期:顯示 cuDNN 版本號。

  3. 訓練驗收

    • kubectl logs isaac-lab-ppo -n robotics
    • 預期看到 loss 曲線下降、policy update log。

F. 常見問題

  • 版本不相容:PyTorch CUDA 版本與 Isaac Sim Base 不符,需調整對應 wheel。
  • GPU 不可見:確認 Pod 有設 nvidia.com/gpu,GPU Operator 正常。
  • ImportError: omni.isaac.lab → 確認 pip install -e . 已執行。
  • 訓練不收斂 → 檢查 seed、超參數,或是否正確載入 Isaac Lab 環境。

感想

連休はあっという間だったQAQ


上一篇
Day14 | Isaac Sim 容器化:Image、DataSet、ENV
下一篇
Day 16|把 Isaac + Selkies 放進同一個 Pod
系列文
K8s上的機器人沙盒16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言