Ú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
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.
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.
- 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.
A további működési magyarázatokat lásd a letölthető szakmai beszámolóban!