Analýza modelu sveta

Z RoboCupTP wiki

Revízia z 08:33, 16. november 2011; Tomasblaho (Diskusia | príspevky)
(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
Prejsť na: navigácia, hľadanie

Analýza modelu sveta

Model sveta je obsiahnutý v komponente Models. Kde sa nachádzajú 3 časti, a to AgentModel, EnvironmentModel a WorldModel. V triede AgentModel sa počítajú pozície a rotácie kĺbov, v triede WorldModel sa počítajú pozície ostatných hráčov a lopty a v triede EnvironmentModel sa ukladá mód hry, čas a verzia servera. Na analýzu bola nutná prehliadka zdrojového kódu, ktorý nebol vhodne okomentovaný.

Obsah

AgentModel.java

obsahuje určovanie pozície hráča a stranu hráča (člen tímu, súper) metódu na výpočet pohybu vektora okolo vektorov a osí, výpočty sú vykonávané podľa teórie vektorových pohyb nájdené na internete obsahuje GET na získanie informácii či stojí, je na zemi, leží na chrbáte, leží na bruchu, o natočení a pozícii a SETY na nastavenie pozície a rotácie

AgentPositionCalculator.java

vypočíta aproximáciu aktuálnej pozície agenta na základe zástavy, ktorú vidí. Trieda predpokladá, že rotácie agenta sú správne vypočítané. Výpočet sa vykonáva normalizáciou a odpočtom od pozície zástavy. Keď vnímaná relatívna pozícia je pridaná do známej pozície vlajky, je možné vypočítať správnu aproximáciu našej pozície.

AgentRotationCalculator.java

počíta sa natočenie agenta podľa fixných bodov – dokáže odvodiť natočenie agenta z 3 videných zástav, z 3 zástav si určí, ktoré dve z nich použiť na vytvorenie osi Y , a ktorú použiť ako doplnkový bod na vytvorenie osi Z, kolmej na os Y.


DynamicObject.java

Trieda určuje polohu dynamických objektov, zvyčajne lopty, chýba tu vypočítanie pozície súperov

EnvironmentData.java

ukladá statické informácie o stave súčasného sveta okolo agenta – herný čas, simulačné časy, režim prehrávania a verziu servera. Verzia servera je stanovená v ./scripts/config/settings.rb – momentálne 0.6.4

FixedObjects.java

tu každá vlajka uchováva informáciu o svojej pozícii – určuje sa tak veľkosť ihriska

KalmanAdjuster.java

nastavuje vnímané súradnice lopty a zástavy na ihrisku použitím kalmanvého filtra, čím sa znižuje chybovosť, vnášaná serverom, pre ďalšie výpočty

Player.java

trieda ktorá definuje agenta ako hráča v hre – nič nie je spravené

WorldModel.java

ukladanie objektov na ihrisku, ukladá ich pozíciu, rýchlosť a priemernú pozorovanú rýchlosť sem treba dorobiť predvídanie tímu a oponentov a učenie kto je z ktorého tímu

Prophecy.java

uchováva pravdepodobný stav v danom čase v budúcnosti

Prophet.java

výpočet najpravdepodobnejšej udalosti v danom čase, treba tu dorobiť predpovedací modul, momentálne je to iba v stave experimentu a na konci projektu si neboli istý, či to funguje správne.

Osobné nástroje