平成 13 年度
学士学位論文

RoboCup エージェント の下位行動の性能向上
Ability Progress of Low-Level-Behavior
in RoboCup Agents

1020279

川口 宏

指導教員

Ruck Thawonmas

2002 年 2 月 8 日
高知工科大学 情報システム工学科

要 旨

RoboCup エージェントの下位行動の
性能向上
川口 宏

本稿では，RoboCup エージェントの下位行動の性能向上について述べる. 下位行動は，ドリブル，パスといった基本行動のことである．下位行動の中のスマートド リブルは，Patrick

Riley によって提唱された．これをエージェントに実装し，敵エージェントに対する回避行動の性能評価を行った．その結果，今までのエージェントよりも性能の向上に継った．
キーワード

RoboCup，エージェント，下位行動，スマートド リブル–i–Abstract
Ability Progress of Low-Level-Behavior
in RoboCup Agents
Hiroshi KAWAGUCHI

This thesis describes about ability progress of low-level-behavior in RoboCup
agents. Low-level-behavior are dribble and pass that is basic behavior. Smart-dribble
in low-level-behavior is proposed by Patrick Riley. This was mounted in the agent, andability evaluation of the evasion action to an enemy agent was examined. Consequently,
compared with the former agent, that ability progressed ability.
key words

RoboCup, agent，low-level-behavior，smart-dribble– ii –

目次
第1章

はじめに

1

第2章

RoboCup とは

2

2.1

RoboCup の歴史と目的 . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

2.2

RoboCup シミュレーションリーグについて . . . . . . . . . . . . . . . .

3

2.2.1

RoboCup シミュレーションリーグの概要 . . . . . . . . . . . . . .

3

2.2.2

サッカーサーバの仕組み. . . . . . . . . . . . . . . . . . . . . . .

4

2.2.3

エージェントの行動 . . . . . . . . . . . . . . . . . . . . . . . . . .

4

2.2.4

センサ情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

第3章

KUT RoboCup Project について

7

3.1

KUT RoboCup Project とは . . . . . . . . . . . . . . . . . . . . . . . .

7

3.2

RAIK-NTG4 とは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

3.3

RAIK-NTG4 における本研究の位置付け . . . . . . . . . . . . . . . . . .

9

下位行動の向上法

11

下位行動の種類 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

4.1.1

ド リブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

4.1.2

スマートド リブル . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

下位行動の特徴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

4.2.1

ド リブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

4.2.2

スマートド リブル . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

アルゴ リズム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

4.3.1

ド リブル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

4.3.2

スマートド リブル . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

第4章

4.1

4.2

4.3

– iii –

目次

第5章

5.1

5.2

5.3

第6章

実験

21

実験方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

5.1.1

実験 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

5.1.2

実験 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

実験結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

5.2.1

実験 1 の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

5.2.2

実験 2 の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

5.3.1

実験 1 の考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

5.3.2

実験 2 の考察 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24
28

まとめ

謝辞

29

参考文献

30

– iv –

図目次
2.1 シミュレータの構成図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

3.1

KUT RoboCup Project 概略図 . . . . . . . . . . . . . . . . . . . . . . . .

7

3.2

RAIK-NTG4 の構成図 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

スマートド リブルの図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

4.3 ド リブル角の図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

4.4

回転キック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

4.5

設定条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

4.6

30 度回転させる場合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

5.1

実験 1 の解説図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

5.2

実験 2 の解説図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

5.3

実験 1 の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

5.4

実験 2 の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

5.5

課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

5.6

取られた場合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

5.7 かわした場合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

4.1 ド リブルの図
4.2

–v–

第1章

