ROSとフォトリアルなシミュレーター「Isaac Sim」を連携させる:ROSを使ってロスなくロボット開発(後編)(1/4 ページ)
ロボットの開発に広く利用されるようになっているロボット開発プラットフォーム「ROS(Robot Operating System)」の活用について解説する本連載。今回は、「ROSとシミュレーターの組み合わせ事例」をテーマに、ROSとフォトリアルなシミュレーター「Isaac Sim」の連携について具体的な手法を紹介する。
前編では「ROS」がオープンソースソフトウェアとしてどのように進化してきたのかを紹介した。また、中編ではROSの活用先として複数のシミュレーターとの連携について紹介した。【訂正あり】
ROSのシミュレーターは「Gazebo」が事実上の標準になってはいるが、ROSのブリッジ機能を備え、トピック間通信に対応しているツールであればシミュレーターとしての使用が可能だ。中編で紹介した「VTC on Unity」や「Omniverse Isaac Sim」は精細なレンダリング画像や物理シミュレーションが特徴だが、残念ながらROSのシミュレーターとしての活用報告はまだ少ないようだ。
本連載は、ROSについて以下の3部構成で解説している。
- 【前編】ロボット開発プラットフォームとしてのROS
- 【中編】ROSの活用シーンとしてのシミュレーターとの連携
- 【後編】ROSとシミュレーターの組み合わせ事例
後編に当たる今回は、「ROSとシミュレーターの組み合わせ事例」をテーマに、中編に続きNVIDIAのOmniverse Isaac Sim(以下、Isaac Sim)に焦点を当てて、実際に操作を進めながら活用例を紹介する。
シミュレーターとなるIsaac Simの環境構築
まずは、シミュレーターとなるIsaac Simの環境を整えていこう。
Isaac Simでは、フォトリアルな画像がリアルタイムで生成されるとともに、物理エンジンがGPUアクセラレーションに対応している。ROS topicの送受信にも部分的に対応しており、公式サンプルを環境に合わせて設定を変更するだけでROSとの連携が可能だ(現在はROS1のみ対応)。
Isaac Simは、Pythonでプログラムを作成することで詳細な操作が可能だが、今回はできるだけGUI操作のみでIsaac SimとROSを連携してみたい。
Isaac Simのインストール
では早速Isaac Simをインストールしよう。今回は以下の環境を使用する。
- サーバPC:Ubuntu18.04.5、Isaac Sim 2020.2.2 Early Access、Nucleus 2019.3A
- クライアント:Windows 10、Omniverse Kit Remote Client2020.2
なお、Isaac Simの動作環境やインストール方法についてはNVIDIAの公式ドキュメントを参照してほしい。
Kit Remote
Isaac Simの操作の大半は「Omniverse Kit Remote(以下、Kit Remote)」の画面を通じて行う。クライアントでKit Remoteのアプリケーションが起動すると次のような画面が表示されるはずだ。
- Kit Remoteの画面構成
- メニュー
- File/Edit/Createなどのメニュー
※)Isaac Roboticsにさまざまなサンプルが用意されている
- File/Edit/Createなどのメニュー
- ツール
- ビューポート操作用のツール(選択/移動/回転/再生)
※)オブジェクトの移動や回転は3D ギズモを通じて行う。3DツールのUnityやBlenderなどを使ったことがあれば理解は早いだろう
- ビューポート操作用のツール(選択/移動/回転/再生)
- ビューポート
- レンダリング画像の表示エリア
- 右クリックで視線方向の変更
- ALT+左クリックでビューの回転
- キーボード(W/A/S/D)+右クリックでカメラ画角の微調整
- 任意のオブジェクトを選択+キーボード(f)を押下でセンタリング
- レンダリング画像の表示エリア
- ステージ
- Stage/Layerなどのパネル
- モデルをツリー構造で一意表示(例 “/Xform/Cube/Cucbe_01”)
※)オブジェクトの名称、階層などが編集可能
- プロパティ
- PhysX properties/Detailsなどのパネル
※)選択したオブジェクトのプロパティはDetailsで編集可能
- PhysX properties/Detailsなどのパネル
- コンテンツブラウザ
- Content/Consoleなどのパネル
- パネルはメニューの「Window」から再表示可能
- メニュー
- ファイル階層構造
ContentにはOmniverseとThis PCという2つの階層がある。- Omniverse階層
Nucleusで管理されているファイル群を表示する
※)ここにはWebブラウザ経由でファイルの追加/削除が可能。だが、端末から直接ファイルにアクセスしても、一部編集できないファイルがあるので注意が必要だ - This PC階層
サーバPCのファイルシステムを表示する
※)サーバPCからファイルの追加、削除、編集が可能
- Omniverse階層
なお、詳細な操作方法についてはNVIDIAの公式ドキュメント「Layout Explained」を参照のこと。
Copyright © ITmedia, Inc. All Rights Reserved.