IPA


開発成果一覧へ

 



2006年度上期 未踏ソフトウェア創造事業  採択案件評価書

 


1.担当PM

   高田 浩和  (株式会社ルネサステクノロジ システムコア技術統括部 CPU開発第二部)


2.採択者氏名

開発代表者

片岡 慧 (東京大学大学院 情報理工学系研究科 修士1年)

共同開発者

なし


3.プロジェクト管理組織


   株式会社オープンテクノロジーズ


4.委託金支払額


  6,899,277


5.テーマ名


 マルチロボット管理のための協調フレームワークの開発

 


6.関連Webサイト


  なし


7.テーマ概要


 ロボット技術の高度な発展に伴い、現在のロボットプログラミングはより複雑になってきた。特に、高度なネットワーク技術をロボット間の協調動作に組み込むことは複雑であり、大きな労力を必要とする。しかし、現在はプログラムごとに記述せざるを得ない状況である。よって、複数ロボットの物理動作をともなう協調を行うことのできるソフトウェアが求められている。
 
本プロジェクトの目的は、プログラマの抽象的な命令に対し、独立した複数ロボット間で、どのロボットがどのように動作するのかを、ロボット間で解決する協調フレームワークを実現するものである。また、ユーザーはロボットの動作のルールを記述することで、ロボットの動作を変更することが可能である。
 
その検証として、移動可能なモバイルロボットに焦点を置き、「複数ロボットによる位置取りシステム」を協調フレームワークを用いて実現する。位置取りシステムとは協調フレームワークを基盤とし、ルール部分に位置取り機能を記述した物である。プログラマは範囲・目的といった抽象的な入力を、提供されたコマンドを用いてロボットシステムに投じるだけでロボットの動作が決定する。その入力を元に、どのロボットが何を行うのかを、プログラマーが設定したルールを元にロボット間で解決し、それぞれのロボットが最適な位置に移動する。抽象的な入力が行われた際、その命令はアドホックネットワークで結ばれたロボット達に伝わる。そして、各ロボットは記述されたルールに従って最適な移動先を決定する。位置取りシステムを協調フレームワークに準拠してカスタマイズすることで、サッカーロボットや、惑星探索機の連携、複数の掃除ロボット間の協調などが容易に実現可能となる。また、ロボットの動作のルールによっては様々な複数デバイス間の協調も可能となり、より高度なロボットソフトウェアの実現の礎となることを目指す。

 


8.採択理由


 複数のロボットを協調して動作させるためのフレームワークを構築しようという提案である。個々のロボットに動作を個別に指示するのではなく、指定したコマンドに基づいて協調フレームワークがインテリジェントに移動可能なロボットを制御し協調動作を行うようにするというもの。位置取りシステムのアルゴリズム改良だけでなく、無線接続されたロボット間のアドホックネットワーク通信技術への展開を目指しており、技術的にも有用で面白いと考えられるため採択した。今回の未踏プロジェクトでは実際にロボットを使って実証実験を行う。

 





9.開発目標


本プロジェクトにおける開発目標は以下のとおり。

● 協調フレームワークの開発によって、複数台のロボットのプログラミングを、1台のロボットのプログラミングの容易さと仕事効率に近づける。

● マルチロボット制御のための信頼性の高いアドホック・ワイヤレス・ネットワーク通信プロトコルについて検討する。

● 実際に無線通信モジュールを用いてアドホックネットワークを構築し、協調フレームワークの動作を検証 する。

 

 本プロジェクトでは、ワイヤレスネットワークでつながれた複数のロボットを協調動作させる、プログラマが意識せずにプログラミングできるフレームワークの提供を目的とする。現実に存在する複数のロボットを元に、フレームワークとしてどのようなロボット制御コマンド(マルチロボットコマンド)が必要とされるのか検証を行い、コマンドの実装を行った。

 


