FALKAIRÁNYÍTÁS LEGO ROBOTOKKAL

Hasonló dokumentumok
A LEGO Mindstorms EV3 programozása

SZENZORMODUL ILLESZTÉSE LEGO NXT PLATFORMHOZ. Készítette: Horváth András MSc Önálló laboratórium 2 Konzulens: Orosz György

VIRTUÁLIS GRAFFITI ÜZENETHAGYÓ RENDSZER

Villamos jelek mintavételezése, feldolgozása. LabVIEW 7.1

Korszerű információs technológiák

A tanulók gyűjtsenek saját tapasztalatot az adott szenzorral mérhető tartomány határairól.

Kommunikáció az EuroProt-IED multifunkcionális készülékekkel

Kameleon Light Bootloader használati útmutató

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

NGB_IN040_1 SZIMULÁCIÓS TECHNIKÁK dr. Pozna Claudio Radu, Horváth Ernő

Fényerősség. EV3 programleírás. Használt rövidítések. A program működésének összegzése

A LEGO-MINDSTORM ALKALMAZÁSA A MECHATRONIKAOKTATÁSBAN

Fizikai mérések Arduino-val

Számítógépes Hálózatok. 7. gyakorlat

Mérés, Vezérlés. mérésadat rögzítés CMC - 99 CMC kis és nagytestvér

Villamos jelek mintavételezése, feldolgozása. LabVIEW előadás

Mezőgazdasági robot fejlesztése és jövőbeli bővíthetősége

1. Metrológiai alapfogalmak. 2. Egységrendszerek. 2.0 verzió

Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás

Automatizált frekvenciaátviteli mérőrendszer

TCP/IP kommunikációval működő változat, WEST6100+ (WEST4170+) hőmérsékletszabályozó műszerrel. 2. rész

Első egyéni feladat (Minta)

Moduláris USB billentyűzet emulátor

SZERZŐ: Kiss Róbert. Oldal1

Easton420. Automata Telefon hangrögzítő. V 6.0 Telepítése Windows XP rendszerre

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

The modular mitmót system. DPY kijelző kártya C API

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Témakiírások 2014/15. őszi félévben

VERSENYFELHÍVÁS. A verseny célja:

2. Elméleti összefoglaló

Intelligens kamera alkalmazás fejlesztése

Fundimini.hu Felhasználói útmutató

Adat le,- és feltöltés a DOS operációs rendszerrel rendelkező Topcon mérőállomásokra, TopconLink szoftver alkalmazásával (V1.0)

A továbbiakban a mért esési időt felhasználhatjuk a nehézségi gyorsulás meghatározására.

Robotot vezérlő szoftverek fejlesztése Developing robot controller softwares

Beltéri autonóm négyrotoros helikopter szabályozó rendszerének kifejlesztése és hardware-in-the-loop tesztelése

D/A konverter statikus hibáinak mérése

Szárazföldi autonóm mobil robotok vezérlőrendszerének kialakítási lehetőségei. Kucsera Péter ZMNE Doktorandusz

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

SZAKDOLGOZAT VIRÁG DÁVID

Bevezetés A harmadik szoftverkrízis korát éljük! Szoftverkrízisek: 1. nincs elég olcsó: hardver, szoftver, programozó 2. nincs elég olcsó: szoftver, p

A SZAKMAI GYAKORLAT KÖVETELMÉNYEI

A B C NXT A B C. Szolga 1. Szolga 3. NXT. Szolga 2.

Szegedi Tudományegyetem Informatikai Tanszékcsoport SZAKDOLGOZAT. Fertői Ferenc

Útmutató a LOGSYS fejlesztői kábel eszközmeghajtó programjainak telepítéséhez

VI. Robotprogramozó Országos Csapatverseny Döntő versenyfeladatok. 5. évfolyam

A ComEasy Windows NT/98/ME/2000/XP/Vista/7 és Linux/Unix operációs rendszeren használható.

Titkosítás NetWare környezetben

Tartalom jegyzék 1 BEVEZETŐ SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5

