Útravaló Ösztöndíjprogram

Út a tudományhoz alprogram

P-UT-2014/2015-0013

Kecskeméti Bányai Júlia Gimnázium
6000 Kecskemét, Nyíri u.11. 
Robotika Csoport   

Rajintelligencia viselkedés megvalósítása robotokkal 

Szakmai beszámoló letöltése: Szakmai_beszamolo_P_UT_2014_2015_0013.pdf

Videó a működésről:  Rajintelligencia.mp4

Forráskódok:  Kutato_robot.ev3 és Munkas_robot.nxc

 

Bevezető

Az utóbbi évtizedekben az informatika fejlődésével lehetővé vált olyan gyakorlatilag is kivitelezett kutatások lebonyolítása, amely a természetben szabadon élő állatok viselkedésmintáit tanulmányozva robotok segítségével próbálják azt modellezni. A mesterséges intelligencia kutatások közé sorolt raj intelligencia is ide tartozik. Olyan kommunikációra épülő decentralizált rendszerekről van szó, amelyek az egyedek viselkedésének összességeként egy rendszer szintű globális viselkedéshez vezetnek (swarm intelligence). Ilyen lehet például a hangyakolóniák viselkedés, halrajok mozgása.

A modellezéshez olyan robot raj-ok létrehozása szükséges, amelyek egymástól független egyedei önálló viselkedésmintát követnek, szenzoraikkal érzékelik környezetük fizika, kémiai jellemzőit, és kommunikációs kölcsönhatásaikból egy globális viselkedés alakul ki.

A vizsgálatok céljaként felmerül a nehezen, veszélyt hordozóan megközelíthető terep feltérképezése (pl.: elaknásított terület, Mars, katasztrófa sújtotta övezet, tengeri olajfoltok, …).

Több neves kutatóintézet is indított a témában projektet (Pl.: MIT, Pennsylvania Egyetem, Svájci Szövetségi Technológiai Intézet, ). Különböző aspektusból és különböző technikai megközelítéssel vizsgálták a megvalósítás lehetőségeit.

Biológiai háttér

A hangyák (Formicidae) családja a társaséletű hártyásszárnyúak rendjébe tartozik és egyike a legközismertebb rovaroknak. Különleges életmódjuk és szokásaik (pl.: bámulatos építményeik, vándorlásaik, szervezett államuk) sok hasonlóságot mutatnak az emberi társadalmakéval.

Minket ezek közül a táplálék felkutatására használt módszereik érdekeltek leginkább. Általánosságban a hangyák táplálékkeresése több lépésből áll. A felderítő hangyák először kaotikusan mozognak a fészek körül, majd ha az egyik keresőhangya élelmet talál, akkor azt visszaviszi a hangyabolyba, miközben feromonokat (illatnyomot) hagy maga után. A többi hangya ezt az illatnyomot próbálja aztán követni, miközben ők is ugyanilyen feromonnyomokat hagynak hátra. Ekkor még nem feltétlen ugyanazon az útvonalon, de egyre többen jutnak el az élelemhez. Ezzel az algoritmussal végül az összes hangya megtalálja a legrövidebb utat, hiszen minél rövidebb az út, azon egységnyi idő alatt egyre többet tudnak fordulni a hangyák, így annál erőteljesebb lesz az illatnyom. Ennek következtében a legrövidebb úton erősödik a leggyorsabban az illat, ami az élelemforrást jelenti, így egyre több és több hangya választja azt, míg végül az összes szép rendezett sorban ugyanazon az úton nem halad.

Az általunk szimulált sivatagi hangya (Cathaglyphis fortis) viselkedése ettől eltérő. A sivatagban a tájékozódásra nem áll rendelkezésére semmilyen tereptárgy, illetve szagnyomokat sem tud hagyni, mert a hatalmas hőségben a feromonnyomok hamar elpárolognának. Ezek helyett ez a hangyafaj egy igen érdekes másik módon tájékozódik. Az irányt a nap állásából határozza meg, míg a bolytól megtett távolságot lépéseiket számlálva. Azt, hogy a hangyák tényleg rendelkeznek egy belső „lépésszámlálóval”, a Harald Wolf (Ulmi Egyetem, Németország) és munkatársai által végzett kísérletek eredményei bizonyítják. Ezekben a kísérletekben az egyik estben a hangyák lábait meghosszabbították, míg a másik esetben megrövidítették és így vizsgálták, hogy visszatalálnak-e a kiindulási pontra. A hangyák mind a két esetben eltévedtek. A meghosszabbított lábúak túlmentek a kiindulási ponton, míg a megrövidített lábúak hamarabb megálltak, ahogy azt várni lehetett.