はじめに
高知工科大学情報システム工学科では，「 RoboCup シミュレーションを通じてのソフト
ウェア工学及び人工知能の教育 」 として，RoboCup シミュレーションリーグを使った授業が行われている．この RoboCup とは，人工知能と知能ロボットに関する研究を促進するために始められた，サッカーを題材にしたプロジェクトである．
現在，高知工科大学情報システム工学科 RoboCup チームの基本性能の現状は，ボールを蹴って追い付いて蹴るという，最低限のド リブル，そして，パスは受け手とパスする側が，ボールの軌道を予測出来ていないということもあり，事実上成立していない．
このようなエージェントの性能を左右する基本行動が確立されていないという問題が，高知工科大学情報システム工学科の RoboCup のチームにはある．これにより，チーム戦略・
プランニングが立て辛くなっている．
この問題を解決するため，まず RoboCup 世界大会で優勝したチームのプログラムを参考にし，高知工科大学情報システム工学科のチームに実装する．そのうえで，エージェントの基本性能を向上させることが，本研究の目的である．

–1–

第2章

RoboCup とは
本章では，はじめに RoboCup 全体について述べる．次に本稿で扱う RoboCup シミュ
レーションリーグについて説明する．

2.1

RoboCup の歴史と目的

RoboCup は，人工知能と知的ロボットに関する研究を促進するためのものである．自律
移動ロボットによるサッカーを題材として，日本の研究者たちによって 1995 年に提唱された．現在では，サッカーだけではなく，大規模災害シミュレーションや災害救助ロボットの研究・開発を行なう，RoboCup レスキュー [1] などがある．

RoboCup サッカーには，現在 4 つのリーグがある．
• シミュレーションリーグ
コンピュータ上の仮想フィールド 上で，1 チーム 11 体のソフトウェアエージェント同士によって行なわれるリーグ．RoboCup サッカーの中では一番古くから存在するリー
グで，一番洗練されたチームプレ イをする．本稿ではこのリーグを扱う．

• 小型リーグ
卓球台とほぼ同じ 大きさのフィールド で，直径 18 cm 以内に入る小さなロボットが 5台以内でチームを組み，オレンジ色のゴルフボールを使って対戦するリーグ．

• 中型リーグ
卓球台 9 枚分の大きさのフィールドで，直径 50 cm 以内に入るロボット 4 台でチームを組み，オレンジ色のフットサルのボールを使って対戦するリーグ．

–2–

2.2 RoboCup シミュレーションリーグについて• Sony 四脚ロボットリーグ
SONY のエンターテイン メントロボットによる 3 対 3 で行うリーグ．このリーグは，選抜されたチームに貸与されたロボットで競技を行うため，一般参加は出来ない．
さらに，2002 年にはヒューマノイド リーグが加わる予定になっている．
毎年 RoboCup では，国内大会と世界大会が行なわれる．ここで，各チームの研究・開発されたロボット同士が勝負をしている．

RoboCup サッカーの最終目標は，ヒューマノイド リーグのチームが 2050 年に FIFA のワールド カップの優勝チームに勝つことである．

2.2

RoboCup シミュレーションリーグについて

2.2.1

RoboCup シミュレーションリーグの概要

RoboCup シミュレーションリーグは，RoboCup の中で一番古くからあるリーグである．
そのシミュレーションの仕組みは，サーバ・クライアント方式を採用している．この方式を簡単にまとめた図を図 2.1 に示す.
サッカークライアントとサッカーサーバの間は，UDP / IP 通信によって通信が行なわれる．よって，サッカークライアントを作成する場合には，UDP / IP 通信をサポートするプ
ログラム言語であれば何でも良い．本稿では，Java 言語を使用している．
また，1 つのクライアントは原則として，1 つのエージェントのみを制御しなければならない．1 つのクライアントが複数のエージェントの情報を得て，行動を集中制御することは許されていない．
そして，サッカーサーバによってシミュレートされた結果は，サッカーモニタと呼ばれる
表示プログラムによって表示される．
現在のサッカーサーバの最新バージョンは 8.02 ( 平成 14 年 2 月 4 日現在 ) である [2]．

–3–

2.2 RoboCup シミュレーションリーグについて

図 2.1 シミュレータの構成図

2.2.2

サッカーサーバの仕組み

