ROSとシミュレーターの連携が生み出す新たな可能性ROSを使ってロスなくロボット開発(中編)(4/5 ページ)

» 2021年02月25日 10時00分 公開
[富士ソフトMONOist]

ROSとシミュレーターの連携はどのように行うのか

 それでは、実際にROSとシミュレーターの連携をどのように行うのかを見ていこう。ここでは、先ほど紹介したIsaac Simを例として説明する。

Isaac Simの動作環境

 Isaac Simの動作環境は下表の通り。「GeForce RTX2070」以上のGPUボードを搭載し、OSとして「Ubuntu18.04」を組み込んだPCであれば動かせると考えてよいだろう。PCのスペックが不足している場合はクラウドサービスの「AWS」で動作させることもできる。

Isaac Simの動作環境 Isaac Simの動作環境(クリックで拡大) 出典:NVIDIA

 アプリケーションの起動方法にはネイティブと「Docker」の2つが用意されている(PCはネイティブとDockerの両方、AWSはDockerのみ対応)。どの起動方法でも機能に差異はないが、ここではローカルPCでのネイティブ起動を前提として説明する。

 Isaac Simのインストール方法についてはNVIDIAの公式ドキュメントを参照していただきたい。

Isaac Simのアプリケーション構成

 Isaac Simのアプリケーション構成は、以下の図の通りだ。

Isaac Simのアプリケーション構成 Isaac Simのアプリケーション構成(クリックで拡大)

 1つのシミュレーターを動かすために、シミュレーション環境のIsaac Sim、ファイル管理サーバの「Nucleus」、クライアントの「Omniverse Kit Remote(以下、Kit Remote)」という3つのアプリケーションを起動させる。煩雑に思えるが、これはレンダリングツールである「NVIDIA Omniverse」が他のツールと連携して動作をするのに必要な機能を切り分けたためと思われる。

 では、これら3つのアプリケーションを見ていこう。

Nucleus

 ファイル管理サーバ。port:3009を経由してWebブラウザからファイルの追加、削除、閲覧を行える。巨大なプロジェクトでは、アセットの作成とシミュレーター動作は別のグループに割り当てられることが多いため、ファイル管理とシミュレーターが分けられている。

Nucleusの操作画面 Nucleusの操作画面(クリックで拡大)

Isaac Sim

 物理エンジンの実行部と画像のレンダリングおよび通信を管理している。シミュレーションにAIを用いる場合は、Isaac Sim自体の機能やブリッジ機能などを用いての連携も可能だ。

Omniverse Kit Remote

 Isaac Simのフロントエンドである。仮想空間への物体の配置、プロパティ変更、ファイル読み書きなど、一般的な3DCGツールと同様な機能が備わっており、ユーザーが直接触れる機会が最も多いのがこのKit Remoteだろう。

Copyright © ITmedia, Inc. All Rights Reserved.