NI LABVIEW ROBOTICS STARTER KIT VEZÉRLÉSE KÉZMOZGÁS ALAPJÁN HUSI Géza, tanszékvezető főiskolai docens Debreceni Egyetem Műszaki Kar; husigeza@eng.unideb.hu TÓTH Attila, egyetemi hallgató Debreceni Egyetem Műszaki Kar HUSI Géza, egyetemi hallgató Budapesti Műszaki és Gazdaságtudományi Egyetem, Villamosmérnöki és Informatikai Kar Kulcsszavak: National Instrumentsm, prototype robot, NI SbRIO-9631, FPGA Abstract: The NI SbRIO-9631 prototype robot is mobile electro-mechanic system suitable for planar displacement and orientation using an ultrasonic distance sensor. Its special hardware structure allows fast interfacing with sound- and image processing interface units for complex applications. This paper presents a new controlling mode of the NI LabVIEW Robotics Starter Kit by arm movement. 1. Bevezetés A mechatronikában önállóan működő, intelligens gépek tervezése a feladatunk. Gyakorlatban azonban többször előfordul olyan helyzet, amelyre a rendszer nincs felkészítve és külső beavatkozás szükséges. Az is előfordulhat, hogy valamilyen folyamat nem automatizálható és emberi irányítás szükséges a végrehajtásához. Erre a két problémára nyújthat megoldást a távvezérlés. A problémára ma már számtalan megoldás létezik: vezetékes technológiák (USB, soros- és párhuzamos kapcsolat, ethernet, vezetékes modem) és vezeték nélküliek (RF-modulok, infra, Bluetooth, wifi, GSM). A felsorolt eszközök közül a Bluetooth-t látszott a leginkább alkalmasnak arra, hogy emberi kéz mozgását közvetlenül egy autonóm robot mozgásának irányítására használjuk. El is készült egy változat 1 amely jól működött, és az eredményei alkalmassá tették a robotot a továbbfejlesztésre, aminek a célja a robot kognitív tulajdonságainak fejlesztése volt. A kognitív robotok a szokásos tulajdonságok mellett újabb intelligens tulajdonságokkal is rendelkeznek. Az intelligens gép (robot) amely a környezetével kommunikálni tud alkalmas arra, hogy tanuljon és döntsön arról, hogy hogyan viselkedik bonyolult körülmények között. Kolozsváron Szász Csaba és tanítványai a robot hang- illetve képfeldolgozás alapján történő 1 Tóth Attila és Málnás Péter mechatronikai mérnök hallgatóka témában folytatott kutatómunkájukból TDK dolgozatot írtak BLUETOOTH KOMMUNIKÁCIÓ ÉS NXT címmel, amit 2011 áprilisában Baján az OTDK keretében is bemutattak. A TDK munkájuk konzulense Dr. Tóth János főiskolai docens (DE MK Villamosmérnöki és Mechatronikai tanszék) volt.
irányítására [4,5,6,], mi Debrecenben pedig a kézmozgás alapján történő irányítására vállalkoztunk annak érdekében, hogy ha ezek külön-külön jól működnek megpróbáljuk a Labview programokat egy VI-ba integrálni, a bemenetet multimodálissá (két vagy több input együttműködő használatára) alkalmassá tenni. A labview-ban a programokat virtuális műszernek ( virtual instrument ) VInak nevezik. 2. Az NI LABVIEW robotics starter kit prototípus robot hardware felépítése Az NI LABVIEW robotics starter kit prototípus robot a National Instruments cég SbRIO-9631 kártyával felszerelt mobilrobot. A robot egy mechanikus fémkeret szerkezetből áll, amelyre négy kerék van rögzítve, a fémkeretre pedig az elektronikus vezérlőrendszer van ráillesztve, ahogyan ez az 1-es ábrán is látható. 1. ábra. Az NI SbRIO robot felépítése [1] A kerék párok egy-egy fogaskerék szerkezeten keresztül össze van kapcsolva egy közös tengelyre, és mindegyik tengelyt egy 12 V névleges feszültségű Pitsco egyenáramú motor hajt meg. A motor névleges sebessége 152 fordulat/perc és a forgatónyomatéka ~ 2,11 Nm. A motorok tengelyek elfordulási helyzetének a meghatározására inkrementális forgó-jeladó szenzorok vannak kapcsolva (felbontása:l 400 impulzus/fordulat), amelyek a rotor szögelfordulását és a szögsebességét mérik. Ugyancsak a fémkeretre vannak felerősítve az akkumulátor elemek is, amelyek árammal táplálják a motorokat és az elektronikus vezérlőrendszert. A robot egy PING típusú ultrahangos szenzor-pár segítségével méri be a helyzetét a térben, és ezek segítségével sikerül elkerülnie az előtte 2 cm- 2 m távolságra lévő akadályokat. A fémkeret tetejére van a SbRIO-9631 FPGA alapú vezérlőkártya ráerősítve (2. ábra).
2. ábra. A robotvezérlő NI sbrio-9631 FPGA alapú kártya Az robot hardver felépítésének elvi vázlata a 3. ábrán látható. 3. ábra. Az NI LABVIEW robotics starter kit felépítésének blokkvázlata [1]
A Xilinx Spartan-3 FPGA (Field Programmable Gate Array) áramkör köré tervezett SbRIO-9631 fejlesztőkártyára egy 266 MHz frekvencián működő, valós idejű alkalmazások futtatására alkalmas MPC5200 processzorral van szerelve. A kártyán található 110db digitális ki és bemenet, 32 darab 16 bites analóg bemenet, valamint 4 darab 16 bites analóg kimenet. Tartalmaz 3 darab soros C típusú kommunikációs csatornát (Mod1, Mod2, Mod3 lásd 2. ábrán), valamint internetes kommunikációra 10/100 Mbit/s ethernet portot (2. ábra) is. A beépített valós idejű kontroller áramkör biztosítja a csatlakozást a Web (HTTP) és állomány (FTP) kezelő szerverekre. Az egész vezérlőáramkört 19-30V között egyenáramú feszültségről lehet táplálni. [1]. 3. A robot vezérlése kézmozgás alapján A vezérlés tervezésekor fontos szempont volt, hogy különböző módon tudjuk irányítani a robotot és későbbiekben ezeknek együttes alkalmazására is lehetőség nyíljon. A kézmozgás alapján történő vezérléshez először a kommunikáció módját kellett megválasztani és figyelembe kellett venni, hogy a robot mozgatása esetén a vezetékes megoldások csak korlátozottan jöhetnek szóba. Kézenfekvő megoldásként a Bluetooth technológia alkalmazása látszott a legcélszerűbbnek. A kiválasztott Bluetooth modul egy soros kommunikációt megvalósító eszköz, amely kétirányú adatkommunikációt tud biztosítani és a SbRIO-9631 fejlesztőkártya soros portjára csatlakoztatva az eszköz készen áll más Bluetooth-on kommunikáló eszközök csatlakoztatására is. Problémát jelentett, hogy a robot soros portja a PC-vel való kompatibilitás miatt RS-232 jelszintet használ, míg a Bluetooth modul 3,3 V-os jelszintet. Megoldást egy a MAX3232 IC jelentette, amely a két jelszint közötti feszültség átalakítást valósítja meg. A robotot vezérlését a Bluetooth-on keresztül egy mikrovezérlőre épülő áramkörrel oldottuk meg. A kézmozgás irányát és sebességét az eszközökben található gyorsulásmérő áramkörök segítségével tudjuk meghatározni. A mikrovezérlő viszonylag kevés számítási és memória kapacitással rendelkezik ezért csak annyi a feladata, hogy a gyorsulásmérőből kiolvasott nyers adatokat továbbítsa a Bluetooth-on keresztül a robot felé. A mozgás vezérléséhez szükséges számításokat maga a robot végzi és a kommunikációba kódolt adatokból a robot tudja, hogy éppen milyen eszközzel kommunikál és hogy milyen formátumban kapja az adatokat. A robot programja ennek függvényében az aktuális távirányítóhoz tartozó programrészt hajtja végre. Ennek megoldása azért fontos mert lehetőséget nyújt a későbbiekben más csatornákon érkező parancsoknak az együttes feldolgozására, az esetleges ellentmondások, megerősítések roboton belüli kiértékelésére. Ennek természetesen bizonyos határt szabnak a SbRIO-9631 fejlesztőkártya technikai jellemzői. Ez a mikrovezérlős távirányító két különálló részből áll, az irányítást végző személy mindkét kezében egy-egy egységet tart és ennek mozgatásával tudja a robotot irányítani. Mindkét kézben tartott eszköz tartalmaz gyorsulásmérő modulokat és a teljes rendszer vezeték nélkül kommunikál. A robot így áramkörönként 3
darab adatot kap a g gyorsulásvektor állásáról, a gyorsulásmérő IC-hez kötött koordinátarendszerében. Mivel a Bluetooth ezen üzemmódjában (SPP soros port profil) csak egy az egyhez kapcsolatot tud kezelni, az egyik áramkör kommunikál közvetlenül a robottal, a másik áramkör pedig egyirányú kommunikációt valósít meg 868 MHz-es rádiómodulok segítségével a robottal kapcsolatot tartó áramkörrel. Ez a megoldás fogyasztásban sokkal alacsonyabb (költségekben is), mint újabb Bluetooth modulok alkalmazása. A rádiómodul egyik hátránya, hogy kimenetén egy jelszintet csak rövid ideig képes megtartani, majd oszcillálni kezd. Általános esetben ez nem probléma, mert a kommunikáció folyamatos, a bitek biztosan hamarabb változnak - hiszen az ember gesztikulál mozgatja a kezét például beszéd közben is -, minthogy az oszcilláció bekövetkezne. Jelentősebb probléma, hogy más eszközök is használják ezt a frekvenciát, a kommunikáció könnyen megzavarható. Ezért szükséges volt a két áramkör közötti kommunikációhoz az adatcsomagok alkalmazására. Az adatcsomag első bájtja az a utolsó bájtja z bináris kódja. Ha a vevő által kapott csomag ennek nem felel meg, a csomag érvénytelen és a vevő elveti a kapott adatokat. Egy ilyen sérült csomag még nem befolyásolja a robot mozgását, mert a csomagok folyamatosan érkeznek. A sikeres fogadás után az áramkör, amelyik a robottal kommunikál, saját g helyzetét hozzáfűzve az előbb fogadott adatokhoz azokat Bluetooth-on, újabb csomagban elküldi a robotnak. A csomag szerkezet itt nem a hibák észlelésére szolgál, hanem ez informálja a robotot, hogy milyen eszköz csatlakozik hozzá. Ebben az esetben az első bájt 0 lesz. Ebből tudja a robot, hogy az általunk használt mikrovezérlős áramkörrel kommunikál. A csomag mérete ebben az esetben 7 bájt (1+3+3). A gyorsulásmérők a g helyzetét analóg feszültséggel jelzik. Ezeket digitalizálva 8 biten tengelyenként 70-től 240-ig terjedő értékeket kapunk. Ezek nyers adatok, a robot ezekből számítja ki a mozgás sebességét és irányát. A fennmaradó kihasználatlan értékek felhasználhatóak speciális információk átadására. Ha a gyorsulásmérő modul szabadesést érzékel (mindhárom tengelyén a gyorsulás 0), a mikrovezérlő az X tengely értékét 255-re állítja be. Ezzel többlet információt adhatunk át a robotnak az adatfolyam méretének növekedése nélkül. A robot mozgására három üzemmód van kialakítva, melyek között az előidézett g = 0 gyorsulással tudunk váltani. Az irányítás több üzemmódban is futhat. Az első üzemmódban a Bluetooth modult tartalmazó áramkör helyzete határozza meg a robot mozgásának irányát, a másik áramkör helyzete pedig a robot sebességét. Egy másik üzemmód amikor a két motor sebességét a két áramkör külön-külön vezérli vagyis az egyik oldali és a másik oldali motor sebességét külön lehet kézmozgás alapján meghatározni. A harmadik lehetőség, hogy a robot akkor indul el állandó sebességgel ha mind a két áramkör azonos irányban áll.
Összefoglalás Az alkalmazás fejlesztésének célja az volt, hogy tapasztalatokat szerezzünk a robotok nem szokványos irányításának lehetséges módjairól. A fejlesztés a második próbálkozásra a tesztelések szerint is eredményeket hozott. Valóban sikerült két eszközzel ami a kommunikációban részt vevő személy karjaira rögzíthető a robotot megfelelő módon irányítani. Ez azt jelenti, hogy bizonyos események együttes vagy egymás utáni bekövetkezésekor, annak kiértékelése után gyakorlatilag is lehetőség van a robot beavatkozó egységeinek bármilyen parancsot kiadni. Felhasznált szakirodalom [1] NI LabVIEW Robotics Starter Kit, http://sine.ni.com/ds/app/doc/p/id/ds-217/lang/en [2] A Bluetooth rendszer http://studio.pataky.hu/edu/14p/tavkozlesi_halozatok/bluetooth.pdf letöltve: 2010.10.04. [3] Bluetooth http://www.mcl.hu/~fazek/mobil_infokom_oravazlat/oravazlat_bluetooth.ppt letöltve: 2010.10.04. [4] Dr. Szász Csaba, Tobák Dénes: THE NI SBRIO-9631 PROTOTYPE ROBOT MULTI-MODAL COMMUICATION ABILITIES DEVELOPMENT 17th Building Services, Mechanical and Building Industry Days [5] Dr. Szász Csaba, Zsurzsa László: SOUND PROCESSING ALORITHMS IMPLEMENTATION IN LABVIEW ENVIRONMENT FOR REMOTE CONTROL OF THE NI SBRIO-9631 PROTOTYPE ROBOT 17th Building Services, Mechanical and Building Industry Days [6] Dr. Szász Csaba, Török Péter IMAGE PROCESSING ABILITIES IMPLEMENTATION UPPON NI SBRIO-9631 PROTOTYPE ROBOT INTERFACED WITH CVS-1454 VISION SYSTEM 17th Building Services, Mechanical and Building Industry Days A fejlesztés a HuComTech projekte részére az Európai Unió és a Magyar Állam támogatásával, az Európai Szociális Alap és az Európai Regionális Fejlesztési Alap társfinanszírozásában a TÁMOP 4.2.-08/1/0008-0009 számú, Az ember-gép kommunikáció technológiájának elméleti alapjai címet viselő pályázat keretein belül jött létre.