ultrasonic mapping

46
Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet TUDOMÁNYOS DIÁKKÖRI DOLGOZAT ULTRAHANGOS TÉRKÉPEZÉS ÉS NAVIGÁCIÓ Szerzők: Zelenka Gábor mérnök informatikus BSc. szak, V. évf. Tonté Gergely mérnök informatikus BSc. szak, IV. évf.

Upload: kovacs-belka

Post on 02-Feb-2016

236 views

Category:

Documents


3 download

DESCRIPTION

Paper about mapping and navigation using ultrasonic raging sensor.

TRANSCRIPT

Page 1: Ultrasonic Mapping

Óbudai EgyetemNeumann János Informatikai KarAlkalmazott Informatikai Intézet

TUDOMÁNYOS DIÁKKÖRI DOLGOZAT

ULTRAHANGOS TÉRKÉPEZÉS ÉS NAVIGÁCIÓ

Szerzők: Zelenka Gábormérnök informatikus BSc. szak, V. évf.

Tonté Gergelymérnök informatikus BSc. szak, IV. évf.

Konzulensek: Dr. Molnár Andrásegyetemi docens

Dr. Stojcsics Dánieladjunktus

Page 2: Ultrasonic Mapping

Ultrahangos térképezés és navigáció

Zelenka Gábor, Tonté GergelyÓbudai Egyetem

Neumann János Informatikai Kar, BSc. IV. évfolyamKonzulensek: Dr. Molnár András, egyetemi docens

Dr. Stojcsics Dániel, adjunktus

A TDK dolgozat fő témája az ultrahanggal történő térképezés és navigáció megvalósításának bemutatása. A dolgozat részletesen kitér a környezet feltérképezésének módjára, majd az elkészült térkép alapján történő navigációra. A befejező rész tartalmazza a rendszer tesztelésének eredményét, valamint bemutatja az alkalmazott algoritmusokat.

A dolgozatban egy ultrahangos eszköz létrehozását tűztük ki feladatnak, ami a környezetéről képes egy két dimenziós modellt alkotni és ez alapján egy önjáró eszközre szerelve a navigációt megvalósítani. A dolgozathoz felhasználjuk korábbi Ultrahangos Térképezés és Navigáció TDK munkánkat, amelyet kibővítünk a navigációval. A rendszer két részre bontható. Az első részében a felhasznált hardver elemek bemutatása és összeállítása kap helyet úgy, mint az ultrahang szenzor, a jármű valamint a szenzor mozgató motorok. Ebben a fejezetben továbbá betekintést nyerünk egy központi vezérlővel való munkába, ami a többi perifériával kommunikál, valamint feldolgozza az adatokat és folyamatosan frissíti a térképet. A virtuális modellt a mikrokontroller készíti el, majd ez alapján vezérli a robotot. Másik része a megvalósított szoftver elemeket tárgyalja. A feldolgozó egység a szenzortól kapott jelek segítségségével frissíti a memóriában tárolt térképet. A későbbiekben tárgyalt algoritmus segítségével mindig kijelöl a szoftver egy útvonalat a célig amit követ. Egy soros kapcsolaton a megjelenítő egységnek átküldi a térkép adatait és ott vizuálisan is megjelenik a térkép valamint a robot aktuális helyzete. Ezen az interfészen lehetőség nyílik a cél meghatározására.

Befejezésként a rendszer gyakorlati alkalmazási területeit illetve továbbfejlesztési lehetőségeit tárgyalja a dolgozat.

1

Page 3: Ultrasonic Mapping

Tartalomjegyzék

1. Feladat:...................................................................................................................................4

2. Kapcsolódó munkák...............................................................................................................5

3. Specifikáció............................................................................................................................9

3.1. Megvalósítási ötletek.......................................................................................................9

3.2. Akadály elkerülésre specifikáció.....................................................................................9

3.3. Rendszer specifikáció.....................................................................................................9

3.4. Szükséges eszközök:....................................................................................................10

4. Hardver szegmens...............................................................................................................11

4.1. ESP8266.......................................................................................................................11

4.2. Szervo modul................................................................................................................11

4.2.1. Működési elve........................................................................................................11

4.2.2. Vezérlése...............................................................................................................12

4.3. DC motor mozgató modul.............................................................................................12

4.4. Szenzorok.....................................................................................................................13

4.4.1. Ultrahang szenzor:.................................................................................................13

4.4.2. Szenzor mérési eredmények.................................................................................14

4.5. Adatküldés:...................................................................................................................16

5. PC szegmens.......................................................................................................................17

5.1. Adat fogadó modul........................................................................................................17

6. Megvalósítás során szükséges lépések:..............................................................................18

6.1. 3D-s rekonstrukció........................................................................................................18

6.2. Megjelenítő 3D modul...................................................................................................19

6.2.1. Elkészült modell:....................................................................................................21

6.3. Megjelenítő 2D modul...................................................................................................22

7. Akadály elkerülés és navigáció............................................................................................23

7.1. Útkereső algoritmus......................................................................................................23

7.2. Robot irányba állítása...................................................................................................25

2

Page 4: Ultrasonic Mapping

7.3. Új pontok szkennelése és térkép aktualizálás..............................................................26

7.4. Robot mozgása.............................................................................................................27

7.5. További tervek a projektben, amik még fejlesztési területek lehetnek..........................28

8. Tartalmi összefoglaló...........................................................................................................29

9. Irodalomjegyzék...................................................................................................................31

10. Ábrajegyzék......................................................................................................................32

1.1.1.

3

Page 5: Ultrasonic Mapping

1.Feladat:

Napjainkban a beágyazott rendszerek egyre nagyobb térhódításának, valamint a gyártási költségek minimalizálásának köszönhetően olcsón lehet ilyen vezérelhető rendszereket építeni. A világban elérhető sok tudás, ami felhalmozódott ezek mögött, könnyen elérhető bárki számára. A feladatunk egy olyan mobil robot tervezése és építése, ami képes az ismeretlen környezetéről 2D-s térképet készíteni ultrahangos távolságmérő szenzor felhasználásával. A kiindulási ponttól kezdve monitorozni kell a megtett távolságot, a robot irányát, valamint a környezetében elhelyezkedő akadályokat, majd ezek alapján kell elkészíteni a térképet. A megalkotott térkép alapján képesnek kell lennie a területen történő navigációra. A rendszerhez tartozzon egy szoftver komponens, ami képes megjeleníteni a robot állttal készített térképet, valamint legyen befolyásolható a navigáció menete.

Az ultrahangnak köszönhetően olyan környezetekben lehet térképezést végezni, ahol már a fény alapú technikák nem működnek. Ilyen körülmények lehetnek a nagyon poros levegőjű helyszínek, vagy a füsttel teli helységek. Persze ez nem jelenti azt, hogy más, többnyire normálisnak mondható körülmények között ez az eljárás kudarcot vallana. Azt jelenti csupán, hogy az igazán nagy előnye illetve lehetősége a korábban említett szituációkban van.

A dolgozat során igyekszünk bemutatni egy ilyen önálló működésre képes eszközt, ami olcsón létrehozható. Tartalmilag először szeretnénk bemutatni pár olyan már létező projekteket, tanulmányokat, szakirodalmakat, amelyek előre lendítettek minket a témakör feldolgozását illetően, valamint amelyekből ötletet tudtunk szerezni az egyes felmerülő problémák elkerüléséhez.

