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

In Robotics and Autonomus Systems

Soccer team based on agent-oriented programming

A Robotics and Autonomous Systems folyóiratban a robotok szoftveres úton történő vezérlésére találtunk algoritmusokat.

OSegéd-program orientált paradigma és vezérlés

 A probléma magában foglalja a koordinációt, a versenyt, és az együttműködést minden futball játékos és az érzékelés között. Az együttműködés kommunikáció útján valósul meg. Így az információ és az adatok kommunikálása a legfontosabb lépés, amit a segédprogramok végeznek. A következő lépésekben fejlesztették ki a vezérlést: analízis, tervezés és implementálás. Manapság modern számítógép-központú eszközök léteznek, amelyek kezelik ezt a vezérlést, amelyet a számítógép vezérlési rendszerének (CACSD) neveznek. A robotikával kapcsolatos alkalmazások sokkal könnyebben továbbfejleszthetők, ha ehhez hasonló környezeteket használunk, mivel a lineáris és nem lineáris rendszerek lehetősége biztosítja olyan eszközök analízisét és megtervezését, amelyek hasznosak lehetnek a robotok mozgatásának vezérlésében. Ez a két fajta megközelítés igencsak eltérő. Az AOP (Agent-Oriented Programming) egy fogalmi modellt nyújt számunkra.

OMulti-segédprogramok

 A multiprogramozott rendszerek alapelemei a közvetlen környezet és a segédprogramok, illetve az együttműködés ezek között. Ebben az esetben a környezet a futballpálya, ami megosztott a másik csapattal. A pályán lévő viszonyok folyamatosan változnak. A pozíció és a sebesség is dinamikus, soha nem egy fix érték. A rendszer három segédprogramból épül fel, amelyek viselkedése erősen eltérhet belső paramétereik pillanatnyi állapotától. Ezek két különböző változó értéktől függnek:

1.a labdától való távolság (DPB)

2.és a kaputól való távolság (DPG).

A környezet mérete arra használható, hogy megállapítsunk egy határértéket a DPB változó tartományához. Minden segédprogram magába foglalja az érzékelés és a kommunikáció képességét. Mivel ennek a rendszernek minden robotja ugyanazzal a technikai specifikációval rendelkezik, különféle modelleket programoztak, hogy elkerüljék az ütközést, és hogy együttműködjenek a kölcsönös előnyszerzés érdekében.

OA döntés folyamata (Decisions)

                                                                          

Lehetséges döntések

 

Az eljárás első lépése, hogy minden játékos ösztönösen dönt saját tevékenységéről. Ez a döntés a közvetlen környezet felépítéstől függ, amelyet a már említett két paraméter határoz meg: a játékos-labda távolság (DPB), és a játékos-kapu távolság (DPG). A döntés rendelkezik egyfajta bizonyossági értékkel (certenty). Maga a robot a labdával együtt 3 különböző szituációba kerülhet. A döntés lehet:

1.SHOOT (lövés)

2.GET (labdaszerzés)

3.FORW or BACK (előre vagy hátra mozgás)

A döntés a DPG értéktől függ. Tehát a döntés első része:

           BEL(AgentX, DPB, ZONE2)

           ? INFORM (to_Any_agent1, AgentX, SHOOT, 0.8)

 Amikor a labda és a játékos elhelyezkedése úgy alakul, hogy a 3. döntési variáció érvényesül, akkor:

            BEL(AgentX, DPB, ZONE3)

             ^BEL(AgentX, DPG, Far)

    ?INFORM(to_any_agent, AgentX, FORW, certainty),

ahol a ’certainty’ az a végső érték, amelyet a számítások után a változó megkap.

A döntés meghozatala után a segédprogram informálódik a többi segédprogram felől a kommunikációs csatornán keresztül. Így fejlődik ki a viselkedés és ebből alakul ki egy bizonyos szándék.

1: agent = segédprogram, tulajdonképpen maga a játékos, hiszen mindegyik robot egy külön játékost, azaz egy részprogramot képvisel

 

DPG és DPB alapú döntések

OEgyüttműködési döntések (Co-operativ decision)

Az implementációnak ez a lépése kéréssel (request) kezdődik, azért, hogy minden segédprogram információt szerezzen a többi játékosról: [relative_action, certainty, ID-player]. Végül a segédprogramok közlik döntésüket a coach-agent-nek egy információs (INFORM) eljárás által.

A most következő szituáció azt a lépést reprezentálja, amikor mindkét segédprogram arról dönt (Agent1 AND Agent2), hogy megszerzi (GET) a labdát. Saját kérését követően, az első segédprogram (Agent1) másik tevékenységet fog választani, mert ez a DPB paraméter kisebb bizonyosságú lesz.

Az eljárás kifejtése:

            INFORM (Agent2, Agent1,

BEL (Agent2, SHOOT, 0.7))