サッカーサーバは，サッカーフィールド，ボール，審判，プレ イヤーの位置などをシミュ
レート する．サッカーフィールド とフィールド 上の物体は，平面で扱われ，高さの情報は持っていない．また，プレ イヤーとボールは円として扱われる．動きの情報は，1 シミュ
レーションサイクル ( 100 msec ) 毎に離散的に更新される．サイクルの終わりに，サッカー
サーバは受信したすべての行動コマンド をフィールド 上のすべての物体に適用して，次のサイクルの位置と速度を計算する．
シミュレーションには，現実世界に近づけるために予期せぬ動きをするように，ノイズと風の情報が加えられる．

2.2.3

エージェント の行動

エージェントは次の行動をすることが出来る．

–4–

2.2 RoboCup シミュレーションリーグについて• turnエージェントの向いている方向を体ごと変える．

• turn neck

エージェントの向いている方向を頭だけ変える．体の方向は変わらない．

• dashエージェントの体が向いている方向に加速をつける．

• kickボールが 蹴れる範囲内 ( kickable area ) にある場合に，方向と強さを決めてボールを蹴る．

• move

得点が決まったとき等の初期フォーメーションに戻るためと，ゴ ールキーパー

が catch した時，ゴールキック位置に移動する時のみ使えるの行動．

• catch

ゴ ールキーパーがボールをキャッチする行動．ゴ ールキーパー以外やペナル

ティーエリア外では無効．

• say

メッセージをすべてのエージェントに伝える．

• change view

視野角度と視覚情報の品質を変える．これを変えると視覚情報の送られてくる頻度が変わる．
サッカークライアントは，これらの行動を駆使して設計しなければならない．原則として 1サイクルに 1 つの行動しかできない．ただし，turn neck，say，change view は，ほかのコ
マンド と同時に 1 サイクル中に送ることが出来る．
また，エージェントにはスタミナがある．スタミナは，行動を起こすと減少する．減少す
る割合は，行動の度合い ( 全力で走る等 ) で変化する．スタミナが少ないと全力で走れないなど 等の制限が加わる．行動をしなければ，スタミナは少しずつ回復する．

2.2.4

センサ情報

サーバからセンサ情報としてクライアントに次のような情報が送られてくる．

• 視覚情報 クライアントの視野内に入ったオブジェクトの情報．
• 聴覚情報 審判からの判定メッセージと，クライアントプログラムが say コマンド で送ったメッセージ情報．

• 感覚情報 自プレ イヤーのスタミナ，視野モード，速度，頭の向き，kick, dash, turn,–5–

2.2 RoboCup シミュレーションリーグについて

say, turn neck のコマンド を送った回数の情報．
センサ情報がサーバから送られてくる頻度は，それぞれ違う．
視覚情報は，初期状態で 150msec 毎にクライアントに送られる．ただし，シミュレーショ
ンサイクルとは非同期である．
聴覚情報は，メッセージが発生したときにシミュレーションサイクルとは非同期に送られる．
感覚情報は，シミュレーションサイクル毎に必ず送られてくる．

–6–

第3章

KUT RoboCup Project につ
いて
3.1

KUT RoboCup Project とは

高知工科大学情報システム工学科では，「 RoboCup シミュレーションを通じてのソフト
ウェア工学及び人工知能の教育」と題して，RoboCup を使った授業・研究を 1999 年度より行っている [6]．KUT RoboCup Project の概要図を図 3.1 に示す．

図 3.1

KUT RoboCup Project 概略図

図 3.1 で示したように，人工知能研究室と授業 (情報システム工学実験 4 (以下，実験 4–7–

3.2 RAIK-NTG4 とは)・人工知能基礎ともに 3 年次 ) で相互協力し，年 1 回の RoboCup 大会に代表チームを送り込むことが目的である．実験 4 では，実際にクライアントを作ってもらう．最終的には大会を行い，戦術や機能のアイデアを出し実装してもらう．また，人工知能研究室の役割としては，次の 3 つがある．1 つは，実験 4 で使用するクライアントプログラムの基本部分を開発・提供を行う．2 つ目は，実験 4 で出されたアイデアや，戦術，機能，などを統合し ，代表チームの強化に利用する．3 つ目は，人工知能に関する研究の成果を代表チームに追加
する．