Következő fejezetként a korábban tanultak alapján már gondolatban összeállított rendszer specifikációt szeretnénk prezentálni. Bemutatjuk, hogy még a mélyebb gyakorlati ismeretek hiányában is hogyan lehet a kezdeti elképzeléseket már egy olyan egésszé alakítani, amit később kiegészítve és megvalósítva egy működő rendszert kapjunk.

A későbbi fejezetek már a tényleges fizikai megvalósítást tartalmazzák. Ezek a fejezetek végig vezetik az olvasót a felhasznált eszközök bemutatásán és alkalmazásán valamint az őket működtető szoftver komponensek működésén. Tovább tartalmazza a dolgozat a felhasznált eszközök indoklását, hogy miért azokkal lett megvalósítva. Végül egy tömör összefoglaló frissíti fel az új emlékeket.

4

Page 6: Ultrasonic Mapping

2.Kapcsolódó munkák

[0] Extending the Occupancy Grid Concept for Low-Cost Sensor-Based SLAM

A SLAM kifejezés, vagyis a Simultaneus Localization And Mapping a robot által történő, ismeretlen környezet feltérképezésének problémája. Ehhez a feladathoz lézeres távolságmérő a legnépszerűbb választás a pontossága és a mérési sebesség miatt. Ultrahangos megvalósításra is találhatunk példát, igaz ebből lényegesen kevesebbet, mint lézeresből. Az ultrahangos érzékelés 2 fő problémája: a nagy nyitó szög valamint a mérés eredménye nagyban függ a betekintés szögétől. A nagy nyitó szög a szenzor látószöge, ahol képes érzékelni az akadályokat. Az 1. képen 3-as jelöli azt a területet, ami kiesik a szenzor látószögéből, kettes, ami ugyan a látóterébe esik, de az akadály meredek szöge miatt annak detektálása nem valósul meg. A ténylegesen detektálható akadály szegmens az 1-essel jelölt terület, ennek a legközelebbi pontjának a távolsága kerül érzékelésre. Hasznosnak találtuk, hogy a dolgozat felhívta a figyelmünket az ultrahanggal történő távolságmérés korlátaira (Ábra 1.), amiket saját méréseink során is tapasztaltunk a későbbiekben. A nagy nyitószög problémáját azzal próbáltuk kezelni, hogy a mérést maximum két méterig végezzük, az ennél messzebb lévő akadályok már nem kerülnek detektálásra, az ennél közebbiek viszont még megfelelő felbontásban szerepelnek a navigáció megvalósításához.

[1] World Modeling and Position Estimation for a Mobile Robot Using Ultrasonic Ranging

Ez a rendszer 24 ultrahangos távolságmérő érzékelő alapján építi fel a robot képét a környezetéről. Ez 24 pontot jelent, ami megfelel a robot körüli szabad teret jellemző sokszögek csúcsainak. Az adatok tárolása redundáns módon történik, ami hasznos lehet a térkép felépítése és frissítése közben, mert megkönnyíti a közös pontok keresését és így a mérési adatok összeillesztését. A térkép szegmensek kombinációjából

tevődik össze. (Ábra 2.)Mindegyik szegmens egy érzékelt akadály szakaszt jelent, egyféle jóságértékkel kiegészítve. Ez az érték alapértelmezetten 1, maximum 5, és egyesével növekszik, ha egy másik szegmens, ami illeszkedik hozzá detektálásra került. A visszhang okozta visszaverődések téves adatokat szolgáltatnak, aminek kiszűrése az egyik legnagyobb kihívásnak ígérkezik a projekt során. Erre itt kétféle megközelítést láthatunk. Egyrészt az egymáshoz illeszkedő szegmensek nagyobb valószínűséggel származnak valós mérési adatokból, másrészt egy akadályt különböző

5

Ábra 1 Szenzor látószög

Ábra 2 Szegmens

Page 7: Ultrasonic Mapping

. ábra . ábra

pozíciókból próbál felmérni. Mivel a betekintési szög változik, a téves adatokból felépített szegmensek már nem vagy új pozícióban jelennek meg. Hasznosnak ítéltük azt a megközelítést, hogy a mérést redundánsan végezzük, valamint, hogy különböző szögekből is végezzük méréseket, ami pontosabb képet eredményezhet a környezetünkről. Azonban a projektben a térképet nem vonal szegmensekre, hanem négyzetekre osztjuk fel.

[2]Obstacle Avoidance with Ultrasonic Sensors

Ezt az ultrahanggal működő robotot Johann Borestein és Yoram Koren készítette. Itt a robot tetejére egy

szenzor helyett kettőt helyeztek el. Olyan magasságból néz le a szenzor, hogy a maximum mérési távolság a föld közelében végződjön. Ez a megvalósítás a 4. ábrán látszik, hogy a 2 szenzor a robot előtti teret lefedi. A kettő szenzor látómezeje a robot tengelyénél találkozik és nincs közös rész. Ha akadály van, akkor vagy jobb oldali jelez vagy a bal, ha elég nagy az akadály, akkor mind kettő és ennek tudatában történik meg a fordulás. A megemelt szenzorok következtében a talajon elhelyezkedő akadályok könnyebben detektálhatóak. A robot lökhárítójára újabb szenzorok vannak felszerelve, amelyek esetleges ütközéseket detektálnak, ha nem venne észre egy akadályt az ultrahang szenzor. A tanulmány kitér az ultrahang használatának problémáira is. Ahogy az 5. ábrán is látható, egy bizonyos alfa beesési szög határérték esetén nincs vissza verődő hang, vagyis inkább nem érkezik meg a vevőhöz a kiküldött hang impulzus. Ezt a szöget körülbelül 25 fokra lehet becsülni. Ez a robot csak 2 irányú közlekedésre képes. Egyenes vonalba megy, ekkor mind a 2 kereke egyszerre forog, illetve fordulás, amikor ellentétes irányba forognak a kerekek.

6

Ábra 4 Szenzorok elhelyezkedése

Ábra 3 A szenzorok betekintési szöge

Page 8: Ultrasonic Mapping

Ez a dolgozat szintén felhívta a figyelmünket az ultrahangos távolságmérés egy korlátjára, amit a különböző szögekből történő méréssel próbálunk kiküszöbölni. Ezenkívül hasznosnak ítéltük a motorvezérlés megvalósítását, mivel így a kerekek elforgatása nélkül is kanyarodhat a robot.

[3]Parkolási asszisztens RC autóhoz

Ez az irodalom egy parkolást megvalósító járművet részletez. Hasonlóan a jelen dolgozathoz, itt is ultrahangos szenzort használt a távolság mérésre. Különbség az, hogy ebben a megközelítésben három darab szenzort alkalmaz, és ezek fixen vannak rögzítve az autó testére. Parkolás megkezdése előtt elhalad a célterület előtt, és az autó oldalára erősített szenzor bizonyos időközönként méréseket végez. Tömbben tárolja az adatokat és így egy mérés egy oszlopot lefed. Az így előállított térkép segítségével megtervezi a parkoláshoz kellő útvonalat. PWM jellel szervo motor és a DC motor mozgatását valósította meg. Az irodalom részletesen kitér ennek a PWM jelnek a használatára, lehetőségeire.

7

Ábra 5 Szenzor beesési szög

Ábra 6 Akadály reprezentáció

Page 9: Ultrasonic Mapping

Az itt bemutatott térképezési megvalósítás nagyon jó kiindulási pontnak minősült. A 6. ábrán ezt az adatábrázolási eljárást lehet látni. Ez adta meg az alap ötlete, hogy a környezetet négyzetráccsal lefedve, csupán kettő értékkel leírható hogy ott van akadály, vagy nincs.

[4]Kovács Zsolt: Ultrahangos térképezés