^BEL (Agent1, SHOOT, 0.2)

?BEL ( Agent1, SHOOT, f(0.7, 0.2)),

ahol                   

            f(c1,c2)={0, ha c1>c2

          {c2, egyébként

Példa együttműködő döntésre

 

Ebben az esetben, mivel f(c1, c2)=0, Agent1 FORW vagy BACK tevékenységre fog átváltani. A kommunikációban ez egy olyan információcsere, ami megnöveli az információ mennyiséget a környezetről. Így a hirtelen reakciókból kialakult döntés együttműködő döntéssé válik.

 

Designing distributed control architecture for cooperative multi-agent system and its real-time application to soccer robot

OBasic actions

Az alapműveletek magas szinten helyezkednek el, hiszen ezek jelentik az alapvető viselkedési reakciókat. A magas szintű vezérlő csak egyfajta tevékenységet választ ki (high-level controller = central controller).

  1. A lövés és a lövési pozíció (shoot action):

 Ezeket a funkciókat arra használják a játékosok, hogy kapura rúgjanak, vagy a labdát egy másik robothoz passzolják. Minden robot rendelkezik ennek a tevékenységnek a képességével, de főleg a támadó robotok alkalmazzák. Amikor a robot megkapja a labda és a kapu pozícióját, két relatív érték kerül kiszámolásra. Az első a pozíció felvétele a lövéshez, a másik maga a lövési tevékenység. A lövés tevékenysége megfelelő, ha a következő két feltétel teljesül:

  • a labda a robot és a kapu között helyezkedik el
  • és a robottól a labdáig húzott egyenes vonal lefedi a kapu által meghatározott területet

      Különösképpen fontos, hogy megakadályozzuk a robotunkat attól a lépéstől, hogy a saját térfele irányába rúgja a labdát. Ezt vezérli és felügyeli a lövési pozíció felvételét végző eljárás.

Lövési pozíció felvétele

  1. A labda megszerzésének a tevékenysége (intercept_ball action):

   

Labda megszerzésének tevékenysége

Miután a robot megbecsülte a gyorsan mozgó labda pályáját, a kiszámolt pontba mozog, hogy megszerezze azt. A labda pályáját a pillanatnyi és az előző labda pozícióból számítjuk ki, a labda sebességét konstansnak tekintjük egy-egy rövid időintervallumon belül. A labda és a robot távolságának aránya ugyanaz, mint a labda feltételezett sebességének és a robot lehetséges maximális sebességének aránya.

A labda megszerzésének várható pozícióját a következőképpen számoljuk ki:

                        Vb*?t : Vr*?t = sqrt((Xi-Xb)2+(Yi-Yb)2) : sqrt((Xi-Xr)2+(Yi-Yr)2)

A labda aktuális és előző pozíciója lesz (Xv, Yb) és (Xv0, Yb0), továbbá (Xr, Yr), (Xi, Yi), Vb, Vr, ?t lesz a robot aktuális pozíciója, a labda megszerzésének helye, a labda becsült sebessége, a robot maximális sebessége és a megszerzés ideje, külön-külön.

A robot fordulási időtartamának köszönhetően, a látás-feldolgozási idő és a kommunikáció miatti késedelemi idő a pozíció hibáját eredményezheti, amennyiben gyakorlati megvalósításra is sor kerül. A pozíció könnyedén kiszámítható egy másodfokú egyenlet segítségével, lecsökkentve ezzel a számítás időtartamát. A labda pályája az y=ax+b egyenletnek felel meg. A másodfokú egyenlet így számítható:

Ax2+2Bx+C=0,

            R= Vb2/Vr2,

            A =(R-1)*(a2+1),

            B =R*(-Xr+a*(b-Yr))+Xb-a*(b-Yb),

            C =R*(Xr2(b-Yr)2)-Xb2-(b-Yb)2.

  1. Labdasöprögetés (Sweep-ball action) :

 

Labdasöprögetés

Amikor a labda a mi térfelünkön helyezkedik el, a robot az ellenfél területe felé rúgja azt. A labdasöprögetés hasonló eljárás, mint a lövés, amelyben a robot kirúgja a labdát.                                             

  1. Blokkolás, elzárás (Block action) :

 

Elzárás

A lövési tevékenységgel ellentétben, a blokkolás a labda megszerzése vagy az ellenséges robot távol tartása. Ezt a műveletet főleg a védekező robotok hajtják végre. A robot úgy hajtja végre ezt a viselkedési formát, hogy a kiszámított támadási pozícióba mozog, figyelembe véve a labda és a saját kapujának pozícióját. A támadás útvonala függhet az ellenséges robot által célba vett pont helyzetétől. Tehát a védekező robot pozíciója függ az ellenséges robot és a labda pozíciójától is.