ROSとフォトリアルなシミュレーター「Isaac Sim」を連携させる:ROSを使ってロスなくロボット開発(後編)(4/4 ページ)
ロボットの開発に広く利用されるようになっているロボット開発プラットフォーム「ROS(Robot Operating System)」の活用について解説する本連載。今回は、「ROSとシミュレーターの組み合わせ事例」をテーマに、ROSとフォトリアルなシミュレーター「Isaac Sim」の連携について具体的な手法を紹介する。
ROS_Bridgeで提供されるROSトピック
Isaac Simが対応しているROSトピックは他にもある。そのいくつかを紹介しておこう。いずれもROSモジュール配置、オブジェクト連携という共通の手順で実行できる。
Cameraモジュール
ROSとシミュレーターを連動させて、アームロボットの物体認識に活用する方法を紹介したが、Isaac Simのシミュレーション画像をROS側で使用できるROS_Cameraモジュールも用意されている。
- メニューから“Create>ROS>Camera”を選択。StageにROS_Cameraオブジェクトが追加される
- ROS_Cameraオブジェクトを選択した状態で“Details”タブの“Other>rgbEnabled”にチェックを入れる
- ツールから再生をクリック。ビューポートと同じ画像が“/rgb”トピックとしてpublishされる。“/depth”情報をpublishしてRVizの「Image」で可視化できる他、セグメンテーションやラベルも出力することができる
【訂正】ROS_Cameraモジュールの利用プロセスに関する説明に不足があったので項目2.を追加しました
LiDARモジュール
レーザー距離センサーであるLiDARのシミュレーションとROSトピックのpublishができる。
- メニューから“Create>Isaac>Sensor>Lidar”を選択。ステージにLidarオブジェクトが追加される
※)Lidarシミュレーションを行うオブジェクト - メニューから“Create>Isaac>ROS>Lidar”を選択する。ステージにROS_Lidarオブジェクトが追加される
※)ROSトピックをpublishするオブジェクト - Stageで「Lidar」を選択し、Detailsで“drawLidarLines”にチェックを入力。レーザーの線が描画される。3Dギズモで移動可能で、アームロボットのパーツの子階層に入れると動きが連動する。RVizの「LaserScan」で可視化できる
シミュレーションの活用
Isaac Simは、ROS_Bridgeを使用することで、GUIだけで操作できる簡単なROS連携を行えるのはここまで紹介した通りだ。さらに、Pythonでプログラムを作成することもでき、「MoveIt!」経由でピッキングを行ったり、「LiDAR SLAM」と連携してマップを作成したりといった応用も可能である。リアルなレンダリングを生かしてVisual SLAM用の動画を生成するなどの用途も考えられる。
ROSはトピックの疎結合で構成しているため、ロボットへの入出力トピックをつなぐことができればシミュレーターの変更もそれほど困難ではない。Isaac Simのような、シミュレーターとしてのレンダリングの美しさや物理エンジンの精細さなどさまざまな特徴を生かすことができれば、シミュレーションの応用範囲を拡大できるだろう。
最後に
リリースから10年が経過し、ROSは研究機関や製造、商用分野まで幅広く活用されるプラットフォームに成長した。用途の多様化に伴い、シミュレーターも多彩な機能が求められるようになるだろう。Gazeboが多機能化する、用途に特化したシミュレーターが登場する、などさまざまな可能性が考えられる。
本連載で紹介したように、ROS対応のシミュレーターは複数登場している。疎結合で構成されているためシミュレーターを変更できるというROSの強みを、ぜひ体験していただきたい。(連載完)
筆者プロフィール
富士ソフト AI・ロボット開発 R&Dチーム
富士ソフトでAI・ロボット開発の調査研究を主務として、最新技術の調査・社内外へのセミナー等に対応し、AI・ロボット開発の最新技術の習得および普及のため活動している。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「ROSを使ってロスなくロボット開発」バックナンバー
- ロボット開発プラットフォーム「ROS」はどのように進化してきたのか
ロボットの開発に広く利用されるようになっているロボット開発プラットフォーム「ROS(Robot Operating System)」の活用について解説する本連載。今回は、ROSがオープンソースソフトウェアとしてどのように進化してきたのについて紹介する。 - ROSとシミュレーターの連携が生み出す新たな可能性
ロボットの開発に広く利用されるようになっているロボット開発プラットフォーム「ROS(Robot Operating System)」の活用について解説する本連載。今回は、「ROSの活用シーンとしてのシミュレーターとの連携」をテーマに、ロボット開発におけるシミュレーターの重要性や、ROSと連携可能なシミュレーターなどについて解説する。 - ロボット開発で注目される「ROS」(Robot Operating System)とは何か
ロボットの話題を聞くことが増えたが、判断と制御、駆動を備えたロボットを作るのはかなり骨が折れる。その負担を軽減するフレームワークが「ROS」(Robot Operating System)だ。 - ロボットに使われる分散処理、なぜ「ROS」が好まれるのか
ロボットの制御には集中管理よりも分散処理の方が都合が良く、さまざまなものが登場しているが、その中で一番有名なのが「ROS(Robot Operating System)」である。ではなぜROSが有名なのか。 - ROSを使う手順、パッケージとシミュレータの活用
ロボット開発に有用とされるROSだが、習得には対応ロボットを入手した方が手っ取り早い。利用開始までの手順と、併用したいツールやデバッガも紹介する。