• 検索結果がありません。

sig sai 2010 03 03 03 Recent site activity jsaisigsai

N/A
N/A
Protected

Academic year: 2018

シェア "sig sai 2010 03 03 03 Recent site activity jsaisigsai"

Copied!
5
0
0

読み込み中.... (全文を見る)

全文

(1)

RoboCup サッカー3 D エージェント開発のための

ビジュアルデバッガ

A Visual Debugger for Developing RoboCup Soccer 3D Agents

中邨 陽介

Yosuke Nakamura

中島 智晴

Tomoharu Nakashima

大阪府立大学

Osaka Prefecture University

Abstract: In this paper, we introduce a visual debugger that helps us develop soccer agents for RoboCup Soccer 3D Simulation. The visual debugger enables us to monitor the internal state of a soccer agent and the soccer field graphically. We show the characteristic features of the debugger such as visualization of body position, field status, and game status. We also show a soccer agent that can be manually controlled by a game-pad. The communication protocol that is necessary for using the visual debugger is explained.

1. はじめに

本論文では,RoboCupサッカーシミュレーション3Dリー グのエージェント開発のためのビジュアルデバッガの詳細を示 す.3Dリーグでは,エージェント開発を行う際に,サーバ 付属のモニタで動作確認を行うことが多いが,このモニタでは エージェントが置かれている状況を十分に把握することが難し い.例えば,モニタにはエージェントの可視範囲を表示するこ とができないため,エージェントが得ることのできる視覚情報 が直観的にとらえにくい.また,エージェントはリアルタイム で動作させなければならないため,プログラムを実行しながら エージェントの挙動を細かく調査する事が難しい.

シミュレーション2Dリーグでは,高機能なビジュアルデ バッガとしてsoccerwindow2[1],SoccerScope[2]などが公開 されている.soccerwindow2は,デバッグサーバとしてエー ジェントと接続し,サイクル毎に情報をオンラインで送受信す ることが可能であり,オブジェクトの位置情報や,エージェン トの意思決定に関する情報を表示する仕組みが整っている.ま た,ログメッセージの読み込み,表示が可能であり,詳細な情 報表示機能と相まってエージェント開発を強力にサポートして

いる.SoccerScopeは,試合のログ解析に基づきエージェント

開発の補助を行う開発支援ツールである.SoccerScopeでは, プレイヤ間のパス成功回数を視覚的に表現する機能や,パス, ドリブル,シュートの回数やボール支配率など21の項目から ゲームを分析する機能などを利用することで,エージェント開 発の指標となる情報を得ることができる.一方で,3Dリー グでは,このような開発を支援・補助するツールは公開されて いない.そこで,本論文では,エージェントと接続して視覚・ 聴覚などのセンサ情報を表示したり,エージェントの挙動を繰 り返し確認できるような開発支援ツールとしてビジュアルデ バッガを開発する.また,本デバッガの全ての機能を利用する ために必要なプロトコルを公開する.

2. RoboCup

2.1 概要

RoboCupは,1993年に提案された,自律移動型ロボット

によるサッカーを題材としたランドマーク型プロジェクトで ある.プロジェクト設立時はサッカーリーグだけであったが, 連絡先:大阪府立大学 工学研究科 電気・情報系専攻

〒599-8531堺市中区学園町1-1

E-mail: nakashi@cs.osakafu-u.ac.jp (中島智晴)

2009年世界大会時点では,サッカーだけでなくレスキュー,@ ホーム,ジュニアといった複数のリーグが存在する.本論文で

は,RoboCupサッカーを題材とする.RoboCupサッカーに

