Bakalárska práca - Marcel Kanta
Z RoboCupTP wiki
Obsah |
1. Analýza bakalárskej práce Marcela Kantu
1.1 Zameranie bakalárskej práce
Bakalárska práca je zameraná na stabilizáciu hráča, skúmanie nižších schopností existujúceho hráča a návrh vylepšení nevyhnutných k stabilizácii. V práci je navrhnuté úmyselné umiestňovanie ťažiska tak, aby hráč získal lepšiu rovnováhu, a tak bola znížená pravdepodobnosť pádu. Riešenie spočíva v pohybe, ktorým dokáže hráč predchádzať pádu.
1.2Návrh riešenia
1.2.1 Detekcia pádu – princíp je využitie ťažiska, alebo akcelerometra vzhľadom k pozícii nôh vo vodorovnej rovine. Akcelerometer meria zrýchlenie vzhľadom na gravitáciu, približne (0,0,g) – nie je to presné, pretože tam vznikajú odchýlky vnášané serverom. Túto hodnotu v absolútnych súradniciach pripočítal k ťažisku. Pri výpočte posunu vychádzal zo vzorca s= vt + at2 , hráč sa posúva za určitú časovú vzorku. A teda vypočítal predpokladanú pozíciu ťažiska za určitý čas.
Naivná detekcia stability – v priebehu testovania zistil, že táto metóda nie je vhodná, počítal tu s priemerom súradníc stredu chodidiel vo vodorovnej rovine a vektorom posunutia od ťažiska k tomuto miestu. Metóda stabilnej oblasti – spolieha sa na predpovedanie pozície ťažiska s ohľadom na aktuálny stav stabilnej oblasti – priestore pod nohami vo vodorovnej rovine v absolútnych súradniciach.
1.2.2 Vykonanie akcie stabilizácie – princíp vychádza z identifikovania vektora stabilizácie a vykonania pohybu, ktorým sa ťažisko pohne o vektor stabilizácie do stabilnej oblasti. Chcel použiť na ovplyvnenie ťažiska ruky, no mali malú hmotnosť a tak nízky vplyv. Zistil, že trup silno ovplyvňuje pozíciu ťažiska (trup nemá kĺby ale je ovplyvňovaný stehnami a bedrovými kĺbmi ). Zistil, že pre stabilizáciu platí, čím ďalej agent padá, tým väčší protipohyb je potrebný. Ďalej, že stabilizácia by mala byt transparentná voči vyššej logike, a teda vyššia logika by mala prijímať vstupy ako keby bez stabilizácie, navrhol riešenie vytvorenia medzivrstvy medzi reálnym natočením a natočením. Reálne to vyriešil tak, že v každom kĺbe ukladal aj stabilizačnú odchýlku.
Postup stabilizácie – vyššia logika navrhne natočenie kĺbov a následne stabilizačný modul analyzuje či je nutné stabilizovať, alebo nie. Ak modul zistí, že má dôjsť k pádu, aktualizuje stabilizačnú odchýlku. Pri testovaní odhalil nedostatok, a to že mu vznikala príliš veľká odchýlka, preto vytvoril 3 stavy hráča: nestabilný(zvyšuje sa odchýlka), medzistav (agent nepadá ale odchýlku nie je možne vynulovať), stabilný (vynulovanie odchýlky).
1.2.3 Vizualizácia – zaoberal sa aj vizualizáciou v matlabe, hlavne zobrazovaním počítaných bodov a vektorov, napríklad súradnice agenta, alebo pomocné vektory (absolútne aj relatívne).
1.2.4 Matematická knižnica – vytvoril vlastnú matematickú knižnicu, pretože riešenie s ktorým pracoval (RoboKopy) mali vytvorenú knižnicu na mieru, slabo okomentovanú a bez dokumentácie.
1.3 Zhodnotenie
Pri práci musel čeliť viacerým problémom, ako zmena servera počas semestra, alebo chyby v agentoch. Implementoval modul stabilizácie s detekciou nestability, avšak pri konečnom testovaní zistil, že algoritmus je prakticky nepoužiteľný, agent často padal.