A dolgozat egy költséghatékony térképező rendszer fejlesztését mutatja be, ami távolságméréshez ultrahangot használ. Részletesen tárgyalta, az ultrahangon alapuló távolságmérés működési elvét és a felhasználási területeket. A dolgozat szerzője a költséghatékonyság jegyében az ultrahangos távolságmérő szenzort is maga készíti. Egy piezzo kristályból kiindulva saját maga építi a meghajtó, a jelkondicionáló áramköröket. A rendszer vezérlését egy MSP430-as családba tartozó mikro vezérlő végzi, amelynek nagy előnye az ultra alacsony fogyasztás és a költséghatékonyság. A szenzort léptető motorral körbeforgatva a robot képes a teljes környezetéről 360 fokos képet alkotni. A felhasznált motor a saját megoldásunkkal ellentétben léptető motor, ami lényegesen összetettebb vezérlést igényel. Ezen kívül ez a fajta motor nem állítható olyan finoman, mint a szervo motorok, amint az dolgozatból is kiderült a legkisebb elfordulási szög 15 fokos. A dolgozat írója ezt pozitívumként tüntette fel, mivel így kisebb a mérések közti átfedés. Mi is hasonlóra törekszünk, ezért csak 10 fokonként végzünk méréseket. Egy bizonyos fokú redundancia így is marad benne, de ez nem probléma, mivel minél többször detektáljuk ugyan azt az akadályt, annál biztosabb, hogy az ténylegesen ott helyezkedik el, így bizonyos fokig kezelhető a hibás mérések hatása. A dolgozat térképezési része kimerül abban, hogy a szenzort körbeforgatva adatokat gyűjt a robot környezetéről, majd ezeket vektorok formájában megjeleníti. Az ultrahangos szenzor építése betekintést engedett annak pontos működésébe, ennek ismeretében készítettük el a saját távolságmérési eljárásunkat. A dolgozat felhívta a figyelmünket az ultrahangot befolyásoló egyéb tényezőkre, mint a páratartalom vagy a hőmérséklet, így ezeket kompenzálva a későbbiekben növelhetjük a mérési a pontosságot.

[6]AcrobEz egy szlovák egyetemen működő projekt, aminek célja egy oktatásban használható Ardunioval vezérelt robot létrehozása. A projekt kitér az ultrahang szenzor pontatlanságát befolyásoló tényezőkre úgy, mint páratartalom és hőmérséklet. Ad rá egy egyenletet, amivel pontosítható az ultrahang szenzor ezeknek a tényezőknek a figyelembe vételével. Távoli akadály detektálásra ultrahangot használ. Közelire egy digitális megoldást ír le, egy fém drót, ami beleütközik az akadályba rövidre zárja az áramkört és így detektálja az ütközés tényét. A robot helyzetének meghatározásához gyorsulás mérőt alkalmaz és ennek segítségével eltolás és forgatás műveletek elvégzése után képes a pozíciót megadni a térben. A gyorsulás mérő valamint a szenzor pontosságát érintő leírások nagyban segíti a későbbiekben a szenzor és így a robotunk pontosságát.

8

Page 10: Ultrasonic Mapping

3.Specifikáció

3.1.Megvalósítási ötletek

Az akadályok detektálása ultrahangos szenzor segítségével történik. A szenzort a robot autó elején helyezzük el, ahol egy szervo motor segítségével pozícionáljuk a térben. A környezetünket egy négyzet hálóra képezzük le, amiben a foglalt négyzetek jelzik az akadályokat. A háló egy cellájának értéke 1, ha akadály van ott, 0, ha épp üres. A kiindulási pozíciótól kezdve folyamatosan monitorozzuk az aktuális megtett távot, valamint a robot irányát így meghatározható a térképünkön a robot elhelyezkedése. A térképet wi-fi kapcsolaton keresztül továbbítjuk a megjelenítő felé, ami lehet egy pc vagy mobil eszköz is. A navigáció egy játékokban is használt A* útkeresési algoritmussal történik.

3.2.Akadály elkerülésre specifikáció

Lehetőség van egy pontot kijelölni a térben ahova a robotnak el kell jutnia. Amíg a térkép üres, addig a robot egyenesen a célnak tart. Minden lépés előtt meg kell vizsgálni a környezetünket, hogy ahova lépni akarunk, illetve annak a környezetében ne legyen akadály amibe ütközhetnénk.A cél, hogy a lehető legrövidebb úton elérjük a célunkat, az akadályok elkerülése mellett. Figyelni kell a rendszernek, hogy ne lépjen úgy két cella között, hogy ütközés lehetősége fenn álljon. Átlós lépéseknél várható ez a működési szekvencia.

3.3.Rendszer specifikáció

Az egész rendszer alapvetően két egységre osztható. Van egy ESP8266 panel által vezérelt rész, ami a szenzorok valamint a motorok működtetését végzi, plusz előállít és folyamatosan frissít egy térképet, amit aztán átküld egy másik egységnek. Ez a másik egység valamilyen számítógépes egység. Ennek csupán megjelenítési szerepe van valamint lehetőséget nyújt olyan szintű beavatkozásra, hogy kijelöljük a cél területet, amit el kell érnie a robotnak. Az 7. ábra szemlélteti ezt a rendszert és annak funkcióit.

9

Page 11: Ultrasonic Mapping

3.4.Szükséges eszközök:

Turtle 2WD mobile robot Kettő darab DC kerék meghajtó motor 1 db HC-SR04 ultrahangos távolságmérő szenzor EMAX ES08NAII micro servo ESP8266 panel L9110 H-híd Számítógép, amin megjeleníthető az elkészült térkép

10

Ábra 7 Rendszerterv

Page 12: Ultrasonic Mapping

4.Hardver szegmens

Ez a fejezet a rendszerhez felhasznált összes eszköz leírását tartalmazza. A szenzor mozgatását, majd az adatok kinyerését az ESP8266 panel vezérli. Az ultrahangos szenzor két szervo motor segítségével lesz pozícionálva a megfelelő helyre a térben. Ugyancsak az esp panel mozgatja a későbbiekben leírt módszer szerint a járművet és futtatja közben valós időben a térképező szoftvert.

4.1.ESP8266

Az esp8266 egy WiFi modul, ami lehetővé teszi mikrokontrollerek számára, hogy WiFi kapcsolatot létesítsenek, és tcp/ip protokollt felhasználva kommunikáljanak. Azonban az esp8266 szerepe nem merül ki ennyiben mivel maga a modul is tartalmaz egy mikrokontrollert így azt programozva akár külső eszköz nélkül is működőképes. A modul rendelkezik egy 160 MHz-es, 32 bites, RISC processzorral valamint 96 KiB memóriával. A külvilággal való kommunikáció a 16 gpio porton, spi és i2c protokollok felhasználásával lehetséges. A projekt során a NodeMCU elnevezésű fejlesztői boardot használjuk, ami lehetővé teszi többet között a kényelmes usb porton keresztül történő programozást és biztosítja a tápellátást.