Project 初年度の 1999 年度の実験 4 のチームは，人工知能研究室で強化され，2000 の
RoboCup Japan Open に出場した．結果は，初出場ながら予選リーグを突破し決勝トーナ
メントに出場することが出来た．今後，この Project によって強化されたチームで上位入賞
を目指す．

3.2

RAIK-NTG4 とは

RAIK-NTG4 は，今年度の高知工科大学情報システム工学科のチームプ ロジェクトで，RoboCup サッカー世界大会へ向けてのソフトウェアエージェントチームの開発プロジェク
トである．RAIK-NTG4 の図 3.2 を示す．
図 3.2 の説明．

• HAM
HAM とは，強化学習によって行動を決定していくエージェント．
• HumaHuma とは，人の意志決定挙動を適用したエージェント．
• ハンド コーデ ィング
ハンド コーデ ィングとは，従来からの手法で作成したエージェント．

• SemiReal / Original Monitor
SemiReal / Original Monitor とは，エージェントの得た情報を視覚的に表現する独自–8–

3.3 RAIK-NTG4 における本研究の位置付け

図 3.2

RAIK-NTG4 の構成図のモニタ．また，これはエージェントを操作できるようになっている．

• NT ( Nohohon Technology )NT ( Nohohon Technology ) とは，RoboCup シミュレーションクライアントとしての，基本機能 ( サーバとの情報の送受信，情報の保存と処理 ) を備えた部分．

3.3

RAIK-NTG4 における本研究の位置付け

本研究は，主にエージェント・コアの部分 ( NT ) に位置する．エージェント・コアは，
エージェントの基本となる部分で，エージェントの行動を決定する部分である．

–9–

3.3 RAIK-NTG4 における本研究の位置付け

本研究では，エージェントの行動を司る部分の研究であるので，サーバとの情報の送受信，
情報の保存と処理については触れていない．
そのエージェントの行動について，RoboCup シミュレ ーション 部門の世界大会で優勝したチームのプログラムを参考にして，高知工科大学情報システム工学科のチームに実装する．

– 10 –

第4章

下位行動の向上法
4.1

下位行動の種類

下位行動には，ド リブル・パスがあり，そして，ド リブルの発展型にスマートド リブルがある．

4.1.1 ド リブル
ド リブルの基本的な方法はとても簡単で，kick と dash を繰り返すだけである．ボールがkickable-area にあれば蹴り，無ければボールを追いかけるというものである．これを図 4.1に示す．
理論的には単純だが，実際にはボールを蹴るときにはボールとの距離や角度によってボー
ルを蹴る強さが変わるので強く蹴りすぎて敵にボールを取られたり，弱すぎて進むスピード
が遅くなったりと，うまくド リブルをする事は難しい．
そして，ド リブルの行動は常に 2 サイクル後を考えて，エージェントが動くべきだという事である．その理由については，dash コマンド と kick コマンド は 1 サイクルにど ちらか
片方しか送れないので，次に dash する時は前に dash した時の 2 サイクル後となっているからである．さらに，もし，kick の方向がエージェントの進行方向で無かったなど turn しなければならなくなった時は 3 サイクル後になるからである．このようなことがあるために，次のスマートド リブルが考え出された．

– 11 –

4.1 下位行動の種類

図 4.1 ド リブルの図

4.1.2

スマートド リブル

スマートド リブルは，Carnegie Mellon univercity の Patrick Riley 氏が提唱した技術である．この技術を使い Carnegie Mellon univercity は，’ 98 ，’ 99 年と RoboCup 世界大会で優勝を治めている．
スマートド リブルの基本はド リブルと同じである．スマートド リブルでは，ド リブル角とそれに対する重み付けというものを使って，敵エージェントを避けるというド リブルである．
エージェントは感覚情報から敵エージェントの情報を取得し ，この情報から自分はどの方
向にド リブルすればよいかを考えド リブル角を決定する．考えられる選択肢に敵エージェン
トの位置によって重み付けを変えていく．
例えば ，相手が自分から見て 45 度の角度にいるならば ，-90 度の角度に 1 票入れるといった方法で行われる．近くにいる敵エージェントが 1 人の場合はこれで良いが，複数いる
時は相手との距離や人数によって重みの付け方が変わる．これを図 4.2 に示す．

