Kooperatív robotok vezérlése – Robotfoci

(Pázmány Péter Katolikus Egyetem – Robotika laboratórium)

 

Írta: Kurczina Gergő

Konzulensek: Dr. Cserey György, Árvai László

 

Bevezetés

 

A robotfoci egy olyan játék, mely mögött összetett tudományos munka áll. A játék megalkotásához használnunk kell a robotikában alkalmazott összes tudományágat, ezáltal a robotfoci tökéletes terepet nyújt e tudományágak eredményeinek kipróbálására és fejlesztésére. De lássuk, melyek is ezek a területek! A mesterséges intelligencia, a képfeldolgozás, az irányításelmélet, az elektronika, a 3D-s tervezés, az útvonaltervezés és a szoftvertechnológia.

Szövegdoboz: A Hóz Norbert által tervezett, és a Varinex Kft. által 3D-s nyomtatással kinyomtatott focirobotok.A projekt célja, melynek keretében diplomamunkám készült az volt, hogy egy olyan robotfoci csapatot hozzunk létre, mely a későbbiekben versenybe szállhat más országok csapataival a világbajnokságokon. A projekten belül felmerülő feladatok közül ez a dolgozat a robotfoci kamerás moduljával foglalkozik. Ennek a modulnak a feladata, hogy input adatokat szolgáltasson a robotfoci rendszerének.

 

 

A robotfoci története

 

1992-ben a „Grand Challenge in Artificial Intelligence” elnevezésű konferencia adta meg azt a kezdő lökést, amelynek köszönhetően 1993-ban japán kutatók a hétköznapi emberek számára a futballt használták fel a tudomány, a technika, a mesterséges intelligencia és a robotika fejlődésének bemutatására. Ettől a ponttól számítva indult rohamos fejlődésnek e terület, és kezdtek egyre több egyetemen, laboratóriumban kutatásokat, kísérleteket végezni a robotfoci segítségével.  Hamarosan az egyes csapatok elkezdték összemérni tudásukat más csapatokkal, így kezdődtek az első meccsek, melyekből később bajnokságok lettek.

1997. június 5-én hivatalosan is megalakult a Federation of International Robot-soccer Association (továbbiakban csak FIRA). Ma ez az egyik legnagyobb szövetség. A szövetség szabályrendszere szerint terveztük meg, és kezdtük fejleszteni saját csapatunkat is.

A robotfoci működése