Az eszköz kiválasztásánál az egyik fő szempont az volt, hogy rendelkezzen elegendő memóriával a térképünk tárolásához, valamint elég számítási kapacitással a térképező algoritmus valós idejű futtatásához. Mivel a térképünk a 150 x 150 elemet tartalmaz, és elemenként 2 byteot foglal, belátható, hogy ennek a feltételnek eleget tesz az ESP8266. Az ESP8266 előnye egyrészt az alacsony energia igény, másrészt hogy nem kell külön eszköz a hálózati kapcsolathoz, a WiFi modul a rendelkezésünkre áll. Az ESP8266 mellett szól még, hogy létezik hozzá Arduino bootloader, így képessé válik az Arduino nyelven készített programkód futtatására. Ez tulajdonképpen egy leegyszerűsített c++ programozási nyelv, kiegészítve a hardver kezeléséhez szükséges elemekkel. Az egyetlen negatívuma, hogy a rendszer 3.3v-os feszültségen működik, viszont az ultrahangos szenzor 5v-os logikát használ, ezért szükség volt egy logikai szintet eltoló áramkörre a működtetéséhez.

4.2.Szervo modul

4.2.1. Működési elve

Ez a modul felelős az ultrahangos szenzorunk megfelelő irányba állításáért.A szervo áll egy egyszerű elektromos DC motorból, egy potenciométerből és egy áramkörből, ami a vezérlést végzi. A motor elfordulásának hatására a potenciométer kimenetén mérhető feszültség az ellenállás változásból kifolyóan megváltozik, és így a vezérlő értesül a motor elfordulási szögéről. Ha a motor a megfelelő szögben áll, az áram ellátása megszűnik, míg ha nem, akkor a megfelelő szögbe fordul.

11

Page 13: Ultrasonic Mapping

4.2.2. Vezérlése

A tápellátás külső áramforrásból valósul meg, mert az stm panel nem képes a 2 szervo és az egyéb perifériák egyidejű áramellátását biztosítani. A vezérlés PWM (Pulse Width Modulation ) vagyis impulzus szélesség moduláció segítségével valósul meg, ami az elektromos eszközök szabályozására elterjedten alkalmazott megvalósítás. A szervo vezérléshez használt PWM jelet a 8. ábra mutatja be.

Ez a módszer lényegében a vezérlő jel kitöltöttségének változtatásán alapszik, vagyis azt az időtartamot változtatjuk, amíg a jel magas értéket vesz fel. Az EMAX ES08 50 Hz-es frekvenciájú jellel működik, ami 20 ms-os periódusidőnek felel meg. A szervo 5%(1 ms) és 10% (2 ms) kitöltöttségű jelet tud fogadni. Az 5%-os kitöltés a 0 fokos míg a 10%-os a 180 fokos elfordulásnak felel meg.

4.3.DC motor mozgató modul

A robotot kettő darab 3V-os DC motor hajtja. Ezeknek tulajdonságai az adatlapról megnézhetőek. Mozgató modul segítségével a sebességet PWM jellel tudjuk beállítani és így a sebesség ismeretében tudjuk, hogy mennyi ideig kell egyenletes mozgást végezni, hogy a kívánt pozícióba kerüljön a szerkezet.

Alacsony fordulatszám mellett a kerék nem tud kipörögni, így a teljes mozgási időtartomány alatt az elvárt pozícióba képes gurulni a jármű.A 7.2 fejezetben részletezett irányoknak megfelelően lehet fordulni. Differenciál meghajtás segítségével a két DC motor ellentétesen működtethető. Ezzel azt az állapotot érjük el hogy a robotunk képes egy helyben befordulni a kívánt pozícióba. Innen már csak egyenes vonalú egyenletes mozgást kell végrehajtani a két motor egyidejű és azonos sebességű vezérlésével.

12

Ábra 8 PWM vezérlés

Page 14: Ultrasonic Mapping

Differenciál meghajtást egy úgy nevezett H-híd áramkör segítségével lehet megvalósítani. Ezzel a

kapcsolással feszültség vezérelten lehet a motoron a polaritást cserélni és így előre illetve hátramenetbe kapcsolni. Kapcsolási rajzát és a használt eszközt a 10. és a 9. ábra mutatja.

4.4.Szenzorok

4.4.1. Ultrahang szenzor:

Működési elve:Az ultrahangos távolságmérő szenzor emberi fül számára nem hallható, magas frekvenciás hangot bocsát ki, mely visszaverődik a közeli objektumokról. A kibocsátás és a visszaverődés között eltelt időből következtetni lehet a tárgy távolságára a szenzortól.

Távolság=hangsebesség∗( id őeltelt

2 )Ahol a hangsebesség 340

ms

A HC-SR04 távolságmérő szenzornak 4 lába van. Egy táp-föld páros illetve egy Echo és Trigger láb, amin kommunikálni lehet az eszközzel. Ha a trigger lábon legalább 10us ideig magas logikai értéket adunk, akkor a szenzor egy 8 impulzusú ultrahangot bocsát ki innentől kezdve mérhető az eltelt idő. Ekkor az echo láb magas értékre vált és abban is marad mindaddig, amíg a kiküldött ultrahang vissza nem érkezik, amit a mikrofon érzékel. Az eltelt idő lényegében az az idő, amíg az echo lábon magas logikai szint mérhető.

3D-s környezet szkennelés

13

Ábra 9 H-híd kapcsolási rajzÁbra 10 A felhasznált motorvezérlő modul

Page 15: Ultrasonic Mapping

A méréseket fokonként végezzük el, viszont a mérési tartományt leszűkítjük a tervek szerint 90 fokra mivel elsődleges célunk az akadály elkerülés és ehhez nem szükséges a teljes 180 fokos tartomány lefedése mindkét tengelyen. Az ultrahangos távolságmérő szenzor természetéből kifolyóan a mérés nem egy pontban, hanem egy felületen történik és így a fokonkénti mérés hatására egymást lefedő felületeket vizsgálunk. Ezt a redundanciát használjuk fel a mérések pontosítására. A mérési adatokat 10 fokonként csoportosítjuk és ezen csoportok mediánja kerül végül felhasználásra.Azért döntöttünk ezen módszer mellett mert az ultrahangos szkennelés nem gyors folyamat, így meg kellet húzni egy határt hogy mi az ami releváns számunkra és mi az ami nem.

2D-s környezet szkennelésA szkennelés 140 fokos tartományban történik, a lehető legtöbb információt begyűjtve a környezetünkről. Mivel most a környezetünkről kétdimenziós információkat gyűjtünk, a szervóval csak egy vonalban mozgatjuk a távolságmérő szenzorunkat. A háromdimenziós szkenneléshez hasonlóan itt is fellép bizonyos mértékű redundancia a mérési eredmények között, amit a térkép pontosítására használunk fel.

4.4.2. Szenzor mérési eredmények

Az ESP8266 panellel összekötöttük az ultrahangos szenzort. A HC SR04 szenzor sematikus ábráját a 11. ábra szemlélteti.

Ábra 11 Szenzor kapcsolási rajz

14

Page 16: Ultrasonic Mapping

Mint arról korábban is szó volt, a szenzorunknak négy darab lába van. Egy VCC amin a feszültséget adjuk az üzemeléshez, egy GND ami a földeléshez kell. Továbbá egy TRIG és egy Echo láb. A TRIG lábon lehet a Transmittert megszólítani, vagyis egy azon a lábon küldött logikai magas érték elindít egy ultrahang impulzus sorozatot az adóból. Mikor a hang vissza érkezik és ezt a Receiver érzékeli akkor az ECHO lábon logikai 0-ról logikai 1-re vált, vagyis magasra állítja a láb állapotát. A kettő között eltelt idő és a hang terjedési sebességének ismeretében könnyen számítható a megtett út, vagyis a távolság a szenzor és a tárgy között, ahogy azt az 5.4.1 fejezetben bemutattuk.

A pontos méréshez mikroszekundum felbontású időzítőre van szükség, ezt SysTick alapokon készítettünk el.

Miután megtörtént az összeállítás következett a mögöttes kód megírása, ami az egészet működésre fogja bírni.

