Table of Contents

Celkový koncept pohybovania agenta

Agent na ihrisku je riadený kódom, ktorý sa skladá z viacerých modulov navzájom prepojených. Moduly sú v hierarchií a každý má inú funkcionalitu.

Plánovač

Na vrchu hierarchie je plánovač, ktorý riadi celkové správanie sa agenta. Plánovač vytvára inštancie vyšších pohybov a aktivuje ich na základe stavu hry a hráča. Hlavný cyklus beží po inicializácii a načítaní agenta a obsahuje v sebe aj pustenie plánovača.

Vyššie pohyby – high skills

Vyššie pohyby sa taktiež rozhodujú na základe stavov agenta. V tomto prípade ale ide o špecifické stavy vzhľadom na daný high-skill. Napríklad v prípade high-skillu „Choď k lopte“ sa vyhodnocuje stav agenta voči lopte. Tieto stavy sa vyhodnotia niekoľko krát počas vykonávania high-skillu.

Vykonávanie high-skillov

V high-skilloch použité nižšie pohyby musia mať aspoň jednu fázu, ktorá je označená ako konečná fáza, t.j. fázu v ktorej low-skill končí. High-skill na základe stavu agenta sa rozhoduje, ktorý low-skill bude zavolaný. Low-skill volá funkciou pickLowSkill. V prípade zistenia stavu, ktorý v danom high-skill nie je ošetrený, high-skill končí a vráti NULL pre plánovač. Plánovač sa následne rozhodne ako ošetriť vzniknutý stav.

Nižšie pohyby – low-skills

Nižšie pohyby sú vytvorené jednoduchou štruktúrou. Sú poskladané z radov natáčaní kĺbov NAO robota združené do stavov a fáz.

Typy low-skillov

Chôdza

Chôdza je viacmenej už high-skill pohyb, ktorý sa skladá z opakovania jedného kroku (resp. dvoch). Low-skill chôdze obsahuje krok, ktorý sa má opakovať a tak vytvoriť chôdzu. Aktálne sa používajú dve chôdze smerom dopredu a jedna smerom dozadu. Vytvorené sú aj funkčné chôdze s otáčaním. Ichpoužívanie zefektívni prídenie hráča ku cieľu. Pre ich používanie ale chýba potrebný high-skill.

Kopanie

Kopania môžu byť vykonané rôznou silou. Ani sila ani iné parametre nemôžu byť low-skillu podané, preto pre každý typ kopnutia je vytvorený zvlášť pohyb. Aktuálne používame 3-4 kopnutia, ktoré sa líšia najmä v sile kpnutia. Najsilnejšie kopnutie sa líši nielen silovo, ale aj spôsobom pohybu. Hráč pred kopnutím si spraví veľký krok aby nabral väčšiu rýchlosť počas kpnutia.

Úkroky

Úkroky slúžia na správne nastavenie hráča k cieľu. Vytvorili sme dva typy úkrokov a to úkroky do strán a úkroky po kružnici. Existujú väčšie aj menšie úkroky pre oba typy úkrokov. Samotný pohyb úkrokov je rovnakého charakteru a tak nedochádza ku stratu stability pri ich kombinácií.

Otáčania

Otáčania slúžia taktiež pre správne smerovanie a nastavenie hráča. Vytvorili sme úpne nový súbor otáčaní postupne od 4,5 až 90 stupňov. Použitím týchto otáčaní je možné vykombinovať potrebné otočenie väčšinou použitím dvoch pohybov.

Pády a sadanie

pády využívajú hráči pre bránenie. Samotné pády sú veľmi jednoduchého charakteru. Sú spoľahlivé a rýchle.

Vstávanie

Vstávanie je implementované tak aby sa hráč vedel postaviť aj z brucha aj z chrbta jedným pohybom. V prípade ležania na boku sa hráč samotným pohybom vstávania prehodí na chrbát alebo brucho a opakovaným pohybom sa postaví.

Diagram tried pohybov

XML súbory nižších pohybov a ruby skripty vyšších pohybov figurujú v zdrojovom kóde nasledovne: Niektoré z tried existujú aj v Jave a rovnaké alebo podobné triedy sú aj v Ruby skriptoch:

