Obsah

Bakalárska práca - Marcel Kanta

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.

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.

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).

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).

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.

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.