– 12 –

4.2 下位行動の特徴(a) 現在の位置

図 4.2

4.2

(b) 2 サイクル後の位置

スマートド リブルの図

下位行動の特徴

この節では，ド リブルとスマートド リブルについての特徴を述べる．

4.2.1 ド リブル
ド リブルの利点というものは，ド リブルすることの難しさを知る上で最も重要な部分である．そして，エージェントの基本となっているので，きちんと kick と dash をなされていないとエージェントの質が落ちるということもあります．
そして，欠点は，ド リブルはただ kick と dash を繰り返すだけなので，ボールを敵エー
ジェントに取られやすいということがあげられる．

4.2.2

スマートド リブル

スマートド リブルの利点は，普通のド リブルの欠点を補ったもので，敵エージェントを避けるようにボールを kick するので，敵エージェントにボールを取られにくくなっているということである．
そして，ボールの位置を予測して，kick しているので，ボールを見失うことも少なくなっている．また，味方チームがボールをもっている時間が長くなるので，戦略プランが立てやすくなるということもあげられる．

– 13 –

4.3 アルゴ リズム

欠点としてあげられることは，ド リブルのスピードが遅くなってしまうことである．なぜなら，スマートド リブルは，普通のド リブルと比べてより多くの kick をするからである．
普通のド リブルは，ただ前にボールを蹴るだけなので，ド リブルのスピード は一定だが，ス
マートド リブルでは，その特性ゆえにド リブルのスピードが遅くなってしまうという欠点がある．
また，現段階ではド リブル角の重み付けをし，ボールを移動させいる間は，自エージェン
トは止まっているという欠点がある．これは，止まっていては一体の敵エージェントならば問題は無いが，実際は一体でサッカーをするのではないので，別の敵エージェントにボールを取られてしまうということがあるためである．
欠点の方を多く記述したが，実際は利点の方が欠点よりも大きいため，RoboCup Japan

Open などの大会において，上位チームは必ず取り入れている技術でもある．このことからも分かるように，スマートド リブルは重要性の高い技術である．

4.3

アルゴリズム4.3.1 ド リブル
ド リブルをするためのアルゴ リズムは，主に式 (4.1)，(4.2) を使用する．

P new = P current + v + (v ∗ pdecay + a)

traj =

P target − P ball
1 ＋ bdecay

(4.1)

(4.2)

式 (4.1) は，エージェントの 2 サイクル後の位置を計算するもので Pnew が予想される
エージェントの位置で，Pcuurent は現在のエージェントの位置，v は現在のエージェントの
速度，pdecay はサーバーパラメーターの player decay，そして a が dash コマンドで与えられた値である．しかし ，これは通常の状態で，エージェントが疲れているとき ( staminaが減っているとき ) はそれを考慮に入れる必要がある．

– 14 –

4.3 アルゴ リズム

式 (4.2) はボールの 2 サイクル後の位置を計算する式で，traj というのが図 4.3 のボールとボールを結ぶ矢印になる．Ptarget がボールの目標位置，Pball が現在のボールの位置であり，bdecay はサッカーサーバーパラメータの ball decay である．目標位置 Ptarget (例えば絶対座標で ( X ，Y ) ) に蹴ろうと思えば式 (4.2) で与えられる traj ( x ，y ) の位
置から，kick コマンドに渡すパラメーターを考える必要がある．
以上二つの式から dash 後のエージェントの kickable-area 内にボールがあるように dash及び kick コマンドに渡す値を求めることが必要になってくる．
さらに「ド リブル角」と呼ばれるものを考慮に入れる必要がある．ド リブルの目標地点は
このド リブル角の有効範囲 [ -90 ，90 ] に収まるように決めるのが良く，ド リブル角が有効範囲を超えるとうまくド リブルできなくなる．
ド リブル角がどの角度をなのかについては図 4.3 に示す．ド リブルする時のボールの位置
は自分よりも前にあるべきという事を考慮することが重要である．

図 4.3 ド リブル角の図– 15 –