Stavy agenta

Stavom hráča sa v minulosti zaoberalo viacero tímov na našej fakulte. Prvé tímy, ktoré sa ním zaoberali sa venovali ešte 2D robotickému futbalu. Z tímov, ktoré riešili 3D robotický futbal to sú tímy Agenty 007 a Robocopy.

Stavy agenta v súčasnosti sa určujú pomocou údajov z Modela sveta. Určuje sa absolútna poloha agenta na ihrisku, poloha lopty a ostatných hráčov. Určuje sa relatívna poloha agenta a lopty voči iným objektom na ihrisku. Ďalej sa určuje natočenie agenta atď. Údaje sú získané pomocou receptorov agenta z jednotlivých častí modelu sveta:

Senzory

Ďalší pohľad na stav agenta ponúka akcelerometer a gyroskop. Podrobná analýza týchto senzorov je dostupná na: Analýza_výstupov_z_gyroskopu_a_akcelerometra

Model sveta

Model sveta zhromažďuje informácie, ktoré sú potrebné pri vývoji a testovaní agenta. Model sveta možno rozdeliť na:

Návrch na vylepšenie modelu sveta od tímu High5: Návrh_na_vylepšenie_modelu_sveta

Zdrojový kód

Model sveta je v kóde zahrnutý pod komponentou Models. Je rozdelený do nasledujúcich častí:

Triedy modela sveta: Triedy_Model_sveta

Graf dát

V modeli sveta figuruje viacero dát, na základe ktorých samotný model sveta funguje. Jednotlivé dáta sú spracované do grafu dát. Graf dát predstavuje informácie, ktoré dokáže agent o svete získať. Informácie sú na rôznych stupňoch abstrakcie. Najnižšiu vrstvu predstavujú tie, ktoré prichádzajú zo servera a predstavujú dáta, ktoré agent dostáva zo snímačov. V grafe sú to uzly, do ktorých nevchádza žiadna hrana.

TestFramework

Test Framework slúži na získanie spätnej väzby od hráča. Hlavným zámerom je zostrojiť robotického futbalového trénera, ktorý by dokázal učiť hráčov novým taktikám a pohybom automaticky. Zatiaľ je vypracovaný len vo fáze pozorovateľa hráčov.


Modelovanie situácie je možné pomocou testcase. Podrobný návod na vytvorenie testcase nájdete na Test Case.
Testcase sú prispôsobené tak, aby mohli byť použité na vyhodnocovanie disciplín turnaja “RoboCup at FIIT”. Vykonané zmeny testcase-ov pre turnaj sú popísané v TestFramework: Príprava na turnaj


Návody na nastavenie a spustenie hráča nájdete na Spúšťanie hráča a Nastavennie TestFrameworku.


V grafickom rozhraní testovacieho frameworku sa ľahko zorientujete podľa GUI: Testovací framework.


Ak Vám nefunguje pridanie hráča cez testframework, tak pravdepodobne nemáte v priečinku Jim/scripts/ prázdny priečinok testframework/

Zdrojové kódy

RoboCup Library

Používa sa len veľmi málo, jeho existencia je viacmenej nepotrebná, ale aby mohol byť odstránený, je potrebný refactoring kódu.

Jim

Vysvetlenie role a funkcionality….(DOPÍSAŤ)

Popis balíkov: (podrobný popis tímu A55 kickers)

TestFramework

Vysvetlenie role a funkcionality (DOPÍSAŤ!!).

Popis balíčkov: (Pordobný popis balíčkov)

Editor pohybov

Editor pohybov zjednodušuje prácu pri vytváraní pohybov robota. Pomocou editora sa dá efektívne pracovať na ich tvorbe a následne sa dajú vytvorené pohyby aj odsimulovať v prostredí 3D futbalu. Výhodou editora je vlastné grafické rozhranie, ktoré sprehľadní štruktúru XML súborov pohybov.

Podrobnejšie o vytváraní pohybov v editore: Vytvorenie_pohybu_v_editore