は,現在5つのリーグが存在するが,その中でもシミュレー ションリーグはプロジェクト立ち上げ当時から存在する最も 古いリーグの一つである.シミュレーションリーグは,形式に よって2Dリーグと3Dリーグ,3D Developmentリーグ に分けられる.2Dリーグでは,プレイヤ,ボール等の物体 は全て二次元平面上のベクトルとして表現されており,高レベ ル意思決定システムのテストベッドとしての利用価値が高い. 一方で,高さの概念が存在しないため,例えばプレイヤの頭上 を越えるパスなどは実現できない.これに対して,3Dリー グでは,高さの概念を取り入れることで,より現実に近いシ ミュレーションが可能になっている.また,3D Development リーグは3Dのサッカーサーバやそれに関連するシステムの 開発を行うリーグである.本論文では,3Dリーグを取り扱 う.次節で3Dリーグを詳説する.

2.2 シミュレーション3 D リーグ

RoboCupサッカーシミュレーション3Dリーグは,2004

年から開始された,仮想的な三次元空間上で試合を行うリー グである.ヒューマノイドロボットのソフトウェア面からの研 究開発を目的とし,世界中で盛んに研究が行われている.初期 の3Dリーグでは,プレイヤとして球体のサッカーエージェ ントが用いられており,実世界のシミュレーションモデルとは 言いがたいものであった.しかし,2007年にロボットモデル が一新され,二足歩行型のヒューマノイドロボットがプレイヤ エージェントとして導入された.これにより,シミュレーショ ンと現実のサッカーとの距離は一気に縮まったといえるが,そ の反面,プレイヤエージェントの動作を関節制御の低レベルか ら開発しなければならなくなり,エージェントを完全に開発す るためには制御工学や物理学の知識が必須となった.図1に 現在3Dリーグで用いられているヒューマノイドロボットの 外観を示す.このロボットモデルはStandard Platformリー グで使用されているロボットNao[3]をベースに作られている. 2009年の世界大会では,このヒューマノイドロボットによる 3対3の試合が行われた.

各プレイヤは独立したプログラムとして実行される.試合は 基本的に0.02秒を1ステップとして,前後半それぞれ300秒

間,15000ステップで行われる.ただし,サーバとして使用し

ている計算機環境の状態により,1ステップあたりの時間は異 なる.試合はコンピュータ上に作られた三次元空間で行われ,

(2)

図1: ヒューマノイドロボット

プレイヤエージェントにはステップ毎にサーバから,各関節角 度,ジャイロセンサ値,足裏センサ値および視覚・聴覚情報が 与えられる.ジャイロセンサはエージェントの胴体に取り付け られており,エージェントの回転運動を知る手がかりとなる. また,視覚情報は,エージェントが認識できたオブジェクトに 関するもののみ得ることができる.サッカーフィールド上で視 認することができるオブジェクトは,フラグと呼ばれるフィー ルド四隅の点,ゴールポスト4点,ボールおよび他のプレイヤ エージェントであることがルールにより定められている.エー ジェントの頭部にはカメラが装備されており,カメラ視野内の オブジェクト情報がサーバから送信される.2008年世界大会 までは,カメラの視野は360度であり,エージェントはフィー ルド上の全てのオブジェクトが常に見えている状態であった が,2009年から視界が120度に制限され,頭部を適切に動か さなければフィールドの状態やエージェントの位置を全て把握 することが難しくなった.聴覚情報は,3ステップに一度,味 方と対戦相手それぞれ1体のエージェントから20バイト以内 のメッセージを聞き取ることができる.エージェントはこれら の情報を考慮して意思決定を行い,各関節に与える角速度を算 出してサーバに送信する.これを繰り返すことで試合が行わ れる.現在用いられているヒューマノイドロボットには22の 関節が存在するため,このロボットを完全に制御するには,ス テップ毎に22カ所の関節角度の設計が必要となる.

サッカー3Dリーグの実行環境はオープンソースであり,

Sourceforge[4]上で公開されている.公開されているパッケー

