Miskolci Egyetem Gépészmérnöki és Informatikai Kar Robert Bosch Mechatronikai Tanszék
Diplomamunka Mobil robotok kooperációs feladatmegoldása
Készítette: Molnár Ádám Gx2-MRB 2014
Tartalomjegyzék 1.
Bevezetés ........................................................................................................................ 1
2.
Robotok ismertetése ....................................................................................................... 2
3.
4.
5.
2.1.
A robot fogalma ................................................................................................................. 2
2.2.
Robotok csoportosítása...................................................................................................... 3
2.3.
Mobil robotok bemutatása ................................................................................................ 6
A Robotino bemutatása ................................................................................................ 12 3.1.
A Robotino rövid bemutatása .......................................................................................... 12
3.2.
A Robotino váza................................................................................................................ 13
3.3.
A Robotino meghajtó rendszere ...................................................................................... 13
3.4.
A Robotino szenzorai........................................................................................................ 15
3.5.
A Robotino vezérlője ........................................................................................................ 23
3.6.
A „Gripper” bővítő modul ................................................................................................ 25
3.7.
A Robotino irányítása ....................................................................................................... 27
A Robotino navigációs rendszerei................................................................................ 29 4.1.
Vonalkövetés .................................................................................................................... 29
4.2.
Kerékelforduláson alapuló navigálás................................................................................ 29
4.3.
Northstar beltéri navigáció .............................................................................................. 31
Kooperációs feladatmegoldás ...................................................................................... 35 5.1.
Kooperativitás fogalma .................................................................................................... 35
5.2.
A feladat ismertetése ....................................................................................................... 35
5.3.
A feladat modellezése ...................................................................................................... 35
5.4.
A feladat felosztása részfeladatokra ................................................................................ 37
5.5.
A részfeladatok felosztása a robotok között .................................................................... 37
5.6.
A részfeladatok megoldásának bemutatása .................................................................... 42
5.7.
A kooperációs feladatmegoldás eredménye.................................................................... 54
6.
Összefoglalás ................................................................................................................ 55
7.
Summary ...................................................................................................................... 56
Irodalomjegyzék .................................................................................................................. 57
I
Mobil robotok kooperációs feladatmegoldása
1. Bevezetés A diplomamunka célja, hogy létrehozzunk egy olyan programot, amely kettő mobil robotot úgy irányít egy közös cél elérése érdekében, hogy kooperatívan el tudjanak végezni egy feladatot. Bizonyos helyzetekben a feladat komplexitása miatt a célt nem lehet elérni egyetlen egy robot alkalmazásával. Ezekben az esetekben kettő, vagy több robot egymással kooperatív módon sikeresen véghez tudják vinni a feladatot. A cél megvalósításának az érdekében először ismertetjük a robotokat, csoportosításukat, majd kitérünk a mobil robotok működésére, mozgató rendszereire, irányítására, navigációjára, alkalmazásaira. Ezek után bemutatjuk a Festo cég által gyártott Robotino nevezetű mobil robotot, majd részletezzük a beavatkozó elemeit, érzékelőit, vezérlőjét, és a „Gripper” nevezetű bővítő modult. Ezután módokat keresünk a mobil robotok irányítására, és a legalkalmasabb megoldást felhasználjuk a vezérlésre. Ezt követően megvizsgáljuk a rendelkezésünkre álló navigációs rendszereket, és alkalmazzuk a feladat megoldása során. Ezeket követően részletezzük a mobil robotok közötti különbségeket, és meghatározzuk az alkalmazhatóságaikat. Azután ismertetjük a megoldani kívánt feladatot, és megoldást tervezünk a teljesítésére. Az egyes részfeladatok megoldására alkalmazzuk a rendelkezésünkre álló szenzorokat, beavatkozó elemeket, navigációs rendszereket. Végezetül a robotokat vezérlő programot megírjuk a Robotino View 2 fejlesztői programban, és leteszteljük a működését.
1
Mobil robotok kooperációs feladatmegoldása
2. Robotok ismertetése Ebben a részben legelőször ismertetjük a robot fogalmát, majd kitérünk a robotok csoportosítására, és a robot generációkra. Ezek után bemutatjuk a mobil robotok általános jellemzőit, majd csoportosítjuk különféle jellemzők alapján. Ezt követően kifejtjük a mobil robotok működését, mozgását, irányítását, és navigációját.
2.1.
A robot fogalma
A robot megnevezése a cseh „robota” szóból származik, ami munkát jelent. Karel Čapek cseh drámaíró 1920-as évben született tragikomédiájának a Rossum’s Universal Robots című színművének a megjelenése után terjedt el a robot fogalom [1]. A robot egy elektromechanikai szerkezet, amely előzetes programozás alapján képes különböző feladatok végrehajtására. Lehet közvetlen emberi irányítás alatt, de önállóan is végezheti a munkáját egy számítógép felügyeletére bízva [2]. A robotokkal rendszerint olyan munkákat végeztetnek, amelyek túl veszélyesek vagy túl nehezek az ember számára vagy egyszerűen túl monoton, de nagy pontossággal végrehajtandó feladat, ezért egy robot sokkal nagyobb biztonsággal képes elvégezni, mint az emberek. Robotokat hadi célokra is felhasználnak. A katonai célokra készült robotok feladata általában a felderítés. A fejlesztések érzékeltetésére, bemutatására számos olyan robot született, melyeknek ipari, gazdasági hasznuk nincs, ám működésük látványos, a nagyközönség figyelmét is le tudják kötni, ezeket nevezzük szórakoztató ipari robotoknak [2]. A sci-fiben a robotika három törvényét Isaac Asimov alkotta meg. A történeteiben szereplőrobotok zöme ezeket a szabályokat követi. Először a Körbe-körbe című novellájában olvashatóak, a következő formában:
A robotnak nem szabad kárt okoznia emberi lényben, vagy tétlenül tűrnie, hogy emberi lény bármilyen kárt szenvedjen.
A robot engedelmeskedni tartozik az emberi lények utasításainak, kivéve, ha ezek az utasítások az első törvény előírásaiba ütköznének.
A robot tartozik saját védelméről gondoskodni, amennyiben ez nem ütközik az első vagy második törvény bármelyikének előírásaiba [3].
2
Mobil robotok kooperációs feladatmegoldása
2.2.
Robotok csoportosítása
A robotokat többféle szempont alapján tudjuk csoportosítani, mint például intelligenciájuk, külső megjelenésük, alkalmazási területük, mobilitásuk szerint. Alkalmazásuk szerint négy nagy csoportba sorolhatjuk:
Iparban használt robotok o szerelő robot o technológiai feladatot ellátó robot o anyagmozgató robot Kutatásban használt robotok o androidok o telerobotok Mobil robotok Gyógyászatban használt robotok Szórakoztatásban használt robotok
Megkülönböztetjük a következő robotokat:
mobil (androidok, animatok, ember nélküli járművek, szórakoztatórobotok, általános autonóm robotok statikus (háztartási és ipari robotok, robotkarok) nanorobotok (fizika, kémia határán)
A robotokat, hasonlóan a számítógépekhez, a technikai fejlettségüknek megfelelően úgynevezett generációkban csoportosíthatjuk. Három generációt különböztetünk meg ezek a következőek: I generáció, II generáció, III generáció. Az alábbi pontokban mind a három generációt bemutatjuk. Ismertetjük a fejletségüket, irányíthatóságukat, mesterséges intelligenciájukat, majd végezetül ábrák segítségével bemutatjuk a modelljüket.
3
Mobil robotok kooperációs feladatmegoldása 2.2.1. I. generációs robotok 1960-as években alakult ki. Az 2.1. ábra mutatja be az első generációs robotok modelljét. Kizárólag vezérléssel működtethetők, a számítógép programja adja meg mozgásuk útvonalát, határozza meg az elvégzendő tevékenységeket. Programozhatóságuk alacsony, a robot mozdulatait a program egyértelműen meghatározza. A környezet változásait nem érzékelik, nincsenek felszerelve szenzorokkal. Ezeknek a gépeknek megvan a képességük, hogy huzamosabb ideig, magas ismételhető képesség mellet, gyors, precíz mozgásokat végezzenek el. Ezek a robotok főleg az iparban terjedtek el. Automatizált gyártócellákban alkalmazzák, akár csoportosan is, ha össze vannak szinkronizálva. Állandó felügyeletet igényelnek, mert ha valami elállítódik, akkor annak következményei lehetnek [4].
2.1. ábra: Az első generációs robotok modellje 2.2.2. II. generációs robotok 1970-es években fejlesztették ki, és az 1980-as években kezdtek elterjedni. Az 2.2. ábra mutatja be a második generációs robotok modelljét. Környezetüket szenzorokkal vizsgálják. Ezek az érzékelők lehetnek nyomás, távolság, tapintás, radar, képalkotó, vagy egyéb szenzorok. A külvilágból szerzett és a saját működésükről nyert információk alapján a számítógép bármikor képes módosítani a robot mozgását, például kikerüli a váratlanul útjába került akadályokat. Feladataikat magas szintű programnyelven határozzák meg. 4
Mobil robotok kooperációs feladatmegoldása Ezek a robotok képesek egymással szinkronizálni, kooperációs feladatokat ellátni anélkül, hogy emberi felügyeletre lenne szüksége. Bizonyos időközönként ajánlott az ellenőrzés. Minél bonyolultabb egy rendszer, annál inkább nagyobb az esély a hibás működésre [4].
2.2. ábra: Második generációs robotok modellje 2.2.3. III. Generációs robotok Az 1990-es években alakult ki. A harmadik generációs robotok modelljét az 2.3. ábra mutatja be. Az informatika fejlődésével együtt megjelentek a mesterséges intelligenciák, amelyeket egyre több esetben átültettek a robotok világába is. Legjobb példák a harmadik generációs robotokra, a teljesen önálló robotok, és a rajként működő intelligens robotok. Programozásuk magas nyelven történik. Megjelentek az önálló viselkedési algoritmusok, döntési rendszerek, tanuló algoritmusok, amelyek hasznosítják korábbi tapasztalataikat, és átültetik a saját programjukba. Jól alkalmazkodnak a környezet változásaihoz, alakokat és helyzeteket ismernek fel, az érzékelőktől származó jeleket feldolgozzák, a magukról és környezetükről tárolt modellt önállóan képesek módosítani. Hanggal is vezérelhetők, amire képesek hanggal válaszolni. Önállóan sok feladatot tudnak elvégezni huzamosabb ideig, akár külső számítógép, akár ember felügyelete nélkül [4].
5
Mobil robotok kooperációs feladatmegoldása
2.3. ábra: Harmadik generációs robotok modellje
2.3.
Mobil robotok bemutatása
Mobil robotnak, azt a robotot nevezzük, amelyek nem helyhez kötöttek, az adott térben képesek az egyik pontból eljutni a másik pontba. Ezek a szerkezetek legtöbbször anyagmozgatási, kutatási, felderítési, szórakozási, vagy egyéb speciális feladatokra lettek tervezve. Egy robot akkor mondunk mobil robotnak, ha teljesíti a következő követelményeket:
a robot az adott környezetben meg tudja határozni a helyzetét, navigálni képes magát
különféle szenzorokkal fel van szerelve, hogy érzékelje a környezetét
belső energia ellátása van
fedélzeti vezérlővel van felszerelve, ami irányítja a robotot
6
Mobil robotok kooperációs feladatmegoldása 2.3.1. Mobil robotok mozgásának kialakítása A robotok mozgásának a módját a munkavégzés környezete és az elvégzendő feladat határozza meg. Az alábbiakban részletezzük a leggyakoribb mozgáskialakításokat. 2.3.1.1.
Szárazföldi mobil robotok
A legelterjedtebb mobil robotok. Környezettől és feladattól függően alakítják ki a mozgási módjukat. Sokféle feladatokat tudnak ellátni. Az alábbi pontokban felsoroljuk a legelterjedtebb mozgási típusokat. Kerekes Egyszerűségük miatt ez a legelterjedtebb mód a mozgatásra. Általában 2, 3, vagy 4 kerekes megoldásokat szoktak alkalmazni. Előnyük, hogy egyszerű használni, olcsó, kisebb akadályokkal könnyen megküzdenek. Hátrányuk, hogy kicsi az érintkezési felület a környezettel, és megcsúszhatnak a kerekek. Kerekes megoldású robotokat a 2.4. képen látható [5].
2.4. kép: Kerekes megoldások Lánctalpas Ez a megoldás általában kültéri használatra szokták alkalmazni. Nagy tapadási felülete miatt könnyen mozog nehéz terep viszonyok között is. A robot irányítása egyszerű. Hátránya, hogy konstrukció szempontjából bonyolultabb megtervezni, a robot fordulása közben nagy oldalirányú erő hat rá, és akár a környezetben is kárt tehet. Lánctalpas példákat a 2.5. képen láthatunk [5].
2.5. kép: Lánctalpas megoldások
7
Mobil robotok kooperációs feladatmegoldása Robotláb Az utóbbi időben egyre jobban terjednek az olyan robotok, amik a mozgásra lábakat alkalmaznak. Kialakításuk, és lábszámuk szempontjából nagyon változatos eredmények születtek, amint a 2.6. ábra mutatja. Előnyük, hogy akár nehéz terepen is alkalmazhatók, hátrányuk, hogy programozási, mechanikai szempontból bonyolultak [5].
2.6. kép: Különböző lábszámú megoldások 2.3.1.2.
Légi mobil robotok
Légi robotokat főleg katonai, felderítői, tudományos kutatómunkára, használják. Ezek a robotok a levegőben tudnak feladatokat ellátni. Kialakításuk szempontjából lehet repülő, helikopter, és quadcopter is, amint a 2.7. kép is mutatja. Főleg felderítésre, és anyagmozgatásra használják [5].
2.7. kép: Légi mobil robotok 2.3.1.3.
Víz alatti mobil robotok
Ezeket a mobil robotokat a víz alatti feladatok ellátására tervezték. Ipari, kutatási, és hobby célokra szokták alkalmazni. Legfőbb feladatuk a víz alatti felderítés. Mozgatásukra sokféle kialakítás van, mint például propellerek, farok, és ballasztok, mint ahogy a 2.8. képen látható. Tervezéskor figyelembe kell venni a maximális mélységet, amit el akarnak érni, és figyelni kell a beázásra is, mert tönkre teheti az elektronikát [5].
2.8. kép: Víz alatti mobil robotok 8
Mobil robotok kooperációs feladatmegoldása 2.3.1.4.
Speciális mozgató rendszerű mobil robotok
Ezeket a robotokat speciális környezetben szokták alkalmazni, amikor a fentebb leírt megoldások nem lennének alkalmasak. Főleg kutatási céllal készítik ezeket a robotokat. Ritkán ültetik át a gyakorlatba. A mozgató rendszert sokféleképpen alakíthatják ki, ezek közül egy pár megoldást a 2.9. kép mutat be [5].
2.9. kép: Speciális mozgású robotok 2.3.2. Mobil robotok irányítása A robotok vezérlésének a megoldását minden esetben meg kell oldani. Megvalósításának a módja függ a feladattól. Az irányítást többféleképpen lehet megvalósítani, amit az alábbi pontokban ismertetünk. 2.3.2.1.
Autonóm mobil robotok
Az autonóm robotok külső irányítástól függetlenül is képesek önállóan elvégezni feladatokat. Programozásuk célja, hogy a külső hatásokra megfelelő módon tudjanak reagálni. Ezeknek a robotoknak képesnek kell lennie információkat gyűjteni a külső környezetről, veszélyhelyzetek elkerülésére, emberi beavatkozás nélküli folyamatos munkavégzésre, akár önellátó energiaellátásra is. A mesterséges intelligencia fejlődésével ezek a robotok képesek lesznek bonyolultabb feladatok ellátására, más robotokkal való kooperálásra. Tanuló algoritmusokkal, akár önállóan is szert tehet újabb képességekre, tapasztalati adatokból akár új stratégiákat is dolgozhat ki [4]. 2.3.2.2.
Távvezérelt mobil robotok
Ezek a robotok külső irányítástól függenek, önállóan képtelenek feladat elvégzésére. A külső irányító lehet ember, vagy számítógép. A külső környezetről való információ gyűjtés történhet csak a robotról, ilyenkor távjelenlétnek hívjuk, csak a vezérlőtől, mint egy távirányítós játékautó esetében, vagy akár a robotról és a vezérlőtől közösen. Ha a robot információkat gyűjt, akkor az adatokat eljuttatja a vezérlőhöz. A külső irányító végzi el az
9
Mobil robotok kooperációs feladatmegoldása adatok feldolgozását, majd a parancsok kiadását, amit a robot elvégez. A vezérlő és a robot közötti kapcsolat lehet vezetékes, vagy vezeték nélküli [4]. 2.3.2.3.
Hibrid vezérlésű
A hibrid vezérlés egyesíti az autonóm, és távvezérlésű módot. Ebben az esetben a mobil robotot lehet távolról is irányítani, de átállíthatjuk autonóm módra is, hogy önállóan képes legyen elvégezni a feladatát. 2.3.3. Mobil robotok navigációja Minden mobil robotnak nagyon fontos, hogy tudjon a környezetében navigálni. Észre kell vennie bizonyos veszélyes szituációkat, amik kárt tudnának tenni a robotban, mint például egy ütközést. A mobil robot navigációja alatt azt értjük, hogy a robotnak képesnek kell lennie meghatározni a saját helyzetét egy vonatkoztatási rendszerben, ezen kívül meg kell tudnia
tervezni
a
saját
útvonalát,
hogy
elérje
a
tervezett
célpontját
[6].
A navigációt 3 nagyobb részre tudjuk bontani:
Globális navigálás: Amikor a robot meg tudja határozni az abszolút helyzetét egy adott terepen, és képes eljuttatni magát a kijelölt helyre.
Lokális navigálás: A robot képes meghatározni bizonyos objektumoknak a helyzetét a környezetében. A környezetéből vett információk alapján reagálni is tud bizonyos helyzetekre.
Személyes navigálás: A robotnak tudnia kell a saját állapotát, ezen kívül, ha a környezetével is kapcsolatba lép, akkor tudnia kell az objektum pozícióját saját magához képest [6].
2.3.4. Mobil robotok alkalmazása Mobil robotokat sokféle feladatokra alkalmazzák. A leggyakoribb feladatokat az alábbi pontokban foglaljuk össze. 2.3.4.1.
Otthoni mobil robotok
A robotika fejlődése miatt, az otthoni felhasználhatósági robotok egyre jobban elterjedtek az utóbbi időben. A legelterjedtebb robotok a háztartásban a fűnyíró, porszívó, felmosó, és egyéb szórakoztató robotok, mint például a Lego Mindstorm. Ezek az egyszerűbb változatoktól, a komplexebb változatig mindenféle robot kapható.
10
Mobil robotok kooperációs feladatmegoldása 2.3.4.2.
Felderítő robotok
Ezeket a robotokat mindig a felderíteni kívánt környezethez alakítják ki. Elsődleges céljuk a felderítés, adatgyűjtés. Általában kamerákkal és egyéb mérő műszerekkel szerelik fel. Főleg katasztrófavédelemben, űrkutatásban, és katonai célokra alkalmazzák. Sokszor használják veszélyes területeken, így ha a feladat végrehajtása közben baleset történik, akkor csak a robot kerül veszélyes helyzetbe. 2.3.4.3.
Iparban használt mobil robotok
Ezeket a robotokat főleg logisztikai feladatokra alkalmazzák az iparban. Legtöbbször vonalkövetéses anyagmozgatási céllal használják.
11
Mobil robotok kooperációs feladatmegoldása
3. A Robotino bemutatása Ebben a részben legelőször röviden ismertetjük a Robotino-t. Ezek után részletesen bemutatjuk a felépítését, a meghajtó egységeit, az érzékelőit, bővítő moduljait, és vezérlő egységét. Végezetül kitérünk a robotok irányítási módjaira, és kiválasszuk a feladatunkhoz megfelelőt.
3.1.
A Robotino rövid bemutatása
A Robotino egy teljesen funkcionális, mobil robot rendszer, amit egy „mindenirányú” hajtással, és különféle érzékelőkkel szereltek fel. Az 3.1.-es képen látható a Robotino. A három meghajtó egység lehetővé teszi a robot minden irányú mozgását, mint például előre, hátra, oldalra, mindeközben a saját tengelye körül is meg tud fordulni. A Robotino sokféle szenzorral fel van szerelve, mint például ütközés érzékelővel, távolságmérőkkel, enkóderrel, webkamerával, de ezen kívül a digitális és analóg I/O interfészen keresztül bármilyen szenzorral, vagy egyéb perifériával ki lehet bővíteni. A Robotino vezérlő egysége egy beágyazott PC és egy CompactFlash kártya, melyen a robotra specializált Linux operációs rendszer, és az irányító programok találhatóak. A vezérlő egységet el lehet érni wireless LAN-on keresztül. A Robotino-t lehet programozni C++-ban, JAVA-ban, .Net-ben, MATLAB-ben, de lehet irányítani a LabVIEW, vagy a Robotino View programokon keresztül is. Ha megfelelően van programozva, akkor a feladatokat autonóm tudja teljesíteni [7].
3.1. kép: A Robotino 12
Mobil robotok kooperációs feladatmegoldása
3.2.
A Robotino váza
A Robotino alváza egy lézerrel kivágott, rozsdamentes acélból készült szerkezet, amit a 3.2.-es képen látható.
3.2. ábra: A Robotino váza Az újratölthető akkumulátorok, a meghajtó egységek, a kamera, az ütközés érzékelő, a távolságmérő szenzorok mind fel vannak szerelve a vázra. A robot úgy van kialakítva, hogy ki lehessen bővíteni a robotot további modulokkal, mint például egy megfogó, vagy egy robotkar szerkezettel. A vezérlő egységek az úgynevezett „vezérlő híd”-on helyezkednek el, ami egy speciális csatlakozón keresztül csatlakozik a rendszer többi egységeihez [7].
3.3.
A Robotino meghajtó rendszere
A Robotino-t három, egymástól független meghajtó egység mozgatja, amiket egymástól 120 fokban helyeztek el. A robot meghajtó egysége a 3.3. ábrán lehet látni. Mindegyik meghajtó egység egy DC motorból, enkóderből, egy 4:1-es áttételű bolygóműből, szíjhajtásból, és egy minden irányba képes elgördülő kerékből áll [7].
13
Mobil robotok kooperációs feladatmegoldása
3.3. ábra: A Robotino meghajtó rendszere Az aktuális motor fordulatszámot az inkrementális enkóderrel lehet érzékelni. A kívánt motor sebességet PID szabályzóval vezérlik. A különleges elhelyezkedésű görgőkkel ellátott kerekek egy bizonyos célt szolgálnak: a tengely merőleges irányába megfelelő tapadást biztosítanak, míg a tengellyel megegyező irányban a görgők súrlódásmentesen el tudnak gördülni [8]. Ez a különleges kialakítású meghajtó rendszer teszi ezt a mechatronikai rendszert holonomikus robottá. Akkor nevezünk ilyen típusúnak egy robotot, ha az effektív és az irányítható szabadságfokuk megegyezik, tehát annyi irányba képes mozogni, amennyibe a másik irányok által is el tudna jutni. A holonomikus robotokat könnyebb irányítani, de sokkal nehezebb megtervezni, és végrehajtani ezt a mozgást matematikailag [9].
14
Mobil robotok kooperációs feladatmegoldása
3.4.
A Robotino szenzorai
A szenzor az egy olyan eszköz, amely egy fizikai mennyiséget (pl. hőmérséklet, távolságot, nyomást) a vezérlés- és szabályozástechnikában jobban felhasználható, jobban kiértékelhető jellé alakít át (pl: elektromos jel, pneumatikus jel) [10]. A mobil robotok különféle szenzorokkal vannak ellátva. Mindegyik szenzornak megvan a saját feladata, amit az alábbi szempontok szerint lehet csoportosítani.
A robot belső változásait érzékelő szenzorok o
kerekek elfordulását érzékelők
o akkumulátor töltöttségét mérő szenzorok o egyéb feladatokat ellátó szenzorok
A környezet változásait érzékelő szenzorok o akadály felismerésre szolgáló szenzorok o helyzetérzékelők o mérő műszerek o egyéb feladatokat ellátó szenzorok
Helymeghatározásra, navigációra szolgáló szenzorok o beltéri navigáció o kültéri navigáció
Az alábbi pontokban felsoroljuk a Robotino, és a „Gripper” bővítő modul által használt szenzorokat, és ismertetjük a működési elvüket. Minden egyes érzékelőnek bemutatjuk a feladatát a robotok által végrehajtott kooperációs feladatmegoldás során. 3.4.1. Ütközés érzékelő A Robotino oldalán körbe el van helyezve egy „Bumper” nevezetű mikrokapcsoló, aminek egy részletét a 3.4. ábra mutatja be. Ha ezt a gumival bevont érzékelőt valamilyen külső tárgy benyomja, akkor zárja az elektromos kontaktust, és jelet ad a Robotino vezérlőjének. Jelét a Robotino View 2 programban a „Bumper” nevezetű funkció blokk adja vissza.
3.4. kép: A „Bumper” nevezetű ütközés érzékelő 15
Mobil robotok kooperációs feladatmegoldása 3.4.2. Mechanikus működtetésű elektromos helyzetérzékelő A „Gripper” modulban a helyzetérzékeléshez Cherry DC1 típusú görgős karral ellátott mechanikus mikrokapcsolót használnak, amit a 3.5. ábrán lehet látni. Feladata, hogy érzékelje a Robotino megfelelő helyzetben van-e a palettához képest, hogy a „Gripper” modullal felvegye a korongot.
3.5. kép: A DC1 típusú mikrokapcsoló A mechanikus helyzetkapcsolók, vagy végálláskapcsolók működtetése külső erővel, mechanikus szerkezet közvetítésével történik, vagyis az érzékelendő objektum fizikai kapcsolatba kerül az érzékelővel, és elmozdítja a kapcsoló mozgó érintkezőjét, így zár, vagy bont egy elektromos kontaktust. A mikrokapcsoló vezérlő jele a Robotino digitális I5 csatlakozó pontjára van bekötve [10]. 3.4.1. Infravörös távolságérzékelő A robotikában használt egyik népszerű érzékelő az infravörös távolságérzékelő szenzor, amiből többféle létezik, különböző méréstartományokkal. Kis méretük, könnyű használhatóságuk, pontosságuk, és olcsóságuk miatt elég elterjedt. A Robotino 9db SHARP GP2D120 analóg infravörös távolságérzékelővel van felszerelve, ami a 3.6. képen lehet látni a robotba szerelt állapotban.
16
Mobil robotok kooperációs feladatmegoldása
3.6. kép: Az infravörös távolságmérő szenzor Ezek a szenzorok egymástól 40 fokonként vannak elhelyezve a robotban, ahogy a 3.7. ábrán lehet látni.
3.7. ábra: Az infravörös távolságérzékelők elhelyezkedése A szenzor az úgynevezett háromszögeléses módszerrel működik, aminek a működési elvét a 3.8. ábra mutatja be. A szenzor egy keskeny infravörös fénynyalábot bocsát ki (az IR fény hullámhossza 850nm ± 70nm). A kibocsátott IR fény a tárgyakról visszaverődik. Az érzékelő egy optikával leképezi a visszavert fényt egy CCD-re. Attól függően, hogy milyen messze van a céltárgy, más-más szögben érkezik vissza a visszavert fény, és ennek megfelelően más-más CCD pixelre fókuszálódik. Ebből már meghatározható a távolság [12].
17
Mobil robotok kooperációs feladatmegoldása
3.8. ábra: Az infravörös távolságmérő elvi működése A mobil robotok számára azonban az analóg szenzor jobban megfelel, mert azzal a méréstartományon belüli céltárgy távolsága pontosan megmérhető. Az analóg szenzor egy, a távolsággal fordítottan arányos, nemlineáris, analóg kimeneti feszültségjelet ad válaszul, amint a 3.9. ábra is mutatja. A robotinoban lévő szenzor 4cm-től 30cm-ig képes mérni [12].
3.9. ábra: Az analóg távolságmérő szenzor jele
18
Mobil robotok kooperációs feladatmegoldása 3.4.2. Inkrementális jeladó A dekóder egy olyan jeladó, ami egy tengely elfordulását érzékelve az elfordulás szögével arányosan valamilyen elektromos jelet szolgáltat. A Robotino meghajtó egysége fel van szerelve egy-egy Dunkermotoren RE 30-2-500 típusú inkrementális enkóderrel, ami a 3.10. ábrán látható.
3.10. ábra: A Robotino inkrementális jeladója Az enkóderben egy tengely forog, amihez belül egy tárcsa van rögzítve. A tárcsa általában átlátszó üveg, amire a pereme közelében átlátszatlan rovátkák vannak felgőzölve. Esetleg perforált fém tárcsa. A tárcsa rovátkolt peremén optokapu világít át. Fotóemitterként LEDet, fotódetektorként pedig fotótranzisztort alkalmaznak. Miközben a tárcsa forog, a rovátkák az optokapu nyalábját vagy eltakarják, vagy nem. A kapu vevő részében ennek megfelelő elektromos jel jön létre. Ha a forgási sebesség megváltozik az impulzussorozat frekvenciája is változni foga sebességgel arányosan. Így az enkóderes pozíciómérés impulzusszámlálásra, míg a fordulatszámmérés pedig frekvenciamérésre vezethető vissza [11].
19
Mobil robotok kooperációs feladatmegoldása
3.11. ábra: Ábra az enkóder működési elvéről Az inkrementális (növekményes) jeladóban olyan tárcsa van, amelyiken egyforma távolságra egyforma méretű rovátkák vannak. A rovátkákat két db optokapu figyeli. A két kapu úgy van elhelyezve, hogy egymáshoz képest 90 fokkal eltolt fázisú jelet adjanak a tárcsa forgásakor. Ez a két jel az "A" és a "B" fázis. Az enkóder tartalmaz egy elektronikát, ami gondoskodik az optokapu fényforrásának táplálásáról és a kapu vevőjéről érkező jelet valamilyen szabványos jellé alakítja. Ez leggyakrabban TTL, nyitott kollektoros, esetleg 24V-os jel, bizonyos esetekben a jelek inverze is ki van vezetve. Az inkrementális jeladókban van egy harmadik optokapu is, ami a tárcsa egy olyan részén világít át, ahol csak egy rovátka van. Így ez a jel a tengely teljes körülfordulásakor ad egyetlen egy impulzust. Neve "Z" vagy "Index". Az "A" és a "B" jel tehát 50% kitöltési tényezőjű négyszög jel, melyek között 90 fokos fáziskülönbség van. A két jelre azért van szükség, mert segítségükkel az enkóder tengely forgásának iránya detektálható. Ezt a fajta jeladót azért hívják inkrementálisnak, mert a tengely elfordulásával arányos jel (impulzus sorozat) a tengely helyzetéhez relatív. Ez azt jelenti, hogy az álló enkóder abszolút szöghelyzetéről maga az enkóder nem ad információt. A tényleges helyzetet a vezérlésnek kell nyilvántartania, amelyhez az enkóder csatlakozik. Ezt az enkóder tengelyének relatív elmozdulási távolságából tudja megtenni [11]. A vezérlés a következőképpen dolgozza fel az inkrementális jeladó jeleit. Az "A" és "B" jel fázishelyzetéből megállapítja a forgás irányát. Ezután az "A" vagy a "B" jelet egy le/fel számláló bemenetére vezetik. A számlálás irányát a forgási irányt megállapító logika kimenete vezérli. Ha az enkóder tengelye előre forog, akkor az impulzusok a számláló tartalmát növelik, ha hátra, akkor csökkentik. Valójában a számlálót nem az "A" vagy "B" jel lépteti, hanem beiktatnak egy EXOR kaput, ami összehasonlítja az "A" és "B" jelét. Az EXOR kapu kimenetén az "A" vagy "B" jel frekvenciájának duplája jelenik meg, ami egyúttal az enkóder tárcsára felvitt rovátkák által meghatározott felbontást megduplázza. A 20
Mobil robotok kooperációs feladatmegoldása számlálót tehát az EXOR kimenete lépteti le vagy fel. Bizonyos megoldásoknál még tovább mennek, és a dupla sebességű jel minden élénél (szint átmeneténél) léptetik a számlálót, így négyszeres felbontás is elérhető (quadratic count). Az 3.12. ábrán látható az inkrementális jeladó kimeneti jele [11].
3.12. ábra: Az inkrementális jeladó kimeneti jele Az inkrementális enkóder impulzusai egy számláló tartalmát csökkentik, vagy növelik. A számláló tartalma tehát arányos a tengely elfordulásával. Mivel a számláló tartalma nincs kapcsolatban az enkóder tengelyének abszolút szöghelyzetével, az ilyen enkódert használó alkalmazásoknál mindig van egy referencia pont. A berendezés áramtalanítása sorána számláló értéke elvész, illetve a kikapcsolt berendezés mozgó részeinek elmozdulásáról a vezérlés bekapcsolás után nem tudja az enkóder pontos helyzetét. A referencia pont a gép enkóder-el mért mozgó részének egy olyan abszolút pozíciója, amit egy külön érzékelő érzékel. A referenciapont felvétele során a vezérlés az enkóder számlálójának értékét nem veszi figyelembe és a mozgó részt a referencia pont érzékelőjéig mozgatja. Amikor el éri megállítja és az enkóder számlálóját nullázza vagy vezérléstől függően egy konkrét értéket állít be [11].
21
Mobil robotok kooperációs feladatmegoldása 3.4.3. Induktív jeladó A „Felderítő” Robotino fel van szerelve egy SIEA-M12NB-NS-S-L-WA 538292 típusú analóg indukciós érzékelővel, amit a 3.13. képen lehet látni. Ez a szenzor a robot aljára van felszerelve, és feladata, hogy érzékelje az alatta levő fémszalagot.
3.13. kép: Az induktív jeladó Az induktív érzékelők működése egy olyan rezgőkör alkalmazásán alapul, amelynek rezgés amplitúdóját az érzékelő aktív zónájában elhelyezkedő fémtárgy befolyásolja. Minden oszcillátor erősítőből, pozitív visszacsatolásból és frekvencia meghatározó elemből áll. A frekvencia meghatározó elem induktív érzékelők esetében párhuzamos LC – rezgőkört alkalmaznak. Elektromágneses rezgések keletkeznek egy tekercsből és kondenzátorból álló úgynevezett LC rezgőkörben. A feltöltött kondenzátor a tekercsen keresztül sül ki. A feltöltött kondenzátor a tekercsen keresztül sül ki. Ha a kondenzátor kisült, a mágneses tér csökkenni kezd. A mágneses tér változása a tekercsben feszültséget indukál. A kondenzátor ellentétes polaritásra töltődik, amely folyamat addig tart, amíg a mágneses tér teljesen le nem épült. A kondenzátor feszültsége a kondenzátorban elektromos teret alakít ki. A tekercsben az áram mágneses teret idéz elő. Az elektromos és a mágneses tér váltja egymást. A folyamat periodikusan játszódik le, így a feszültség és az áramerősség is periodikusan változik. Az induktív analóg útszenzorok a csillapító felület távolságával arányos jelet továbbítanak a kimeneten [10]. A Robotino-ban használt szenzor 0-10V feszültég jelet továbbít fordítottan arányosan az érzékelt fémtárgy távolságával. Az érzékelő kimenő jelét az AI1 porton keresztül csatlakoztatjuk a robothoz, aminek a jel értékét a Robotino View 2-ben az „Analog input #1” funkcióblokkon keresztül tudjuk kiolvasni. 22
Mobil robotok kooperációs feladatmegoldása 3.4.1. Egyutas fénysorompó fényvezetővel A „Gripper” megfogó pofái között a Festo SOEG-L-Q30-P-A-K-2L típusú fényvezetővel ellátott, látható fénysugarat kibocsátó egyutas fénysorompóval érzékeljük a tárgyakat. Az egyutas fénysorompó optoelektronikai elven működő közelítéskapcsoló, ami úgy működik, hogy az érzékelendő tárgy megszakítja a fénysugár útját, így a fényérzékelő szenzor érzékeli a változást. Az érzékelő két részből áll: egy fénykibocsátó adóból, és egy fényérzékelő vevőből. A két eszközt az adó fénysugara köti össze egymással. Kimenő jel akkor keletkezik, ha az adó és a vevő közötti érzékelési tartományban lévő fénysugarat egy tárgy megszakítja, amit a fényérzékelő érzékel, és a változásra egy megfelelő elektromos jellel válaszol a vezérlő felé. Működési elve a 3.14. ábrán látható [10].
3.14. ábra: Az egyutas fénysorompó működési ábrája Mivel nehezen hozzáférhető helyen kell az érzékelőt alkalmazni, ezért a szenzort különlegesen alakították ki. Az adó és a vevő egy házba van beépítve, és a fénysugarakat fényvezető segítségével vezetik ki a megfogó pofáiba. A szenzor jelét a DI5 porton keresztül juttatjuk el a robot vezérlőjéhez. A Robotino View 2 programban a „Digital Input 5” funkcióblokkon keresztül tudjuk kiolvasni a szenzor jelét.
3.5.
A Robotino vezérlője
A Robotino vezérlője három részegységből áll. A beágyazott számítógépből, ami egy PC 104-es processzort és 128mb memóriát tartalmaz, a Compact Flash memóriakártyából, és a WLAN képes router-ból áll. A rendszeren Linux operációs rendszer fut, ami feldolgozza a programokat, a szenzorok jeleit, és irányítja a beavatkozó egységeit. Ezen kívül a további interfészekkel van felszerelve a robot, mint például az Ethernet, VGA, USB csatlakozók. A robot tetején el van helyezve egy LCD kijelző, és egy pár gomb, aminek a segítségével információkat nézhetünk meg, és különböző beállításokat adhatunk meg a Robotino-nak [7]. 23
Mobil robotok kooperációs feladatmegoldása 3.5.1. I/O áramköri modul Az I/O áramköri modul kapcsolatot hoz létre a vezérlő és a szenzorok, beavatkozó elemek között. A csatlakozó portok között vannak digitális kimenetek és bemenetek, analóg bemenetek, +24V, és GND. Az 3.15. ábra mutatja be a portok elhelyezkedését [7].
3.15. ábra: A Robotino I/O portjai
24
Mobil robotok kooperációs feladatmegoldása
3.6.
A „Gripper” bővítő modul
A két Robotino közül az egyik fel van szerelve egy „Gripper”, magyarul megfogó bővítő modullal, amit a 3.16. ábrán lehet látni. Feladata, hogy a palettán lévő korongokat le és fel tudja pakolni. A Robotino-hoz könnyen hozzá lehet illeszteni. Mivel nem lóg ki a robotból egyetlen egy darabja sem, ezért nem szükséges további óvintézkedéseket tenni, annak érdekben, hogy ne tudjon másba beleütközni. A modul beavatkozó eleme egy szervo motor, ami a korong megfogó pofákat mozgatja. A modul, ezen kívül fel van szerelve egy egyutas fénysorompóval, amivel a megfogó pofák közötti korongokat lehet érzékelni, és egy mikrokapcsolóval, amivel a Robotino helyzetét lehet érzékelni a palettához képest. 3.6.1. A „Gripper” működése Miután a Robotino a paletta előtt megfelelő helyzetben van, ahogy a 3.16. képen látható, akkor a Robotino elkezd közeledni a paletta felé.
3.16. kép: A „Gripper” bővítő modul beszerelt állapotban A Robotino addig közeledik, amíg az ütköző felülete, annyira be nem nyomódik, hogy a mikrokapcsoló zárt állapota nyitóvá nem válik, mint ahogy a 3.17. képen látható.
25
Mobil robotok kooperációs feladatmegoldása
3.17. kép: A „Gripper” modul működés közben Ha a „Gripper” modul egyutas fénysorompója érzékel tárgyat, akkor a program utasítására a szervo motor által működtetett megfogó pofa összezár, így megfogja a korongot, ahogy a 3.18. képen látható. Ezek után a mobil robot a korongot el tudja szállítani egy másik palettára, ahol a megfelelő helyzetet elérve, a pofákat kinyitva le tudja pakolni a korongot.
3.18. kép: a „Gripper” modul működése közben
26
Mobil robotok kooperációs feladatmegoldása
3.7.
A Robotino irányítása
A mobil robotok irányítása elengedhetetlenül fontos. Az alábbi pontokban részletezzük a Robotino vezérlési módjait. 3.7.1. Vezeték nélküli kommunikáció A mobil robotokat vezeték nélküli technológiával való felszerelés növeli a mobilitást, az irányíthatóságot, a kommunikációt, és a robot monitorozási lehetőséget. A robot kettős üzemmódban, a feladattól, a körülményektől függően, akár autonóm, akár távvezérelve is működhet. A feladat során a Robotino View 2 szoftwerben megírt program vezérli a két robotot wifi kommunikáción keresztül [7]. 3.7.2. Robotino View 2 A Robotino-t a Robotino View 2-ben lehet programozni. Az előre megadott példákon keresztül könnyen megtanulható a grafikus programozási nyelve. A fejlesztői környezetben lehetőség van az előre megírt programok feltöltése a Robotino-ra, majd akár egy egér kattintással el is lehet indítani a programokat. A számítógép és a Robotino-k között wireless kapcsolatot kell létesíteni, hogy a Robotino View keresztül lehessen irányítani a robotokat [7]. 3.7.3. Egy Robotino irányítása A Robotino-nak a router-jét be lehet állítani úgy, hogy Access Pointként működjön. Ebben a módban a számítógéppel közvetlenül fel lehet kapcsolódni a robotra WLAN hálózaton keresztül. Ekkor a számítógép Client módban kapcsolódik a routerre, mint ahogy a 3.19. ábra is mutatja. Ennek a módszernek az az előnye, hogy egyszerűen létre lehet hozni a kapcsolatot, csak egy WLAN képes számítógép szükséges hozzá, és a Robotino routerjét is könnyen be lehet álltani Acces Point módra. Hátránya, hogy a számítógéppel csak egyetlen egy Robotino-t lehet irányítani [7].
3.19. ábra: A Robotino és a PC közötti kommunikáció
27
Mobil robotok kooperációs feladatmegoldása 3.7.4. Kettő vagy három Robotino irányítása A fentebb leírt módszerrel akár több Robotino-t is lehet egymástól függetlenül irányítani, csak minden egyes robothoz hozzá kell rendelni egy számítógépet. Ezzel a módszerrel minden Robotinonak akár ugyanazt az IP címet is ki lehet osztani, mert minden egyes robotnak megvan a saját maga hálózata. Ennek a módszernek az a hátránya, hogy a robotok hálózatai összeakadhatnak, ha ugyanazt a WLAN csatornát használják. Összesen 11 csatorna elérhető a WLAN hálózatban. Személyes tapasztalat alapján kettő aktív WLAN hálózati csatorna között legalább kettő-három üres csatornának kell lennie, hogy ne zavarják be egymás hálózataikat. Ezzel a módszerrel legfeljebb 3db Robotinot lehet irányítani, és minden egyes robothoz kell egy irányító számítógép, ami nem minden esetben adott. Mivel a feladatunk során egy számítógépről kell irányítanunk, ezért ez a módszer nem alkalmas [7]. 3.7.5. Egy vagy több Robotino irányítása egy PC-ről A Robotino-t és az irányító számítógépet rá lehet csatlakoztatni egy központi routerre, mint ahogyan a 3.20. ábra is mutatja. Ezt úgy lehet elérni, hogy legelőször a Robotino routerjeit Client módba kell állítani egy kapcsolón keresztül, majd be kell állítani úgy, hogy a központi routerre tudjon kapcsolódni, ezek után újra kell indítani, hogy létrejöjjön a kapcsolat. Az irányító számítógépet is fel kell csatlakoztatni a központi routerre. Ezzel a módszerrel minden egyes Robotino-nak saját IP címe lesz, amit a számítógépen levő Robotino View 2 programban be kell állítani. Ennek a módszernek az az előnye, hogy bármennyi Robotino-t lehet egyszerre irányítani, hátránya, hogy a programozásnál különkülön be kell állítani minden egyes robotnak az IP címét [7].
3.20. ábra: Egy vagy több Robotino irányítása PC-ről 28
Mobil robotok kooperációs feladatmegoldása
4. A Robotino navigációs rendszerei A mobil robotok számára elengedhetetlen a navigáció. Ebben a részben bemutatjuk a rendelkezésünkre álló navigációs rendszereket a Robotino számára.
4.1.
Vonalkövetés
A legegyszerűbben úgy tudunk egy robotot a kijelölt helyre navigálni, ha magát a robotot végig irányítjuk egy vonalon. Egyszerűsége miatt gyakran alkalmazzák az iparban, és az oktatásban. A vonalkövetés megvalósításához három feladatot kell teljesíteni. Legelőször meg kell oldani a vonal érzékelését, majd ki kell választani az aktuátorokat, és meg kell alkotni a szabályzást, hogy végigvezesse a robotot a vonalon [13]. 4.1.1. Induktív vonalkövetés Útmutató vonalként használható egy fémszalag, amit induktív szenzorokkal lehet érzékelni. Kettő darab analóg induktív szenzort kell egymás mellé elhelyezni. Ha a robot követi a fémszalagot, akkor egyforma értékeket adnak vissza a szenzorok. Ha a robot letér a pályáról, akkor az egyik szenzor nagyobb értéket ad vissza, mint a másik, ekkor a vonalkövető szabályzás befolyásolja a robot meghajtó rendszerét, úgy, hogy visszatérítse a robotot a vonalra. Ez a típusú vonalkövetés megbízható, mert a külső környezet kevésbé zavarja az érzékelést, legfeljebb más fémes tárgy tudja zavarni a vonalkövetést. Mivel csak egy darab induktív szenzor áll rendelkezésünkre, ezért más módszert alkalmaztunk a vonalkövetéshez. 4.1.2. Optikai vonalkövetés A legelterjedtebb vonalkövetési rendszer. Vonalként általában színes, a környezettől könnyen
megkülönböztethető,
kontrasztos
ragasztószalagokat
szoktak
használni.
Érzékelőként lehet használni fotódiódákat, fototranzisztorokat, fényellenállást, fotódiódát, diszkrét fototranzisztort, reflexiós infravörös érzékelőket, és kamerát. Az előbb felsorolt szenzorok közül csak a kamera áll rendelkezésünkre, ezért a kamerás vonalkövetést alkalmazzuk a feladatmegoldás során. A megvalósítását egy későbbi pontban fogjuk részletezni. [13].
4.2.
Kerékelforduláson alapuló navigálás
A beltéri navigációra alacsony ára és megbízható felépítése miatt szinte a leggyakrabban alkalmazott szenzor a kerekek elfordulását érzékelő általában optikai jeladó. A robot ismert mechanikai felépítését figyelembe véve és a kerekek elfordulását mérve a robot
29
Mobil robotok kooperációs feladatmegoldása elmozdulás irányvektora kiszámítható. A kerékelfordulásból számított pozíció csak ideális esetben ad pontos értéket. Mivel a valóságban a kerekek gyorsításnál és lassításnál megcsúsznak. A módszer ebben a formában csak sík terepen ad megfelelően számított értékeket, így például egy beltéri navigációként megfelelő, de nem alkalmazható kültéri használatra. A számítás idő szerint integráló jellegéből adódóan viszonylag kis arányú hiba a mérési idő növelésével felhalmozódik, így a mérési módszert mindenképpen ki kell egészíteni valamilyen abszolút helymeghatározási eljárással. A RobotinoView 2 programban az inkrementális enkóder értékeit kiolvashatjuk az „Encoder input” funkcióblokkot használva, ami visszaadja az aktuális motor sebességet, és az aktuális kerék pozíciót [14].
4.1. ábra: Az „Encoder” funkcióblokk Mivel az „Encoder” funkció blokk csak a kerék helyzetét tudja vissza adni, a robot helyzetét nem tudja, ezért erre van egy speciális funkcióblokk, aminek a neve „Odometry”. Ez a blokk vissza tudja adni a robot kezdőponttól való helyzetét x-y koordináta rendszerben, amint a 4.2. ábra is mutatja.
4.2. ábra: Az „Odometry” funkció blokk működése
30
Mobil robotok kooperációs feladatmegoldása
4.3.
Northstar beltéri navigáció
A Northstar beltéri navigáció, egy olyan helymeghatározó rendszer, ami infravörös fénypontokat használ a tájékozódáshoz. A kifinomult infravörös szenzor a háromszögelés módszernek a segítségével a rendszer meg tudja határozni a saját helyzetét, és az orientációját a kettő darab infravörös fényponttól. A Northstar rendszer egy infravörös projektorból, és egy infravörös érzékelőből áll. A rendszert navigálásra, vagy nyomon követésre is lehet használni. A Robotino alkalmazása során a rendszert a robotok navigálására használjuk [15]. 4.3.1. Northstar szenzor A szenzor egy hely, és irány meghatározó érzékelő, amit olyan rendszerekbe integrálnak bele, ahol szükséges a beltéri navigálás. A modul egy infravörös érzékelőből áll, ami képes érzékelni az infravörös fénypontokat, és egy hozzáillesztett mikroprocesszorból, ami ellátja a jelfeldolgozást, a koordinációk kiszámítását, és a kommunikációt. A szenzor a Robotinohoz usb kábellel csatlakozik. A navigációs vevőegységet a 4.3. képen látható [15].
4.3. kép: A Northstar navigációs szenzor
31
Mobil robotok kooperációs feladatmegoldása 4.3.2. Northstar projektor A Norhtstar projektor infravörös fénypontokat vetít ki a plafonra, ami alapján a Northstar szenzor képes tájékozódni. Mivel a kivetített infravörös pontokat szabad szemmel nem lehet látni, ezért a projektoron van egy kapacitív kapcsoló, amihez hozzányúlva a projektor kettő ideiglenes piros fénypontot vetít ki, mint a 4.4. képen látható, aminek a segítségével könnyen be lehet állítani az infravörös fénypontok helyzetét [15].
4.4. ábra: A kivetített infravörös pontok helyzete a plafonon A kivetített fénypontok elhelyezkedése relatív, amihez képest a szenzor meg tudja határozni a helyzetét és az irányát. A projektort a 4.5. képen lehet látni.
4.5. kép: A Northstar navigációs rendszer projektora Egyszerre kettő, vagy akár több projektor is működhet egy időben egy rendszeren belül, mert a projektorokban be lehet állítani, hogy milyen frekvenciával vetítse ki a pontokat [15].
32
Mobil robotok kooperációs feladatmegoldása 4.3.3. Northstar navigációs rendszer működése Amikor a rendszer navigálásra van konfigurálva, akkor a szenzor a plafonra kivetített kettő infravörös pontok helyzetét méri. Ezek után a feldolgozó egység minden egyes érzékelt fénypontot elhelyezi egy belső koordináta rendszerben, amit szenzor koordináta rendszernek hívnak. Ezt követően az érzékelt pontoknak a pozícióját, és az előre kalibrált értékek alapján a háromszögeléses módszerrel kiszámítja a saját helyzetét a pontok által meghatározott külső koordinátarendszerben. A számításokat az alapján végzi, hogy a mobil rendszer a mozgási síkja, és a kivetített pontok síkja egymással párhuzamos, amint a 4.6. képen is látható [15].
4.6. ábra: A Northstar navigációs rendszer működése A két koordináta rendszernek matematikailag összefüggőnek kell lennie, hogy használható legyen a navigációs rendszer, amit kalibrálással érünk el. A mobil rendszer pozíciója relatív a fénypontokhoz. A külső, és a szenzor koordináta rendszer közötti kapcsolat mindaddig megmarad, amíg újra nem kalibráljuk a rendszert [15]. 33
Mobil robotok kooperációs feladatmegoldása 4.3.4. Northstar navigáció alkalmazása A szenzor modult könnyen fel lehet szerelni a Robotino-ra, ahogy a 4.7. ábrán látható, így pont a robot középpontjára lehet felszerelni. A szenzor USB kábelen keresztül csatlakozik a fedélzeti számítógéphez.
4.7. ábra: A Northstar szenzor felszerelése A Robotino View 2 programban van egy speciális funkció blokk, aminek a segítségével lehet kalibrálni a rendszert, össze lehet hangolni a projektor frekvenciájával, és vissza adja a robot koordinátáit, orientációját, amit később fel lehet használni a feladat megoldásához [15].
4.8. ábra: A „Northstar” funkcióblokk
34
Mobil robotok kooperációs feladatmegoldása
5. Kooperációs feladatmegoldás A feladat megoldása során, egy központi számítógép vezérli wifi hálózaton keresztül a két mobil robotot a Robotino View 2 nevű szoftwerben megírt programmal. Mindkét Robotino fel van szerelve az alap felszereléssel, a Northstar navigációs rendszerrel, és ezen felül mindkét robothoz tartozik egy-egy plusz modul, aminek a segítségével speciális feladatokat tudnak ellátni.
5.1.
Kooperativitás fogalma
Mobil robotok csoportosan, multiágens rendszerekként, rajintelligenciaszerűen is képesek feladatokat
megoldani.
Együttműködésüket
ma
még
előre
meghatározott
előprogramozással oldják meg, de a mesterséges intelligencia fejlődésével később akár a robotoknak saját maguknak kell megtervezniük és eldönteniük, miként alkalmazzák saját és társaik adottságait. A feladat megoldása során a robotok egymással kooperatívan oldják meg előre meghatározott szekvenciális programmal.
5.2.
A feladat ismertetése
A feladat, amit a két mobil robotnak meg kell oldania, egy katasztrófa helyzet szimuláció. A feladat célja, hogy a katasztrófa területről egy veszélyeztetett tárgyat el kell szállítani, ami egy tartó elemen található. A cél elérésének érdekében először a robotoknak el kell jutni a helyszínre, majd meg kell tisztítani a területet, végezetül a veszélyeztetett tárgyat el kell távolítani a helyszínről. A feladat teljesítésére két robot áll rendelkezésre, mind a kettő más-más felszereléssel rendelkezik, így különböző részfeladatokra alkalmasak. A cél érdekében a robotoknak össze kell dolgozniuk, mert egyedül nem alkalmasak a feladat teljesítéséhez.
5.3.
A feladat modellezése
A feladatot a következőképpen modelleztük, amit az 5.1. ábrán mutatjuk be. A katasztrófa helyet egy sárga színű ragasztószalaggal határoltuk el. Ehhez a területhez egy jól látható fekete szigetelőszalaggal kijelölt útvonalat jelöltünk ki, ami segíti a mobil robotokat a katasztrófa területhez való navigálásban. Ezen kívül, még ki van jelölve egy piros, és fém szalaggal kijelölt terület, ahova az eltakarított tárgyakat el tudja helyezni a robot.
35
Mobil robotok kooperációs feladatmegoldása
5.1. ábra: A terület vázlata A katasztrófa területen belül kék korongok, és egy paletta található. A kék korongok az eltakarítandó tárgyakat jelölik, amik a katasztrófa területen belül bármilyen helyzetben, és mennyiségben előfordulhat. Az egyik robotnak az lesz a feladata, hogy ezeket a korongokat összegyűjtse a kijelölt gyűjtő helyre. A katasztrófa területen belül található egy paletta, amin az elszállítandó zöld színű korong, és a navigálást segítő piros korongok helyezkednek el, amint az 5.2. képen látható. A zöld színű korongot, csak a „Gripper” modullal felszerelt Robotino tudja elszállítani.
5.2. kép: A paletta 36
Mobil robotok kooperációs feladatmegoldása
5.4.
A feladat felosztása részfeladatokra
A cél érdekében a feladatot felosztottuk részfeladatokra, majd felállítottunk egy sorrendet közöttük, aminek az eredménye az 5.3. ábrán látható. A feladatot a „Helyszín megközelítése”, „Kék színű korongok eltakarítása”, „Zöld színű korong elszállítása”, és a „Vissza a kezdőpontra” részfeladatokra tudtuk felosztani. Mindegyik résznek megvan a saját feladata. A későbbi pontokban ismertetni fogjuk a részfeladatok megoldásait, eredményeit.
5.3. ábra: A feladat egyszerű folyamatábrája
5.5.
A részfeladatok felosztása a robotok között
A feladat megoldásához a feladatot fel kell osztani a robotok között. Bizonyos feladatokat közösen kell megoldaniuk, mint a helyszín megközelítése, és a kezdőpontra visszatérés. A többi részfeladatot a robotok között fel kell osztani, aszerint, hogy melyik robot alkalmas a részfeladatra. A robotok speciális képességeit, és a programjuk működését az alábbi pontokban fejtjük ki.
37
Mobil robotok kooperációs feladatmegoldása 5.5.1. „Felderítő”, robot A robot feladata, hogy egy kihelyezett vonalat követve eljusson a munkatérhez, majd azon belül összeszedje a kék színű kupakokat, ezáltal megtisztítja a területet a további műveletekhez, Ezek után meg kell keresnie a munkatérben elhelyezett palettát, és a Northstar navigációs rendszer segítségével be kell mérnie a helyzetét. Végezetül a vonalat követve el kell hagynia a munkaterületet. A felderítő robot programját a leírt feladatok alapján készítettük el, aminek a folyamatábráját az 5.4. ábra mutatja be. A későbbi pontokban részletesebben leírjuk az egyes részfeladatok működését.
5.4. ábra: A „Felderítő” robot programjának a folyamatábrája A robot fel van szerelve az alapfelszereléssel, A Northstar navigációval, egy villával, és egy induktív szenzorral, ahogy az 5.5. képen látható.
38
Mobil robotok kooperációs feladatmegoldása
5.5. ábra: A Felderítő, és takarító robot A kamera úgy van beállítva, hogy az egész munkaterületet képes legyen belátni, így fel tudja fedezni a kék kupakokat, amiket össze kell gyűjtenie, és a palettát is meg tudja keresni. A robot elején elhelyezett villa, és az infravörös távolságmérő segítségével a kamera által megtalált kék kupakokat össze tudja gyűjteni, és el tudja szállítani a kihelyezett lerakóba. A gyűjtőhelyen egy fémszalaggal van megjelölve a megfelelő pozíció, amit átlépve a robot biztonságosan elhelyezte a korongot. Ezt a helyzetet az induktív szenzorral tudjuk érzékelni.
39
Mobil robotok kooperációs feladatmegoldása 5.5.2. „Pakoló” robot A „Pakoló” robotnak az a feladata, hogy megközelítse a munkaterületet, majd a „Felderítő” robottól kapott információk alapján a Northstar navigáció segítségével megtalálja a palettát, felvegye a zöld színű kupakot, és hagyja el a munkateret a vonal segítségével. A robot programját a leírt feladatok alapján írtuk meg, aminek a folyamatábráját a 5.6. ábra mutatja be. A későbbi pontokban részletesebben leírjuk az egyes részfeladatok működését.
5.6. ábra: A pakoló robot programjának a folyamatábrája Ez a robot fel van szerelve az alapfelszereléssel, a Northstar navigációs rendszerrel, és a „Gripper” nevezetű modullal, amit az 5.7. képen látható.
40
Mobil robotok kooperációs feladatmegoldása
5.7. kép: A pakoló robot A robot a „Gripper” modul segítségével tudja felszedni a palettáról a korongot. A kamera úgy van elhelyezve a roboton, hogy az csak az előtte levő teret, és a „Gripper” modult képes látni, amint az 5.8. képen látható. A kamera segítségével tudja a robot önmagát pozícionálni, hogy sikeresen felvegye a korongot a palettáról.
5.8. kép: A pakoló robot kameraképe 41
Mobil robotok kooperációs feladatmegoldása
5.6.
A részfeladatok megoldásának bemutatása
Az alábbi pontokban ismertetjük a részfeladatok feladatait, megoldásait, és eredményeit. 5.6.1. A munkatér megközelítése részfeladat megoldása Legelőször a robotokat el kell navigálni a munkaterületre. A helyszínhez vezető utat egy leragasztott fekete színű ragasztószalag mutatja. A robotoknak ezt a vonal kell követniük. A vonal optikailag jól elhatárolható a környezetétől, ezért optikai vonalkövetést kell alkalmazni. Mindkettő Robotino fel van szerelve kamerával, amit lehet szenzorként alkalmazni a vonalkövetéshez. A feladat végrehajtásához kamera képen alapuló vonalkövetést hoztunk létre, aminek a működését az alábbiakban részletesen kifejtünk. Kamerás vonalkövetés létrejöttéhez a következőek a feltételek. Legelőször is a kamerát úgy kell elhelyezni a roboton, hogy láthassa a kijelölt nyomvonalat. Ezt követően a kamera képét fel kell dolgozni egy vonalkereső algoritmussal, majd a képen kijelölt területen meg kell tudni határozni a vonal közepének a koordinátáját. Ezek után fel kell építeni egy szabályozó rendszert, ami a kamera képből feldolgozott adatokat felhasználva képes legyen a beavatkozó elemeket úgy irányítani, hogy a robotot tartsa a vonalon. A vonalkövetést a Robotino View 2-ben oldottuk meg, aminek a működését az alábbiakban mutatjuk be. A kamera a Robotino elejére van felszerelve, úgy hogy láthassa a követni kívánt felragasztott fekete szigetelő szalagot. ahogy az 5.9. képen lehet látni.
5.9. ábra: A Robotino kameraképe 42
Mobil robotok kooperációs feladatmegoldása A kapott képet fel kell dolgozni egy vonalkereső algoritmussal, ami megtalálja a képen a vonalakat. A Robotino View 2 programban van egy úgynevezett „Line detector” funkció blokk, amibe a vonalkereső algoritmus bele van építve. Az algoritmus érzékenységét a feladathoz, a környezethez, és az egyéb zavaró tényezőkhöz képest be kell állítani. Egy nagyobb érzékenység miatt akár zavaros képet is kaphatunk, mint például az 5.10. ábrán. Ilyen érzékenység mellet, a vonalkövetés próbálgatása során nem egyszer valamilyen zavar félrevezette a robotot, és ezért letért a nyomvonalról.
5.10. kép: A nagy érzékenységű vonalkereső algoritmus képe A hibás működés elkerülése érdekében az algoritmus érzékenységét kisebbre állítottuk, aminek az eredményeként az 5.11. ábrán látható képet kaptuk. Ez a kép már alkalmas a vonal követésére, kevésbé érzékeny a zavarokra, és határozottabban látható a követni kívánt vonal.
43
Mobil robotok kooperációs feladatmegoldása
5.11. kép: A kis érzékenységű vonalkövető algoritmus képe A „Line detector” funkcióblokkban meg lehet határozni egy olyan sávot, amit az 5.11. képen látható kettő darab piros vonal határol, amin belül visszaadja az érzékelt vonal közepének a koordinátáját, amit az 5.11. képen a piros kereszt mutatja. Ez az érték lesz a visszacsatolás a vonalkövető szabályozás részére. A vonalkövetés szabályozását funkcióblokkokból építettük fel a Robotino View 2-ben, ahogy az 5.12. ábra mutatja. Alapjelként a kamerakép szélességének a fele van megadva pixel mértékegységben, ami a Robotino-hoz szerelt kamera esetében 160 pixel. A negatív visszacsatolást a „Line Detector” funkcióblokk képezi, ami az érzékelt vonalnak a képen lévő x koordinátáját adja meg. Az alapjel értékéből kivonjuk az érzékelő értékét, és az eredmény a rendelkező jel, aminek az értékét át kell alakítani a feladatra megfelelően beállított „Transfer function” blokkal, hogy megkapjuk a végrehajtó jelet. A gyakorlatban előfordulhat olyan eset, hogy a kameraképen beállított sávban a „Line Detector” funkció blokk nem érzékel jelet, ebben az esetben a 0 értéket adja vissza, ami megzavarhatja a szabályzó működését, és a robotnak azt az utasítást adja, hogy balra pörögjön. Ezt a következőképpen oldottuk meg. A „Line Detector” kimeneti jelnek vissza tudja adni, hogy 44
Mobil robotok kooperációs feladatmegoldása az érzékelési sávban érzékelt-e vonalat. Ha érzékelt, akkor 1-es értéket, ha nem érzékelt, akkor 0-ás értéket ad vissza. Ezt az értéket megszorozzuk a végrehajtó jellel, így kiküszöböltük a hibás működést. A végrehajtó jelet az „Omnidrive” funkció blokk fogja átformálni a beavatkozó szerveket működtető beavatkozó jellé, ami az esetünkben a robot három darab meghajtó egységét működtető jel. Végeredményként egy P típusú szabályzó rendszert hoztunk létre, ami képes követni a vonalat. Működés közben a „Vonalkövetés” nevezetű videóban lehet megnézni.
5.12. ábra: A vonalkövetés szabályozása
45
Mobil robotok kooperációs feladatmegoldása 5.6.2. A kék korongok eltávolítása részfeladat megoldása Miután mindkettő robot megközelítette a munkateret, a területen össze kell gyűjteni a kék színű korongokat az előre meghatározott gyűjtőhelyre. Erre a feladatra a „Felderítő” robot alkalmas, mert az elején lévő villa segítségével a korongokat el tudja tolni. A munkaterületen belül bárhol, és bármilyen mennyiségben fordulhatnak elő a kék színű kupakok, ezért egy olyan programot kellet létrehoznunk, ami képes összegyűjteni mindet. Legelőször a vonal végén lévő bázis pontra áll a Northstar navigációs rendszer segítségével, mert abból a pontból a kamerával belátható a munkaterület. Ezek után a robot 70 fokkal jobbra fordul, majd lassan elkezd ballra fordulni, miközben a kamerával vizsgálja, hogy látható-e kék színű korong, mint az 5.13. ábrán.
5.13. kép: A robot kameraképe, és a feldolgozott kép Ha talál, akkor a kamera segítségével a robot pontosan a kék színű korong irányába állítja magát, majd elindul felé. A robot útját az 5.14. ábra mutatja meg. A korong távolságát az infravörös távolságmérővel tudja megállapítani a robot. Miután a korong elég közel van, hogy biztosan meg lehessen állapítani, hogy a villa között van, akkor a robot megfordul, és elindul a bázispontra. A gyűjtőhely helyzete meg van adva a bázisponthoz képest, ezért a kerékelforduláson alapuló navigációt használtuk, hogy a robot eljuttassa a kék korongot a gyűjtő helyre, majd végezetül visszatér a bázispontra, és elölről kezdi a folyamatot. Ezt a részfeladatot addig végzi a robot, amíg el nem takarítja az összes kék korongot.
46
Mobil robotok kooperációs feladatmegoldása
5.14. ábra: A robot útja a részfeladat során A programot a Robotino View 2-ben írtuk meg, aminek a folyamatábrája az 5.15. ábrán látható. A részfeladatot a robot sikeresen elvégzi. Az eredményt a mellékelt DVD-n a „Kék korongok eltakarítása” nevezetű videón lehet megtekinteni.
5.15. ábra: A Kék korongok összegyűjtésére alkalmazott program folyamatábrája
47
Mobil robotok kooperációs feladatmegoldása 5.6.3. A zöld színű korong elszállítása Miután a munkaterület meg lett tisztítva a kék korongoktól, ezután megkezdődhet a zöld színű korong elszállítása, ami a palettán van. A paletta a munkaterületen belül bárhol elhelyezkedhet, azzal a feltétellel, hogy a paletta elülső része, ahonnan le lehet venni a zöld korongot, az a bázispontról nézve látható legyen. Mivel a paletta bárhol lehet, ezért a robotoknak először meg kell találniuk, majd el kell szállítaniuk a rajta lévő zöld korongot. A robotok egy-egy speciális feladatot képesek ellátni, ezért kooperatív munkával tudják elérni a kívánt célt. A feladatot felosztottuk két kisebb részfeladatra. Az egyik a paletta pozíciójának bemérése, a másik a zöld korong elszállítása. 5.6.3.1.
A paletta pozíciójának bemérése
Legelőször meg kell határozni a paletta pozícióját, hogy teljesítsék a feladatot. Mivel a „Pakoló” robot alkalmatlan a paletta megkeresésére a kamera elhelyezése miatt. A „Felderítő” robot feladata lesz a részfeladat teljesítése. Mivel a „Felderítő” robot alkalmatlan a zöld korong elszállítására, ezért a „Pakoló” robot feladata lesz a szállítás. A részfeladat célja, hogy a „Felderítő” robot bemérje a paletta pozícióját a Northstar navigáció segítségével, aminek a megoldását az alábbiakban ismertetjük. A „Felderítő” robot a bázispontra pozícionálja magát a Northstar navigáció segítségével. Ezek után elfordul jobbra 70 fokkal, hogy a munkatér jobb oldalát láthassa, majd lassan elkezd ballra fordulni. Abban az esetben, ha a munkatérben nem látja a piros korongokkal jelzett palettát, akkor a robotok visszatérnek az kezdőpontjukra. Ha a kamera képen érzékeli a robot a piros korongokat, mint ahogy az 5.16. képen, akkor elkezd közeledni feléjük.
5.16. kép: A „Felderítő” robot kameraképe 48
Mobil robotok kooperációs feladatmegoldása A paletta pozícióját úgy kell megadni a „Pakoló” robot számára, hogy az fel tudja venni a korongot róla. Úgy kell megadni a pozíciót, hogy a robot pont a zöld korong előtt álljon és a „Gripper” modul ütköző felülete párhuzamos legyen a paletta elülső oldalával. Ehhez a pozícióhoz a „Felderítő” robotot el kell juttatni a bázispontból, a kettő darab piros színű korong navigációs pontok segítségével. A paletta megközelítése során a robot mozgásának a megadását három tényező befolyásolja, amik a következők: a robot X és Y irányú mozgása, és a robot központi tengelye körüli forgása, ahogyan az 5.17. ábra mutatja.
5.17. ábra: A Robotino mozgásai A paletta megközelítésekor, az X irányú mozgás komponensnek egy konstans értéket adtunk meg. Amikor az infravörös távolságmérővel elég közelnek érzékeljük a palettát, akkor az X irányú mozgásnak 0 értéket adunk, így a robot a palettától a megfelelő távolságban áll meg. Ha a Robotino mozgásának csak az X irányú komponensét adjuk meg, akkor nem biztos, hogy a robot a paletta felé közelít. A cél érdekében létrehoztunk egy szabályzást, ami a robot tengelye köri forgását úgy vezérli, hogy a Robotino-t a paletta felé irányítja. A szabályzást a Robotino view 2 programban írtuk meg funkció blokkokból, ahogyan az 5.18. ábra mutatja. A szabályzást a következőképpen működik. Alapjelként a kamerakép szélességének a fele van megadva pixel mértékegységben, ami az esetünkben 160 pixel. Negatív visszacsatolásként a kamera által látott kettő darab piros korongoknak az X irányú koordinátáinak a számtani közepét használjuk fel. Miután az alapjel értékéből kivonjuk a negatív visszacsatolás értékét, akkor megkapjuk a rendelkező jelet, amit a feladathoz
49
Mobil robotok kooperációs feladatmegoldása beállított „Transfer function” funkció blokk átalakítja a végrehajtó jellé. Ezt a jelet az „Omnidrive” funkció blokk fogja átformálni a meghajtó egységeket vezérlő beavatkozó jellé. Végeredményként egy P típusú szabályzó rendszert hoztunk létre, ami úgy vezérli, hogy mindig a kettő darab piros korong közé forgatja a robotot.
5.18. ábra: A robot forgását vezérlő szabályzó Ha a Robotino mozgásának megadjuk az X irányú, és forgási komponensét, akkor a paletta felé közelít, de nem biztos, hogy a megfelelő pozícióban lesz, mert a paletta elülső oldalának a síkja, és a Robotino X iránya nem lesz derékszögű. Ezt úgy küszöböltük ki, hogy a robot Y irányú mozgására alkottunk egy szabályzást. A szabályzás a következőeken alapul. Ha a robot a palettához képest jobbra helyezkedik el, akkor a kamerával az 5.19. képet látjuk. Ahhoz, hogy a robot a palettát szemből lássa, ezért ballra kell mozognia. Onnan tudja megállapítani a robot, hogy szemből nézi-e a palettát, ha a kamerán érzékelt piros korongok Y irányú koordinátái ugyan akkorák. Ha a robot a palettától jobbra áll, akkor ugyan úgy kell mozognia, csak a másik irányba.
5.19. ábra: A robot kamerájának képe
50
Mobil robotok kooperációs feladatmegoldása A szabályzást a Robotino View 2-ben az 5.20. ábra mutatja. A szabályzást egy összehasonlítás alapján végzi el a robot. A bal oldali piros korong Y komponensű koordinátából kivonjuk a jobb oldali piros korong Y komponensű koordinátáját, aminek az eredménye a rendelkező jel. Ezt a jelet a „Transfer function” nevezetű funkció blokkal átalakítjuk a feladathoz megfelelő végrehajtó jellé, amit az „Omnidrive” funkció blokk átalakítja a beavatkozó szerveket működtető végrehajtó jellé.
5.20. ábra: A robot Y irányú mozgását vezérlő szabályozás Ha a robot X, Y irányú mozgását, és tengelye körüli forgását a fentebb leírt szabályozókkal vezéreljük, akkor a Robotino pont a megfelelő helyzetbe kerül a palettához képest. A tesztelés során a palettát többféle helyzetbe is átraktuk a munkaterületen belül. A teszteken a robot mindig sikeresen megtalálta a palettát. A tesztelésekről videó is készült, ami a mellékelt DVD-n lévő „Paletta bemérése” című videóban lehet megtekinteni. Miután a „Felderítő” robot megközelítette a palettát, a Northstar navigációs rendszerrel beméri a helyzetét, és a kapott adatokat elküldi az irányító számítógéphez. Végezetül a Robotino-nak el kell hagynia a munkaterületet. Ha a robot visszatérne a bázispontra, akkor akadályozná a „Pakoló” robotot a terület megközelítésében, ezért meg kell kerülnie a robotot, és úgy kell visszatérnie a vonalra. Ezt úgy oldottuk meg, hogyha a robot pozíciója a bázisponthoz képest felette helyezkedik el, akkor a másik robotot jobb oldalról kerüli meg, ahogy a 5.21. ábrán lévó 1. útvonal mutatja. Ha a robot pozíciója a bázispont alatt van, akkor a másik robotot ballról kerüli meg, ahogy az 5.21. ábrán a 2. útvonal mutatja.
51
Mobil robotok kooperációs feladatmegoldása
5.21. ábra: A robot útja a részfeladat során A részfeladat programját megírtuk a Robotino View 2-ben, aminek a folyamatábráját az 5.22. ábra mutatja be.
5.22. ábra: A paletta megkeresése részfeladat folyamatábrája
52
Mobil robotok kooperációs feladatmegoldása 5.6.3.2.
A zöld korong elszállítása
A „Pakoló” robotnak az lesz a feladata, hogy a palettáról levegye a zöld korongot. Mivel az előző részfeladatban a „Felderítő” robot bemérte a paletta helyzetét, a „Pakoló” robotnak csak meg kell közelíteni a megadott koordinátákat a Northstar navigációs rendszer segítségével. Mivel a navigációs rendszernek körülbelül 3-4 cm-es hibája van a koordináták meghatározásában, ezért a robot a kameráját használja a pontosabb pozícionálás érdekében. Miután a robot a megfelelő helyzetben van, akkor megkezdődhet a zöld korong megfogása. A robot addig fog a paletta irányába mozogni, amíg a „Gripper” modulon lévő mikrokapcsoló nem jelzi a megfelelő helyzetet. Ha az egyutas fénysorompó jelzi, ha egy tárgy a megfogó pofák között van, és a kamera is érzékeli a megfelelő helyen lévő zöld színt, akkor a robot vezérlője kiadja az utasítást, hogy a szervomotor húzza össze a megfogó pofákat, ezáltal megfogja a zöld színű korongot. Ezek után a robot visszatér a bázispontra a zöld koronggal együtt. A részfeladat során a robot mozgásait az 5.23. ábra mutatja be.
5.23. ábra: A „Pakoló” robot mozgásai a részfeladat megoldása során
53
Mobil robotok kooperációs feladatmegoldása A részfeladat programjának a folyamatábrája a folyamatábrája az 5.24. ábrán látható.
5.24. ábra: A zöld korong elszállítása részfeladat folyamatábrája A részfolyamat teszteléséről felvétel készült, ami a mellékelt DVD-n „A zöld korong elszállítása” című videóban lehet megtekinteni. 5.6.4. Visszatérés a kezdőpontra Miután a „Pakoló” robot teljesítette a feladatát, és visszatér a bázispontra, akkor mindkettő robot rajta lesz a fekete vonalon. A fentebb leírt vonalkövetési módszert használva a robotok visszatérnek a kiindulási pontjukhoz.
5.7.
A kooperációs feladatmegoldás eredménye
A robotokat vezérlő programot a fentebb leírt működés szerint a Robotino View 2 fejlesztői
környezetben
sorrendi
folyamatábra
(SFC),
és
Funkcióblokk
(FBD)
programozási nyelven írtuk meg. A mellékelt DVD-n a program megtalálható. A működést többször is leteszteltük, aminek az eredményeként a robotok mindig sikeresen végezték el a feladatot. A DVD mellékleten lévő „Kooperációs feladatmegoldás” nevezetű videóban meg lehet tekinteni a robotokat a feladatelvégzése közben.
54
Mobil robotok kooperációs feladatmegoldása
6. Összefoglalás A diplomamunka célja, hogy létrehozzunk egy olyan programot, amely kettő mobil robotot úgy irányít egy közös cél elérése érdekében, hogy kooperatívan el tudjanak végezni egy feladatot. Legelőször ismertettük a robotokat, majd részletesebben bemutattuk a mobil robotok működését, beavatkozó rendszereit, irányítását, navigációját, alkalmazásait. Ezt követően bemutattuk a Festo cég által gyártott Robotino mobil robotot, és részleteztük a beavatkozó elemeit, érzékelőit, vezérlőjét, és a „Gripper” nevezetű bővítő modult. A lehetséges vezérlési módokat megvizsgáltuk előnyük, hátrányuk alapján, és alkalmaztuk a legalkalmasabb megoldást a feladat számára. Ezután tanulmányoztuk, és teszteltük a rendelkezésünkre álló navigációs rendszereket, majd felhasználtuk a feladat megoldása során. Bemutattuk a megoldandó feladatot, és megoldást terveztünk a végrehajtásához. Ismertettük a felhasznált mobil robotok közötti különbséget, és meghatároztuk a közösen megoldandó feladat során mindkettő robot szerepét. A feladat megoldása során az alábbi funkciókat alkottuk meg, mint a vonalkövetés, színfelismerés, beltéri navigáció, kameraképen érzékelt viszonyítási pontokon alapuló navigáció, kommunikáció, szenzorok jeleinek a feldolgozása, és a beavatkozó elemek vezérlése. A robotokat vezérlő programot megalkottuk a Robotino View 2 fejlesztői szoftverben sorrendi folyamatábra (SFC), és funkcióblokk programozási nyelveken. A működésre több tesztet is elvégeztünk, aminek az eredményeképpen a mobil robotok sikeresen teljesítették a feladatukat. Összegzésképpen elmondható, hogy sikerült egy olyan programot megalkotni, amivel kettő mobil robotot úgy irányíthatunk, hogy kooperatívan oldjanak meg egy komplex feladatot. A rendszer továbbfejleszthető olyan irányban, hogy a mobil robotok külső vezérlés nélkül, autonóm
tudják
megoldani
a
megadott
feladatot.
Bizonyos
programrészleteket
hatékonyabbá lehetne változtatni, ezáltal csökkenne a feladatmegoldásra szükséges idő.
55
Mobil robotok kooperációs feladatmegoldása
7. Summary The objective of the thesis is to create a program, which can control two mobile robots at the same time, to cooperatively carry out a task. In order to achive the objective, first we described the mobile robots design, control, navigation, and usage. After we introduced the Robotino, produced by the Festo company, then we detailed the robot’s sensors, controller unit, actuators, and the „Gripper” expansion module. We examined the possible controlling modes, by it’s advanteges, and disadvanteges, then we used the most suitable solution for the task. Afterward we tested the available navigation systems, and used them for completing the task. The following we introduced the solvable task, and we designed a solution for it. We described the difference between the two robots, and we determined the roles of them during the task solution. We made functions for the linefollowing, color recognition, indoor navigation, and a navigation based on points of reference sensing by the camera. We created the controlling program in the Robotino View 2 developer softwer, by using Sequential function chart (SFC), and Function block diagram (FBD) programming languages. We tested the operations of the robots, and the result of the tests were successfull. In conclusion, we can say that we succeeded to create a program to control two mobile robots to cooperatively solve a complex task. The robots can be improved to an autonom mobile system, so they do not need external control anymore. Some of the program part can be changed to be more effective, so the required time for the task would be shorter.
56
Mobil robotok kooperációs feladatmegoldása
Irodalomjegyzék [1] http://oszkdk.oszk.hu/storage/00/00/60/46/dd/1/Kulcsar_Robottechnika_1.pdf [2] http://hu.wikipedia.org/wiki/Robot [3] http://hu.wikipedia.org/wiki/A_robotika_h%C3%A1rom_t%C3%B6rv%C3%A9nye [4] http://www.nhit-it3.hu/__ujsite2/images/tagandpublish/Files/it3-2-2-4-u.pdf [5] http://www.robotshop.com/blog/en/what-types-of-mobile-robots-are-there-3652 [6] http://www.doc.ic.ac.uk/~nd/surprise_97/journal/vol4/jmd/ [7] http://www.robotshop.com/media/files/pdf/festo-robotino-manual-en.pdf [8] http://www.kekvilag.hu/robotino/images/Festo_Robocup_0418.pdf [9] http://mialmanach.mit.bme.hu/fogalomtar/holonomikus_robot [10] http://www.kekvilag.hu/didactic/letoltes/oktatas/Szenzorika_jegyzet.pdf [11] http://szirty.uw.hu/Alapfokon/Encoder/encoder.html [12] http://hobbirobot.hu/content/akadaly-kikerulo-robot-20-robotika-kezdoknek [13] http://robonaut.aut.bme.hu/sites/default/files/autonom-robot-vonalkovetese.pdf [14] http://hadmernok.hu/kulonszamok/robothadviseles7/kucsera_rw7.pdf [15] Festo Robotino Northstar 2 sensor manual Linkek utoljára ellenőrizve: 2014. 05. 06.
57