クラウドを活用してロボットの開発や運用、管理を行うクラウドロボティクス。連載第2回ではAWSのシニアアーキテクトがクラウドシミュレーターの種類や活用方法の紹介を行う。
前回の連載第1回ではロボティクスにおけるクラウド活用の現状を説明しました。第2回の今回は、ロボット開発に役立つクラウドシミュレーターの紹介と、その活用方法を解説していきます。
ロボット工学を学び、研究する人にとって、シミュレーターは大変有効です。シミュレーターを活用することで高価なロボット機体を都度購入する必要がなくなり、消耗も気にすることなく繰り返し利用し、さまざまなアルゴリズムの有効性を検証することができます。
ロボットアプリケーションの開発用シミュレーターは多く存在していますが、その中でも代表的なものをいくつか紹介しましょう。
ROSアプリケーション向けのオープンソースシミュレーターとしては、Open Roboticsが開発、管理する「Gazebo」がメジャーです。Gazeboは重力や摩擦力、慣性力といった物理現象も含めたシミュレーションが可能で、各種センサーやアクチュエータの振る舞いを再現するプラグイン類も充実しています。ROSのアプリケーションはノードというプログラムの集まりで構成されており、それぞれのノードがお互いにメッセージを交換し合うことで、全体としての大きなシステムを形づくります。Gazeboでロボットアプリケーションを動かす場合、ロボットのセンサーやアクチュエータなどと情報の交換を行うためのノードを、ハードウェアドライバからGazeboのプラグインへと置き換えます。こうすることでロボットアプリケーションのアルゴリズムはそのままに、シミュレーションワールドの中でロボットアプリケーションの振る舞いを試験できるようになります。
環境シミュレーションの実行にゲームエンジンを活用するシミュレーターもあります。ROS アプリケーション向けでは「Unity」を環境エンジンとして利用する「LGSVL Simulator」が代表例です。LGSVL Simulatorは特に屋外の自動運転など特定の利用シーンにおいてはGazebo以上の性能を発揮します。
また、ロボットアプリケーションの用途別にもさまざまな種類のシミュレーターが存在します。自動運転分野のシミュレーターとしては、先にあげたLGSVL Simulatorに加えて「CARLA」もよく知られています。研究や教育分野向けロボットの開発に適したシミュレーターとしては「webots」があります。シミュレーター内にさまざまなロボットのハードウェアモデルが用意されており、その振る舞いを独自のスクリプト言語で簡単にシミュレーションできるというユニークな仕様となっています。二足歩行ロボットなどの研究では、高度な物理シミュレーターも選択可能な「Choreonoid」がよく知られています。
ロボティクスの研究分野では既に広く利用されているシミュレーターですが、商用のロボットアプリケーション開発分野では事情が異なります。現実世界でロボットを動かして検証を重ねていくことに重きを置き、シミュレーターを活用した開発にはあまり意欲的には取り組んできませんでした。その理由としては、シミュレーター内での仮想ワールドの構築や、ロボットのシミュレーションモデル作成に手間がかかること、また、ロボットアプリケーションで扱う業務が複雑になる場合にシミュレーション上でそれらの業務シナリオを構築することが難しくなることがよく挙げられます。
ただ、実機での検証を主としたロボットアプリケーションを開発されている企業の担当者と会話をする中で、多くの方が共通の問題を抱えていることが分かりました。それは開発後の品質確認試験にかかる時間とコストです。ソフトウェアを変更する度に一通りの機能が正しく動作し、悪影響を起こしていないかを実機で確認するというのは非常に手間のかかる作業になっていました。
Copyright © ITmedia, Inc. All Rights Reserved.