ジにはサッカーサーバとサンプルエージェント,サッカーモニ タが含まれている.サッカーモニタにより試合の模様を視覚的 に観測する事ができる.開発したサッカーエージェントの動作 を確認するためにサッカーモニタを使用することはできるが, サッカーモニタの視点は第3者からのものであることと,関節 状態の確認しかできないことから,詳しい動作解析を行うた めには,エージェント内部をリアルタイムで表示することがで きるシステムの開発が必要である.そこで,本論文では,エー ジェントの内部状態やフィールド上の位置などを表示し,エー ジェント開発を補助,支援するためのビジュアルデバッガの開 発を行う.また,デバッガの一環として,フィールド上のオブ ジェクトを任意の状況に置くために,ゲームパッドで操作可能 なプレイヤエージェントの開発を行う.

3. デバッガ

3.1 概要

本論文で開発するデバッガは,3Dシミュレーションのプ レイヤエージェントとTCP/IP接続することでプレイヤエー ジェントの内部状態やサッカーフィールドの情報を画像として オンライン表示し,チーム開発の支援を行う.図2にビジュア

図2: デバッガの外観

ルデバッガの外観を示す.エージェントはステップ毎に1行 のデバッグメッセージを送信する.デバッガは受け取ったメッ セージからエージェントやサッカーフィールドの状態を図とし て表示する.

3.2 デバッグメッセージ

プレイヤエージェントがデバッガに送信する情報には,試合 情報,視覚情報,関節角度情報,ジャイロ情報の4種類が含ま れる.本節では,これらのメッセージのフォーマットについて 説明する.

試合情報には,試合時間およびプレイモードが含まれる.試 合情報のメッセージのフォーマットと例を次に示す.

Format: time <gametime> playmode <playmode> Example: time 20.08

playmode PlayOn

ここで,<gametime>は試合時間を表す.また,<playmode>は 現在のプレイモードを表す.

視覚情報には,フィールド上のオブジェクトが視認可能か 否かの判定結果,およびオブジェクトの位置情報が含まれる. 位置情報は,エージェントのカメラ位置,すなわち頭部を原点 とした三次元座標で表される.視覚情報のメッセージのフォー マットと例を次に示す.

Format: <object> <visible> <x> <y> <z> Example: ball true 0.2962 0.004343 -0.5102

ここで,<object>は,オブジェクトの種類を表す.表1に,オ

ブジェクト名と<object>の対応を示す.<visible>は,オブ ジェクトが視認できている場合はtrue,そうでなければfalse となる値である.また,<x> <y> <z>は,エージェントの頭 部を原点とし,前後方向をx軸,左右方向をy軸,上下方向 をz軸とした場合のオブジェクトの位置座標である.

関節角度情報には,エージェントの全関節の現在の角度が含 まれる.1関節の角度情報のメッセージのフォーマットと例を 次に示す.

Format: <joint> <angle> Example: laj1 -1.403

ここで,<joint>は,関節の種類を表す.表 2 に関節名と

<joint>の対応を示す.表2において,<joint>の項目内の lは左関節,rは右関節を表す.また,<angle>は関節角度を 表す.

(3)

表1: オブジェクトの種類 オブジェクト名 <object>

ボール ball コート左奥のコーナー flag1left コート右奥のコーナー flag1right コート左手前のコーナー flag2left コート右手前のコーナー flag2right

左ゴールポスト奥 goal1left 右ゴールポスト奥 goal1right 左ゴールポスト手前 goal2left 右ゴールポスト手前 goal2right

味方プレイヤ teammate 敵プレイヤ opponent

表2: 関節の種類

関節名 <joint> 関節名 <joint>

neck hj1 hip1 l(r)lj1

head hj2 hip2 l(r)lj2

shoulder l(r)aj1 thigh l(r)lj3 upperarm l(r)aj2 shank l(r)lj4

elbow l(r)aj3 ankle l(r)lj5

lowerarm l(r)aj4 foot l(r)lj6

ジャイロ情報には,胴体に備え付けられているジャイロセン サの値を用いる.ジャイロ情報のメッセージのフォーマットと 例を次に示す.

Format: gyro <x> <y> <z> fieldnormal <x> <y> <z> Example: gyro -31.32 -2.859 -4.920

