IPA


開発成果一覧へ





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


 



1.担当PM

   原田 康徳 (NTT コミュニケーション科学基礎研究所 主任研究員)



2.採択者氏名


開発代表者

西野 順二 (電気通信大学 電気通信学部 システム工学科 助手)

共同開発者

久保 長徳 (仁愛大学 人間学部 コミュニケーション学科 助手)
下羅 弘樹 (独立行政法人 防災科学技術研究所 地震フロンティア研究センター 川崎ラボラトリー 研究員)
中島 智晴 (大阪府立大学大学院 工学研究科 助教授)



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


  NTT出版株式会社



4.委託金支払額


  4,903,667



5.テーマ名


  バーチャルサッカーロボット作成キットOZEDの開発



6.関連Webサイト


  http://ozed.sourceforge.jp/



7.テーマ概要


 
本プロジェクトでは、RoboCupサッカーエージェントを手軽に構築するための、ruby/soccerライブラリ、直観的な「このへんファジィ推論システム」とそのビジュアルなルールエディタ、サンプルルールの4つを新規に開発した。さらにRoboCupバーチャルサッカー環境及び、相手・仲間プレイヤーのバイナリを構成した上で、それらを起動するランチャーを作成し、すべてを統合して「バーチャルサッカーロボット作成キットOZED」として開発した。



8.採択理由


 
中高生を対象にロボカップを題材としたプログラミング環境を提供する.また,独自のビジュアルプログラミング環境を構築する点も興味深い.システムの普及までも考慮した開発をして欲しい.



9.開発目標


 本プロジェクトは、理系研究者はもちろんのこと、中高生から大人までが手軽にバーチャルサッカーロボットを作るキットの開発を目標とした。
 RoboCupは自律ロボットによるサッカーの国際大会であり、そのうちのシミュレーションリーグはバーチャルサッカーロボットによる部門である。実際のサッカーロボットは費用も多額であり、シミュレーションリーグも準備が繁雑でこれまでは大学院生が中心となり、研究を行ってきた。しかし、バーチャルサッカーであれば、高性能化した昨今の家庭用のコンピュータでも十分実行でき、中高生が学校や家庭でバーチャルロボットを作って楽しむことも原理上は可能である。今後のIT/RT(ロボットテクノロジー)技術の発展のためにも、中高生がロボットのアルゴリズムを楽しみながら触れてみることは有意義である。
 しかし、これまでの問題点は、バーチャルロボットとはいっても、ネットワーク通信、環境分析、状態認識、意志決定など多々の複雑な部品が必要であり、そのプログラムは数万行に及ぶため、サンプルを持ってきたとしても一から始めるのには大きな負担が掛かる点にあった。また、基本環境であるサッカーサーバはフリーソフトとして公開されているものの、環境にあわせたコンパイルのために幾分かの調整が必要であり、これも大きな負担となっていた。実際、大学生、大学院生の課題として与えてもなかなか遂行できないのが実情である。
 本プロジェクトでは、バーチャルサッカーロボットの基礎部品や、環境に合わせたバーチャルサッカー場を提供する、バーチャルロボット作成キットを開発・公開して、大学生はもちろん、中高生でもRoboCupを楽しみながら触れることができるようにすることが目的である。



10.進捗概要


 本プロジェクトでは、RoboCupサッカーシミュレーションにおけるバーチャルサッカーロボットをかんたんに作る上で大きな二つの障害、すなわち、サッカーロボットに必要な細やかで長大なプログラミングと、煩わしいサッカーサーバ環境の構築を解決するため、これらを支援した開発キット OZED を構築した。
 OZEDでは、通信や基礎的な認識にはカバーをした上で、「このへんファジィ」という位置に基づくファジィ推論システムをロボットの意志決定に新たに実装・導入することで、直観的で分かりやすいバーチャルサッカーロボット構築キットを開発した。このシステムを用いることで、他のロボットとの関係の把握や表現の方法、サッカーロボットのルールベースによる意志決定のしくみを実験しながら理解できることを目指した。
 また内部システムとして、通信部、分析部、認識部、行動部をすべて国産のオブジェクト指向言語である ruby を用いて実装した。これらのうち、特に行動部をライブラリとして用いることで、ルールベースによらないサッカーロボットの意志決定プログラムの構築も支援する。



