コンテンツにスキップ
Dev Classmethod Jp Articles Vams Nvidia Isaac Lab So Arm101 Training

[VAMS] NVIDIA Isaac Lab のトレーニング機能で SO-ARM101 の Reach を強化学習させてみました

  • URL: https://dev.classmethod.jp/articles/vams-nvidia-isaac-lab-so-arm101-training
  • 日付: 2026-06-19
  • Tier: Tier 2
  • 要旨: AWS の VAMS 上で NVIDIA Isaac Lab を使い、標準ラインナップに含まれない SO-ARM101 ロボットの Reach タスクを強化学習させた実装記録。カスタム環境を tar.gz でパッケージし S3 経由で取り込む手順と、gym.register タスク登録の回避策、buildx 互換性問題など複数のハマり点を詳述している。

詳細

VAMS v2.5.1 上の Isaac Lab パイプライン(isaaclab-training)に SO-ARM101 を載せるには、MuammerBay 配布パッケージに Reach-Grasp の差分を重ねた tar.gz を S3 にアップロードし、customEnvironmentS3Uri として渡す必要がある。

ハマりポイントが3つ:

  • pip install -e はアーカイブ非対応 → --no-deps で回避
  • 学習コンテナの train.pyimport isaaclab_tasks しかせず SO-ARM101 タスクが gym 登録されない → __main__.pyimport isaac_so_arm101.tasks を差し込む形でパッチを当てた
  • Rancher Desktop の containerd image store + 新しい buildx の組み合わせで docker run 不可なイメージが生成される → BUILDX_NO_DEFAULT_ATTESTATIONS=1 で回避

最終的に Isaac-SO-ARM101-Reach-Grasp-v0 タスクが VAMS Web UI から起動でき、AWS Batch の GPU インスタンス(L4/L40S/A10G)上で学習が進むことを確認。学習済みポリシー(checkpoints/*.pt)と metrics.csv がアセットの File Manager に登録される。

Isaac Lab 標準タスク(Cartpole、Reach-Franka など)のみを試す場合はカスタム環境不要で Input Parameters の task 指定だけで動く。