ROSとシミュレーターの連携が生み出す新たな可能性:ROSを使ってロスなくロボット開発(中編)(2/5 ページ)
ロボットの開発に広く利用されるようになっているロボット開発プラットフォーム「ROS(Robot Operating System)」の活用について解説する本連載。今回は、「ROSの活用シーンとしてのシミュレーターとの連携」をテーマに、ロボット開発におけるシミュレーターの重要性や、ROSと連携可能なシミュレーターなどについて解説する。
シミュレーターの役割
ROSとシミュレーターを連携させることにより、先述した「物体認識機能」「パスプラン生成機能」「把持力の調整と摩擦、破損」の調整作業において、次のようなことが可能になる。
1.物体認識機能
工場の生産ラインの画像データは、実際に工場が完成するまで取得することができない。このため、その生産ラインへの適用を検討している画像認識アルゴリズムの開発工程では、レイアウトの似た工場でサンプル画像を取得したり、使用する画像データの撮影範囲と同じセットを実験室内に組み立てたりといった対応が必要だった。
しかし、シミュレーター内に工場の生産ラインを再現し、画像データを取得するカメラと同じ位置、画角でレンダリングを行うことで、物体認識に用いる画像を生成することが可能となる。
シミュレーターの設定によって、一般的なRGBの画像データだけでなく、LiDARを用いた点群データや、2次元の深度画像データ(RGB-D)などさまざまなデータも生成できる。さらにCGの場合は、物体位置の「正解(Ground Truth)」も同時に生成できるため、より柔軟に、さまざまな条件でテストできる。生成された画像データはAI開発用のデータとしても利用可能だ。
ロボットの物体認識機能におけるシミュレーターの活用イメージ。NVIDIAの「Isaac Sim」を用いて、カメラ画像とGround Truthのデータを生成しており、AI開発用の教師データとして利用できる(クリックで拡大) 出典:NVIDIA
2.パスプラン生成機能
アームロボットの付近には、把持対象以外にもさまざまなアセット(物品)が存在する。ロボット取り付け台や周辺の壁面、台の凹凸、把持対象以外の物品、あるいは作業者などである。
モーションプランのモジュールには、障害物回避のアルゴリズムが含まれていることが多く、回避機能を組み込むだけであれば実機がなくても容易である。ただし、衝突については、安全性やメンテナンスに直結するためさまざまな条件下でテストする必要である。
しかし、実機を用いた衝突テストは高コストになりがちだ。シミュレーターを用いた仮想空間でのテストを活用すれば、実機テストを最小限の回数で済ませられるだろう。
3.把持力の調整と摩擦、破損
アームロボットの把持は、単にロボットハンドの指先の間隔を変更するだけなので、プログラム作成の難易度は高くない。しかし、把持対象にはジュースの缶や段ボール箱など、容易に壊れるものもあり、また、ハンド移動の遠心力を考慮しながら、滑り落ちず、壊れないような力加減での把持力の調整を机上で計算することは困難だろう。
摩擦や破損限界などは、シミュレーターを用いても完全に再現することは難しい。とはいえ、実機テストの前に概要をつかむ用途であれば十分に機能すると考えられる。
ROSと連携可能なシミュレーター
Gazebo
ROSのシミュレーターとしてはGazeboが広く用いられている。Gazeboは、ROSパッケージに内包されているため、通信、ロボットモデルの共有、周辺機器の取り扱いなどにおいてROSとの連携が容易である。
例として、Gazeboを使って、ROS1、ROS2に対応するロボットプラットフォーム「TurtleBot3」を見てみよう。
Gazeboには、シミュレーター上のロボットに走行コマンドを送る「turtlebot3_teleop」というパッケージが用意されている。シミュレーター上のカメラや測距センサーの情報はROSトピックとしてpublishされるため、RVizでの可視化も容易である。
これら複雑な情報の送受信がROSと一体化して記述できることが、Gazeboの大きな利点であろう。
ROSのシミュレーターとして、Gazeboは圧倒的なシェアを持っているが、レンダリングがフォトリアルでないため、ゲームや映画のリアルなCGを見慣れた層には物足りなく感じられることもあるようだ。このためGazebo以外のシミュレーターを模索する動きもある。
Copyright © ITmedia, Inc. All Rights Reserved.