420 likes | 601 Views
ROBOCUP. Futbalová simulačná liga tím Squirrel Squadron. Obsah prezentácie . Dynamické formácie Správanie sa hráča Zvuková komunikácia. Dynamické formácie. ROBOCUP. Úlohy kouča. Zbieranie a spracovávanie štatistík Vykonávanie strategických rozhodnutí Zmena formácie
E N D
ROBOCUP Futbalová simulačná liga tím Squirrel Squadron
Obsah prezentácie • Dynamické formácie • Správanie sa hráča • Zvuková komunikácia
Dynamické formácie ROBOCUP
Úlohy kouča • Zbieranie a spracovávanie štatistík • Vykonávanie strategických rozhodnutí • Zmena formácie • Odosielanie informácií hráčom • O zmene formácie hráčov
Zbieranie štatistík • Rozdelenie ihriska na štvorcové zóny • Spracovávanie zrakových správ o dianí na ihrisku • Zápis polohy pohyblivých objektov do štatistík
Záplavový algoritmus • Štatistiky sa berú ako pohorie • Postupne sa po jednom zvyšuje „hladina vody“ • Ukončí sa v momente, keď je pokrytý požadovaný povrch ihriska
Výškový algoritmus • Určenie maximálnej výšky obsadenia políčka • Určenie hraničnej hodnoty • Rozdelenie políčok na tie, ktoré sú nižšie a vyššie ako hraničná hodnota
Algoritmus lokálnych maxím • Prechádza sa postupne všetkými políčkami ihriska • Za lokálne maximum sa považuje políčko v ktorého okolí je len nižšie obsadenie • Určenie lokálnych maxím
Význam dynamických formácií • Prispôsobenie sa formácie na základe stavu hry • Prispôsobenie sa formácie na základe formácie súpera • Väčšia dynamika hry
Štruktúra formácií • Reprezentácia formácií: • Rola hráča • Domovská pozícia • Posun domovskej pozície s ohľadom na polohu lopty • Využívanie preddefinovaných formácií • Definovanie vlastných formácií počas zápasu
Určenie domovskej pozície - X • PLR = • PLR – domovská súradnica hráča po zohľadnení lopty • BALL – aktuálna poloha lopty na ihrisku • NULL – nulová pozícia, podľa vzdialenosti lopty od tejto osi sa rozlišuje, či sa, s ohľadom na svoju absolútnu polohu, bude hráč sťahovať smerom k brankárovi alebo vysúvať dopredu • HALF – konštanta, polovičná dĺžka ihriska • ABS – absolútna poloha hráča, v ktorej sa hráč nachádza práve vtedy ak je lopta na osi NULL • MIN – os, po ktorú sa môže hráč maximálne stiahnuť • MAX – os, po ktorú sa môže hráč maximálne vysunúť
Určenie domovskej pozície - Y • PLR = • PLR – domovská pozícia hráča po zohľadnení lopty • BALL – aktuálna poloha lopty na ihrisku • ABS – absolútna poloha hráča, v ktorej sa hráč nachádza práve vtedy, ak sa lopta nachádza na y-ovej osi, ktorá prechádza jeho absolútnou polohou • HALF – konštanta, polovičná šírka ihriska • DIS – rozptyl, v ktorom sa môže hráč nachádzať okolo svojej absolútnej pozície
Zmena formácii počas zápasu • určenie typu formácie podľa stavu hry • čas • skóre • hra v zónach • aktuálna formácia • výpočet absolútnych pozícii na základe mapy pokrytia • vychádza sa z predvolenej • posun polohy na základe štatistík z bitového zjednodušenia mapy pokrytia
Správy na zmenu formácií • Určovanie formácií koučom • Využívanie zvukových správ: • Správa na zmenu inej preddefinovanej formácie • Správa na zadefinovanie úplne novej formácie • Správa na zmenu parametrov hráčov vo formácii • Prijatie správy hráčmi a zmena parametrov
Správa na zmenu inej preddefinovanej formácie • Štruktúra správy: (formation cislo_preddefinovanej_formacie) • Príklad: (freeform "(formation 2)")
Správa na zadefinovanie úplne novej formácie • Štruktúra: 10x • (X_pozicia Y_pozicia Rola)... (X_pozicia Y_pozicia Rola) • Príklad: (freeform "(NF (-30 -25 D)(-30 -15 D)(-30 -5 D)(-30 5 D)(-30 15 D)(-30 25 D)(-4 -25 M)(-4 25 M)(25 -25 F)(25 25 F) )")
Správa na zmenu parametrov hráčov vo formácii • Štruktúra: (X_pozicia Y_pozicia Rola)... • Príklad: (freeform "(ChPl (2 -10 20 D)(6 -9 11)(9 20 20 F))")
Správanie sa hráča ROBOCUP
Vizualizácia rozhodovacieho stromu • Pomáha pochopiť proces rozhodovania hráča • Zviditeľní chyby • Pomáha pri odstránení chýb • Použitá forma „flowchart“
Definícia správania sa hráča Správanie sa hráča ovplyvňujú: • Vzdialenosť od lopty • Rola hráča (útočník, obranca...) • Postavenie protihráčov • Postavenie spoluhráčov • Stav skóre • Zóna na ihrisku, v ktorej sa hráč nachádza (útok, stred poľa, obrana, krídelné zóny, ...)
Problém so zónami Ak sa hráč pohybuje na rozhraní dvoch zón, často mení svoje správanie.
1. Aktuálnej zóne sa hranice rozšíria 2. Po prechode do susednej zóny sa táto stane aktuálnou Riešenie - dynamické hranice zón
Driblovanie s loptou • Krátke predkopávanie spomaľuje postup • Predkopnutie na väčšiu vzdialenosť znamená možnú stratu lopty • Treba určiť správnu vzdialenosť a smer • Využitie metódy SmartDribble() • Vyuzitie metódy ShortKick()
Opravené chyby • Pevne nastavený cieľ driblovania • Cieľ sa dynamicky vypočítava vzhľadom na polohu hráča • Nedostupný kód útočníka • Kód bol sprístupnený a odladený na častejšiu streľbu
Zvuková komunikácia ROBOCUP
Typy správ • „pokry“ – zamedzenie krížnym prihrávkam
POKRY: algoritmus • nájdenie najbližšieho voľného súperovho hráča • nájdenie najbližšieho voľného spoluhráča k určenému súperovi • zakričanie správy POKRY • reakcia hráča na správu pusti
Správa PUSTI motivácia: • efektívnejšie chytenie lopty • zamedzenie zbytočného rozbehnutia sa viacerých hráčov za voľnou loptou • zlepšenie dynamiky hry (efektívnejší pohyb hráčov na ihrisku)
PUSTI: počiatočná verzia • kričím PUSTI:ak si myslím, že som najbližšie k lopte (bližšie ako ostatní spoluhráči) • počujem PUSTI:nastavenie príznaku „nebežím za loptou“ a jeho zrušenie, až keď zbadám, že lopta nie je voľná – po túto dobu nebežím za loptou, ale na domovskú pozíciu (relatívnu k lopte)
PUSTI: problémy a riešenia • problém – ihneď po prihrávke prihrávajúci hráč zistí, že je najbližšie a zakričí PUSTI – znefunkčnenie prihrávok riešenie – doplnenie podmienky kričania PUSTI – len ak sa lopta nepohybuje rýchlo odo mňa
PUSTI: problémy a riešenia • problém – rušenie príznaku „nebežania za loptou“, len ak loptu niekto drží, nie keď ju odkopne bez jej držania (alebo keď loptu stratím z dohľadu) riešenie – doplnenie rušenia príznaku – aj keď lopta zmení svoj smer (vektor) (nutné pamätať si vektor lopty pri kričaní PUSTI – rušenie príznaku pri prekročení medzného uhla medzi starým a novým vektorom lopty)
PUSTI: problémy a riešenia • problém – „deadlocky“ hráčov – dvaja hráči si myslia, že sú najbližšie, zakričia PUSTI, a aj príjmu PUSTI – nikto sa nerozbehne za loptou riešenie – kričím aj moju vzdialenosť od lopty,ak prijmem PUSTI (a predtým som sám kričal PUSTI), porovnám prijatú vzdialenosť od lopty spoluhráča s mojou vzdialenosťou od lopty v dobe môjho kričania PUSTI (nutné pamätať si vzdialenosť k lopte pri kričaní PUSTI)
10 12 13 11 P(10) P(12) P(12) P(10) PUSTI: problémy a riešenia
Typy správ • „za tebou“ - upozornenie hráča s loptou, že ho napáda súper zozadu, kde ho nevidí • „prihraj“– vypýtanie si prihrávky, pokiaľ som vo výhodnej pozícii • „chytaj“ - upozornenie spoluhráča na prihrávku • „mám“ - oznam ostatným, že mám loptu • „bež“ – upozornenie spoluhráča, aby sa rozbehol na želanú pozíciu • „pusti“ – (popísané nižšie) • správy pre riadenie ofsajdovej pasce, ...