| 
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/から近日中に行う予定である。
|