fieldnormal -0.01117 -0.08938 0.9959

ここで,gyro(Vg)は,各ステップにおける胴体の角速度を表

す.また,fieldnormal(Vfn)は,サッカーフィールドと垂直 で長さが1の上向きのベクトルを,エージェントの頭を原点と した3次元座標で表したものである.エージェントがフィール ド上で直立,静止している場合にVfn= (0, 0, 1)となり,体勢 が変化し,ジャイロ値Vgが変わるとVfnは次の式にしたがっ て更新される.

Vnew

fn = Vfnold· R(Vg∆t) (1) 式(1)において,Rは回転行列,∆tは1ステップの時間を表 す.フィールドノーマルは,クライアント側で計算することが 望ましいが,それができない場合でも,デバッガがVgから自 動的に計算する.

3.3 視覚情報の表示

デバッガは,エージェントから送られたメッセージを元に, ロボットの視覚情報を表示する.視覚情報には,フィールド上 のオブジェクト,つまり,ゴールポスト,フラグ,ボール,他 のプレイヤエージェントに対して,視認可能かどうか,および エージェントに関する相対位置が含まれる.デバッガは,これ らの位置情報をサッカーフィールドを基準とした座標系に変換 し,フィールドを真上から見た場合の図として表示する.必要 に応じて,エージェントやゴール付近を拡大して表示すること ができる.図3に視覚情報の表示の例を示す.図3において, 赤の矢印がエージェントの胴体の位置と向き,黄色の網掛け部

図3: 視覚情報表示

分が視界を表す.白の点はボールの位置を表す.また,水色の 正方形は味方プレイヤの位置,赤の正方形は敵プレイヤの位置 を表す.これらのオブジェクトはエージェントに視認されてい るときのみ表示される.また,フィールドの各コーナーの点は フラグの位置を,ゴールエリア内の点はゴールポストの位置 を表す.これらのオブジェクトは,それぞれ相対的に位置が決 まっているため,エージェントがこれらの点のうち2つ以上を 視認できれば,視認できていない点の位置を算出する事ができ る.各点が視認できているかどうかは点の色で判別する事がで きる.紫色の点で表現されるオブジェクトは視認できているこ とを示し,黒の点で表現されるオブジェクトは視界内に無いこ とを示す.

3.4 エージェントの体勢表示

デバッガは,サッカーフィールドに対するエージェントの現 在の姿勢,エージェントの足とボールの位置関係を表示する. エージェントの体勢表示には,各関節の角度とジャイロセンサ の値が必要となる.図4にエージェントの体勢表示の例を示 す.図4において,左図はエージェントの各関節を前額面に投 影したもの,右図はエージェントの各関節を正中矢状面に投影 したものである.赤の部分が胴体と頭を,青の部分が腕の関節 を,水色の部分が足の関節,踵,つま先をそれぞれ表す.黄色 の網掛け部分は視界を表す.横軸,縦軸はそれぞれ常にフィー ルドと平行,垂直になっているため,フィールドに対するエー ジェントの体勢や,腕,脚の位置をタイムステップ毎に二方向 から確認する事ができる.また,図5にエージェントの足と ボールの位置関係表示の例を示す.図5は,エージェントの各 関節を水平面に投影したものである.白の点はボールの位置を 表し,青の部分がエージェントの上半身,黄色の部分が下半身 を表す.エージェントが直立している時は,黄色の部分全体が 足先のサイズを表すため,足の位置やボールとの距離を視覚的 に細かく掴むことができる.また,ボールが表示エリア内に存 在しない場合でも,位置が分かる場合はボールの存在する方向 が白の三角形で示される.

図4: エージェントの体勢表示

(4)

図5: 足とボールの位置関係表示

3.5 デバッグファイルの再生

デバッガは,3.2節で述べたデバッグメッセージをまとめた ファイルを読み込むことで,エージェントの動作を再現する事 ができる.デバッグメッセージファイル再生時は,一時停止や 1ステップだけ前後に送る操作が可能である.これを利用する ことで,ステップ毎のエージェントの状態を詳細に調べる事が できる.

