Milan Leitman

Implementácia tímu do RoboCup-u na báze reaktívnych agentov


Diplomová práca

Školiteľ: RNDr. Andrej Lúčny, PhD.


Domovská stránka práce je http://socdip.googlepages.com

Elektronická verzia textu sa nachádza tu.



Prezeranie log súborov


V adresári logs sa nachádzajú záznamy z piatich simulácií - sim1.rcg .. sim5.rcg. Pre ich prezeranie stačí spustiť príslušný bat súbor - view_sim1.bat .. view_sim5.bat - nachádzajúci sa v adresári logs (alternatívne spustením programu soccermonitor.exe v adresári rcssserver-win-9.3.6, v menu kliknúť na Logplayer - Open logfile... a vybrať príslušný záznam). Spustí sa program soccermonitor.exe, v ktorom si môžme záznam prehrať.

Okno programu Soccermonitor

Záznam spustíme tlačítkom play (alternatívne stlačením klávesy vpravo). Program umožnuje záznam prehrávať dopredu, dozadu, zrýchlene, prípadne skočiť na požadované miesto v zázname. Náš tím s názvom socdip hrá sprava doľava, hráči sú červení (brankár žltý). Súperov tím s názvom GangOfSix (http://labss2.dcs.elf.stuba.sk/TeamProject/2006/team03/public_html) útočí na ľavú polovicu, hráčov má označených modoru farbou. 


Spustenie simulácie na lokálnom počítači

Náš tím je postavený na platforme Java, na jeho spustenie je potrebné mať nainštalované prostredie Javy - Java Runtime Environment vo verzi aspoň 5.0 od SUN-u. Aktuálna verzia Javy sa dá stiahnúť z http://www.java.com/getjava (alternatívne http://java.sun.com/javase/downloads/index.jsp).

Čo sa týka hardvérových požiadaviek, procesor AMD radu K8 na frekvencii 2GHz s rezervou zvláda bežať lokálnu simuláciu (t.j. RoboCup simulátor + náš tím hráčov + tím hráčov Gang Of Six).

Simuláciu je možné spustiť len na platforme win32 (testované na Win XP). Používame totiž RoboCup simulátor (vo verzii 9.3.6) skompilovaný pod touto platformou, takisto aj binárne súbory tímu Gang Of Six sú skompilované pre windows. 

Adresár bulid obsahuje skompilovanú verziu hráča a trénera v jar súboroch player.jar a coach.jar. Ďalej obsahuje súbory potrebné pre spustenie simulácie. Pre nás je však zaujímavý iba bat súbor startSimulation.bat, ktorý spúšťa simuláciu. Po jeho spustení sa nám otvorí niekoľko konzolových okien, ktoré nás však neazaujímajú (prislúchajú hráčom, trénerom oboch tímov a RoboCup simulátoru). Zaujíma nás iba otvorené okno programu s názvom Soccermonitor.

Okno programu Soccermonitor

Kliknutím na položku v menu Soccermonitor - Connect vyskočí okno, ktoré vyplníme podľa nasledujúceho obrázka.

Server connection setup

Ak pripojenie prebehne úspešne, privíta nás nasledujúce okno.

Úspešné pripojenie na server

Na ľavej polovici hracej plochy sú hráči nášho tímu (červení) s názvom socdip, na prevej hráči súperovho tímu (modrí) s názvom GangOfSix. Simulácia je v stave before_kick_off. Stlačením klávesy space prejde simulácia do stavu kick_off_l a hráči začnú hrať.

Pre ukončenie simulácie je potrebné zavrieť okno programu Soccermonitor aj všetky ostatné konzolové okná, ktoré sme na začiatku spustili.


Zdrojový kód

Zdrojové kódy nášho hráča sú umiestnené v adresári source v archíve src.zip. Písané sú v jazyku Java. Na vývoj v jazyku Java potrebujeme  Java SE Development Kit - JDK vo verzii aspoň 5. Ten sa dá získať na  http://java.sun.com/javase/downloads/index.jsp.

Uvedieme návod, ako zdrojové kódy importovať do platformy  Eclipse (Eclipse je, okrem iného, obľúbené Java IDE - Integrated Develpoment Environment, dá sa stiahnúť na http://www.eclipse.org/). 

Spustíme Eclipse, v menu klikneme na File - Import... Vyskočí nám okno, v ktorom pod zložkou General označíme položku Existing Projects into Workspace.

Import

Kliknutím na Next prejdeme na ďalej. Tu označíme položku Select archive file a dopíšeme cestu k zdrojovým súborom. Napríklad g:\source\src.zip (ak je CD vložené v mechanike s písmenom g:).

Import

Klikneme na Finish ukončíme proces integrácie. Pre spustenie vnútri Eclipsu vytvoríme novú konfiguráciu v menu kliknutím na Run - Run...Pod položkou Java Application vytvoríme novú konfiguráciu s názvom napríklad hrac. Do poľa Main class doplníme hodnotu AgentSensorActuator.

Run

Ďalej prejdeme na položku Arguments, kde do poľa Program Arguments vpíšeme hodnotu socdip.

Run

Potvrdíme kliknutím na Apply a spustíme kliknutím na Run. Je možné, že  nám Eclipise vyhodí nasledujúce chybové okno.

Errors in Project

Príčinou je pravdepodobne kompilácia použitím staršej verzie Javy. Napravíme to kliknutím v menu na Vyskočí nám okno v ktorom prejdeme na položku Java Compiler. Hodnotu Compiler compliance level zmeníme na najvyššiu možnú (respektíve aspoň na 5.0).

Preferences

Potvrdíme kliknutím na OK. Ak nám vyskočí nasledovné okno, tak ho odklepneme tlačitom Yes.

Compiler Settings Changed

Kliknutím na tlačítko Run (eventuálne cez menu Run - Run... - Java Aplicattion - hrac - Run) spustíme hráča. Teraz by to už malo fungovať bez problémov, po úspešnom spustení hráč vypíše do konzoly reťazec "client: (init socdip (version 7))".

Eclipse

Úspešne sa nám podarilo integrovať zdrojové kódy, teraz môžme začať s ich skúmaním a vylepšovaním. Ešte treba dodať, že pred spustením hráča je vhodné najprv spustiť RoboCup simulátor (program rcssserver.exe na CD umiestnený v adresári rcssserver-win-9.3.6). Inak sa hráč márne snaží pripojiť. Na sledovanie hráča na ihrisku je vhodné spustiť Soccermonitor.exe (na CD umiestnený v adresári rcssserver-win-9.3.6) a pripojiť ho na simulátor podľa už uvedeného návodu.