4.3 アルゴ リズム

4.3.2

スマートド リブル

スマートド リブルのアルゴ リズムを書く上で必要なスキルが，回転キックである．回転キックとは，ボールを自分の周りでボールを回転させて勢いをつけ遠くに蹴る，RoboCup
特有のものである [3]．この回転キックは，RoboCup Japan Open などの大会において，上位チームは必ず取り入れている技術である．回転キックの動作を表した図 4.4 を示す．

図 4.4 回転キック

ボールが自分の蹴ることの出来る範囲 ( Kickable area ) 内にあった場合に，ボールを蹴ることが出来る．回転キックは図 4.4 の様にボールを Kicable area 内で回し勢いをつける．
ボールを Kickable area 内で蹴るためには，1 サイクル後の位置を指定して蹴る方向や強さを調節しなければならない．これを計算する方法を説明する．条件として，図 4.5 とする．

(ptx , pty ) から (p+1 tx , p+1 ty ) に，現在のボールの速度が (vxt , vty ) のボールを 1 サイクル
後に移動させるために必要な蹴る強さ ( P ower ) と方向 ( Direction ) を求める．ここで，(atx , aty ) はボールに加える加速度，θt はボールに加える加速度の絶対方向．θt kicker はKicker の絶対方向をあらわしている．Soccer Server の物体の計算式から式をたてる [5].

– 16 –

4.3 アルゴ リズム

図 4.5

設定条件

(utx , utx ) = (vxt , vyt ) + (atx , aty )

(4.3)

t+1
t
t
t
t
(pt+1
x , py ) = (px , py ) + (ux , uy )(4.4)

上式から (atx , aty ) を求める．
t+1
t
t
t
t
(atx , aty ) = (pt+1x , py ) − (px , py ) − (vx , vy )(4.5)

これにより，ボールに加えたい加速度が求まった．次に，絶対方向 θt を求める．

θt = arctan(aty /atx )(4.6)

次に，kick コマンドによって加わる加速度の計算式で求めた加速度 (atx , aty ) をあらわすと– 17 –

4.3 アルゴ リズム

atx = P ower ∗ P ower rate ∗ cos(θt )(4.7)

aty = P ower ∗ P ower rate ∗ sin(θt )(4.8)

式 (4.7)，(4.8) の あ と P ower rate さえ 求めれば P ower を 求め るこ とが 出 来 る ．

P ower rate は，Soccerserver Manual[5] で定義されている式と定数を使い計算する．
最後に，Direction を求める．サッカーサーバでボールに与える加速度の計算式は式 (4.9)の様になっている．

θt = θt kicker + Direction(4.9)

この式から Direction が求まる．

1 サイクル後の位置を指定して蹴ることが出来るようになれば，ボールの勢いが付くようにボールを蹴ればよい．
この回転キックを使ってド リブルをする事が，スマートド リブルの基本となる．スマートド リブルに回転キックが必要な理由は，スマートド リブルでは，敵エージェントが蹴れない
範囲にボールを移動させることが目的となっている．そのために，回転キックのスキルを利用するのである．しかし ，回転キックでは，回転する力を使って遠くに蹴ることが目的となっているために，そのままスマートド リブルに適用することは出来ない．
そのため，ボールを回すというアルゴ リズムだけを適用する．
スマートド リブルのアルゴ リズムは，distance と direction の二つから成り立っている．

distance は，ボールを蹴る強さと同じ意味である．

distance1 = ball distance2 − (ball size + player size)2(4.10)

distance2 = (player size + (0.8 × Kickable margin))2 − x2

(4.11)

distance = distance1 + distance2(4.12)– 18 –

4.3 アルゴ リズム

これ ら の 式 (4.10)，(4.11)，(4.12) を 使用し ，ボ ール を 移動させ る範 囲を 決定す る ．

ball distance とは，エージェントとボールとの相対的な距離で，そこから，ボールとエー
ジェントの大きさを減算することによって，エージェントからボールまでの距離が distance1で求まる．
相対距離とは，エージェントの中心から，指定した目標に対しての距離のことである．

