デジタルツインを活用した事例が国内外で広がる中、NVIDIA Omniverse™プラットフォームを使用した3D仮想空間の構築やNVIDIA Isaac™を使用したAIロボットシミュレーションの技術が注目を集めています。構築したフォトリアルな仮想空間では、ロボット走行のシミュレーションだけでなく、ロボットが自立走行するための頭脳となるAIモデル開発に必要な膨大なデータセットも自動で生成することができます。

一方で、各ツールの解説記事はあるものの「ロボットシミュレーション」に向けてどのようにツールを組み合わせて使用すべきか、点在する情報を集めて理解する難しさがありました。

 

そこでマクニカは、自社の物流倉庫で3D仮想空間を使用したロボットシミュレーション環境を構築し、そのプロセスを本記事にて公開します。

NVIDIA Omniverse™ Replicatorを使用したデータセット画像の自動生成、NVIDIA TAO Toolkitを使用したAIモデルの転移学習、学習結果として生成されたAIモデルをNVIDIA Issac ROSのロボット制御プログラムへ実装し、NVIDIA Issac Simでロボット走行のシミュレーションまでを行う一連のプロセス手順について、連載形式で紹介します。

 

[NVIDIAで実現するロボットシミュレーション 徹底解説]

第1話 プロセス概要

第2話 データセットの作成(NVIDIA Omniverse)

第3話 AIモデルの学習(NVIDIA TAO Toolkit)

第4話 AIモデルの実装とロボットシミュレーション(NVIDIA Isaac ROS/NVIDIA Isaac Sim)

データセットの作成

まずはOmniverseで仮想空間を構築

Omniverseを使用して3次元仮想空間を構築した際の流れは下記の通りです。

 ・床、壁、天井などの3Dアセットを使用し、施設の建屋を構築

 ・天井の照明を追加

 ・施設内に棚や家具等のアセットを追加

 ・床のラインやキャスター等、詳細なアセットを追加

 ・棚の段ボール等を追加

 

これでマクニカ物流倉庫の仮想空間が完成しました。Omniverseのレンダリング技術により、複数の照明でもフォトリアルな仮想空間が再現できました。

データセットの作成

Omniverseで作成した仮想空間は、AIモデル生成に必要なデータセット画像を撮影する"スタジオ"のように利用することが可能です。

・Omniverse Replicatorのランダマイズ機能を活用すると、一つの撮影シーンから多様なバリエーションのデータセットを自動生成可能

  ー撮影シーンを定義するオブジェクトの位置、サイズ、色のパラメーターに加えてカメラアングルや光源条件など、様々なパラメーターをランダムに変化させることが可能です。

・Omniverse Replicatorは、このように撮影した画像に対して、教師データをペアにしたデータセット画像を自動生成可能

 

今回は、NVIDIA推奨のGPU環境を使用し、約10000枚のデータセット画像を数時間で自動生成できました。

AIモデルの学習

NVIDIA TAO ToolkitはAIモデルを生成するフレームワークで、AIモデルの入力処理から、データセットの指定、学習パラメーターの記述例、生成されたAIモデルをNVIDIA GPUで使用するための変換処理を含む一連のプロセスを含んだサンプルスクリプトが提供されています。

今回は、UNETを使用したイメージセグメンテーションのサンプル事例を参考にAIモデルを構築しました。作成したモデルは、この後Isaac ROSのイメージセグメンテーション サンプルプログラムに実装することを想定し、入力モデルにはIsaac ROSで使用可能な人物検知モデル(PeopleSemSegNet)を使用しました。

 

人物検知を行うAIモデルを、Omniverse Replicatorで生成したデータセットを使用し転移学習を行うことで、床を検知するAIモデルとして生成することができました。

AIモデルの実装(ロボットシミュレーション)

作成したマクニカ物流倉庫の仮想空間に2輪走行のロボットを配置して、ROS2で作成するプログラムから走行制御を行う環境を構築しました。

・ROS2のプログラム実行環境に、Isaac ROS イメージセグメンテーションのサンプルパッケージを追加

・使用するAIモデルを、先ほど作成した床を検知するAIモデルに置き換えて、ロボットシミュレーションを実行

 

下図の通り、作成した3次元の仮想環境内にロボットが配置され、ロボットに搭載されたステレオカメラ(StereoCamera:Right)の画像を取り出し、

Isaac ROS イメージセグメンテーションのAI処理を実行した結果、床部分が赤色で塗りつぶされたイメージセグメンテーション画像が確認できてました。

 

[補足] 本記事の実行例ではIsaac Sim(2022.2.1)、Isaas ROS(DP3.1)、TAO Toolkit(5.1.0)を使用しています。

第2話では、データセットの作成 を解説

本記事ではデータセットの生成、AIモデルの学習、AIモデルの実装(ロボットシミュレーション)の一連の流れをご紹介しましたが、いかがでしたでしょうか。

 

AIモデルのファイルをダウンロードし、ROS2シミュレーション環境でロボットシミュレーションを実行する事例は多く公開されております。

ただし、オリジナルのモデルにカスタマイズして実行する際に、様々なバリエーションのデータセット画像を生成し、更に”教師データとセットにする”というステップをハードルに感じられる方が多いです。

 

NVIDIA Omniverseのプラットフォームを活用することで、実際の現場で撮影することなく、データセット画像をフォトリアルな仮想空間内で自動生成することが可能です。

また、TAO Toolkitでの転移学習、Isaac ROSでのロボットシミュレーションまでのAI開発プロセスを短時間で何度も試行することができ、期待するAIモデルにカスタマイズするための追加データセット生成や学習期間を大幅に改善することが期待されます。是非本記事を参考にお試しいただければ幸いです。

次回第2話では、データセットの作成を深掘りして実行手順を詳しく解説します。

仮想空間上でのロボットシミュレーションをご検討の方は、ぜひお問い合わせください

マクニカではOmniverseを中心としたNVIDIAソフトウェアソリューションを提供し、ロボティクス関連企業のご支援にて多くの実績がございます。これからAI導入をご検討されていてお困りごとがありましたら、ぜひお問合せください。