A projektben a sivatagi hangyák biológiai viselkedésén keresztül modelleztünk egy terep-felderítési feladatot.

A megvalósított rajintelligencia kutatás koncepciója

A pályázat anyagi hátterét és a megvalósíthatóság középiskolai tényezőit figyelembe véve a tervezett projekt céljai és a megvalósítás terve a következő volt:

·         A projektben a sivatagi hangyák viselkedésmintáját modelleztük a táplálékkeresés során.

·         Kétféle robot készült el a projektben, ezzel is modellezve a hangyák biológiai specifikációját.

·         A kutató robot feladata, hogy megtalálja a táplálékot, amit egy piros színű felület szimbolizál, majd visszatérve a bolyhoz az ott várakozó társait a táplálékhoz vezesse.

·         A munkás robotok feladata, hogy a kutató robotot követve a táplálékforrásig jussanak. (A visszatérés már nem szerepelt a projekt céljai között.)

·         Informatikai szempontból a kutató robotok felépítése a hardver és a szoftver szempontjából egységes.

·         Informatikai szempontból a munkás robotok felépítése a hardver és a szoftver szempontjából egységes.

·         A kétféle típusú robot felépítését és szenzorait tekintve eltér egymástól. A robotokat működtető szoftverek is különbözőek az eltérő funkcióknak megfelelően.

A kutató robotok egységes, de önálló keresési algoritmus alapján mozognak egy 8-10 m2 területű kijelölt terepen és színérzékelő szenzoruk segítségével egy felület színétől eltérő mintázatot keresnek. A robotok EV3 típusúak, rendelkeznek színszenzorral, giroszkóppal és infra jelvevővel. 3 db kutató robot készült el.

Amennyiben valamelyik kutató robot megtalálta a célterületet, visszatér a munkás robotok várakozási területéhez (boly), majd a munkás robotokat a célterülethez vezeti.

A munkás robotok NXT típusúak és rendelkeznek ultrahang szenzorral, valamint iránytű szenzorral. A raj követése a mágneses mező változására épül.

Tájékozódás a terepen

A kétféle típusú robot (EV3 és NXT) egyaránt képes bluetooth alapú kommunikációra, de a két kommunikációs protokoll különbözik egymástól, ezért az egymás közötti adatcsere csak egy bridge beiktatásával lehetséges (megvalósítható pl. mobiltelefonon keresztül). A kommunikáció összetettsége miatt nehezen hozható párhuzamba a biológiai mintával, így a kommunikációmentes megoldás mellett döntöttünk.

A kutató robotok egymástól függetlenül bejárják a területet. A célt elérő robot visszatér a bolyhoz, míg a sikertelenül keresők a kiinduló pozíciójukba térnek vissza.

A tájékozódáshoz az ortogonális bejárás technikáját választottuk. A szakirodalom szerint az egyik legegyszerűbb módszer. A mozgás jellegéből adódóan az x illetve y koordináták meghatározása természetes egyszerűséggel adódik. A koordináta-rendszer origója a bolynál van. A koordináták számlálására a szervo motor elfordulás számlálóját használtuk, amely 360 fokos elfordulásonként 1 egységgel növekszik.

A pontosabb pozícióba álláshoz infra kapukat használtunk, amely a biológiai rendszer napfény utáni tájékozódásának felelhet meg. Az infra jelvevők képesek a jeladó távolságát és irányát meghatározni. A pontos fordulási szögek meghatározásához giroszkóppal szereltük fel a kutató robotokat.

A részletes működést a „Programok forráskódja és működése” fejezetben mutatjuk be.

Hasznosíthatóság

A mesterséges intelligenciakutatás csakúgy, mint a robotika a XXI. század kiemelt műszaki, informatikai területe. A kutatás eredménye a publikálás, bemutatás során példát ad arra, hogy a laikus felhasználó is meglássa az intelligensnek tűnő gépi viselkedés mögött az emberi kreativitásban rejlő gondolatokat. A komplex műszaki, természettudományi kutatás összekapcsolja biológiai élőlények viselkedésében rejlő mintákat a gépi, programozott viselkedéssel, ezáltal a két nagyon távoli terület között teremt kapcsolatot. Az oktatás számára tervezett eszköz használatával olyan lehetőségeket mutatunk be, amelyek tovább motiválhatják a műszaki területek iránt érdeklődőket, vagy éppen közömbösöket. A megvalósított algoritmusok alkalmasak lesznek a bevezetőben vázolt feladatok megoldására