Kezdetben egy STM panelt alkalmaztunk a teszt környezet felállításához. Mérési eredmények terén ugyan az. A mérő kapcsolást a 12. ábra mutatja be.

Ábra 12 Szenzor teszt mérő összeállítás

15

Page 17: Ultrasonic Mapping

Ábra 13 Távolság mérés eltérés

A 13. ábra jól szemlélteti a szenzor pontosságát a távolság függvényében. Akadály: 20 cm * 9 cm (szélesség∗magasság)Ezek alapján látható, hogy az eszköz 4 cm és 80 cm között 1.5 cm-nél kevesebbet téved, ami még elfogadható hibaérték számunkra. Tehát ebben a tartományban érdemes a pásztázást végezni.

4.5.Adatküldés:

A szenzorból érkező adatokat a szenzor adat fogadó modul fogadja. Térképező és navigáló modul az új adatokat a rendszerbe integrálja valamint ezen adatokat továbbítja a PC-nek, így egy valós idejű térképet láthatunk és nyomon követhetjük a robotunkat. Az adatokat az ESP beépített wifi modulja segítségével továbbítjuk. Mivel a továbbításnál mindig csak az aktuális szkennelés utáni változást vesszük figyelembe, az átküldött adat mennyisége elég alacsony ahhoz, hogy észrevétlenül, a működés megszakítása nélkül történjen meg az átvitel. Amennyiben a használt számítógép rendelkezik erre alkalmas eszközzel, a vezérlő program segítségével létrehozható egy privát vezeték nélküli hálózat, ahova az ESP modul csatlakozhat. Az adatokat egy TCP szerver fogadja, az előre konfigurált ip és port-on keresztül. Mivel a TCP/IP protokoll garantálja, hogy minden csomag megérkezik, ezért nem kell az átvitelből adódó hibákkal törődnünk.

16

Page 18: Ultrasonic Mapping

5.PC szegmens

5.1.Adat fogadó modul

Ez a szegmens a térképet képes látható formában megjeleníteni számunkra, hogy akár vezérelni, akár nyomon tudjuk követhetni a robot helyzetét a térben. Ez a modul tartalmazza az adatokat fogadó TCP szervert, valamint elvégzi a beérkező adatok feldolgozását. Ez abból áll, hogy a kapott változások segítségével frissíti a helyi térképet, majd újrarajzolva azt megjeleníti a felhasználó számára.

Minden robot lépést követően elindul egy új szkennelési szekvencia. A folyamat végén a térkép változott területeinek adatát stringként az ESP panel wifi modulja segítségével eljuttat a rendszer egy megjelenítő eszköznek. Ezen az eszközön a beérkezett adatokat visszaalakítjuk pontokká, majd az ott eltárolt addigi térképet frissítjük az új információkkal.

Ez a modul létrehoz egy wifi hotspotot programozottan, amihez később az esp panelünk képes csatlakozni. A 11000-es porton kommunikálva és statikus ipt használva lett beállítva a rendszer. A 10. kép mutatja az elkészült megjelenítő szoftver komponens adatkapcsolat létrehozó felületét. Saját SSID és jelszó párosítható a hotspotnak.(14. ábra)

Ábra 14.Wifi hotspot létrehozása

17

Page 19: Ultrasonic Mapping

6.Megvalósítás során szükséges lépések:

6.1. 3D-s rekonstrukció

A szenzorból a későbbiek során kinyert információt fel kell majd dolgozni. A mérést végző eszközünk egy gömbi vagy más néven polárkoordináta rendszerben adja vissza az adatokat. Ez nem más, mint hogy egy pontot kettő darab szöggel és az origótól mért távolságával tudjuk leírni. Nekünk a megvalósítás során végre kell hajtanunk egy transzformációt, ami az eredeti adatokat (ami egy, az X tengellyel bezárt szög  valamint egy a Z tengellyel bezárt szög és az origótól a pontig húzódó egyenes hossza) áttranszformálja a jól ismert Descartes-féle koordináta rendszerbe. A robot a talajon az X és Y tengelyek mentén mozog, míg a Z tengely a magasságot jelöli. (15. ábra)

A következő összefüggésekkel lehet számítani:

x=r∗sin (θ )∗cos (φ ) y=r∗sin(θ)∗sin (φ) , z=r∗cos (θ)

18

Ábra 15 Polar-Descartes transzformáció

Page 20: Ultrasonic Mapping

6.2.Megjelenítő 3D modul

A megjelenítés során minden Descartes féle koordináta rendszerbe átváltott pontot el kell helyezni a

képernyőn. Ehhez szükséges először is, hogy meghatározzuk, milyen síkban mozgunk, a rendszert alkotó tengelyek elhelyezkedése, hogy néz ki. A feladat során egy jobb sodrású koordináta rendszert használunk. Ez a döntés azért is alakult így ki, mert OpenGL-t használunk a megjelenítéshez, ami pedig jobb sodrású rendszert használ. Derékszögű koordináta rendszerben két tengely egymásra merőlegesen helyezkedik el és a harmadik ezen két egyenes által kifeszített síkra merőleges úgy hogy a kettő egyenes metszéspontján áthalad. Ahogy az 16. képen is látni, az alapsíkot az X és Y tengelyek feszítik ki. Ebben mozog lényegében az eszközünk majd, illetve egy erre merőleges Z tengely, ami a tárgyak magasságát jelenti a síktól.

Ha ebbe a rendszerre elhelyezünk egy pontot az még csak egy úgynevezett Model tér. Vagyis minden pont egy O(0,0,0) origóhoz képest helyezkedik el. Ezt az alábbi 18. kép szemlélteti egy teáskanna modellel. A képen látható P(1,1,1) pont a Model térben kijelöl egy pontotAhhoz hogy ezt az így megkapott modellt, vagy csupán ponthalmazt használhassunk egy térbeli

rekonstrukció során, ahhoz ezt a Model teret át kell mozgatnunk egy Világ térbe.(17. kép) A Világ tér nem különbözik a Model tértől, ugyan azok a tengelyek, ugyan úgy egy O(0,0,0) koordinátájú origó pontja van. Viszont amiben másabb, hogy a korábbi modellt valamilyen transzformációk segítségével a

19

Ábra 17 Modell tér

Ábra 16 Felvett tengelyek a térben

Ábra 18 Világ tér

Page 21: Ultrasonic Mapping

térben elhelyezzük. Három transzformáció segítségével teljesen, bárhova áthelyezhető a modell nézet origó pontja és a hozzá viszonyított pontok helyzete.Eltolás, Forgatás, Skálázás.Ezek a transzformációk leírhatóak egy-egy mátrixszal, amelyekkel ha az adott pontunk koordinátáit megszorozzuk, az új pont koordinátáját kapjuk.Eltolás:

Ábra 19 Eltolás

Forgatás:(X tengely, Y tengely és Z tengely mentén forgatás)

Ábra 20 Forgatás:(X tengely)

Ábra 21 Forgatás:(Y tengely)

Ábra 22 Forgatás:(Z tengely)

Skálázás:

Ábra 23 Skálázás

20

Page 22: Ultrasonic Mapping

Ábra 24. Mátrix szorzások eredménye

Ezeket a mátrixokat összeszorozhatjuk egymással előre, így gyorsabb a feldolgozás, hiszen

nem minden pontra az összes mátrixszal egyesével szorzunk, hanem egy előre kiszámított

mátrixszal tudunk szorozni. Az 24. kép szemlélteti a mátrix szorzások eredményét. Az új

