NVIDIA Isaac Sim 4.5.0で「エージェントシミュレーション機能」を使用し、GUIのみで人の3Dモデルを歩かせて撮影する
以前の記事にて、Isaac SimのGUIの基本操作方法を執筆した。
将来的には、Isaac Simの環境の中に3Dモデルを配置し、人を歩かせ、AIの学習データを作成したいと考えている。
Isaac Simのエージェントシミュレーション機能を使用すると、Isaac Simに用意されている3Dモデルを使用して、人間を歩かせることができるらしい。
そこで今回は、エージェントシミュレーションのサンプルを動かし、どのようなことができるのかを確認する。
この記事の内容を実施すると、GUI操作のみで、以下のような倉庫環境にカメラを設置し、RGB画像を生成することができるようになる。
以下は、RGB画像をmp4に変換したもの。
手順
事前にこちらの手順で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に変換したもの。
深堀調査は今後の記事にて行う。
ネクストアクション
今回の調査で、Isaac Sim上で、GUI操作のみでカメラ映像を撮影することができた。
以前の記事では、Pythonでこれらの情報を取得しようとしていたが、コードを書かずにここまでできるのは、すごいと感じた。
今後は、AIの正解データ作成や、環境のアセット変更、人物モデルの変更などの方法を調査したい。
Discussion