3.6 文字による情報表示

デバッガは,起動時に指定することで,ロボットの視覚情報 を数値表示する.図6に視覚情報を数値表示した場合のデバッ ガを示す.数値表示指定を行うことで,デバッガに表示される フィールド画面のサイズが縮小され,フィールド上のフラグ, ゴールポスト,ボールに関する視覚情報が数値で表示される. ここで,表示される数値情報は,エージェントから受け取った オブジェクト位置情報を,フィールド座標系に変換したもので ある.フィールド座標系とは,エージェントの正中矢状面上で フィールドと平行になる直線をx軸,前額面上でフィールド と平行になる直線をy軸,フィールドと垂直になる軸をz軸 とする座標系である.数値表示とフィールド画面を照らし合わ せることで直観的に位置情報を得ることができる.

図6: 数値表示した場合のデバッガ

3.7 手動操作可能なプレイヤ

エージェント動作には,他エージェントが必要な場合がある

(味方へのパスや敵エージェントの回避など).自動エージェン トは自律的に行動するので,確認したい状態を作れないことが ある.このような場合,手動で操作できるエージェントが用意 されていれば便利である.このような状況を考慮して,ゲーム パッドで操作することができるプレイヤエージェントを開発し た.エージェント操作のために,12ボタン・アナログスティッ ク2本のUSBゲームパッドを用いる.図7に使用したゲーム パッドの外観を示す.また,表3にゲームパッドの入力とプレ イヤの動作の対応を示す.表3において,方向入力とは左ス ティックまたは十字ボタンの入力を意味する.また,10ボタ ン入力で行える強制移動は,プレイモードがBeforeKickOff,

図7: ゲームパッドの外観

Goal Left,Goal Rightのいずれかの時,すなわち,試合が進

行していない時のみ実行することができる. 表3: プレイヤ操作方法

ゲームパッドの入力 プレイヤの動作 方向入力 上下 前進・後退 方向入力 左右 方向転換 1ボタン+方向入力 入力した方向に転倒

2ボタン 両手を振り上げる 3ボタン 起き上がる 4ボタン+左右 サイドステップ 4ボタン+上下 前後への低速移動

5,6ボタン 左/右足でキック 右スティック カメラの向き操作 7,8ボタン+カメラ操作 カメラ回転速度変更

右スティック押し込み カメラの向きリセット 10ボタン 中央付近に強制移動

4. おわりに

本論文では,RoboCupサッカーシミュレーション3Dリー グのエージェント開発支援となる,ビジュアルデバッガの開発 を行った.また,デバッグ作業の効率化のため,ゲームパッドに よるプレイヤ操作システムを開発した.ビジュアルデバッガを 利用することで,サッカーエージェントの内部状態やフィール ドの状況を容易に知ることができる.また,デバッグファイル 再生によってエージェントの動作記録を繰り返し見直し,エー ジェントの挙動を精査することが可能となる.さらに,ゲーム パッドで操作するプレイヤを用いることで,フィールドの環境 を簡単に操作することができる.ビジュアルデバッガを使用す ることにより,3Dエージェントの開発が効率的に行えるよ うになることを期待したい.今後の課題としては,デバッグ ファイル再生時の操作性の向上や,エージェントの意思決定に 関わる情報の表示,エージェントの重心計算機能の追加などが 挙げられる.

参考文献

[1] 秋山 英久,ロボカップサッカーシミュレーション2Dリー グ必勝ガイド,秀和システム,(2006)

[2] SoccerScope2003,公開webページ,

http://ne.cs.uec.ac.jp/~newone/SoccerScope2003 [3] Nao,Aldebaran社webページ,

http://www.aldebaran-robotics.com

[4] Spark - A generic physical simulator,Sourceforgeプロ ジェクト,

http://sourceforge.net/projects/simspark/files

(5)

付録