pozícióban megjelenik a világrendszerben a modellünk.

Már megvan a pontunk

6.2.1. Elkészült modell:

21

Ábra 25 Szenzoros mérés eredmények

Page 23: Ultrasonic Mapping

Az 25. kép mutatja, hogy milyen eredményeket értünk el. Egy pontfelhő alakzat rajzolódik ki. Egy a

szenzorral szemközti falat szkenneltünk be. A szenzorunk a koordináta rendszer tengelyeinek

metszéspontjában, vagyis az origóban helyezkedik el. Mint az látható a kapott eredmények zajosak, mégis

kirajzolják a falat.

6.3.Megjelenítő 2D modul

Ebben a modulban az autót érintő akadályok lesznek reprezentálva egy 2 dimenziós térben. Az eljárás hasonló a 3D-s megjelenítő modulhoz. Az itt megjelenített térkép alapján történik a tényleges útvonal tervezés és akadály elkerülés.

22

Page 24: Ultrasonic Mapping

7.Akadály elkerülés és navigáció

Az információ begyűjtés és kiértékelés helyileg a mikrokontrollerünkön történik. Az ultrahang szenzor által 2 adat kerül továbbításra: egy távolság adat valamint az ultrahang szenzor aktuális pozíciója fokban kifejezve. Ezt a megjelenítésnél taglalt módszerrel át lehet alakítani x és y koordinátákká.

Alap működési séma:

A térkép két dimenziós tömbben van ábrázolva. Memória erőforrás okokból int16 típusú ez a tömb, ami így cellánként 2 byte helyet foglal le a memóriából. Az egyes dimenziók 130 egység nagyságúak. Figyelembe véve a robotunk nagyságát egy cella a valóságban akkora területet fed le, amelyben a robot ütközés nélkül tud bármilyen irányban fordulni. Ebben az esetben 20 cm hosszú és 20 cm széles négyzetekkel reprezentálja a rendszer a valóságot.

A térkép 4 féle állapotot tárol:0: Minden ilyen cella üres, lépésre alkalmas1: Ezekben a cellákban akadály volt detektálva2: A robot pozíciója3: A felhasználó által megjelölt terület ahova el kell jutni

Minden cella inicializáláskor 0 kezdőértéket kap, és a későbbiekben ezek értéke változik. Mivel az eszközünk tárolási kapacitása korlátozott, ezért a térkép módosítások a navigációhoz ugyan ebben a tömbben kapnak helyet, és minden új szkennelés előtt minden értéket nullára állítunk, kivétel ez alól ahol akadály, robot vagy a cél található, vagyis leszedjük az algoritmus tárolt értékeit a térképről. Újabb ultrahangos szkennelés után a térkép frissítése történik és ahol akadály volt oda egy érték íródik be és a robot pozícióját módosítjuk, hogy közelebb lépjen a célhoz. Ezt követi egy vezeték nélküli kommunikáció, ahol a módosított térképünket átküldjük WiFi segítségével a megjelenítő eszközünknek, hogy vizualizált formában is tudjuk a robot aktuális helyét. Ezt követően elkezdődik a korábban beállított irányba a mozgás, hogy a robot pozíciója a valóságban és a térképen konzisztens maradjon. Ezek a lépések addig ismétlődnek, amíg nem érjük el a célt.

7.1.Útkereső algoritmus

Ez a rendszer, egy úgy nevezett A* algoritmust használ az optimális legrövidebb út megtalálásához a robottól a célig. Irodalomkutatás során kiderült, hogy ez az eljárás heurisztikán alapuló eljárás, ahol a kiindulási pont és a cél közötti út költségeinek figyelembe vételével alakítjuk ki a legkisebb költségű utat a célig.Ez a megoldás a Dijkstra valamint a legjobbat először eljárások ötvözése. Olyan gyors, mint a legjobbat először és olyan hatékony, mint a Dijkstra algoritmus. Heurisztikus költség becslésre az alábbi formulát használja:

23

Page 25: Ultrasonic Mapping

F (n)=G(n)+H (n)

Ahol G(n) az éppen vizsgált pozíció költsége a robottól és H(n) pedig a pozíciótól a célig becsült költség nagysága. Heurisztikus költség számításakor nem vesszük figyelembe az akadályozó tényezőket, csak a legkisebb költséget kapjuk. Mivel a rendszer engedélyezi az átlós lépést kettő cella között, így a Manhattan távolságból ki kell vonnunk azt a távot, amit az átlós lépésekkel spóroltunk. A formula a következő:

X irányú távolság(dx)=¿vizsgált cella X pozíció−cél cella X pozíció∨¿Y irányútávolság (dy )=¿ vizsgált cellaY pozíció−cél cellaY pozíció∨¿

H (n)=D∗(dx+dy )+(D 2−2∗D)∗min(dx ,dy )

Ahol D a csak x, illetve y irányú lépés költsége és D2 pedig az átlósan megtett út költsége.Ezek ismeretében a térkép felépítésére a következő eljárást kell használni:

NYITOTT = Robot szomszédos mezőiZÁRT = Üres halmazaktuális = legkisebb költségű NYITOTT Ciklus amíg a legkisebb költségű mező a NYITOTT-ban nem a CÉL: aktuális hozzáadás a ZÁRT-hoz Ciklus amíg aktuális szomszédjait vizsgáljuk: F költség = G költség robottól a szomszédig + H költség szomszédtól a célig honnan = legkisebb g költségű ZÁRT szomszéd ahonnan ide léptünk Ha f költség csökkent akkor aktuális=szomszéd Különben legkisebb f költség kiválasztás NYITOTT-ból Elágazás vége Ciklus végeCiklus vége

Az eljárás végén nincs más dolgunk, csak visszalépkedni a “honnan” mezőkön, amíg a honnan mező szomszédjában nem jelenik meg a robotunk. Ekkor léptetjük a robotot.

24

Page 26: Ultrasonic Mapping

Fontos megszorítás a rendszerben hogy ugyan léphet átlósan a robot, ezt csak akkor teheti meg, ha a robot aktuális szomszéd mezőinek és a lehetséges új mezőnek szomszéd mezőiből képzett halmaznak metszetében nincs akadály mező. Ez a megszorítás látható a 27. képen ahol a nyitott, vizsgált terület nem terjed ki az átlós mezőre ahol fal van a szomszédban. Ezzel a feltétellel meggátolható, hogy ha az akadály a cella sarkában ütközéshez vezessen. A térkép felbontásának növelésével, vagyis a cella méretek csökkentésével ugyancsak csökkenthető az így adódó plusz utak hossza. A 26. képen az algoritmus működése látható amint eléri a hullám a célt.

7.2.Robot irányba állítása

Miután az útkereső algoritmus megtalálta az optimális utat a célig és rekurzívan visszalépve a robotig megállapította a következő cellát, be kell állítani a robot haladási irányát. Nyolc különböző irányt definiálunk ebben a dolgozatban melyet az alábbi kép szemléltet (28. ábra)

25

Ábra 28 Irányok fok értékei

Ábra 27 A robot átlóhoz érkezik, ahol nem mehet át Ábra 26 Az A* megszorítás reprezentáció

Page 27: Ultrasonic Mapping

45 fokonként lehetséges a lépés, 0-nak tekintve az x,y-1 koordinátájú mezőt

7.3.Új pontok szkennelése és térkép aktualizálás

Minden lépés előtt a robotunk újra szkenneli az előtte lévő terepet. Ezt 140 fokos tartományban teszi. Az szervo motorvezérlő modul segítségével 10 fokonként egy újabb távolság mérést hajt végre. Referencia pontként a robottal szemben helyezkedik el a 0 fok. Tőle balra negatív a szög értéke, tőle jobbra pozitív.

