基礎セミレポート

「サッカーシュミレーションについて」

 

 

 

 

 

 

前田 有里奈              1章

林  英典         1章

福嶋 雄基       2章

三木 麻理子      3章

松村 直和       4章

 

 

本レポートでは、改良したサッカーアルゴリズムを記述し、色センサーによる認識方法とCPUの説明及び自己PRを行う。

 

1.サッカーアルゴリズム(改良版)

                              図1

 

図1のように座標軸を設定する。                                                                             

コートの横の長さを2a、縦の長さを2b、ゴールの奥行きをc、幅を2dとし、点Pacd)、点Q(ac,−d)をとる。

各プレーヤーをAGK;キーパー)、BCDEとする。

 

x≦0を自陣とする。 

 

@各プレーヤーの守備範囲

 A: x=−a上かつ−dyd

 BD: −axa、−dybで囲まれる領域

 CE: −axa、−bydで囲まれる領域

 

 

A条件

    天井にカメラ付きCPUを設置

    CPUはボールと各プレーヤー(味方)の位置を座標で把握

    各プレーヤーへの指令はCPUが行う

CPUはボールの位置を予測できない

 

BCPUによる各プレーヤーとボールの位置の把握方法  

    各プレーヤーは各々異なる電波を出す

    CPUはその電波でA~Eの位置を把握

    ボールの把握は色センサーで行う

 

CPUは定期的に(0.1秒間隔で)A~Eに指令を送る

 

 

C指令内容

 (1)B~Eに対して

  (イ)ボールがロボットよりもx軸正方向にあるとき

      ボールの座標に向かって直進し、

ボールのy座標がy<0ならば点Pへ、y>0ならば点Qへ蹴る

  

(ロ)ボールがロボットよりもx軸負方向にあるとき

      B,Dが−axaかつ−d≦y≦bで囲まれる領域、C,Eが−axaかつ−b≦y≦dで囲まれる領域を守備範囲とする。ボールの座標が以下の範囲にあるときを考える。

       あ): −a≦x<−

       い): −a≦x<−

       う): −a≦x<0

       え): 0≦x<

       お): a≦x<

       か): a≦x<a

      また点R(−a,0)を設定する。ボールがロボットよりもx軸負方向にあるときB、C、D、Eは点Rに向かって直進するものとする。このときボールが あ)にあるときはx=−a、い)にあるときはx=−a、う)にあるときはx=−a、え)にあるときはx=0、お)にあるときは     x=a、か)にあるときはx=a上までロボットは直進するものとする。

 

改良点:  ロボットはx軸負方向に向かって進んでいるときボールをx軸正方向に蹴ることはできないものとしているため、(ロ)の状況にあるときロボットはボールを相手ゴールに向かって蹴ることはできない。つまり攻撃できない。そのためディフェンスに回るほうが得策であるため、点Rに向かってロボットは直進するようにした。さらに(ロ)の状況にあったロボットがいち早く攻撃に回れるようにし、かつボールがx軸負方向に進んでいるときロボットが(イ)の動作を起こすにはある一定距離をおいてロボットがボールよりもx軸負方向になければならないため上記のようにロボットの動きを制限した。

 

       

 (2) AGK)に対して

    −d≦y≦dの範囲で、ボールのy座標と同じx=−a上のy座標に直進する

 

3A~Eに対して

    各々の守備範囲からは出ない

 

 

 

2.色センサー

まず、カメラによってコート全体の画像を取り込む。

次に認識部分の検討を行う。例としてテニスボールを用いる(図1)。この図では、人が見てここにボールがあるな、と一目で判断できるものであるが、実際のサッカーではボールの色から判断できる。このボールをソフトで認識した結果と比較が出来るようにすれば、認識アルゴリズムやパラメータの定量的な評価が出来る。そこでボールの位置と半径を座標で認識して、認識部分の検討は完了する(図2)

 最後に、認識アルゴリズムの検討である。その結果をXY方向それぞれに対して射影したデータ列を作成する。ボールがある場合にはXY方向共に、ある場所に認識された結果の分布が現れる。これを使ってボールの位置と半径を認識する(図3)

 以上の方法でボールは認識される。

   

      図1                図2

図3

<参考文献>

 テニスボールを認識する移動ロボット

センサと知能ロボット / 日本機械学会編

 

 

 

 

3.CPU

ここでは、CPUが本当にこのシステムに適しているか、また、このシステムでCPUを用いるには認識する間隔を何秒にすればよいのかについて調べた。

 

なお、ここで言う“プレーヤー”とは、シュミレーション上の選手のことを指す。

 

まず、CPUが本シュミレーションに向いているのかという問題についてだが、このサッカーシュミレーションにおいて、CPUの役割は

ボールやプレーヤー(動いているもの)の座標を認識する

プレーヤーがどちらの組のものなのかを区別して認識する

ボールとプレーヤーとの距離や方向を認識する

認識したボールやプレーヤーのデータを、前もって与えたプログラムを用いて分析し、それによってプレーヤーを動かす

などである。

ところで、CPUのいいところは、

プログラム次第で多様な処理を行うことができる

プログラム制御命令も実行できるので自律動作が可能

などで、おおよそ全てのシステムに搭載されている。

以上のような特徴をもつので、CPUは本シュミレーションに向いていると考えた。

 

次に、CPUでボールやプレーヤーの位置を確認する間隔についてだが、0.1秒間隔で本当に機能するのかという点について考えてみたい。

まず、現実世界でのプレー中のサッカーボールの速度は約25/sと考える。

現実世界でのコートの広さは国際基準で縦3842m、横1822mである。コンピュータ上でのコートの広さをおおよそ、縦25cm、横20cmとすると、だいたい100分の1の縮小であることがわかる。この時、25/sのボールを現実世界のプレーで用いたとすると、0.1秒では2.5m進むことになるが、ボールの軌跡を描くうえでは0.05秒の間の1.25mくらいが適当なのではないかと思った。

 

 

 

4.PR

守備範囲の領域を拡げることによりロボットの動く範囲を広げた。それにより前回の試合の時にあった、相手のロボット四体に対し自分のロボット二体でボールを取り合うということが起こらないようにした。そしてある程度の領域に制約をつけることで、四体が団子になることを避けた。

また、ロボットがx軸負の方向に進んでいる時、改良前、ロボットはボールの方へ向かうだけで何もしなかったが、それを、ゴールに向かわせるように変えることでまずゴールを守り、そしてその後ボールを取りに行くようにさせた。しかも、ただ単にゴールに向かうのではなく、ボールとロボットの位置によってどこまでゴールの方へ戻るかを決めた。それにより、いったんゴールに戻ってからボールを取りに行く時間をできるだけ短くした。