Alapként a Szabálykönyv szolgál és minden szabálypont illusztrált videoklipekkel, összekapcsolva a megfelelő szöveges állományokkal.

Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék DARU IRÁNYÍTÁSA

Médiatár. Rövid felhasználói kézikönyv

Beszámoló Programozási készségek fejlesztése Logo nyelven műhelymunka NTP-MTI-13 Emberi Erőforrások Minisztériuma

A TERC VIP költségvetés-készítő program telepítése, Interneten keresztül, manuálisan

Elektronikusan hitelesített PDF dokumentumok ellenőrzése

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Gyakori Kérdések. VMC 870 adatkártyához

ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.0

Számítógép felépítése

Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata

TERC V.I.P. hardverkulcs regisztráció

3D számítógépes geometria és alakzatrekonstrukció

Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar. Villamos Energetika Tanszék. Világítástechnika (BME VIVEM 355)

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

National Instruments NI LabVIEW gyakorlati szeminárium: Szoftver telepítési segédlet

Számítógépes Hálózatok. 4. gyakorlat

A rendszer célja. Funkciók

Könyvtári címkéző munkahely

Hardver és szoftver követelmények

Irányítástechnika Elıadás. PLC rendszerek konfigurálása

A telepítési útmutató tartalma

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

Általános fiók beállítási útmutató

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

Modbus kommunikáció légkondícionálókhoz

Mérési útmutató a Mobil infokommunikáció laboratórium 1. méréseihez

XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban

Quadkopter szimulációja LabVIEW környezetben Simulation of a Quadcopter with LabVIEW

TERKA Törvényességi Ellenőrzési Rendszer Kiegészítő Alkalmazás

Általános leírás 2 Telepítési útmutató 3

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Programozó- készülék Kezelőkozol RT óra (pl. PC) Digitális bemenetek ROM memória Digitális kimenetek RAM memória Analóg bemenet Analóg kimenet

Yottacontrol I/O modulok beállítási segédlet

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

Felhívjuk a figyelmet, hogy az MS Windows XP operációs rendszer támogatását a Microsoft már év április 8-án megszüntette!

KS-404 AUTOMATIZÁLT IZOKINETIKUS AEROSOL - PORMINTAVEVŐ MÉRŐKÖR, HORDOZHATÓ BELSŐTÉRI KIVITEL ISO 9096 STANDARD KÁLMÁN SYSTEM SINCE 1976

IT BIZTONSÁGTECHNIKA. Tanúsítványok. Nagy-Löki Balázs MCP, MCSA, MCSE, MCTS, MCITP. Készítette:

Regisztrációs kérelem küldése

GoWebeye Monitor Release Üzenetküldés

BaBér bérügyviteli rendszer telepítési segédlete év

WiLARM-MICRO GSM Modul Telepítői Útmutató Verzió: 2.0

6000 Kecskemét Nyíri út 11. Telefon: 76/ ; Fax: 76/ Gyakorló feladatok

1. Jelölje meg az összes igaz állítást a következők közül!

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

A Riello-UPS az informatika világában

Dr. Bozsik Sándor SZAKMAI GYAKORLAT -SZAKDOLGOZAT

Elektronikusan hitelesített PDF dokumentumok ellenőrzése

A számítógép-hálózat egy olyan speciális rendszer, amely a számítógépek egymás közötti kommunikációját biztosítja.

Átírás:

Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék Szabó Bence Károly FALKAIRÁNYÍTÁS LEGO ROBOTOKKAL Önálló laboratórium záró jegyzőkönyv 2014/15. II. félév KONZULENS 1 Dr. Kiss Bálint BUDAPEST, 2015

Tartalomjegyzék 1. Bevezetés... 4 1.1. Feladat... 4 1.2. Robot bemutatása... 4 1.3. Robotok programozása... 5 2. Megvalósított Algoritmusok... 6 2.1. Sebességbecslő... 6 2.2. Bluetooth küldő protokoll... 7 2.3. Bluetooth fogadó protokoll... 8 2.4. Program indulás... 9 3. Összegzés... 11 4. Továbbfejleszthetőségi irányok... 13 Irodalomjegyzék... 14 Függelék... 15