11.成果


 1.全体のシステム構成
 開発したOZEDシステムの全体構成を図(4-1)に示す。大きく、ユーザシステム部分とサッカーシステム部分に分かれる。
 ユーザシステム部は、ruby/soccerライブラリ、「このへんファジィ」推論システム、ビジュアルエディタ、行動ルールとそのサンプルの4部分からなる。各部分の詳細は2.以降に記すが、この4部分は設計から構築まで本プロジェクト中に行ったものである。
 サッカーシステム部は、既存のRoboCupサッカーシミュレーションサーバを多くの環境に適応したバイナリとして用意し、初心者でも簡単に利用できるようにした配布用のレディメイドキットである。同じくサッカーの試合に必須である相手チーム及び、仲間チームも同様に既存のチームのバイナリを用意した。本プロジェクトでは、MacOSなど複数のOS環境に適合したサーバとプレイヤ各バイナリの調整と構築、ランチャインタフェースの開発、の2点を行った。これにより、ユーザシステムで作ったバーチャルサッカーロボットをかんたんに試合させ、試すことのできる環境を提供した。

 

 

 2.ruby/soccerライブラリ開発
 本プロジェクトで新たに設計したruby/soccerライブラリの構成を図(4-2)に示す。大きく、通信部、ワールドモデル部、行動ライブラリ、行動実行部に分かれる。すべて rubyによって記述されている。
 通信(Network/Communicatin Control)およびワールドモデル(World Model)は、 それぞれ、サッカーサーバとの通信、バーチャルサッカー場における状況の分析をおこなう。

 

 

 バーチャルサッカーロボットの基幹部分であるとともに、繁雑で精密な処理が必要な部分である一方で、個性あるエージェント作成時には変更の少ない部分である。これらを提供することで、rubyで記述されたサッカーエージェントの構築が大幅に容易なものになる。
 行動ライブラリ(Behavior actions)では、エージェントの移動、ボール追従、ボールキック、パス、ボールキープ、シュート、センタリング、クリア、ポジショニングなど中レベルの知的なマクロ行動を実現する。これらのマクロ行動をこのへんファジィ推論と組み合わせることで、チームポジションプレイなどの高度な行動決定と実行を実現することができる。

 

 3.このへんファジィ推論エンジンの開発
 サッカーロボットの行動決定を位置に基づいて表記・実現するこのへんファジィの原理を図(4-3)に示す。サッカーフィールド上のプレイヤ相互やボールの位置関係によって、プレイヤーの行動を切替える推論を行う。位置は厳密でなく「このへん」と言った曖昧な概念のため、図(4-3-2)に示した2次元上のファジィ集合を用いて表現する。ビジュアルエディタで「このへん」とおおまかに決めた範囲が、内部ではファジィ集合として管理・演算される。これにより、「ゴールに近いこのへんに自分がきたらシュート」や、「仲間がこのへんにいたらパス」のような直観的な行動の設計と構築ができる。
 本プロジェクトで構築した推論部の構成は、推論実行部とファジィ集合操作部の二つからなる。推論のための行動規則データは一つのファジィルールファイルと、「このへん」を表す複数のファジィ集合ファイルからなる。これらのデータファイルは、エディタの出力から専用のトランスレータを介して自動的に生成され、エディタ上での行動の編集を反映することができる。

 

 

 4.サッカー行動規則プロトタイプの開発
 位置に基づく行動決定や、そもそもサッカーエージェントの開発経験の無い初心者にとっては、行動規則を作ることは新しい概念の獲得となる。そこで、学習用キットとして成り立たせるため、行動規則プロトタイプ(サンプル)を用意した。ユーザはこれらのサンプルを見ることで、行動規則の作り方を学ぶことができるようにした。

 行動規則のサンプルとして基本的な行動を学べる以下の6種類7プレイヤを同梱した。

 

 

 5.ファジィ命題及びルールビジュアルエディタの開発
 本プロジェクトで開発したこのへんファジィ規則のビジュアルエディタ rule-editor の画面を図(4-5)に示す。ユーザ画面は、ルールパレット、条件パレット、行動パレットと編集ワークエリアの4つの部分からなる。
 サッカーフィールドを背景にしたエディタを用意することで、このへんファジィによる「このへんで」という条件を直観的に理解できるようになっている。条件(predicate)パレットを一つ選ぶと、編集ワークエリアに拡大表示され、マウスを用いて「このへん」という領域を指定する。右クリックにより、ボール、自分、仲間、敵、の四種類を選択することができ、それぞれを示す色に領域が変化する。右側のルール(rule)パレットからルールを一つ選ぶと、編集ワークエリアに拡大表示される。条件と行動をそれぞれ選ぶと、「このへん」に「○○が」いたら、「行動」する、というルールが構成される。ルールの編集結果はファイルに保存され、次回起動時に読み込むことで再編集が可能である。


 

 6.各種環境対応
 6.1 UNIX環境適用ライブラリの開発
 6.2 MacOSX環境適用ライブラリの開発
 6.3 Windows環境適用ライブラリの開発

 ターゲットユーザである中高生が持っているであろう、Mac、Windowsといったの複数のOS環境に対応することを目指した。Windowsが動く多くのコンピュータでは、Linuxを導入する可能性も高いことから、Linux(KNOPPIX)の対応も進めた。
 まず、ruby/soccerおよびこのへんファジィシステムはrubyで開発されており、これらの全てのプラットホームで稼働する。ビジュアルエディタは環境依存性の高いグラフィック環境を8.の環境非依存抽象化GUIを開発して用いることで対応している。
 また、9.のサッカーサーバサポート部分と10.相手・仲間チームサポート機能の組み込みにおいても、各OS環境におけるバイナリ作成が必要であるので、これに対応した。なお、Windowsネイティブ環境用の安定したサッカーサーバのバイナリ構築と調整は期間内では対応しなかった。


 7.1CDキットパッケージングの構築
 本プロジェクトで開発・構築したセットを、配布可能なCD一枚におさまるように調整した。これ一つでかんたんに配布し使えるようにした。MacOSX版では、packageをもちいて自動インストールできるようにし、Linux版ではそのままで本OZEDシステムを起動できるようになっている。
 パッケージングにあたって、サッカーサーバと対戦相手(9.参照)や、rule-editorは環境ごとにあらかじめバイナリを構築した。この際できるかぎり標準の環境で実行できるように非標準のダイナミックライブラリを別に必要としないよう、スタティックリンクに修正するなどした。このようにパッケージしたものも機能上の変更はない。

 8.環境非依存抽象化GUIライブラリの開発
 当初計画の多OS対応を進めるため、ビジュアルエディタで必要となるグラフィック処理部分、GUI構築部分について、まず環境非依存抽象化GUIライブラリ(Abstruct-GUI)を開発した。
 本ライブラリは、グラフィックライブラリとしてgtk+, qt, X11のすべてあるいはいずれかを持つ環境でこれらを統合し、同じアプリケーションソースでどのライブラリにも対応できるような抽象化ライブラリとなっている。これは、OS、グラフィック環境ごとにリンク用ライブラリとして構築した。

 

 9.サッカーサーバサポート機能の組み込み
 RoboCupの公式サッカーサーバを各環境で必要に応じて設定を行い、レディメイドのバイナリとした。また、本OZEDシステムですぐに使用できるようにした、コンフィギュレーションチューニングを行ったものをキットの一部として同梱した。起動画面を図(4-9)に示す。


 

 10.相手・仲間チームサポート機能の組み込み
 対戦相手チーム、および仲間チームを各環境で必要な設定を行い、レディメイドのバイナリとした。また、本OZEDシステムですぐに使用できるようにした、コンフィギュレーションチューニングを行ったものを、キットの一部として同梱した。これによって、バーチャルサッカーロボットを自分の気に入ったポジション一つだけ作ることで、他の既成プレイヤと合わせて試合の体験ができる。
 本プロジェクトで構築したOZEDのバージョンでは、ユーザが1台のコンピュータで利用することを想定して、5対5の少人数サッカーを標準とした。RoboCupの公式大会に参加した経験のある、Puppets、OPU-hana、UvATrilearn(base)の3チームを組み込んだ。


 11.結果公開・配布およびユーザ評価テストのためのウェブ開発
 サポートウェブを開発し、ユーザ相互がプレイヤの交換をすることにより、ノウハウの伝達や、競技心の向上、開発意欲の増大を促進するようにした。
 開発したウェブコンテンツの公開はhttp://ozed.sourceforge.jp/から近日中に行う予定である。



