Table of Contents

UT Austin Villa

Tento americký tím Texaskej univerzity v Austine pôsobí na scéne Robocup-u od roku 2003 a patrí medzi najúspešnejšie tímy v štandardnej lige, 3D simulovanej lige a lige trénerov. Na svojich domovských stránkach majú zverejnené rozsiahle kódy k svojim agentom spolu s dokumentáciou. Ich výskum sa zameriava na trénovanie, hracie stratégie a v poslednom roku aj na optimalizáciu všesmerovej chôdze (angl. omnidirectional walk), ktorú označujú za hlavný dôvod ich víťazstva na majstrovstvách sveta v simulovanom futbale v Turecku. Detaily parametrov použitých na optimalizáciu tejto chôdze však momentálne nie sú zverejnené.

Trénovanie

Princíp trénovania uplatňuje tento tím vo vývoji dvoch druhov agentov:

Tréner (angl. couch) - je to agent schopný na základe záznamov odohratých zápasov analyzovať hru súpera. Po analyzovaní gólových situáciách vie navrhnúť taktiku, ktorá by tomuto gólu zabránila a naopak po analyzovaní obrany vie navrhnúť taktiku, pri ktorej by bolo možné obranu obísť a skórovať

Hráč (angl. couchable player) - agent schopný spracovať pokyny trénera a následne ich vykonať. Hráč zohľadňuje aj ručne pridané rady konfiguračného charakteru (napr. uprednostniť streľbu pred prihrávaním, posúvať loptu viac dopredu než dozadu, pri obrane posúvať loptu k najbližšej čiare …)

Tréner analyzuje dáta pozostávajúce z cyklicky zaznamenávaného stavu prostredia. Tento stav obsahuje pozície, smer a rýchlosť pohybu lopty a všetkých hráčov. Výsledkom analýzy je identifikácia udalostí vyššej úrovne, ktoré sa počas hry udiali (držanie lopty, strela, prihrávka, získanie lopty …). Úlohou trénera je následne na základe daného stavu prostredia určiť najpravdepodobnejšiu udalosť a postup, ktorý majú hráči v prípade tejto udalosti vykonať. Tento postup je potom vykonávaný hráčom, na základe rozhodovacieho stromu, ktorý je implementovaný v tréningovom jazyku CLang.

Hracie stratégie

Hracie stratégie určujú správanie agentov pri určitých herných situáciách. Tím UT Austin Villa vyvinul dve podúlohy robotického futbalu, ktoré sú zamerané na kontrolu lopty.

Keepaway - v tejto úlohe figurujú dva tímy, jeden sa snaží kontrolovať loptu a udržať ju na ihrisku obmedzenej veľkosti a druhý tím sa snaží prebrať kontrolu lopty, pričom veľkosť ihriska a počet hráčov oboch tímov je voliteľný. Táto úloha je náročná z pohľadu strojového učenia, pretože:

Half field offense - je rozšírením keepaway, kedy sa útok jedného tímu má za úlohu dostať cez obranu druhého tímu tak, aby bol schopný streliť gól. Hrá sa na jednej polovici ihriska so začiatočnou pozíciou lopty blízko poliacej čiary.

Videnie tímu Austin Villa

Nášmu hráčovi sa často stane, že si nevie prepočítať kde sa nachádza. Často sa nám pri simulácii stalo, že obraz ktorý si vypočítal Jim bol veľmi rozdielny od reality. Tím Austin Villa má najúspešnejší tím v simulovanom futbale. Preto analyzujeme ako funguje táto funkcia u ich hráča.

Lokalizovanie u hráča funguje na základe spracovávania orientačných bodov na ihrisku. V praxi sa využívajú dva algoritmy na odhad polohy robota: pomocou Kalmanovho filtra (KF) a Monte Carlo lokalizácia (MCL). V prípade že robot usúdi, že sa stratil (nevidel hraničný bod dlhšie ako 4 sekundy), ukončí svoj pohyb a začne sa otáčať kým neuvidí čiaru a neobnoví svoju polohu. V prípade, že robot stále aj po tomto úkone nevie kde sa nachádza, vyšle správu ostatným robotom. V momente, keď prvý robot zaznamená robota, ktorý vysiela správu, že sa stratil, pošle mu jeho polohu a uhol orientácie strateného robota. Avšak odkedy Austin Villa zaviedol lokalizáciu pomocou prvej nájdenej čiary, nebolo potrebné využívať pomoc ostatných spoluhráčov na lokalizáciu.

