1.開発の背景

本ツールの手法は、将来、我々の社会に登場してくるでろう、複数の行動を持つ汎用的なロボットの開発を拡張するものです。

RT-Middlewareを利用してロボット開発を行う場合、OpenHRPを利用した動力学レベルでのシミュレーションが可能です。これにより、ロボットの動作を実機で確認する作業回数が減り、開発に必要となるコストの削減が期待できます。その他にも様々なフレームワークを利用することによって、目的に応じた効率の良い開発ができることがRT-Middlewareによる開発のメリットであると言えます。

OpenHRPによるシミュレーションでは、”ロボットモデル”を作成し、環境モデルや重力、実行周期などの”シミュレーション世界情報”を設定し、”コントローラ”と呼ばれる、ロボットモデルに搭載するRTコンポーネントを作成・登録し、シミュレーションを実行します。ロボットが実世界でどう動作するかは、重力や自身以外の物体などの外的要因を除けば、すべてコントローラによって決定されます。

このコントローラはRTCコンポーネントとして実装します。すなわち、単位時間毎にループするonExecute関数内に単位時間ごとの処理を書き込みます。具体的には、単位時間ごとにシミュレーション上のロボットの各関節の各要素に対応するポート配列に対し、関節角度度やトルクを送信します。

第一の問題は、この単位時間が数万分の1秒だということです。このようなプログラミング方法では、状況によって複数の動作から選択するようなロボットの高度な制御アルゴリズムを記述することに向いていません。また、高度な制御アルゴリズムを記述する開発者は、機構学も熟知している必要があり、プログラミングやアルゴリズムが得意なソフトウェア屋の活躍を妨げる可能性があります。また、ロボットモデルにはモデリング技術が必要になってきますので、この高度なアルゴリズム(コントローラ内で記述する動作選択)、機構学(コントローラ内で記述するロボットの動作)、モデリング技術(ロボットモデルの開発)は本来分離すべきであり、また分離することで各分野に携われる開発者のハードルを下げ、同時に生産性を高めることが可能です。

第二の問題として、再利用性の問題が挙げられます。上記の通り、シミュレーションの実行にはロボットモデルとコントローラが必要ですが、新たなロボットを作成する場合、ロボットモデルを新たに作成する必要があります。従来のロボットであれば当然のように感じられますが、汎用的なロボットとなると、様々な行動に対応する必要があるため、構造にも複数のロボット間で共通する部分が存在する可能性が高いと考えられます。例えば”人間型ロボット”、”4足歩行ロボット”などです。これを各ロボットで最初から(あるいは他のロボットモデルから記述をコピーして)作成することも可能ですが、それ自体効率の悪い作業です。同様に、コントローラに記述したロボットのコントローラ(動作)も、そのロボットの関節に依存しているため、新たなロボットに利用することは困難です。これら汎用的なロボット開発に関してのみ言えば、RT-Middlewareにおける再利用性の恩恵を受けることができていません