HALLGATÓI NYILATKOZAT Alulírott Szabó Bence Károly, hallgató kijelentem, hogy ezt a záró jegyzőkönyvet meg nem engedett segítség nélkül, saját magam készítettem, csak a megadott forrásokat (szakirodalom, eszközök stb.) használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelműen, a forrás megadásával megjelöltem. Hozzájárulok, hogy a jelen munkám alapadatait (szerző(k), cím, angol és magyar nyelvű tartalmi kivonat, készítés éve, konzulens(ek) neve) a BME VIK nyilvánosan hozzáférhető elektronikus formában, a munka teljes szövegét pedig az egyetem belső hálózatán keresztül (vagy hitelesített felhasználók számára) közzétegye. Kijelentem, hogy a benyújtott munka és annak elektronikus verziója megegyezik. Dékáni engedéllyel titkosított diplomatervek esetén a dolgozat szövege csak 3 év eltelte után válik hozzáférhetővé. Kelt: Budapest, 2015. 05. 18..... Szabó Bence Károly

1. Bevezetés 1.1. Feladat Az önálló laboratóriumi témám alkalmával három Lego Mindstorm típusú robotból álló falkával ismerkedtem meg. A kívánt működés egy rendezett mozgás létrehozása, amely során egy robotot követ a többi, autonóm módon. Ehhez megvalósításra került egy kommunikációs protokoll, mely segítségével távolságadatok kerülnek elküldésre az eszközök bluetooth moduljainak segítségével. A mozgás egy dimenzióban történik, egy egyenes mentén. 1.2. Robot bemutatása A feladat megvalósításához három az 1.2 1-es ábrához hasonló robotot használtam. 1. ábra: NXT robot 4

A robotokon rendre megtalálható egy ultrahangos távolságérzékelő, differenciális meghajtású lánctalp és egy NXT tégla, mely tartalmazza a 32-bites ARM7-es mikroprocesszort, valamint a mögöttük lévő robot távolság-érzékelését segítő falat. A téglákban/téglákon foglal helyet a bluetooth modul, motor- és szenzorportok, továbbá egy USB 2.0-ás port. Minden egységbe 6 elem szükséges vagy egy speciális tölthető akkumulátor. A robotok távolságérzékelése cm-es felbontású, 6cm és 40-50 cm között megbízható, de efölött és ez alatt elég bizonytalan. 1.3. Robotok programozása A robotokat LabView 2014Error! Reference source not found.-ben programoztam. Ehhez rengeteg segítséget adtak a Programozható irányítóberendezések és szenzorrendszerek laboratórium megfelelő laborfoglalkozásai Error! Reference source not found.. Segítségemre volt továbbá egy ingyenesen elérhető program a virtual NXT Error! Reference source not found., mely segítségével otthonról tudtam szimulálni egy-egy NXT kijelzőjét és a megírt algoritmusokat. 5

2. Megvalósított Algoritmusok 2.1. Sebességbecslő 2. ábra: Sebességbecslő, motorvezérlés A 2.1 1-es képen látható probléma a következő: nem ismerjük a v1 sebességet, viszont mérhető a d távolság. Ezek tükrében felírható a következő képlet: (2.1) Ebből kifejezhető a v1 sebesség. A szabályozás során shiftregisztereket felhasználva megadható a deltad és deltat, amelyek az előző alkalommal mért és az újonnan regisztrált értékek különbségei. Az idő mérésére felhasználható egy belső timer, amivel könnyen számolható az eltelt idő. Az így kapott értéket egy P erősítő taggal használom fel a szabályozáshoz. Szabályozni kívánjuk továbbá a két robot közötti távolságot. Erre egy P szabályzót használtam fel. Itt megadható egy alapjel, ami a példaprogramban 20 (cm) egység, majd ezt szorozza a paraméterben megadható P értékkel. A két sebességérték egy-egy súlyozó tényezővel megszorozva kerül átlagolásra. Ezt azért tartottam fontosnak, mert így kalibrálható, hogy mely tulajdonság fontosabb, a sebességbecslés vagy a távolságtartás. Ezután az aktuális sebesség értéken elvégeztem egy mozgó átlagolást. Mivel a távolság érték cm-es felbontásban áll rendelkezésre, így gyakori volt a hirtelen sebességváltozás. Kiegészítve egy 16 elemű FILO sorral, ami minden mintavételnél új elemmel bővül, majd a legrégebbit elhagyva tartja az elemszámot, és kiszámolja az elemek átlagát. Ez az érték kerül a motorok sebességet 6