10.進捗概要


 未踏プロジェクトの下期開発期間(20066月から20072月)において、前半に無線通信モジュールを用いた通信制御プログラムの実装を、後半に位置取りシステムのための位置シミュレータ(Position Simulator)、および、マルチロボット管理ツール(PacketAnalyzer)を開発を行った。

 無線通信モジュールMOTEの入手に時間がかかったため(8月)、実際に無線通信モジュールを使用してのプログラム作成は予定よりも若干遅れたものの、ほぼ順調に開発を進めることができた。10月にはMOTE間の通信が確認でき、11月時点ではほぼ PacketAnalyzerと独自通信プロトコルを完成させることができている。

 途中、12月は体調をくずし、中間成果報告会に参加することができなかったが、その後の追い込みによって、厳しいスケジュールの中、ほぼ予定どおりに開発を進め、2月の最終成果報告会では協調フレームワークを完成させることができ、実際に無線通信モジュールを使用したネットワークを使ってデモンストレーションを行うことができた。

 


11.成果


 本プロジェクトでは、既存の様々なロボットを複数動作させた場合に必要になる命令を開発することに成功した。さらに、ロボットの通信に必要な、低消費電力・高信頼性・高速なワイヤレスネットワーク技術を開発した。本プロジェクトの成果は、本プロジェクトの提供するロボットの基本行動のインターフェースを実装することで、すぐにワイヤレスネットワークを利用したマルチロボットアプリケーションを作成することが可能となる。

 

 開発成果の特徴は以下のようなものとなっている。

● 組込み機器や、小さなモバイルロボットにも組み込むことが可能な、低消費電力でかつ軽量なシステムであること。

● アドホック・ワイヤレス・ネットワークが不安的なため、信頼性を向上させるために基盤となる無線通信技術の開発を行ったこと。

● 今回の開発では、Zigbee無線通信モジュールMOTEを採用したが、マルチロボット管理の協調フレームワークや無線通信プロトコルについては機種・機器に依存しない汎用的なものであり、幅広い応用が可能となっていること。

 

以下に、開発成果の詳細を示す。

1.マルチロボット管理のための協調フレームワーク: SYMROP, PacketAnalyzer

 フレームワークの構造は以下のようになる。今回のプロジェクトにて開発したソフトウェアは、マルチロボットフレームワークSYMROPと、ユーザープログラムとして開発した、マルチロボット管理ツールPacketAnalyzerの二つである。

 

 

(1)マルチロボットコマンド

 複数ロボットを協調させるために開発した命令について説明する。このコマンドを利用することで複数ロボットを協調動作させることが可能となる。

● Gather [Command ID 1]

    全ロボットを指定された場所(x,y)へ移動させる。

● Roll [Command ID 2]

    一台のロボットを指定された場所(x,y)へ移動させる。

● Carry [Command ID 3]

    一台のロボットを指定の場所(x1,y1)へ移動させ所定のアクションを行う。

    その後、次の場所(x2,y2)へ移動する。

● Disperse [Command ID 4]

    すべてのロボットをフィールド上に均等に分散させる。

    引数には、分散を続ける時間を取る。

    各ロボットは自分の担当領域が均等になるまで移動を続ける。

● Patrol [Command ID 5]

    Patrolは各ロボットが自分の担当領域内を巡回し活動を行うコマンド。

    担当領域は、Disperse等で決定される。

● Error [Command ID 6]

    各ロボットの行動をすべて中断し待機状態に戻す。

    各ロボットの同期を取る必要がある場合に利用する。

 

担当領域計算

 各ノードの担当領域は、VoronoiDiagramによって区切られた領域として表現される。Disperseコマンド内では、増分法を利用した、高速・軽量なVoronoi計算を行うことで、CPUに対する負荷を最小限に抑えることを可能としている。

 

移動ベクトル決定方法

 各ノードは周辺ノードの情報を利用し、均等に分散するための自分の移動ベクトルを決定する。計算式は次に表現される。

  TopSpeed: ロボットの出せる最高速度

  n :周辺にいるロボットの台数

  Area : ノードの領域

  e(I,j) : ロボットiからロボットjまでの単位ベクトル

 


 

