Obsah

Plánovač

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í:

  1. Vytvoriť triedu, ktorá dedí po základnom plánovači napr. class PlanZakladny < Plan
  2. Vytvoriť inicializačnú metódu (nie je povinne)
  3. 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

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:

  1. Loptu nevlastní nikto z hráčov na ihrisku
  2. Loptu vlastní niektorí z protivníkov
  3. 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.

Choď na pozíciu a Drž formáciu