Planovac
Obsah |
Fungovanie
Na vrchu hierarchie je plánovač, ktorý riadi celkové správanie sa agenta. Každý plánovač sa nachádza v ./Jim/scripts/plan Plánovač vytvára inštancie vyšších pohybov a aktivuje ich na základe stavu hry a hráča. Plan.rb je základný plánovač s implementovanými metódami, ktoré môžu byť znovu použiteľne aj v iných plánovačoch. Ostatne plánovače dedia od plan.rb, implementujú metódu replan, ktorá určuje aký pohyb sa bude vykonávať na základe stavu hry a hráča. Bolo vytvorených viacero plánovačov z týchto dôvodov: Rôznorodosť tímov, ľudí pracujúcich na plánovaní Moznosť mať viacero plánovacích stratégií a ich následné porovnanie Spustenie konkrétneho plánovača sa vykonáva ./Jim/scripts/config/settings.rb pomocou príkazu Setting.setValue(“Planner“, “Meno triedy plánovača“ ) napr. Setting.setValue(“Planner“, “PlanZakladny“ )
Vytváranie
Tvorba planovača sa vykonáva pomocou ruby scriptov.
Postup pri vytváraní:
- Vytvoriť triedu, ktorá dedí po základnom plánovači napr. class PlanZakladny < Plan
- Vytvoriť inicializačnú metódu (nie je povinne)
- Vytvoriť metódu replan ktorá bude obsahovať konkrétny plán – kedy aký pohyb sa ma vykonať
Pozn. pozri príklad plánovačov v ./Jim/script/plan
Analýza vytvorených plánovačov
V tejto časti sa nachádza analýza existujúcich plánovačov.
Plan
Planovač bol vytvoreny tímom Androids.Je to základný plánovač, ktorý ma na starosti vyhodnocovanie a zber údajov o aktuálnom stave agenta. Napr. zisťuje, kde sa nachádza lopta voči agentovi. Tieto údaje zbiera a vyhodnocuje pomocou java metód definovaných v sk.fiit.jim.agent.models.AgentModel.getInstance, sk.fiit.jim.agent.AgentInfo.getInstance a sk.fiit.robocup.library.geometry.Angles.
Plan sa nachádza v priecinku ./scripts/plan
TestGoaliePlan
Plán má slúžiť na testovanie brankárskych schopnosti
- Zatiaľ sa hráč hneď po vložení na server hodí na ľavý bok, bez toho aby bol spustený hrací mód
Plan5ko
Plan vytvoreny tímom Team17. Je založený na základnom pláne. Slúži na nájdenie lopty(dostavenie sa k lopte) a kopnutie do nej.
Plan sa nachádza v priecinku ./scripts/plan
PlanNew
Plán vytvorený tímom High 5. Je založený na základnom pláne. Slúži na nájdenie lopty a útočenie na bránu, taktiež by pomocou toho plánu mal vedieť brániť protihráča.
Plán sa nachádza v priecinku ./scripts/plan
PlanOld a PlanOldStand
Plán vytvorený tímom Androids. Je založený na základnom pláne. Pravdepodobne bol určený na testovanie vytvorených low_skills a high_skills.
Plán sa nachádza v priecinku ./scripts/plan
PlanZakladny
Plán vytvorený tímom A55-Kickers. Je založený na základnom pláne. Jednoduchý plán, ktorým sa dajú otestovať prvé vytvorene pohyby. Slúži len na otestovanie, či sa pohyb vykoná. Nemá špecifikovane žiadne podmienky, pri ktorých sa ma agent rozhodovať, čo ma spraviť. Ma len definovanú podmienku pre spustenie hracieho módu ak tato podmienka nie je splnená pohyb sa nevykoná.
class PlanZakladny < Plan def replan @plan.clear #is playMode? if EnvironmentModel.beamablePlayMode @queue.clear @beamed = true #add skill elsif @queue.empty? @plan<<LowSkill.new("prvy_pohyb") #@plan<<WalkBehindBall.new else @plan << @queue.shift end end end
PlanTactic
Plán vytvorený tímom A55-Kickers. Reprezentuje taktiku tímu. Dokáže zabezpečiť pozície a činnosti pre všetkých hráčov. Taktika sa zaoberá tromi hlavnými situáciami:
- Loptu nevlastní nikto z hráčov na ihrisku
- Loptu vlastní niektorí z protivníkov
- Loptu vlastní niektorí z nášho tímu
Každá situácia je reprezentovaná diagramom aktivít:
Diagram aktivít: Nikto nevlastní loptu
Diagram aktivít: Súper vlastní loptu
Diagram aktivít: My vlastníme loptu
Plán sa nachádza v priecinku ./scripts/plan
Podrobý opis k niektorým stavom.