meghatározó bemeneteire. 3. ábra: Sebességbecslő, motorvezérlés 2.2. Bluetooth küldő protokoll Az emberi beavatkozást szolgáló kapcsolat bluetooth-on keresztül biztosítható. Jelen esetben három decimális, 100-nál kisebb számot kívánunk átküldeni egyik robotról a másikra. Ezek rendre: a távolság az előző kocsitól (alapjel) és két távolságadat, hogy az egyes robotok hány cm-re vannak éppen az előttük lévőtől. A célja ezen adatoknak, hogy egy számítógéppel zárva, mintegy kommunikációs kört kialakítva PC-ről állítható a távolság és a kezelő is informálódik a további robot helyzetéről. 4. ábra: Küldő protokoll 7

A küldőrutin egy hatjegyű számba konvertálja az egy tömbben tárolt adatokat. Megszorozza 10000-rel az elsőt, majd 100-zal a másodikat, és összeadja. Mind ezután szükséges elvégezni egy szám to string konverziót, mivel valamely okból a rendszer nem válaszol jól az egész, decimális számok küldésére. Erre lenne külön Virtual Instrument (a továbbiakban: VI), de ha ezt használtam, akkor gyakran lefagyott a tégla. Ezt kiküszöböltem ezzel a string konverzióval, így ugyanaz a program lefutott és működött is. 2.3. Bluetooth fogadó protokoll 5. ábra: Fogadó protokoll 8

A fogadó protokoll dekódolja a kapott üzenetet. Először megnézi, hogy a fogadott üzenet különbözik-e nullától, ugyanis ez a mailboxból kiolvasott alapértelmezett érték. Ha nem érkezett üzenet, akkor nem történik adatváltozás. Amennyiben nem nulla az érték, dekódolja az adott számból a kívánt három értéket osztásokkal és típuskonverziókkal. Ennek célja, hogy a rendszer levágja a nemkívánatos törtrészeket. Az így kapott kétszámjegyű egész szám az első fontos adat, ezt elmenti a saját tömbjébe, majd ezt visszaszorozva 10000-rel kivonja az üzenetből. Ezt megismétli kétszer, csak nem 10000-rel, hanem a megfelelő értékkel. Mindezek után beíródik az adott egység adatait tároló tömbbe. Itt egy különleges blokk gondoskodik arról, hogy az adatok sorban, egymás után töltsék fel azt. Az üzenetek kiolvasása másodpercenként egyszer ismétlődik. Ez a frekvencia növelhető lenne, de a mostani feladathoz ez is elegendőnek bizonyult. 2.4. Program indulás 6. ábra: Indító programrészlet 9

A program kezdetén három dolog történik párhuzamosan. Kiíródok az adattömb a képernyő aljára. Ez a további programfutás alkalmával is megtörténik mintegy ellenőrző jelleggel. Küld egy bluetooth üzenetet a következő robotnak, hogy az elindulhat. Továbbá várja az üzenetet az előző robottól. Csak akkor indul el a motorvezérlés, ha kapott string megfelelő, jelen esetben OK1. A robot ez idő alatt nem változtatja helyét. 10

