Robotfoci szimulátor
Budapesti Műszaki Főiskola Neumann János Informatikai Főiskoali Kar
  Boross Balázs Michaletzky András
Kezdőlap
Irodalomkutatás Megvalósításunk
Intelligens Automatizált Rendszerek Szak
Konzulens: Vámossy Zoltán
 

SDSU Robot Soccer Team

 A San Diego State University honlapján az ott tanuló diákok robotfoci projektjének részletes leírását találtuk meg. Nagyon sok jó gondolat és megoldás van, amiket szeretnénk mi is átemelni munkánkba.

            Ők a rendszert két részre osztották: kiszolgáló alkalmazás (Host Software) és robotalkalmazás (Robot Software). Mi a kiszolgáló szoftvert készítjük el, ezért csak az arra vonatkozó részeit elemezzük a leírásnak.

Kiszolgáló alkalmazás:

 Négy modulból épül fel a kiszolgáló alkalmazás:

O      a labda és a robotok pozíciójának meghatározása

O      döntéshozatal a következő lépésről

O      a döntés elküldése a robotoknak

O      user interface

 

 A labda és a robotok pozícióját egy kétdimenziós koordinátarendszer segítségével határozza meg. A pozíciók változását elemezve a programba épített logika, döntést hoz a következő lépésről. Ez egyben a játék stratégiája is. A User interface a felhasználóval való kapcsolattartásra szolgál. Itt lehet elindítani a játékot és a grafikai megjelenítésért is ez felelős.

Program terv (Software Design)

A software design részletezi a szoftvert, ami a kiszolgáló alkalmazást és a robotot irányítja. A kiszolgáló program elsődlegesen a döntés meghozataláért felelős.

 Kiszolgáló rendszer (Host Software)

 Ez a szekció részletezi azt, hogy hogyan irányítják a kiszolgáló rendszert. Minden szoftver komponens előre meghatározott sorrendben hajtódik végre. Az alkalmazás felhasználói interfészből, mesterséges intelligenciát alkalmazó programrészből és egy kommunikációs komponensből épül fel.

Felhasználói felület (User Interface)

A felhasználó az egér és a billentyűzet segítségével irányítja a programot. Ez arra szolgál, hogy inicializálják a mesterséges intelligenciát használó programrész alapelemeit, vagy kézzel vezéreljék a robotokat. A szöveges képernyőn kívül a kiszolgáló alkalmazás egy kis méretű ablakkal is rendelkezik, ami egy miniatűr képet jelenít meg a pályáról a robotokkal és a labdával együtt. A képernyő tartalmazza még a pozíció koordinátáit és a döntéseket.

Döntéshozó rendszer:

Az irányító rendszer egyszerűen kezelhető. Alapmódban a taktika: védekezés (Defensive Play). Ha a labda valamelyik sarokban van a mi térfelünkön, akkor a robotunk a kapu ennek megfelelő sarkába helyezkedik.

 

Védekező taktika 1.

Máskülönben csak felvesz egy pozíciót a kapunk és a labda között, és védekező szerepet játszik. A védekezésnek ez egy nagyon egyszerű és egyben sikeres módja is.

 

Védekező taktika 2.

 A mesterséges intelligenciát használó programrész szoftverdöntésekből és azok végrehajtásából áll. A döntéshozó egység azért felelhogy a képfeldolgozó rész által megszerzett koordinátákat feldolgozza, és a robot számára a következő legjobb lépést hozza meg.ős, végrehajtó egység felelőssége pedig az, hogy a parancs megfelelő lépését elküldje a robotnak, amely a döntést pontosan végrehajtja.A végrehajtó egység felelőssége pedig az, hogy a parancs megfelelő lépését elküldje a robotnak, amely a döntést pontosan végrehajtja.

    Ez magába foglalja azt a feladatot, hogy az objektumokat a robot elkerülje. Abban az esetben, ha a labdának szabad útja van a kapu irányában, a döntéshozó rész fog arról dönteni, hogy a robot a kapuba lője-e a labdát.

 

 

Támadó játék

 A döntés feldolgozásának folyamatában fennáll az a lehetőség, hogy a mi robotunk egy ellenséges robottal ütközik. Ez elkerülhető, ha a végrehajtó egység leellenőrzi, hogy a csapattárs vajon egy bizonyos távolságon belül tartózkodik-e az ellenséges robotokhoz képest. Ha a saját csapatunk robotjai túl közel kerülnek az ellenséges robotokhoz, akkor a végrehajtó egység az ellenséges robotoktól visszarendeli a sajátjait.

 Kommunikáció (Communications):

A szoftver kommunikációs komponense a program fő végrehajtó egysége. Miután a döntéshozó rendszer „rájön arra”, hogy mi a legjobb parancs a robot számára, egy kommunikációs folyamat küldi el a parancsot a robotnak.