(2)マルチロボット管理ツール: PacketAnalyzer

 PacketAnalyzerは、SYMROPを利用したユーザープログラムとして開発された、複数ロボットを管理、検証するためのプログラムである。

 

機能

● ロボットの位置・状態・通信範囲表示機能

● パケットの解析・表示・ログ機能

● 探索領域の表示機能

● マルチロボットコマンド送信機能

 

 


2.マルチロボット管理のための無線基盤技術の開発

 アドホックワイヤレスネットワークは不安定なため、信頼性を向上させるために我々は基盤となる無線通信技術の開発を行った。MOTEというZigBeeを用いた無線通信を行うデバイスを利用した。

 

(1)基本通信

 基本通信とは、ワイヤレス通信デバイスのパケットの送信方法についての最も基本的な技術である。本プロジェクトでは、信頼度に応じて三種類の通信を使い分けている。

● 一回送信(信頼度90%
パケットを一度だけ送る最も信頼度の低い送信。通信コストは最も小さい。

● 二回送信(信頼度99%
パケットを二度送る送信方法。信頼度は一回送信と比べ十分高くなる。

● 確認送信(信頼度100%
パケットを二回送った後に、送った先のノードからの確認パケットを待ち、確認パケットが帰ってこなかった場合には、パケットを再送する。信頼度がもっとも高い代わりに通信コストも最も大きくなる。

 

(2)アドホックネットワーク技術

 複数のノードをホップするような通信を行う場合、アドホックネットワーク技術が必要となる。本プロジェクトにおいて開発・使用したアドホックネットワーク技術は以下のようなものである。

● Beaconing

● Flooding

● Advanced AODV

 

Beaconing

 自分の通信範囲内のノードのみにパケットを送信する方法である。複数のノードをホップしないため、比較的大きい情報を通信することができる。

 

Flooding

 自分に届いたパケットを、他のすべてのノードに転送する通信方式である。この方法を用いることで、全ノードにパケットを送信することが可能となるが、すべてのパケットを転送するという方法上、効率は悪く、通信コストが大きくなる。

 

Advanced AODV

 既存のアドホックネットワーク技術として、AODV(Ad hoc On-Demand Distance Vector)プロトコルと呼ばれる効率の良い無線通信プロトコルが存在する。しかし、本プロジェクトが対象とするような非常に不安定なネットワークを対象とした場合、通常のAODVでは効率が悪く、通信コストが大きくなってしまう。そこで、既存のAODVを改良し、より安定して使用することができる新しい通信プロトコルAdvanced AODVを開発した。

 

● 特徴
一回ごとに確認通信を行うため、ネットワークの切断をいち早く察知することができる。確認通信を行うため、パケットが相手に届いたことが保証される。そのため、送信したパケットを、送信が完了するまで保持している必要が無く、メモリ領域を有効に活用することができる。

 

● 概略
Advanced AODV
のアルゴリズム概略を次に記す。

 

 

 

(3)フレームワーク用基本命令

 マルチロボットフレームワークのメッセージングを行う際に、メッセージのレイヤーを基本通信と明確に区別するため、フレームワーク用の基本命令を作成した。

● 位置情報命令

● メッセージ命令

 ここで、位置情報命令は位置情報を伝えるための命令、メッセージ命令は可変長のメッセージを伝えるための命令である。マルチロボット命令はこのメッセージ内に記述される。

 

3.その他のツール: Position Simulator, Position Cache

(1)Position Simulator

  移動するロボットを表現するために、各MOTE内でロボットの位置・通信範囲をシミュレートするプログラムを作成した。このシミュレータは現実のロボットに沿った物であり、ここで使用している移動関数を継承し実装することで実際にロボットを本プロジェクトのマルチロボットフレームワーク上で動作させることが可能となる。また、このPosition Simulatorを利用することで、移動するロボットプログラミングの開発をより効率的に行うことができるようになる。

 

(2)Position Cache

 ロボットは、周辺のロボットの出した位置情報ビーコンをキャッシュし、各計算で利用できるようになっている。また、古い位置情報は削除する。

 


12.プロジェクト評価


 複数のモバイルロボットを使って分散・並列処理をさせる場合に、いかにロボットを動かし、分担して一つの仕事をさせるかが大きな問題となってくる。インテリジェントなモバイルロボットを実現するための構成要素部品(高性能な組込み用マイクロプロセッサや、低消費電力な無線通信モジュールなど)についてはすでに市販の製品が入手可能な状況にある。。しかし、ロボット全体に対する仕事配分の問題や協調動作のためのフレームワークといったものは、まだ研究レベルでしか検討されておらず、いかに多数のロボットを効率良く動かし、スケーラブルに協調処理をさせるかという問題は今後大いに注目されてくる可能性がある。

 わかりやすく言えば、数台〜数十台程度ならば個別にプログラミングすることは可能かもしれないが、もしこれが数千台から数万台の規模になれば、とたんに個々のロボットに指令を与えて動作させるというこれまでの集中制御型のアプローチは破綻するということである。

 協調フレームワークを構築し、個別にロボットをプログラミングするのではなく、フレームワークにコマンドを投げるだけでロボット全体を協調して動かすという考え方が、こうした問題に一つのブレークスルーをもたらすものと期待できる。

 

 今回のプロジェクトでは、このようなフレームワークを構築する上での重要な要素技術である、アドホックネットワーク技術についても焦点をあてた。信頼性の高い通信プロトコルがモバイルロボット間の相互通信に必要不可欠となるためである。市販のZigbee通信モジュールを用いた実験結果をもとに、より信頼性を高めるた独自の通信プロトコルを開発したことは大きな成果の一つである。

 今回の開発では、マルチロボットの位置取りシステム・シミュレータを開発することで、ほぼ当初の予定どおり、マルチロボット協調フレームワークの動作検証までを行うことができた。開発者の片岡氏については、無線通信モジュールの使用に関してはいろいろと苦労も多かったと思われるが、大学ロボコンにおいて優勝チームを率いて活躍した経験を生かし、周囲の協力を得ながら主体的に開発を進めることができたことは素晴らしい。途中、体調をくずした状況もあったが、最後まで努力し、目標であった協調フレームワークの一応の完成をみたことは評価できる。

 

 今回の開発成果がただちにマルチロボット協調フレームワークの実用化につながるわけではないが、無線通信で接続されたマルチロボットの協調フレームワークを実際に構築することで、フレームワークを評価できる環境は整ったと考えられる。今後は、無線通信プロトコルの検討を行って得られた知見をもとに、アドホックネットワーク技術やネットワークアプリケーションのフレームワークなどに関して、さらなる研究の継続・発展を期待したい。

 


13.今後の課題


 未踏プロジェクトの開発期間を終え、無線通信モジュールを使った高信頼なアドホックネットワークを構築するための基盤技術の検討ができた。マルチロボット管理のための協調フレームワークについても、その基本動作を確認することができたが、残念ながら期間内には実際にモバイルロボットに適用し、実証実験を行うところにまでは至らなかった。フレームワークの定量的な性能評価とチューニングは今後の課題と思われる。

 

 今後の具体的な課題について、以下に列挙する。

● フレームワーク関数の拡張性の向上とライブラリ化。

● サンプルプログラムの開発と公開。

● モバイルロボットの分散・協調並列処理に基づくアプリケーションについての具体的な応用の検討。

● 具体的なアプリケーションを想定した、協調フレームワークのさらなるブラッシュアップとチューニング。

● 実際にモバイルロボットに適用した場合の実証実験と性能評価。

 




  ページトップへ   

 

 

 


  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004