Szövegdoboz: Robotfoci rendszer vázlatos rajza.
( http://fira.net/soccer/mirosot/MiroSot.pdf.pdf )
Tekintsük át, hogyan is működik egy robotfoci-rendszer. Először is adott egy játéktér, melyen színes jelzésekkel ellátott robotok mozoghatnak. Egy narancssárga labda is található a pályán. A pálya fölé egy kamerát helyezünk, ez adja majd az inputképet a pályán történő eseményekről. Az ebből jövő input feldolgozásra kerül egy számítógép segítségével, majd a kapott mozgásmintákat wireless kapcsolat segítségével közvetítjük, a robotoknak, melyek végrehajtják azokat, majd indul újra a körforgás.

A kamera modul

Mint már említettem a kamera modul adja a rendszer egyetlen bemenetét, ezért megtervezésénél és implementálásánál fontos szerepet kapott a pontosság. A másik kritikus szempont az algoritmus gyorsasága volt. Ennek - a játék természetéből adódóan - valós időben történő futásnak kellett lennie.

Az első lépés a kamera képének megszerzése volt. Ezt - annak érdekében, hogy a rendszer minél gyorsabban futhasson - közvetlenül a kártya driver-jéből töltöttük át. A beolvasott képet egy RGB színtérben kaptuk meg. Ez a fajta színtér a legáltalánosabban elterjedt színreprezentálási forma. Az RGB színtérnek azonban nagy hátránya, hogy nagyon érzékeny az árnyalatok, a színek fényerősségének változására, valamint ezek kapcsolatának reprezentálása is nehézkes. Megoldásként áttértünk a HSV színtérre, melynek sajátossága, hogy egy kúpon helyezkednek el a színek. Az alapszíneket egy körív mentén tudjuk kijelölni, mely a kúp alapját alkotja. Az árnyalatot és a fényerősséget pedig a maradék két dimenzión lehet ábrázolni, ahogy a mellékelt ábrán is láthatjuk. Az új színtérben már könnyedén tudjuk reprezentálni a színeket, s a hozzá tartozó árnyalatokat és fényerősséget.

 

Az így reprezentált képet ezek után egy tresholdolási eljárásnak vetjük alá. Ennek az eljárásnak az a feladata, hogy kiszűrje a képről azokat az információkat, amelyekre nekünk szükségünk van. A könnyebb feldolgozás érdekében a kapott képet binarizáljuk, ami azt jelenti, hogy az általunk fontosnak tartott információkat egységesen feketével, vagyis 1-gyel reprezentáljuk, a többit pedig fehérrel, azaz 0-val. Az eljárás úgy működik, hogy végigmegyünk a teljes képen, és a pixeleket egyesével megvizsgáljuk, majd a jó információt tartalmazó pixelt feketére, a többit pedig fehérre állítjuk. A szoftver options menüje - 4 gördíthető csúszka - segítségével tudjuk állítani, hogy mely színekre vagyunk kíváncsiak.

Szövegdoboz:

 

 

 

 

 

 

 

 

Szövegdoboz:  Alul az eredeti kép látható, felül pedig ennek piros színre vett tresholdja

 

A kamera modulnak a tresholdolt képből a következő információkat kell visszaadnia a rendszer számára: a robotok és a labda helye, a robotok iránya és sebessége.

Először tekintsük át a robotok helyét megadó objektumfelismerő eljárást. Amint a képen is látható, a kapott alakzat, melyet meg kell találnunk, a zajok miatt nagyon amorf és nehezen reprezentálható. Ezen felül az alakzat a zajok miatt folyamatosan - kis mértékben ugyan -, de változik. Ezen tulajdonságok miatt egy olyan megoldásra volt szükségünk, amely képes az emberhez hasonlóan egy alakzat hasonlóságából asszociálni arra, hogy milyen alakzat is volt ott eredetileg.

A rendszernek könnyen taníthatónak is kellett lennie, hogy ne legyen szükség hosszú számítások végzésére a legkisebb változásnál is. Ez a rendszer, amely rendelkezik a fönt említett tulajdonságokkal, egy neurális hálózat.

A neurális hálózatok mesterséges neuronokból felépített hálózatok, melyek képesek tanulni, és a tanultak alapján dönteni egy kapott mintáról, hogy az megfelel-e a tanultaknak vagy sem. A neurális hálózatok másik nagy előnye, hogy bizonyítottan nagyon gyors rendszerek. Ez a tulajdonságuk nagyban elősegítette a rendszer valós időben történő futását.

A rendszer működése a következőképpen történik. A már feldolgozott képből 40x40-es képi mintákat adunk a rendszernek, és megmondjuk, hogy a kapott kép rossz vagy jó mintát tartalmaz. A minták segítségével a neurális hálózat felépít magának egy W mátrixot, mely az egyes neuron összeköttetések súlyát tartalmazza. Ez alapján – a későbbiekben a mátrix alapján - fogja a rendszer meghozni döntését. A tanítás befejeztével elindítjuk a döntéshozó rendszert, mely minden kapott képet megvizsgál, hogy megtalálható-e rajta a tanult alakzat. Ha igen, akkor elraktározza az alakzat vélt középpontját.

Az algoritmus hibája, hogy egy alakzathoz több középpontot is találhat a valós középpont körül. Ennek kiküszöbölése két lépésben történik. Először is hozzárendeljük az egyes középpontokat egy másodlagos ID szín segítségével a megfelelő robothoz. Miután ez megtörtént - egy mediánszűrő segítségével - megadjuk az alakzat középpontját a hozzárendelt pontokból.

 

 

 

 

 

Szövegdoboz: A két robot és a labda lokalizálása. Középen a valós kép. Fölül a robotok lokalizálása, jobb sarokban a labda lokalizálása látható.

Az utolsó két adat a sebesség és az irány kiértékelését, egy eljárás végzi a következő metódus segítségével.  Vesszük a két egymást követő képből szerzett robotközéppontokat, és kiszámoljuk azok elmozdulás vektorát. Ebből a vektorból az irány jól meghatározható. A sebességet az elmozdulás vektor hosszával adjuk meg. Majd ezt - a kerékátmérő és a kamera frissítési sebességének segítségével - valós sebességre is átszámolhatjuk.

 

Köszönetnyilvánítás

Az útmutatásért és a segítségért köszönet illeti:

Dr. Cserey Györgyöt (egyetemi docens, a Robotika labor vezetője),

Rák Ádámot (doktorandusz),

és a Pázmány Péter Katolikus Egyetem Robotika Laborjának dolgozóit.

 

Külön köszönet illeti:

Árvai Lászlót, aki kezdeményezte a projekt létrejöttét, és a szívén viseli a magyar robotfoci sorsát.

A Varinex Kft. munkatársait, akik a robotok elkészítésében nyújtottak segítséget.