12.プロジェクト評価


 オリジナリティの主張と利便性を追及したパッケージングという欲張りなシステムが開発された.多くのユーザに使われるようになり,非常によいプラットフォームとなるだろう.
  1.アピールポイント
 本成果のアピールポイントは次の3つで、だれでも、すぐに、バーチャルサッカーロボットを作成できる点である。

 ○バーチャルサッカーロボットをかんたんに作成・改造できる
 ビジュアルエディタを用いて、位置と関連づけたサッカーロボットの行動規則を作成し、専用のランチャーを使って
試合に参加させることができる

 ○RoboCupサッカーを自宅のコンピュータでかんたんに実行できる
 バーチャルサッカーのための様々な準備を必要とせず、コンピュータ管理やプログラミングの専門知識が無くても、
自分で作ったバーチャルサッカーロボットを試してみる事ができる。

 ○rubyを使ったサッカーエージェント作成ができる
 プログラミングに詳しくなれば、内部のruby/soccerライブラリを直接利用して、比較的容易に自分のサッカー
プレイヤアルゴリズムを実装することができる。

 2.既存技術との比較
 これまでRoboCupサッカーシミュレーションのバーチャルロボットを作るためには、公開されたチームのプログラムを用いていた。これらを使いこなすためには、CやC++といったコンパイラ言語を用い、長大なサンプルプログラムを理解しなければならなかった。OZEDキットでは、ビジュアルな位置との関連を持ったルールベースシステムと、スクリプト言語rubyによるライブラリの二段構成を取ることで、素早いテンポでエージェント開発の骨子を理解しやすく、また、より高度な利用を望むユーザのプログラミング技術の習得にも役立つものとなった。



13.今後の課題


 本プロジェクトで開発した、エージェント作成キットは、ビジュアルで直観的なルール記述によってかんたんにバーチャルサッカーサッカーロボットを作れるものとなった。本キットの現バージョンはフリーソフトとして公開する。
 使用上で必要なプログラムやデータを11.成果の7で述べたようにCD1枚に収めているため、興味を持ったユーザがすぐに利用することができ、本システムの普及を加速するものと期待している。
 今後、当面の課題として、本キットをベースとしたバーチャルロボットサッカーの大会を開くなどの宣伝を進め、中高生から大人までの利用者を拡大することがあげられる。
 また、内部システムである ruby/soccer をより高度化し、本格的な実験プラットホームとして利用できる整備を進める。これにより、大学院程度のマルチエージェント研究における、デファクトスタンダードを目指したい。これはRoboCupに関する場での発表やデモにおいて受けたなかで多かった意見である。
 さらに、標準的な実験ソフト同様に、学習モジュールや、進化モジュール、繰り返し実験モジュールなどを個別に開発して組み込むことも可能である。これらの開発については、独自に行うのではなく、広くコミュニティに協力を求めてゆくことも進めてゆきたい。


  ページトップへ   






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