それでは、実際にROSとシミュレーターの連携をどのように行うのかを見ていこう。ここでは、先ほど紹介したIsaac Simを例として説明する。
Isaac Simの動作環境は下表の通り。「GeForce RTX2070」以上のGPUボードを搭載し、OSとして「Ubuntu18.04」を組み込んだPCであれば動かせると考えてよいだろう。PCのスペックが不足している場合はクラウドサービスの「AWS」で動作させることもできる。
アプリケーションの起動方法にはネイティブと「Docker」の2つが用意されている(PCはネイティブとDockerの両方、AWSはDockerのみ対応)。どの起動方法でも機能に差異はないが、ここではローカルPCでのネイティブ起動を前提として説明する。
Isaac Simのインストール方法についてはNVIDIAの公式ドキュメントを参照していただきたい。
Isaac Simのアプリケーション構成は、以下の図の通りだ。
1つのシミュレーターを動かすために、シミュレーション環境のIsaac Sim、ファイル管理サーバの「Nucleus」、クライアントの「Omniverse Kit Remote(以下、Kit Remote)」という3つのアプリケーションを起動させる。煩雑に思えるが、これはレンダリングツールである「NVIDIA Omniverse」が他のツールと連携して動作をするのに必要な機能を切り分けたためと思われる。
では、これら3つのアプリケーションを見ていこう。
ファイル管理サーバ。port:3009を経由してWebブラウザからファイルの追加、削除、閲覧を行える。巨大なプロジェクトでは、アセットの作成とシミュレーター動作は別のグループに割り当てられることが多いため、ファイル管理とシミュレーターが分けられている。
物理エンジンの実行部と画像のレンダリングおよび通信を管理している。シミュレーションにAIを用いる場合は、Isaac Sim自体の機能やブリッジ機能などを用いての連携も可能だ。
Isaac Simのフロントエンドである。仮想空間への物体の配置、プロパティ変更、ファイル読み書きなど、一般的な3DCGツールと同様な機能が備わっており、ユーザーが直接触れる機会が最も多いのがこのKit Remoteだろう。
Copyright © ITmedia, Inc. All Rights Reserved.