distance2 では，Kickable margin とボールとの距離を求めている．これらを加算することによって，ボールの移動できる距離が求まる．Kickable margin とは，エージェントがボールを蹴ることの出来る範囲をいう．

direction は，以下の式 (4.13) を使用する．

direction = 180 + ball ang f rom body + (rotate) × θt

(4.13)

ball ang from body とは，ボールと体の相対角度である．これを加えることによって，ボールがエージェントにぶつからないようにしている．

rotate は，敵エージェントのいない方向にボールを蹴るためのものである．
θt は，蹴りたい方向の絶対方向である．もしくは，自分がボールを任意の位置に移動させたいときの絶対方向である．

180 度を加えているのは，もし 30 度の方向に蹴ろうとした場合，30 度のままではそのま
ま 30 度の方向に蹴るだけで，敵エージェントに取られる可能性があるため，180 度を加えることによって，自エージェントを中心とした distance で求めた距離の円上を 30 度ずつ回転するようにし，ボールを敵エージェントに取られないようにしている．これを図 4.6 を示す．
相対角度とは，エージェントと指定された目標物に対しての角度のことをいう．指定した目標に対して，正面を 0 度とし，右側を正，左側を負とした角度を相対角度という．
絶対方向とは，エージェントを中心に敵ゴール側を 0 度とし，時計周りを正，反時計回りを負とする．範囲は 0 度 ∼ ± 180 度表示で表現する．
これにより，ド リブル角と力を求めることが出来る．

– 19 –

4.3 アルゴ リズム

図 4.6

30 度回転させる場合– 20 –

第5章

実験
5.1

実験方法

5.1.1

実験 1

実験 1 では，一体の敵エージェントをど のくらいの確率でかわせるのか，という実験を行った．
かわしたと判断されるのは，敵エージェントが自エージェントよりも後ろになった場合とした．これを図 5.1 に示す．

図 5.1

実験 1 の解説図– 21 –

5.2 実験結果

5.1.2

実験 2

実験 2 では，実験 1 と同じエージェントを使い，敵エージェント 2 体を使用してどれく
らいの確率でかわせるか，という実験を行った．これを図 5.2 に示す．

図 5.2

5.2

実験結果

5.2.1

実験 1 の結果

実験 2 の解説図

この実験では，敵エージェントの位置とボールの位置を確実に把握することが重要である．実験の結果，154 回行い 124 回成功したという結果となり，敵エージェントをかわす確率は，約 80 ％となった．これを図 5.3 に示す．
その他は，スマートド リブルを使用しなかった場合である．実験結果は，スマートド リブ
ルだけを使用して，敵エージェントをかわした場合の回数の確率を示している．

– 22 –

5.3 考察

図 5.3

5.2.2

実験 1 の結果

実験 2 の結果

この実験では，敵エージェント二体の位置と自エージェントに対して，ど ちらが近くまた
ど ちらがかわしやすいかということを，設定することが重要である．実験の結果，106 回行
い 36 回成功，約 34 ％となった．これを図 5.4 に示す．
その他は，スマートド リブルを使用しなかった場合である．実験結果は，スマートド リブ
ルだけを使用して，敵エージェントをかわした場合の回数の確率を示している．

5.3

考察

5.3.1

実験 1 の考察

実験の結果だけを見れば，良好な結果だと思われる．敵エージェントも移動するので，かわす確率は，100 ％という確率でかわすことは不可能だろうが，90 ％ぐらいまでの確率にはもっていけるのではないかと推測される．そのためには，計算による誤差の修正が必要となってくる．

– 23 –

5.3 考察図 5.4

実験 2 の結果

また，改善すべき所はエージェントのボールの移動させる距離である．ボールを移動させる距離は，Kickable area の大きさから，ボールの大きさを引いた距離ボールを移動させる
ので，敵エージェントとの距離が，サッカーサーバから得た情報よりも短い場合，ボールを移動させる距離が短いく，適切な方向でなければ，敵エージェントがボールを蹴れるためにボールを取られやすい，という場合があり，課題として残った．
そして，現段階ではボールを回している間は，エージェントは止まっているが，ボールを回している場合でも，移動をしているということが必要になるだろうと思われる．これを図5.5 に示す．
こうすることによって，回転キックを使用せず，敵エージェントを避けることが出来るよ
うになる．また，前述した課題にも対応出来るので，重要な課題として残った．