3. Összegzés Feladatom végrehajtása során behatóbban megismerkedtem a LabView nevű programmal, grafikus fejlesztőkörnyezetével. Sok oktatóvideót megnéztem az NI weboldaláról, ezek nagyon hasznosnak bizonyultak a munkám során. Az általam készített sebesség és távolság szabályozás remekül működött, erről látható egy videó az irodalomjegyzék Error! Reference source not found. hivatkozás alatt. Azt NXT-k használata során néhány anomáliába ütköztem. Nem találtam olyan dokumentációt, amiben ezek hivatalosan le lettek volna írva. Ezért csak fórumozók ötleteit tudtam felhasználni, amik hol működtek, hol nem. Először is firmware frissítés közben előfordul, hogy a labview nem képes befejezni azt, ezért hibával leáll. Ilyenkor az NXT tégla bekerül egy firmware-re váró állapotba. Valamilyen oknál fogva a windows7/8 nem volt képes felismerni, hogy egyáltalán csatlakoztatták a számítógéphez az eszközt. Így lehetetlennek bizonyult elindítani a robotokat. Ezt a problémát Windows xp operációs rendszerrel el lehet kerülni, és sikeresen telepíteni az új firmware-t Még egy probléma adódott a bluetooth kapcsolattal. Az elkészült program olyan pont-pont kapcsolatot feltételez, ahol van egy master és egy slave modul. A master tud üzenetet küldeni a slave-nek, de a slave nem tud a master-nek, ő csupán a mailboxait képes kiolvasni. Az általam megalkotni kívánt konfigurációban három robot (első, középső, hátsó) sorban kapcsolódott volna a mögötte haladó modulhoz. Ennek értelmében páronként az első robot a master, a hátsó a slave. Így a középső robot egyszerre lenne slave és master is, de ezt általam nem ismert okok miatt képtelen volt teljesíteni. Amint a középső modul felcsatlakozott a hátsóra és elkezdett neki üzenetet küldeni, az első már nem volt képes csatlakozni a középsőhöz. Egy másik érdekesség, ahhoz, hogy bloetooth-on üzeneteket lehessen továbbítani egyik NXT-ről a másikra, kézileg kell csatlakoztatni egymáshoz őket, különben nem történik meg az üzenetek küldése/olvasása. Az üzenetek küldése, dekódolása remekül működött ameddig egy vonalon valósult meg a kommunikáció, de amint még egy elemet szerettem volna csatlakoztatni 11

a hálózatba, az már nem tudott a vonal terheltségére hivatkozva teljesíteni ezt. Erre a sajnálatos hibára nem találtam megoldást. A szabályozó algoritmus eredménye megtekinthető az általam feltöltött videón. 12

4. Továbbfejleszthetőségi irányok Számítógépes összeköttetés bluetooth modul felhasználásával gyűrű topológiában. Az újabb EV3 jelzésű tégla felhasználásával egy stabilabb csillag kapcsolat kialakítása bluetooth/wifi modulok használatával. Az üzenetben elküldött adatok mennyiségének növelése összetettebb mozgások kialakításának reményében. 13

Irodalomjegyzék [1] National Istruments: LabVIEW grafikus fejlesztői környezet leírása, http://www.ni.com/ (2015. május 16.)) [2] virtualnxt: virtuális NXT, http://www.robotvirtualworlds.com/virtualbrick/(2015. május 16.) [3] Programozható irányítóberendezések és szenzorrendszerek laboratórium: silabusz, Programozható irányítóberendezések és szenzorrendszerek laboratórium 7. mérés (2015. május 16.) [4] Programozható irányítóberendezések és szenzorrendszerek laboratórium: silabusz, Programozható irányítóberendezések és szenzorrendszerek laboratórium 9. mérés (2015. május 16.) [5] Szabályozás: video, lego NXT velocity estimation (205. május 16.) 14

Függelék 1. ábra: NXT robot... 4 2. ábra: Sebesség becslő, motorvezérlés... 6 3. ábra: Sebesség becslő, motorvezérlés... 7 4. ábra: Küldő protokoll... 7 5. ábra: fogadó protokoll... 8 6. ábra: induló program... 9 15