Všeobecne platí, že formácia tímu je určená polohou lopty na ihrisku. Príklad tohto riešenia je uvedený na obrázku 1., kde sú znázornené rôzne pozície a ich relatívne posuny, keď je lopta napríklad v strede poľa. Ako je vidieť na obrázku, forma sa môže rozdeliť na dve samostatné skupiny, útočné a obranné. V rámci útočnej skupiny sú pozície na ihrisku určené pridaním konkrétneho posunu k súradniciam lopty. Úloha funkcie onBall je prideliť hráča, ktorý je najbližšie k lopte.


Na každú stranu lopty sú pridelené dve popredné role hráčov – „forwardRight“ a „forwardLeft“. Následne pokračujú dve ďalšie role hráčov, „wingLeft“ a „wingRight“, ktoré sa nachádzajú za a po každej strany lopty. V rámci obrannej skupiny sú dve úlohy, „backLeft“ a „backRight“. Na určenie ich pozície na ihrisku sa vypočíta čiara medzi stredom ihriska a loptov. Brankár sa umiestni sám nezávisle od svojich spoluhráčov, aby bol vždy v najlepšej pozícii na zastavenie streľby lopty na cieľ.

Hlavná logika, ktorá je v tíme Austin Villa implementovaná je, že žiadny dvaja agenti ani žiadne dve role (zastúpenie role agentov), nereprezentujú rovnakú pozíciu na ihrisku, a po druhé predpokladajú, že všetci agenti sa pohybujú smerom k pevným pozíciám pozdĺž priamky vedenej kolmo na loptu.

V simulačnej doméne RoboCup 3D je súbor objektov pevne stanovený: spoluhráči, protivníci, loptičky, bránky a rohy v ihrisku.


Samotná lokalizácia sa vykonáva pomocou časticového filtra, ktorý využíva algoritmus „Monte Carlo lokalizácia“, bol pôvodne napísaný pre skutočného robota NAO Austin Villa tímu a bol prispôsobený simulačnému prostrediu. V časticovom filtry Austin Villa sa v rámci jedného cyklu aktualizujú X,Y os a uhol θ.

Dôležitou súčasťou je dynamická zmena role hráča na základe vzdialenosti od lopty.

Kalmanov filter

Austin villa používa KF na získavanie informácii o objektoch, ktoré vidí. Má samostatné triedy na rozpoznávanie lopty BallKF a rozpoznanie hráčov PlayerKF.

Monte Carlo lokalizácia

Tento model má jednoduchú implementáciu a možnosť reprezentovať multimodálne hypotézy pozície. Je využívaný na výpočet polohy hráča na základe informácii o čiarach. Jednotlivé body je možné reprezentovať zápisom <h, p>, kde h = (x,y,θ). Orientačný bod je reprezentovaný h a p je pravdepodobnosť správnosti odhadu. Orientačné body sa vytvárajú v triede Particle. Pri každom pohybe sa tieto orientačné body aktualizujú pomocou funkcie updateParticleFromLandmarks v triede PFLocalization. Táto trieda obsahuje aj funkciu estimateRobotPose, ktorá slúži na výpočet odhadovanej pozície robota. Aktualizácie polohy je možné zapísať ako m = (x‘, y‘, θ‘), kde x‘ a y‘ je vzdialenosť o akú sa robot pohol od pôvodných súradníc a θ‘ je uhol o ktorý sa robot pohol od posledného kroku. Ak budeme považovať vypočítané orientačné body ako O a známe orientačné body ako L, vieme zapísať algoritmus na MCL:

1: for all i P do

2: hi ← hi + m

3: pi ← 1

4: for all o O do

5: l ← from o

6: if l is a distinct point landmark then

7: pi ← pi· DISTINCT-LM-PROB(i,o,L)

8: else if l is an ambiguous point landmark then

9: pi ← pi· AMBIGUOUS-LM-PROB(i,o,L)

10: else if l is a distinct line landmark then

11: pi ← pi· DISTINCT-LINE-PROB(i,o,L)

12: else {l is an ambiguous line landmark}

13: pi ← pi· AMBIGUOUS-LINE-PROB(i,o,L)

14: end if

15: end for

16: end for

17: P ←RESAMPLE-PARTICLES(P) (Eq. 6)

18: P ←RESEED-PARTICLES(P,O)

19: P ←RANDOM-WALK(P)

20: (pose,conf) ← WEIGHTED-AVERAGE(P)

21: Return (pose,conf)

Záver

Tím využíva na získavanie o polohe 2 rôzne algoritmy: Kalmanov filter na získavanie údajov o polohe objektov, ktoré vidí a algoritmus Monte Carlo na výpočet svojej vlastnej polohy. V prípade že sa stratí sa točí dookola a ak sa nevie aj napriek tomu orientovať, vyšle signál spoluhráčom a tí mu pomáhajú s jeho lokalizáciou.