表4に全ての通信プロトコルを示す. 表4: 通信プロトコル time <gametime> playmode <playtime>

ball <visible> <x> <y> <z> teammate <visible> <x> <y> <z> opponent <visible> <x> <y> <z> flag1right <visible> <x> <y> <z> goal1right <visible> <x> <y> <z> flag1left <visible> <x> <y> <z> flag2left <visible> <x> <y> <z> goal1right <visible> <x> <y> <z> goal2right <visible> <x> <y> <z> goal1left <visible> <x> <y> <z> goal2left <visible> <x> <y> <z>

hj1 <angle>

hj2 <angle>

laj1 <angle> laj2 <angle> laj3 <angle> laj4 <angle> raj1 <angle> raj2 <angle> raj3 <angle> raj4 <angle> llj1 <angle> llj2 <angle> llj3 <angle> llj4 <angle> llj5 <angle> llj6 <angle> rlj1 <angle> rlj2 <angle> rlj3 <angle> rlj4 <angle> rlj5 <angle> rlj6 <angle>

gyro <x> <y> <z> fieldnomal <x> <y> <z>

図 1: ヒューマノイドロボット プレイヤエージェントにはステップ毎にサーバから,各関節角 度,ジャイロセンサ値,足裏センサ値および視覚・聴覚情報が 与えられる.ジャイロセンサはエージェントの胴体に取り付け られており,エージェントの回転運動を知る手がかりとなる. また,視覚情報は,エージェントが認識できたオブジェクトに 関するもののみ得ることができる.サッカーフィールド上で視 認することができるオブジェクトは,フラグと呼ばれるフィー ルド四隅の点,ゴールポスト4点,ボールおよび他のプレイヤ エージェントで
表 1: オブジェクトの種類 オブジェクト名 &lt;object&gt; ボール ball コート左奥のコーナー flag1left コート右奥のコーナー flag1right コート左手前のコーナー flag2left コート右手前のコーナー flag2right 左ゴールポスト奥 goal1left 右ゴールポスト奥 goal1right 左ゴールポスト手前 goal2left 右ゴールポスト手前 goal2right 味方プレイヤ teammate 敵プレイヤ opponent 表 2: 関節の種類
図 5: 足とボールの位置関係表示 3.5 デバッグファイルの再生 デバッガは, 3.2 節で述べたデバッグメッセージをまとめた ファイルを読み込むことで,エージェントの動作を再現する事 ができる.デバッグメッセージファイル再生時は,一時停止や 1 ステップだけ前後に送る操作が可能である.これを利用する ことで,ステップ毎のエージェントの状態を詳細に調べる事が できる. 3.6 文字による情報表示 デバッガは,起動時に指定することで,ロボットの視覚情報 を数値表示する.図 6 に視覚情報を数値表示した場合の
表 4 に全ての通信プロトコルを示す.

参照

関連したドキュメント

Joshi; Existence and nonexistence of solutions of sublinear problems with prescribed num- ber of zeros on exterior domains, Electronic Journal of Differential Equations, 2017 No..

We obtain some conditions under which the positive solution for semidiscretizations of the semilinear equation u t u xx − ax, tfu, 0 &lt; x &lt; 1, t ∈ 0, T, with boundary conditions

[30] T. Guerin; Existence of nonnegative solutions to singular elliptic problems, a variational approach, Discrete Contin. Guerin; Multiplicity of weak solutions to subcritical

&lt; &gt;内は、30cm角 角穴1ヶ所に必要量 セメント:2.5(5)&lt;9&gt;kg以上 砂 :4.5(9)&lt;16&gt;l以上 砂利 :6 (12)&lt;21&gt; l

Views of Kazunogawa Hydroelectric Power Station Dams &lt;Upper dam (Kamihikawa dam)&gt;. &lt;Lower dam

[r]

When value of &lt;StThr[3:0]&gt; is different from 0 and measured back emf signal is lower than &lt;StThr[3:0]&gt; threshold for 2 succeeding coil current zero−crossings (including