2.拡張した手法

よって私は上記の2つの問題を解決する、従来の手法を拡張した新たな手法を提案します。本手法はやそれを補助するツールは、従来のデータやツールに情報を付加したものであるため、従来の手法により開発にも利用することが可能です。

第一の問題を解決するために、汎用ロボット開発における分野を以下の3つに分離します。

上記の通り、各工程を分離することによって、各分野に携わるためのハードルを下げ、また得意分野に集中できることによって、生産性を挙げることが可能です。

本手法でのロボット開発は、ロボットモデルを開発し、その仕様に合わせた動作パターンとコントローラを各開発者が開発し、それらをロボットモデルに登録するという流れになります。この際、コントローラはロボットを一つのオブジェクトとみなし、ロボットの持つ動作パターンを呼び出すという形で制御アルゴリズムを記述することが可能です。

動作パターンの仕様は今のところ仮の状態ですが、OpenHRPのサンプルであるPD制御のファイルを利用しています。

第二の問題を解決するために、本手法ではオブジェクト指向における”継承”の概念を導入しています。

本手法では、ロボットモデルを”骨組モデル”と”実装モデル”の二種類に区別しています。

骨組モデルは上記で述べた、”複数のロボット間で共通する部分”を表すモデルです。複数のモデルで共通するような、一般的なロボットの関節を持っています。よって、関節の構造に意味を持っています。例えば、”人間型”、”四足歩行型”などです。骨組モデルはそのままシミュレーションに利用することも可能ですが、本来は”複数のロボット間で共通する部分”の記述を省略するためのものであり、抽象的な部分があります。具体的には、その骨組モデルが実際に振る舞う動作パターンを登録することができません。そのかわり、その骨組モデルがおそらく出来るであろう、動作の一覧を持っています。例えば”人間型”の骨組モデルであれば、”歩く”、”手を使う”、”目で見る”などです。これらを本手法では”抽象動作パターン”と呼びます。これらはロボットの関節をどのように動かすかなどの具体的な情報は含まれておらず、あくまで動作の名称の情報しか保持していません。しかし、動作パターンはその名称の意味に沿う実装を行うべきです。

実装モデルは骨組モデルを継承したモデルです。よって、骨組モデルの持つ関節は全て実装モデルも持っています。また、実装モデルでは継承した骨組モデルの抽象動作パターンに動作パターンを登録することが可能です。これにより、実装モデルはモデルごとに独自の動作を行うことが可能です。また、骨組モデルの抽象動作パターンにない動作を行いたい場合は、”独自動作パターン”として新たな動作を追加することも可能です。

上記の手法は一見複雑で、面倒なだけのように思われますが、再利用性においては大きなメリットがあります。

まず第一に、一般的に共通する部分で構成される骨組モデルを継承することによって、モデルを開発する際に初めから作る必要がなくなります。

第二に、骨組モデルを継承したモデル同士は同じ関節構造を最低限持っているため、抽象動作パターンに登録する動作パターンを共有することが可能ということです。同様に、コントローラ内で利用するモデルのオブジェクトにも継承関係が定義されているため、コントローラも兄弟のモデル同士で共有することが可能です。

つまり、本手法を利用することによって、ロボットのモデルをはじめから開発する必要がなくなり、ロボットの振る舞いも新たに開発したいもの以外は再利用することが可能で、ロボットに載せるコントローラの高度なアルゴリズムの土台も最利用することが可能になるのです。これは再利用性を高めるだけではなく、企業同士の連携も容易になると言えます。

最後に、付加的な要素として、本手法ではクラウドの概念を取り入れています。その目的は、骨組モデルや実装モデルが動作パターンを登録していない抽象動作パターンを実行した時、クラウド上に登録されているその抽象動作パターンに対応する動作パターンを実行するというものです。これにより、動作パターンを登録できない骨組モデルは実際の振る舞いを持たないまま、シミュレーションの実行を行うことが可能となっています。骨組モデルは実際のロボットを開発する必要のない、コントローラ開発者のアルゴリズム検証に利用価値があります。

また、クラウドはもう一つの可能性を示すことが可能だと考えています。それは、ロボットがコンシューマーに提供された後に、動的に実行できる動作を拡張することが可能だという点です。今回は登録されている抽象動作パターンに登録がない場合のみクラウドから取得できるだけで、実装には至りませんでしたが、もしその抽象動作パターンも動的に拡張することができるようになった場合、それは瞬時に様々な行動を行うことが可能になることを表しています。例えば”人間型”のロボットに料理をお願いした時、本来抽象動作パターンに料理を行うものは含まれていませんが、クラウドから”人間型”の”料理”動作パターンを取得し、瞬時に料理を始めてくれる、というようなことも、ロボットごとにそれらの拡張サービスを提供していたのでは困難であるかもしれませんが、この継承の仕組みを利用すれば容易に実現可能であると考えられます。

以下が、私の手法を利用した場合の、ビジネス概要図です。

骨組モデル開発者:学会や研究者など←複数の企業が共有

実装モデル開発者:企業(実際に市場に出回るロボットを想定したもの)→モデル情報やライブラリを提供

コントローラ開発者:学生や研究者など←骨組モデルや実装モデル専用のライブラリを利用して開発する

動作パターン開発者:企業や研究者、学生など←骨組モデルや実装モデルの仕様は把握し作成する。