ここでは、Windows11に、NVIDIA Isaac Labを導入し、PhysicalAIを目指したロボットシミュレーションの検証結果を報告します。
最近では Physical AIが注目されており、自分もロボットシミュレーションを試したいと思いました。ここでは、Windows11にNVIDIA Isaac Sim 6.0.1 + Isaac Lab 3.0.0 を導入し活用する手順を記録しておきます。
いろいろな資料があるのですが、結局はNVIDIAの公式ウエブの資料が、必須の基本情報でした。
まず、NVIDIAのIsaac Lab の情報は、以下の公式ドキュメント「Isaac Lab Documentation」が基本です。
この解説では、Window11に、以下のNVIDIA Isaac Lab 3.0.0を導入した状態を前提としています。
以下のデモスクリプトの動作環境は、「Isaac Sim 6.0.1 + Isaac Lab 3.0.0-beta2」を、用いて著者のQiita資料の手順をで用意されたものを想定しています。
デモスクリプトの構成
本解説では、Isaac Lab 3.0.0-beta2を、C:\NvidiaIsaac\Lab300に導入してあります。
この中のフォルダで、デモスクリプトの実行に関する部分は、以下の内容です。
Lab300
├─ _isaac_sim(Isaac Sim本体への接続)
├─ source(Isaac Labのライブラリ本体)
├─ 【scripts】(ユーザーが実行するサンプルや学習プログラム【ここを利用します】)
├─ apps(Isaac Simの起動設定)
├─ tools(インストールや開発を補助する内部ツール)
└─ isaaclab.bat(WindowsでIsaac Labを起動するバッチファイル)
この中で、デモや例題のスクリプトは、scriptsフォルダにあり、この中に以下のフォルダがあります。
【scripts】(ユーザーが実行するサンプルや学習プログラム【ここを利用します】)
├─ benchmarks(GPU・物理演算・カメラ・強化学習などの性能測定)
├─ 【demos】(ロボット・地形・センサなどの完成デモ)
├─ environments(登録済み環境の確認・実行・遠隔操作)
├─ imitation_learning(模倣学習・デモデータの収集と再生)
├─ reinforcement_learning(強化学習の学習・評価・学習済みモデルの実行)
├─ sim2sim_transfer(学習済み方策を別のシミュレータへ移行・検証)
├─ tools(URDF・MJCF・メッシュ変換、デモデータ処理など)
└─ tutorials(Isaac Labの基本APIを段階的に学ぶチュートリアル)
ここでは、「demos」にあるファイルを使って、Isaac Labの機能を確認します。
デモスクリプトの確認
ここでは、demosフォルダにあるスクリプトを確認してみます。以下の内容です。
【demos】(Isaac Labのロボット・物理機能を確認する完成デモ)
├─ sensors(カメラ・接触・IMU・RayCasterなどのセンサデモ)
├─ arl_robot_1.py(ARL Robot 1を使用したロボットシミュレーションのデモ)
├─ arms.py(複数のロボットアームを配置して関節を制御するデモ)
├─ bin_packing.py(多数の物体を箱の中で扱うビンパッキングのデモ)
├─ bipeds.py(二足歩行ロボットを配置し、関節姿勢を確認するデモ)
├─ deformables.py(柔軟物・変形体の落下、接触、変形を確認するデモ)
├─ h1_locomotion.py(Unitree H1の学習済み歩行方策を実行するデモ)
├─ hands.py(多自由度ロボットハンドの関節を制御するデモ)
├─ haply_teleoperation.py(Haplyハプティックデバイスでロボットを遠隔操作するデモ)
├─ markers.py(座標軸・矢印・球などの可視化マーカーを表示するデモ)
├─ multi_asset.py(複数種類のロボットや物体を同じシーンに配置するデモ)
├─ pick_and_place.py(ロボットアームで物体を把持・移動・配置するデモ)
├─ procedural_terrain.py(斜面・階段・凹凸などの地形を自動生成するデモ)
├─ quadcopter.py(クアッドコプターの推力と飛行運動を確認するデモ)
└─ quadrupeds.py(UnitreeやANYmalなどの四足歩行ロボットを配置するデモ)
この内容に関して、NVIDIAのウエブでは、以下に解説があります。
スクリプトの実行方法
実行する場所は、isaaclab.batがある「Lab300フォルダ」です。
NVIDIAの説明では、スクリプト名を呼んでいますが、ここでの手順では、パスを設定していないので、「.\isaaclab.bat」とします。
また動作検証では、GUIの表示には「--viz kit」が必要でしたか、このdemosでは不要な場合が多いのですが、操作をするため必要な場合もありました。
終了は、起動したPowerShellで、「Ctrl+C」を入力し、「バッチ ジョブを終了しますか (Y/N)? y」とします。
なお、著者が確認したときには、GUIツールまで起動しても、以下の場合には、正常にモデルが動作しなかったです。
動作未確認: arms.py(どうも新バージョンでのパスの違いのようです?)
スクリプト:arl_robot_1.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\arl_robot_1.py --viz kit
スクリプト:bin_packing.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\bin_packing.py
スクリプト:bipeds.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\bipeds.py
スクリプト:deformables.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\deformables.py
スクリプト:h1_locomotion.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\h1_locomotion.py
スクリプト:hands.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\hands.py
スクリプト:markers.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\markers.py
スクリプト:multi_asset.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\multi_asset.py
スクリプト:pick_and_place.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\pick_and_place.py
スクリプト:procedural_terrain.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\procedural_terrain.py
スクリプト:quadcopter.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\quadcopter.py
スクリプト:quadrupeds.py
PS C:\NvidiaIsaac\Lab300> .\isaaclab.bat -p .\scripts\demos\quadrupeds.py
以上で、Isaac Labのデモスクリプトを確認してみました。ロボットシミュレーターとして、色々なことが出来そうです。











