Hlavný cyklus agenta
Z RoboCupTP wiki
Späť na Návod
Hlavný cyklus agenta
Hlavný cyklus agenta vidno na diagrame v dokumente o vykonávaní pohybov.
Okrem komunikácie so serverom popísanej v príslušnej časti návodu spracováva prichádzajúce dáta niekoľko tried. Tie musia implementovať rozhranie ParsedDataObserver
a byť zaregistrované v skripte scripts/config/dependencies.rb
pomocou metódy Parser.subscribe. Metóde processNewServerMessage tohto rozhrania je volaná z metódy notifyObserver triedy Parser v každom vykonaní cyklu hneď po úvodnom rozparsovní príchodzých dát (vykonávaným pomocou volania Perceptor.processPerceptor na všetky perceptory získané metódou Parser.breakDown). Z tejto metódy môžu observery získať objekt spracovaných dát (objekt triedy ParsedData), ktorý môžu ďalej manipulovať. Nasledujúci observer potom dostane tieto dáta v už viac spracovanom tvare.
V súčasnosti používané observery sú:
- EnvironmentModel - obsahuje údaje o stave hry, ubehnutom čase a pod., stará sa o ich aktualizáciu.
- KalmanAdjuster - stará sa o korekciu chybných hodnôt náhodne vnášaných serverom.
- AgentModel - reprezentuje model agenta a tiež sa stará o jeho aktualizáciu.
- WorldModel - reprezentuje model sveta a tiež sa stará o jeho aktualizáciu.
- Prophet - vypočítava predpokladané budúce hodnoty pozícií agentov a lopty.