5.3.2

実験 2 の考察

実験 1 と比べて，かわす確率がかなり落ちたことが課題として残った．

• ボールを取られた状況– 24 –

5.3 考察

図 5.5

課題

主に，挟まれるように近付かれた場合で，近い方の敵エージェントに対してしか，避けようとしていなかったため，遠い方の敵エージェントに取られるというケースが目についた．これを図 5.6 に示す．
図 5.6 のような状況の場合，現状のスマートド リブルでは，かわせる可能性は，低いと思われる．そこで，早急にパスの実装が必要である．

• かわした状況
主に，同じ方向から敵エージェントが近付いてくる場合に比較的にかわせていることが分かった．これを図 5.7 に示す．
図 5.6 のような状況の場合，実験 1 とほぼ同じ状況となっているため，比較的にかわせていた．
しかし ，一体の敵エージェントをかわしている途中で，もう一体の敵エージェントにボールを取られる場合があったため，重み付けに対する課題が残った．

– 25 –

5.3 考察

図 5.6

取られた場合図 5.7 かわした場合– 26 –

5.3 考察敵エージェントをかわせている場合というのは，敵エージェント一体の状況と似ているた
め，かわせていた場合がよくあった．
これらのことより，二体の敵エージェント 近づいてくる場合，同じ 方向からならば ，敵エージェント一体と状況が似ているためかわせるが，挟まれるように近付かれた場合では，全ての敵エージェントの距離・角度などを，情報として把握していなければ，敵エージェン
トをかわすことは，ほぼ不可能であることが分かった．
また，ボールを取られた状況を分析し，ド リブル角に対する重み付けの検討が課題として残った．

– 27 –

第6章

まとめ
スマートド リブルの実装により，エージェントの性能強化に継った．これにより，エージェントの基本となるド リブルが出来るようになった．そして，クライアントの戦略・戦術部設計が行ない易くなった．
しかし ，まだ計算による誤差の修正，重み付けの再検討の必要性等のために，完全なス
マートド リブルには至っていないため，これらが今後の課題として残っている．このほかにも，近くにいる全ての敵エージェントの情報の把握も必要である．この点を，改良し来年度以降につなげていく必要がある．
また，パスの実装も課題としてあげられる．パスをする際には，ボールと味方エージェン
トの動きを予測しなければならない．そのために，補完・予測機能の強化が必要になって来る．予測の手法に時系列予測など の手法を使い，1 サイクル後の予測だけではなく，4 ，5サイクル先の予測をする機能の追加も今後の課題の 1 つである．予測機能の強化により，より高度な戦略・戦術が設計できるようになる．
今 後 ，KUT RoboCup Project と RAIK-NTG4 に よって ，代 表チ ー ムが 強 化 されRoboCup の大会での好成績が期待できる．

– 28 –

謝辞
本研究を進めるにあたりとても丁寧にご指導下さいました Ruck Thawonmas 助教授に心より御礼申し上げます．
本研究に関して色々な面で支えて下さった人工知能研究室の皆様に感謝します．

– 29 –

参考文献[1] http://www.robocup.or.jp/[2] http://sourceforge.net/projects/sserver/[3] Peter Stone, ”Layered Learning in Multiagent Systems: A Winning Approach to
Robotic Soccer”, MIT Press, pp.241-243, 2000.
[4] http://ci.etl.go.jp/˜noda/soccer/client/index.html.
[5] ”Soccerserver Manual (日本語版)”,
http://www.ita.tutkie.tut.ac.jp/˜watta/RoboCup/jmanual.html.
[6] Ruck Thawonmas, 大森洋一, 平山純一郎, “RoboCup ソフトウェアロボットづくりによる問題設計解決型学習”, 第 9 回情報教育方法研究発表予稿集, pp.50-51, July. 2001.

– 30 –