🔖

NVIDIA Isaac Sim 4.5.0で「エージェントシミュレーション機能」を使用し、GUIのみで人の3Dモデルを歩かせて撮影する

に公開

以前の記事にて、Isaac SimのGUIの基本操作方法を執筆した。
https://zenn.dev/kprn/articles/c1eadeb8d3ca39

将来的には、Isaac Simの環境の中に3Dモデルを配置し、人を歩かせ、AIの学習データを作成したいと考えている。

Isaac Simのエージェントシミュレーション機能を使用すると、Isaac Simに用意されている3Dモデルを使用して、人間を歩かせることができるらしい。

そこで今回は、エージェントシミュレーションのサンプルを動かし、どのようなことができるのかを確認する。

この記事の内容を実施すると、GUI操作のみで、以下のような倉庫環境にカメラを設置し、RGB画像を生成することができるようになる。

以下は、RGB画像をmp4に変換したもの。
https://youtu.be/HhUNAu0mFDY

手順

事前にこちらの手順でIsaac Simの環境構築が済んでいることを前提として進める。

手順1. Isaac Simを開く

コマンドプロンプトで、以下のコマンドを実行する。

cd C:\isaacsim
isaac-sim.selector.bat

AppSelectorが開くので、「START」を押す。

すると、シーンが開く。

手順2. IRA拡張機能を有効にする

IRA拡張機能とは?

IRA拡張機能(Isaacsim.Replicator.Agent)は、様々な3D環境で、人間キャラクターとロボットの合成データ(=3DCGの映像データ)を生成できるように設計されている。

「設定ファイル」と、「コマンドファイル」を使用して、3D環境、カメラパラメータ、キャラクター、ロボットの動作を制御することができる。

Window > Extensions をクリックし、出てきたウィンドウの検索ボックスで「agent sdg」を検索する。

isaacsim.replicator.agent.coreと、isaacsim.replicator.agent.uiの拡張機能をオンにする。

うまく設定できると、以下のようにAgent SDGというタブが増える。

もしタブが増えない場合は、Tools > Replicator > Agent SDG の左側に、青いチェックマークがついていることを確認する。ついてない場合はクリックする。

手順3. シミュレーション環境の準備を行う

今回はIsaac Simに用意されているデフォルトの環境を使用する。
特に何も変更せずに、Agent SDGタブの、「Set Up Simulation」というボタンを押し、しばらく待つ(筆者環境では1~2分くらい)

すると以下のように、倉庫の中にTポーズをとった人間が配置されている画面が表示される。

手順4. ランダムなコマンドを生成する

コマンドとは、キャラクターの動作を定義するもの。
Agent SDG タブ内の 「Character Settings > Generate Random Commands」 を押すと、コマンドが生成されるので、「*Save Commands」を押し保存する。

手順5. データの出力先ディレクトリを変更する

Agent SDG タブ内の 「Replicator Settings」 を押し、Output Directoryで出力先ディレクトリを指定することができる。
今回は、C:\Users\{ユーザ名}\work\ReplicatorResultというディレクトリを作成し、指定した。

手順6. データ生成を行う

Agent SDG タブ内の 「Global Settings > Start Data Generation」 を押す。

すると、倉庫内部の人間3Dモデルがコマンドに従って動作するようになる。

また、C:\Users\{ユーザ名}\work\ReplicatorResultディレクトリには、カメラの設定情報と、物体検知結果(どちらもjson形式)、および以下のようなRGB画像が出力される。

以下は、RGB画像をmp4に変換したもの。
https://youtu.be/HhUNAu0mFDY

深堀調査は今後の記事にて行う。

ネクストアクション

今回の調査で、Isaac Sim上で、GUI操作のみでカメラ映像を撮影することができた。

以前の記事では、Pythonでこれらの情報を取得しようとしていたが、コードを書かずにここまでできるのは、すごいと感じた。

今後は、AIの正解データ作成や、環境のアセット変更、人物モデルの変更などの方法を調査したい。

Discussion