1 / 34

RoboCup 3D

RoboCup 3D. Michal Bartal, Michal Bebjak, Michal Homola, Juraj Majer, Andrej Neczli, Ondrej Pok, Zoltán Pulai. 6 th Sense. Obsah prezentácie. Model sveta Prediktor Z ákladné správania Kopanie Beh hráča Brankár P ozeranie A rchitekt ú ra vy šší ch spr á van í Vyšš ie spr á vania

page
Download Presentation

RoboCup 3D

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RoboCup 3D Michal Bartal, Michal Bebjak, Michal Homola, Juraj Majer, Andrej Neczli, Ondrej Pok, Zoltán Pulai 6th Sense

  2. Obsah prezentácie • Model sveta • Prediktor • Základné správania • Kopanie • Beh hráča • Brankár • Pozeranie • Architektúra vyšších správaní • Vyššie správania • Formácie

  3. Information Storage (IS) • WorldModel • Predictor • Action • Moduly PositionHistory, ActionHistory a StatsHistory sme oproti prototypu zrušili a ich funkciu plnia moduly WorldModel a Action

  4. IS - WorldModel • Každý objekt na hracej ploche je reprezentovaný dátovou štruktúrou zdedenou od triedy GameObject • Máme teda objekty s názvami Agent, Ball, SelfPlayer a NonMovableObject • Na podobnom princípe fungujú aj objekty Hearings a Stats

  5. IS - WorldModel • História stavov pre každý objekt je zaznamenávaná pomocou zásobníka GameObject-ov (trieda ObjectStack) • Každý objekt hracej plochy má vo WM 2 premenné typu ObjectStack – jednu pre raw data zo servera a druhú pre dáta, ktoré sú zlúčením raw dát a predikovaných dát

  6. IS - WorldModel class GameObject { public: // karteziánske súradnice vzhladom na stred ihriska Vector3f classicCoords; // polarne suradnice vzhladom na mna PolarCoords relativePolarCoords; // karteziánske súradnice vzhladom na mna Vector3f relativeClassicCoords; // rychlosť Vector3f velocity; // zrýchlenie Vector3f acceleration; ... };

  7. Prediktor • Predikcia a vykrytie výpadkov • Špecializované prediktory pre • hráčov • loptu

  8. Prediktor • Predikcia na základe fyzikálneho modelu • Výpočet rýchlosti • Normalizácia rýchlosti • Výpočet predikovanej polohy • Ošetrenie špeciálnych stavov • Prediktor lopty počíta so spomalením lopty, ktoré bolo experimentálne určené

  9. Akcie • Dva typy akcii

  10. Architektúra základnýchsprávaní • rozdelenie do vrstiev • viac jednoduchých správaní • vyššie správania využívajú nižšie

  11. Kopanie – princíp

  12. Kopanie - model • algoritmy vychádzajú z fyzikálneho modelu šikmého vrhu

  13. Kopanie - nižšie moduly • Základné 4 moduly : • KickToPlace • double aDistance • double aVerticalKickAngle • KickToEvent • double aDistance • double aTimeToEvent • double aVerticalKickAngle • KickToPlaceWithVelocity • double aDistance • double aFinalVelocity • KickToEventWithVelocity • double aDistance • double aTimeToEvent • double aFinalVelocity

  14. Kopanie - vyššie moduly • KickToPosition • Vector3f& aFinalPlace • double aVerticalKickAngle • double aErrorLimitKickDirAngle • bool kickingToGoal • DribbleToPlace • const Vector3f& aFinalPlace • double aErrorLimitKickDirAngle • double aDribbleKickDistance • PassToPlayer • Obj aIdPlayer • double aVerticalKickAngle • double aErrorLimitKickDirAngle • const Vector3f& aPassOffset)

  15. Kopanie – zlepšenia • vytvoriť matematický model odporu prostredia • uvažovať viacnásobný odraz lopty • zohľadniť rýchlosť lopty pri odkope • optimalizovať pomer presnosti kopu a času na nastavenie sa do smeru kopu • implementovať funkciu na výpočet pozície lopty po odkope

  16. Behanie • 4 druhy • dobehnutie na miesto • priamo (RunToPlace) • zo zadaného smeru (RunAroundPlace) • dobehnutie k objektu (podľa predikcie) • priamo (RunToObject) • zo zadaného smeru (RunAroundObject)

  17. RunAroundPlace • model potenciálových polí • príťažlivá sila: • smerom DO cieľového bodu • konštantné veľkosť • odpudivá sila: • umelá bariéra • klesá kvadraticky so vzdialenosťou • smer pohybu sa nastaví podľa výslednej sily

  18. RunAroundPlace

  19. RunAroundPlace

  20. Brankár • Modul správania brankára: CatchBehaviour • Správanie je parametrizovateľné pomocou konštánt • Tri základné funkcie: • Vykrývanie streleckého uhlu útočníka • Dobehnutie za loptou s jej následným chytením • Vykopnutie lopty dopredu

  21. Brankár • Vykrývanie streleckého uhlu útočníka • Aktivuje sa pri prekročení vzdialenosti brankára od lopty, udanej konštantou KickBallCoverMargin • Upravuje svoju poziciu tak, aby sa nachádzal na spojnici stredu bránkovej čiary a momentálnej pozície lopty

  22. Brankár • Dobehnutie za loptou s jej následným chytením • Aktivuje sa pri prekročnení vzdialenosti brankára od lopty, udanej konštantou DriveAndCatchMargin • Chytenie lopty sa aktivuje pri priblížení sa brankára k lopte na vzdialenosť menšiu, než udáva konštanta CatchBallMargin • Vykopnutie lopty dopredu • Nasleduje hneď po chytení lopty • Brankár kope smerom vpred maximálnou silou a pod uhlom 45 stupňov

  23. Zmenapohľadu • Od verzie server 0.5.2 má hráč obmedzený uhol pohľadu – potreba zmeny pohľadu hráča • 4 moduly • ScanBehaviour • LookAtPlaceBehaviour • LookAtObjectBehaviour • FindObjectBehaviour

  24. Rozhodovanie - princíp Nižšie moduly správania slúžia na vykonanie konkrétnych akcií hráča – kopanie, beh, ... Bolo potrebné implementovať rozhodovaciu časť, ktorá by používala tieto moduly Architektúra podobná ako pri nižších moduloch správania

  25. Rozhodovanie - architektúra

  26. Vyhodnotenie situácie

  27. GlobalStrategyBehaviour Základný rozhodovací modul na najvyššej úrovni Vstupný bod pre proces rozhodovania v každom cykle Slúži na výber a zavolanie vhodného modulu správania nižšej úrovne

  28. Defence Stategy Behaviour • Súperovi hráči sa pri útoku väčšinou snažia pribehnúť k lopte z nejakého smeru, čo im dlho trvá • V tomto module hráč práve naopak iba jednoducho pribehne k lopte a odkopne ju preč • Modul sa vyhodnocuje ako potrebný, iba ak je lopta 5 metrov a hlbšie na našej polovici a hráč može odkopnúť loptu preč od svojej brány

  29. Defence Stategy Behaviour • Účinnosť závisí aj od vzdialenosti najbližšieho súperovho hráča od lopty. • Tento modul sa môže použiť aj v prípade, že hráč nie je najbližšie od lopty, čím sa modul odlišuje od ostatných stategických modulov ako Dribble, Kick_To_Goal a Passing

  30. Kick To Goal Strategy Behaviour • Ak hráč kope po zemi, dokopne na vzdialenosť približne 19 m • Modul pomocou funkcie ballDistanceFromGoal(float &dist)zistí vzdialenosť lopty od súperovej bránky a ak je táto vzdialenosť menšia ako 19m, vyhodnotí situáciu ako správnu na kopnutie a kopne do stredu brány

  31. Kick To Goal Strategy Behaviour • Zlepšenia: • Vo vyhodnotení sa musí brať ohľad aj na pozíciu súperových hráčov a brankára, nielen na vzdialenosť lopty od brány • Treba urobiť funkciu na umiestňovanie lopty, teda výpočet, kam chceme do brány kopnúť • Experimentovali sme aj s určovaním vertikálneho uhlu kopu, ale stávalo sa, že hráč bránku na menšie vzdialenosti prekopol, preto sa zatiaľ kope pod 0 stupňovým uhlom

  32. Formations • Tento modul bol prebratý z 2D futbalu z tímu Deravá kopačka a bol prerobený na podmienky 3D futbalu • Slúži na určenie najvhodnejšej polohy daného hráča vo formácii • Modul obsahuje 27 formáciía ich vzájomným váhovaním s ohľadom na ich rating sa určí ideálna pozícia hráča vo formácii

  33. Záver • model sveta a predikcia • hráč dokáže behať, prihrávať, kopať na bránu • máme špecializovaného brankára • modulárna vrstvená architektúra správaní • pre jednotlivé správania sa rozhoduje podľa ohodnotenia vhodnosti pre danú situáciu

  34. Ďakujeme za pozornosťhttp://www2.dcs.elf.stuba.sk/~team06/team06@googlegroups.com

More Related