自律走行ロボットの世界レポート
安並 健太郎
増田 壮志
西村 健
小川 和博
1.設定
ロボットの目は天井に付けられたカメラで、ボール、自機、敵機を判別し、ロボにはそれらの場所をxy座標で送り場所を知ることとする。この把握能力は正確であるものと仮定する。以下ではゴールラインに平行にX軸、サイドラインに平行にY軸をとるものとして説明する。このとき敵のゴールの方向をY軸の正の方向とする。また、コートの対角線の交点をコートの「中心」、中心を通り、X軸に平行な直線を「センターライン」、中心を通り、Y軸に平行な直線を「Cライン」、ロボットを中心にロボットが二秒間に移動できる範囲(円)を「領域」と呼称する。なお、説明で用いられる角度はタンジェントを用いて計算する。
2.基本的な配置と動き
ロボットはそれぞれが固有の役割を持ち、その分担に沿って行動する。
これらはそれぞれが役割ごとに決まった範囲内で動く。役割の分担は以下のとおり。
αグループ : 自陣のゴール前、正確にはゴールを中心とした半径aメートルの半円内を動き、守備を担当する。数は2つ。
βグループ : フィールド内を自由に動きボールを確保する。数は2つ。
γグループ : 常にコートの敵ゴールよりの半面で動き、攻撃を担当する。数は1。
3.個別の状況への対応
αグループ 開始直後にロボットはゴールを中心とした半円を二分する形になるよう移動し、その後は半円内でボールとゴールを結ぶ直線状に割り込むように移動する。ボールをとった場合は、味方と自身を結ぶ直線状に敵がいない場合は、よりY軸に対する角度の小さい位置にいる味方にパスを行い、そうでない場合は直線状に敵のいない方向のうちY軸に対する角度の最も小さい方向にボールを飛ばす。
βグループ 基本はボールを追い、ボールを確保した後はαと同様の法則に従いパス。ただし、敵陣のゴールを特殊な味方として扱うことで、シュートも行う。このシュートは他の味方へのパスよりも優先される。
また、自分よりもボールに距離が近い位置にβ、またはγが2ついるか、味方がボールをキープしている場合、図1のようにθ、Φ、σをとり、それぞれの領域内で、他のすべてのロボットが45度以内、または135度以上に存在するときはそのままY軸正方向に直進。
(ただし、0°≦θ、Φ、σ≦360°)
45度から135度の間に他のロボットが1つ存在する場合はそのロボットのX座標と逆方向に速度を与える。2つ以上存在する場合はその場所で待機する。ボールを追う場合を除き、ロボットは領域内にコートの端が入らないように移動する。コートの端が領域内に入った場合はそれがY軸と平行ならばそれとX座標逆向きの速度を与え、それがX軸と平行ならばY軸方向の速度を0にする。
γグループ 基本的にはβと同様だが、自陣内に入ることはできないため、ボールが自陣内に入った場合はボールを追わず、前述のアルゴリズムに従って移動する。