410 likes | 542 Vues
Bc. Ľuboš Balát Bc. Marián Bobrík Bc. Peter Franz Bc. Gabriel Pap Bc. Ján Pidych. Bc. Radoslav Kováč Bc. Dušan Lacko Bc. Samuel Vališ. Tímový projekt. Simulácia robotického futbalu Tim 4. Štruktúra prezentácie. Ciele projektu. Pre budúcnosť vyhrať tímová práca. RoboCup. 4 ligy
E N D
Bc. Ľuboš Balát Bc. Marián Bobrík Bc. Peter Franz Bc. Gabriel Pap Bc. Ján Pidych Bc. Radoslav Kováč Bc. Dušan Lacko Bc. Samuel Vališ Tímový projekt Simulácia robotického futbalu Tim 4
Ciele projektu • Pre budúcnosť • vyhrať • tímová práca
RoboCup • 4 ligy • simulačná liga • klient / server • UDP / IP
Obrazky architektury • thready
Konceptuálny model systému Agent Správanie Vizualizácia Používateľské rozhranie Komunikačné rozhranie Používateľ Coach Soccerserver
Rozdelenie modulov systému do nezávislých vlákien • tri základné vlákna • vlákno používateľského rozhrania a vizualizácie • vlákno komunikačného rozhrania • vlákno správania agenta
Architektúra systému vlákno komunikačného rozhrania vlákno používateľského rozhrania a vizualizácie ServerConnection ServerMsg ServerMsgTranslator Perception GameCommand ServerCommunicator AgentMonitor PerceptionSeqSentCommandSeq GameCommandSeq vlákno správania agenta SoccerAgent
Vlákna a udalosti • Vytváranie vlákien, distribúcia udalostí príslušným objektom. • Pracuje s nasledovnými objektami: • udalosti – triedy odvodené z triedy CBasicEvent • vlákna – inštancie triedy CEventThread alebo CWinThread • príjemcovia správ – triedy odvodené z triedy CEventRecipient
Vlákna a udalosti CEvent Recipient CEvent Recipient CEvent Recipient CBasicEvent CEventThread CEventThread CWinThread CBasicEvent CBasicEvent CBasicEvent CCoordinator
Inteligencia hrača • Vnútorný model sveta • Schopnosti hráča • systém schopností • základné schopnosti • vyššie vrstvy • Tímova stratégia • formácie • brankár, útočnik, obránca
Vnútorný svet hráča CMovingObject CBall CAgent CLocalAgent • CMovingObject – pohyblivé objekty na ihrisku • CWord - objekt reprezentujúci vnútorný svet hráča
Aktualizácia vnútorného sveta • Určenie pozície hráča • Určenie uhla (Metóda najmenších štvorcov, Čiarový algoritmus) • Určenie pozície hráča (Algoritmus prieniku intervalov) • Vylepšenie presnostialgoritmu prieniku intervalov agent sa môže nachádzať len tu
Aktualizácia vnútorného sveta • Pridanie dodatočných informácií zo správy sense body • Výpočet vlastností lopty • Spárovanie videných hráčov s vnútorným svetom • Obnovenie pozícií hráčov vo vnútornom svete
Základné schopnosti hráča • Postavené nad základnými príkazmi servera s uvážením aktuálnej situácie – rýchlosť, smer pohybu • Dash – posun hráča v smere natočenia, parametrom je sila s akou sa vykoná pohyb • Turn – otočenie hráča, veľkosť skutočného otočenia závisí od aktuálnej rýchlosti • Kick – zväčšenie rýchlosti lopty
Schopnosti na vyššej úrovni • Vstupom je predstava hráča o svete • Výstupom je príkaz na vykonanie, pravdepodobnosť úspechu a predpokladaný výsledok (predstava sveta po vykonaní) • Bez lopty: • SearchBall, GoTo, GoToBall, RunToHomePosition, RetreatFromOffside • S loptou: • Dribble, PassBall, KickGoal, PassBallAlongLine, PassBallToTeammate, KickAwayBall • Brankár: • CatchBall, RunToAttacker, InterceptBall
Schopnosti na vyššej úrovni B0 B1 B2 B3 B4 B5 P0=P1 P2 P3 P4 P5 • Beh na určenú pozíciu • Jednoduché ohodnotenie situácie (BallKickable, NearGoal, PlayerInWay) • Zistenie prekážky v behu • Odhad pozície lopty v budúcnosti • Odhad pozície chytenia lopty • Identifikácia najbližšieho spoluhráča • Identifikácia voľného spoluhráča
Tímová stratégia - formácie • Formácie: 442, 352, 334, 244, 532 • CTeamPosition – nastavenie a získanie pozície hráča • CUnit – zoskupovanie hráčov do jednotiek • CFormation – údaje o type formácie • CFormationSkills – zručnosti hráča vo formácii
Tímová stratégia - úlohy hráčov • Brankár • Obránca • Útočník
Používateľské rozhranie • Hlavné požiadavky : • Zobrazovať stav agenta a jeho vnútorný svet • Jednoduchá konfigurovateľnosť • Zabezpečiť podporu pre ladenie – textové správy • Výstup : • Grafický • Textový
Spolupráca vizualizácia - agent Vlákno agenta Vlákno vizualizácie Triedaokna Posielanie správ CVisPerception CAgent CVisObject
Textové správy pre ladenie Správy pre výpis trieda textového okna CStaticTextBuffer zápis do súboru CLogManager ladiace okno (MS Visual Studio)
Vizualizácia Agent neznámehotímu
Vizualizácia Agent nášhotímu
Vizualizácia Vlastný agent
Vizualizácia Lopta
Vizualizácia Agent súperovho tímu
Vizualizácia Doplňujúceinformácie
Vizualizácia Hranica videnia agenta
Vizualizácia Vlajky okolo ihriska
Záverečný turnaj • 23.5.2001, miestnosť CPU, 4 tímy
Záverečný turnaj • Zhodnotenie • nedostatky v správaní agentov • zlé sledovanie lotpy • nepresné prihrávky • striktné udržiavanie formácie • kvalitný brankár
Zhodnotenie produktu • Rozšíriteľná a modifikovateľná architektúra • Podrobný vnútorný model sveta • Množstvo algoritmov • Dopracovať schopnosti agenta
Simulácia robotického futbalu • (Rozdelenie úloh?) • manažment verzií • komunikácia v tíme • dodržiavanie štandardov • problémy projektu Manažment projektu
Manažment verzií • problémy: • silne zviazané moduly • ako vyvíjať závislé moduly súbežne? • ako kontrolovať vytváraný kód? • riešenie - 2 verzie: • vývojová verzia - „Prototyp” • riadená verzia - „Develop”
Manažment verzií • verzia „Prototyp” • nevyhnutná funkčnosť pre závislé moduly • „uvolnený” návrh a rozhrania (static) • súbor ToDoClasses.h • verzia „Develop” • kontrola štandardov • prerobený systém udalostí a synchronizácie
Manažment verzií • proces spájania verzií 1.41b 1.43b Prototyp 1.40 1.41p 1.42 1.44 1.52 1.41s 2.02 2.05 2.09 2.12 Develop
Komunikácia v tíme • E-mailová konferencia (tim4@pandora.cz) • problémy: • vyhodnocovanie úloh • dostupnosť výsledkov • riešenie - rozšírenie WWW stránky: • evidencia úloh • uchovávanie výsledkov • prepojenie na konferenciu
Komunikácia v tíme • tabuľka úloh
Simulácia robotického futbalu Ďakujeme za pozornosť