Analýza modelu sveta

Z RoboCupTP wiki
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

[upraviť] 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

[upraviť] 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.

[upraviť] 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.


[upraviť] DynamicObject.java

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

[upraviť] 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

[upraviť] FixedObjects.java

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

[upraviť] 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

[upraviť] Player.java

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

[upraviť] 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

[upraviť] Prophecy.java

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

[upraviť] 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
Menné priestory

Varianty
Operácie
Navigácia
Nástroje