Ábra 29 A távolság és a szenzor felbontásának összefüggése

Ahhoz hogy ezeket a méréseket használni tudjuk szükséges a korábban tárgyalt szenzor által mért távolság kiszámítása, a szenzor elforgatási szöge valamint a HC SR04 adatlapján található mérési szög.Mivel az ultrahang terjed a térben, így szükséges annak ismerete, hogy a mért visszaverődés valójában mekkora területen volt mérhető.(29. ábra) Ehhez a trigonometriában tanult szögek és oldalak összefüggését felhasználva megkapható a keresett hossz:

Hossz=2∗távolság /tg(α)

ahol α a szenzorunk adatlap szerinti mérési szögének fele.

Megjegyzés: A szögfüggvények radiánnal számolnak így alkalmazni kell a szög( fokban)∗π /180

összefüggést.

26

Page 28: Ultrasonic Mapping

Előző TDK munkánkból megtanult forgatás és eltolás segítségével könnyen elkészíthető a mért adatok térben elforgatott változatai, melyeket be lehet másolni a térkép tömbbe. Figyelembe kell venni a robot haladási irányát és ehhez kell hozzáadni a szenzor állását így megkapjuk azt a tényleges szöget, amellyel a kezdő, alapértelmezett 0 fokról elforgatjuk a pontot.Mivel folyamatosan figyeljük a teret, valamint a szenzor pontatlanságát korrigálja a megnövelt akadály méret, így szűk helyeken nem tud átmenni az eszköz de nem is ütközik.

7.4.Robot mozgása

A térképezési ötletünk megvalósításának alapja az volt, hogy a dc motorunkkal képesek vagyunk mindig megközelítőleg ugyanakkora távot megtenni. Így mindig csak elemi lépéseket megtéve nyomon tudjuk követni hol tartózkodik a robot a térképen, mivel a térképet ezekhez az elmozdulásokhoz alakítjuk. Ez azt jelenti, hogy mivel két motorunk van, mindkettőnek ugyan annyi fordulatot kéne megtennie egységnyi idő alatt, hogy ez megvalósulhasson. A próbálkozásaink során kiderült, hogy sajnos ez a megközelítés nem működő képes, mivel dc motorok estén az egységnyi idő alatt megtett út bizonyos intervallumon belül váltakozik. Az összeállított teszt konfiguráció a kerék meghajtó dc motorokból és az azokat vezérlő mikrokontrollerből állt. (30. ábra) A tesztek eredményeképpen megtudtuk, hogy a robotunk két

másodperc alatt 31-34cm közötti távolságot tett meg, így a pontos térképezés lehetetlenné válik.

7.5.További tervek a projektben, amik még fejlesztési területek lehetnek

27

Ábra 30. Turtle 2wd az összeállított teszt rendszerrel

Page 29: Ultrasonic Mapping

Az ultrahangos szenzor pontosítása:Mivel a hang terjedési sebessége függ a hőmérséklettől és a páratartalomtól, a pontosságot növelhetnénk, ha ezt a két tényezőt is figyelembe vennénk a számításaink során. Valamint tovább pontosíthatnánk a méréseinket, ha analóg szenzort használva a visszaérkező jelet mi magunk dolgozzuk fel saját algoritmust használva.

A pontatlan mozgás kiegészítése gyorsulásmérővel, forgás dekóderrel, tachométerrel. Ezzel elérhető, hogy pontosabb mozgástartomány lehessen, amivel az algoritmusunk már könnyebben képes megbirkózni.

28

Page 30: Ultrasonic Mapping

8.Tartalmi összefoglaló

A projekt célkitűzése az volt, hogy készítsünk egy rendszert, ami képes a környezetének térbeli modelljét előállítani illetve egy síkbeli modellt alkotni, majd utóbbi alapján egy robotautó navigációját megvalósítani. A rendszert két részre bontottuk: hardveres és szoftveres részre. A hardveres rész áll egy ultrahangos távolságmérő szenzorból, egy szervo motorból és egy mikrokontrollerből, ami ezek vezérlését végzi valamint a kerék forgató motorokból és egy wifi modulból. Az ultrahangos szenzor szolgáltatja a minket körbevevő akadályokról a távolsági adatokat, a két szervo motor pozícionálja a szenzort, míg a mikrokontroller vezérli mindezeket, valamint fogadja és továbbítja a mért adatokat. A szoftveres rész a mikrokontrolleren futó vezérlő programot jelenti valamint egy külső megjelenítő rendszert, ami fogadja a mért adatokat és azok alapján előállítja a térbeli modellt grafikus felületen. Irodalomkutatásunk eredményeképpen világossá váltak az ultrahangos távolságmérés főbb hátrányai: a nagy nyitószög és az akadály felülete és a szenzor által bezárt szög. Előbbiből a távolság növekedésével csökkenő felbontás, míg utóbbiból bizonyos akadályok detektálásának hiánya következik. A későbbiekben ezeket a jelenségeket méréseink során mi is tapasztaltuk. Ez a dolgozat végigvezetett egy ultrahangos eszköz elkészítésén, valamint megadta a hozzá kellő alaptudást. Bemutatta a rendszer gyenge pontjait illetve hogy mi az, amit még fejleszteni illetve csinálni kellene a projekten.

A kapcsolódó munkák fejezetben megismerkedtünk az ultrahangos távolságmérés előnyeivel és hátrányaival, melyek, mint kiderült főképpen az ultrahang fizikai jellemzőiből fakadnak éppen ezért teljesen kiküszöbölni a hatásukat nem lehet. A nagybetekintési szög hatását a mérési távolság limitálásával, míg az akadály detektálásának betekintési szög függését a több irányból történő méréssel próbáltuk csökkenteni. A témában sok hasonló dolgozatot találtunk, amiből a legfontosabbakat említettük meg. A fellelhető irodalmakat áttekintve megtudtuk, hogy megvalósítható egy robot navigációja ultrahangos távolságmérő szenzor alapján is, még, ha nem is olyan pontossággal, mint azt előzetesen terveztük. A térképezés megvalósítására több megközelítést is számba vettünk, majd ezeket a saját céljainkkal összevetve alkottuk meg a felhasznált módszert.

A specifikáció fejezetben az irodalomkutatás során szerzet tapasztalatainkat felhasználva alkottuk meg a saját rendszerünk specifikációját. Először általánosan megfogalmaztuk, hogyan tervezzük a feladat megoldását, itt kitérve az akadályelkerülés problémájára is. Alapötletünk az volt, hogy a teret négyzetek halmazára bontjuk fel, amik a valóságban 20 cm-nek felelnek meg. Majd a távolságmérő szenzorunk segítségével detektáljuk az akadályokat és ezeket megjelöljük a térképen. Amelyik négyzetben akadály szerepel, az nem járható terület a robotunk számára. Ezután a robot elmozdulását nyomon követve pozícionáljuk azt a térképen, és rögzítjük az újabb pontokat. Majd egy átfogó tervet készítettünk, ahol felvázoltuk a rendszert alkotó főbb modulokat, és azok egymáshoz viszonyított kapcsolatát. A felbontásban szereplő részek egymástól függetlenek, önálló részegységek, így azok külön-külön fejleszthetőek a csapat tagjai által. A munka végén ezek összeillesztése alkotja a teljes működő rendszert.

29

Page 31: Ultrasonic Mapping

Végül összegyűjtöttük milyen alkotóegységekre lesz szükség a projekt során, majd megkezdtük ezek beszerzését.