legyen szó pl. terület felderítésről, vagy katasztrófa elhárításról.

Az elkészült robotok:

Kutató robotok Munkás robotok
   

Programok forráskódja és működése

A programok elkészítésénél az volt a cél, hogy a kétféle típusú robot esetén egy-egy olyan program készüljön, amely teljesíti a feladatspecifikációt.

A programok lehetőség szerint moduláris felépítésűek legyenek a könnyebb áttekinthetőség kedvéért.

Nem volt cél, hogy az egyes programmodulok más forráskódba illesztve is működjenek, tehát a saját modulon belüli változórendszert nem hoztuk létre. Ez nem okozott volna gondot, de az EV3-G programnyelv egyébként is nagy terjedelmű moduljai az értékátadások és változódefiníciók miatt még tovább bővültek volna. Ugyanakkor speciális célfeladatról lévén szó nem tartottuk szükségesnek mindezt. A teljesen általános szerkezetű programmodulok (függvények) elkészítése könnyen elvégezhető.

A moduláris szerkezet miatt a forráskód könnyebben áttekinthető, az egyes modulok külön szerkeszthetők.

A kereső robot feladatai

- Az indulás után ortogonális bejárással a cél keresése. A cél a földre helyezett piros színű folt. Ez szimbolizálja az adott területen a vegyi- vagy radioaktív szennyezést. A kereső robot színszenzorával keresi felületet, miközben mozog. Megoldandó probléma: a felület folyamatos figyelése, miközben a robot végrehajtja a mozgássort. Találat esetén reagálás a célterületre. Megoldás: külön programszál figyeli a felületet, és szemafor változón keresztül jelez a főszálnak.

- Ha valamelyik robot megtalálta a célt, akkor elindul a „munkás” robotok bázisa felé, hogy azokat a célhoz tudja vezetni. Megoldandó probléma: a bázis megtalálása és megfelelő pozícióba állás a „munkás” robotok előtt. Megoldás: tájékozódás descartes koordináták alapján, pontosítás infrakapukkal.

- Ha a robotok nem találják a célt, akkor egy bizonyos idő után vissza kell térniük a kiinduló állapotba. Megoldandó probléma: a robotnak mindkét funkciót kell teljesítenie. Tehát ha megtalálta a célt, akkor a bázisra kell mennie, ha nem találta meg, akkor a kiinduló pozícióba. Megoldás: A programban feltételes utasításvégrehajtással.

- A célt megtaláló robotnak a bázisra érkezve, az ott várakozó „munkás” robotok lánca elé kell pozícionálnia magát, a képzeletbeli koordináta rendszer y-tengelyével párhuzamosan. Megoldandó probléma: a robot mozgásából adódó bizonytalanságok a felderítés során már összegződtek, így a robot tényleges haladási iránya már nem feltétlenül párhuzamos a tengelyekkel. A robotraj célhoz vezetése miatt a párhuzamosság visszaállítása fontos szempont a további tájékozódáshoz. Megoldás: útvonalkövetés és infrakapu segítségével történő pozícionálás.

- A robotraj célhoz vezetése. Megoldandó probléma: a mágneses jelkövetés az iránytű szenzor által mért érték lassú stabilizációja miatt nem történhet nagy sebességgel, mert a követő robotok lánca megszakad a mozgás során. Az elől haladó robot fordulása ilyen szempontból különösen problémás. A raj megállása, illetve indulása kommunikációmentes környezetben nehezen kivitelezhető. Megoldás: ultrahangszenzor használata az elől haladó robot figyelésére, a sebesség szinkronizálása.

- Ha a robotraj elérte a célt, a vezető robotnak el kell távolodnia a többitől, tehát a robotlánc leszakítása a vezetőről. Megoldandó probléma: a követő robotok célterületen hagyása. Megoldás: nagy sebességű mozgást a munkás robotok nem tudják követni.

A következő ábra a terepet és annak legfontosabb elemeit tartalmazza.

Kutató robot forráskódja

A további működési magyarázatokat lásd a letölthető szakmai beszámolóban!