A hardver szegmens fejezetben részletesen kitértünk a robot hardver elemeinek leírására és működésére. Mindent ide soroltunk, ami nem a PC-s komponensen történik. Bemutattuk a rendszer lelkét alkotó ESP8266 mikrokontrollert, amire teljesítménye, alacsony fogyasztása, és könnyű programozhatósága révén esett a választásunk. Ezen a mikrokontrolleren történik a szenzoros mérések eredményének fogadása, feldolgozása, majd a már meglévő térképünkre történő felvezetése. A térkép frissítéséhez szükségünk van az előző mérési ponttól mérhető távolságra, hogy az új pontokat a megfelelő helyre illeszthessük. Bemutattuk a robot mozgását biztosító DC motorok működtetésének elvét, valamint a szenzort forgató szervo motort is. Minkét esetben szoftveres PWM jelen alapuló megoldást használtuk fel. Ugyancsak itt kapott helyet az ultrahangos szenzorra történő távolságmérés működési elvének leírása, valamint a mérési eredményeink összefoglalása. Itt megállapítottuk, hogy a szenzor 80 cm-ig mindössze 1.5 cm-t téved, ezért úgy ítéltük meg, hogy felhasználható a munkánk során.

A PC szegmens fejezetben a PC-n történő adat megjelenítést és az ahhoz szükséges eszközöket mutattuk be. Szükségünk volt egy vezeték nélküli hálózatra, és egy szerverre, ami a hardver szegmenstől érkező adatokat a helyi térképre is felvezeti. Ezek az adatok csak az adott mérés folyamán történt változásokat jelentik, a teljes térképet nem küldjük át.

A megvalósítás során szükséges lépések fejezetben helyet kapott az előző TDK munkánkból származó térbeli modellezés folyamata, melyből felhasználtuk az új pontok beillesztésénél az ismertetett képletet, csak síkra vonatkoztatva.

Az akadály elkerülés és navigáció fejezete foglalja össze a térképezés menetét, valamint ismerteti a felhasznált útkereső algoritmusunkat. A kiindulási pont, hogy a térképünk üres, és van egy pont kijelölve, amit célnak tekintünk, ezt próbáljuk elérni az ismeretlen környezetünkben. A robot mozgását diszkrét lépésekre bontjuk fel. A térképet folyamatosan töltjük fel a mérések eredményeivel, majd az útkereső algoritmusunk kiszámolja, merre tegyük meg a következő lépést.

30

Page 32: Ultrasonic Mapping

9.Irodalomjegyzék

[1] Jerker Nordh Karl Berntorp: Extending the Occupancy Grid Concept for Low-Cost Sensor-Based SLAMhttp://lup.lub.lu.se/luur/download?func=downloadFile&recordOId=2440780&fileOId=3450806[2]James L. Crowley World Modeling and Position Estimation for aMobile Robot Using Ultrasonic Ranging:http://venus.inrialpes.fr/jlc/papers/ICRA89-LocalModel.pdf[3] Johann Borestein és Yoram Koren: Obstacle Avoidance with Ultrasonic Sensorshttp://www-cgi.cs.cmu.edu/afs/cs.cmu.edu/Web/People/motionplanning/papers/sbp_papers/integrated1/borenstein_obstacle_avoidance.pdf[4] Simon Attila: Parkolási asszisztens RC autóhoz szakdolgozat[5] Kovács Zsolt: Ultrahangos térképezés szakdolgozat[6] Richard Balogh: Acrobothttp://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Acrob[7] Zelenka Gábor és Tonté Gergely: Ultrahangos térképezés és navigáció[8] Xiao Cui and Hao Shi: A*-based Pathfinding in Modern Computer Gameshttp://paper.ijcsns.org/07_book/201101/20110119.pdf

31

Page 33: Ultrasonic Mapping

10. Ábrajegyzék

Ábra 1 Szenzor látószög...............................................................Error! Bookmark not defined. [1] http://lup.lub.lu.se/luur/download?func=downloadFile&recordOId=2440780&fileOId=3450806Ábra 2 Szegmens..........................................................................Error! Bookmark not defined. [2]James L. Crowley World Modeling and Position Estimation for a Mobile Robot Using Ultrasonic RangingÁbra 3 Szenzorok elhelyezkedése................................................Error! Bookmark not defined. [3] Johann Borestein és Yoram Koren: Obstacle Avoidance with Ultrasonic SensorsÁbra 4 A szenzorok betekintési szöge..........................................Error! Bookmark not defined. [3] Johann Borestein és Yoram Koren: Obstacle Avoidance with Ultrasonic Sensors

Ábra 5 Szenzor beesési szög........................................................Error! Bookmark not defined. [3] Johann Borestein és Yoram Koren: Obstacle Avoidance with Ultrasonic SensorsÁbra 6 Akadály reprezentáció.......................................................Error! Bookmark not defined.

[4] Simon Attila: Parkolási asszisztens RC autóhoz szakdolgozat 40. oldalÁbra 7 Rendszerterv......................................................................Error! Bookmark not defined.Ábra 8 PWM vezérlés....................................................................Error! Bookmark not defined.

[4] Simon Attila: Parkolási asszisztens RC autóhoz szakdolgozat 18. oldalÁbra 10 H-híd kapcsolási rajz........................................................Error! Bookmark not defined.

http://blog.solutions-cubed.com/wp-content/uploads/2012/06/h-bridge.pngÁbra 9 A felhasznált motorvezérlő modul......................................Error! Bookmark not defined.http://img.dxcdn.com/productimages/sku_157149_2.jpgÁbra 11 Szenzor kapcsolási rajz...................................................Error! Bookmark not defined.

http://articulo.mercadolibre.com.ec/MEC-407854569-modulo-sensor-ultrasonico-hc-sr04-medidor-distancia-arduino-_JMÁbra 12 Szenzor teszt mérő összeállítás......................................Error! Bookmark not defined.Ábra 13 Távolság mérés eltérés....................................................Error! Bookmark not defined.Ábra 14.Wifi hotspot létrehozása...................................................Error! Bookmark not defined.Ábra 15 Polar-Descartes transzformáció.......................................Error! Bookmark not defined.Ábra 16 Felvett tengelyek a térben................................................Error! Bookmark not defined.Ábra 17 Világ tér............................................................................Error! Bookmark not defined.Ábra 18 Modell tér.........................................................................Error! Bookmark not defined.Ábra 19 Eltolás..............................................................................Error! Bookmark not defined.Ábra 20 Forgatás:(X tengely)........................................................Error! Bookmark not defined.Ábra 21 Forgatás:(Y tengely)........................................................Error! Bookmark not defined.Ábra 22 Forgatás:(Z tengely).........................................................Error! Bookmark not defined.Ábra 23 Skálázás..........................................................................Error! Bookmark not defined.Ábra 24. Mátrix szorzások eredménye..........................................Error! Bookmark not defined.Ábra 25 Szenzoros mérés eredmények........................................Error! Bookmark not defined.

32

Page 34: Ultrasonic Mapping

Ábra 26 Az A* megszorítás reprezentáció.....................................Error! Bookmark not defined.Ábra 27 A robot átlóhoz érkezik ahol nem mehet át.....................Error! Bookmark not defined.Ábra 28 Irányok fok értékei............................................................Error! Bookmark not defined.Ábra 29 A távolság és a szenzor felbontásának összefüggése....Error! Bookmark not defined.Ábra 30. Turtle 2wd az összeállított teszt rendszerrel....................Error! Bookmark not defined.

33