Tudományos Diákköri Konferencia BMF-NIK, IAR 2005. November 10. PAL COMMANDER MOBIL ROBOT NAVIGÁCIÓJA PAL-OPTIKÁS MEGVALÓSÍTÁSSAL Köszöntöm a Tisztelt hallgatóságot. Pekár Tamás vagyok, társammal Mornailla Lászlóval fejlesztettük a PAL Commander nevű mobil robot navigációjával foglalkozó projektet. A Budapest Műszaki Főiskola Neumann János Informatikai Főiskolai kar III. évdes tanulói vagyunk. Fejlesztők: Mornailla László Pekár Tamás Solymosi Csaba Tudományos Diákköri Konferencia BMF-NIK, IAR 2005. November 10. Konzulens: Vámossy Zoltán
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Célkitűzés Mobil robot Többféle navigációs viselkedés Homogén, gyengén textúrázott környezet Akadálykerülés Vonalkövetés Objektumkövetés Vakvezető robot Célunk egy olyan guruló mobil robot készítése, mely önálló ütközésmentes navigációra képes: homogén vagy gyengén textúrázott közegben való akadálykerülést, vonalkövetést végez és a környezeti jelek figyelembevételével azokra képes legyen reagálni. Követelmény, hogy a robot összeállítása egyszerű, könnyen megépíthető legyen a megfelelő, korszerű hardverelemek összeállításával. A robotot egy optikai érzékelővel látjuk el, mely kielégítő információt biztosít a navigációhoz. 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Műszaki felépítés A rendszer felépítése kliens-szerver arhitektúrára épül. A kliens a mobil robot, a szerver a feldolgozó egység a számítógép. A roboton vezetéknélküli kamera található, 1.2 GHz-en közvetíti a rádiójelet a videojel fogadóba, amely composite bemeneten kerül átadásra a digitalizáló kártyába. A beérkező képfolyamot vezérlő szoftver dolgozza fel a számítógépen és az általa kinyert információból automatikusan irányítja a robotot. Fejlesztés során kétféle autó különböző irányítását készítettük el. 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba RC vezérlés Optocsatoló (CNY 744) 6 mozgási irány Párhuzamos port Byte értékek: 0: stop 1: előre 2: hátra 4: kerék jobbra 6: jobbra hátra 7: jobbra előre 8: kerék balra 9: balra előre 10: balra hátra Nincs sebességszabályzás Az első robotunk alapját RC autó alkotja, ahol a PC és a távirányító kapcsolatát egy optocsatolóval oldottuk meg. Ennek segítségével párhuzamos porton keresztül tudunk bájt értékben 9 irányítási értéket kiküldeni. Az autó hátulütője a sebességszabályozás hiánya. 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Modell RC vezérlés I. Változtatható kommunikációs frekvencia Pontosabb precíziós irányítás Soros port Irány #0 - #17: balra #18 - #19: középen #20 - #40: jobbra Sebesség #0 - #21: hátra #22: stop #23 - #40: előre PIC mikrokontroller (18F1320) 2 szintű megszakítás 18 láb Az újonnan elkészült robot egyik előnye, hogy az autó, és a távirányító kommunikációs frekvenciája megváltoztatható, így több hasonló Modell RC–t is lehet egyidejűleg vezérelni. Másik fontos előnye a precíziós irányítás, hogy az irányt, és a sebességet tetszőlegesen lehet állítani. Vezérléshez két értéket kell kiküldeni soros porton, az irányt, és sebességértékeket. Ezek intevalluma: 0-40-ig terjedhet. Az eredeti távirányítóba plusz elektronikával csatlakozunk be. PIC mikrokontrollerrel való megoldás tűnt a legmegfelelőbb választásnak, sokrétű tudása, és kis mérete miatt. A dokumentációban leírtakhoz képest egy hatékonyabb megoldást valósítottunk meg. 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
Modell RC vezérlés II. Generált vezérlő impulzusok (PIC) 1. jel: 15ms periódusidő 2. jel: első adatból számolt időérték 3. jel: második adatból számolt időérték Az áramkör elvi kapcsolási rajza a jobboldali ábrán látható. Három impulzussal vezérelhetjük az távirányítót. Az első impulzus 15 ms-onként követi egymást, ez a periódusidő. Ez után, a soros porton vett első adatból számolt időért elteltével küldjük a második impulzust, ami az irányítást vezérli. Majd a harmadik impulzust a második adatból számolt időérték elteltével küldjük ki a sebesség vezérléséhez. A kiegészítő elektronika elvi kapcsolási rajza 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Mobil robotok Ezeken a képeken látható a két működőképes robot, melyek egy optikai szenzorral (vezetéknélküli kamerával) rendelkeznek. Míg az RC-nél a kamera rögzítése fix, addig a Modell RC-nél a felfüggesztés magassága változtatható, így nagyobb terület belátására képes. A kamera PAL-optikával van felszerelve, így annak látószöge 360 fok. RC Modell RC 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba A PAL-optika Előnyei Nincs mozgó alkatrész Nincs szükség fókuszálásra 360º-os körkép 2D-re vetítése Körgyűrűs kép Polár koordinátával leírható PAL holttér Perspektív nézet Tulajdonságai PAL középpont Belső holttér sugara (r1) Nagy kör sugara (r2) A PAL-optika egységes optikai blokk: 2 visszaverő és 2 fénytörő felületből áll. A valós és a virtuális kép is az optikán belül keletkezik, ezért további lencse használata is szükséges. Végtelenben is éles képet biztosít. A teljeslátószögű rendszerek a központú képalkotás elvére épülnek. A kép egy pontban tart össze. A kép közepén levő holttér nem vesz részt a képalkotásban. A környezet 360fokos képét 2D-re vetíti le ezzel körgyűrűs képet alkot, azaz polár koordinátával leírható hengervetületet ad. Előnye hogy halszemoptikánál nagyobb látószögű, és nincs szükség mozgó alkatrészre a környezet vizsgálatához. Nemcsak az irányt hanem a távolságot is megadhatja. Könnyen áttranszformálható a perspektív nézetbe, feldolgozás szempontjából nem nyújt több információt. Tulajdonságai: a középpont, a belső sugár és külső sugár. A PAL-középpont gyakran eltolódva helyezkedik el a kép közepéhez képest, ezért KORRIGÁCIÓ szükséges. 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Vezérlő szoftver Delphi C# Előfeldolgozás Pixelnoise Élkeresés Sobel Susan Előfeldolgozás RGB Treshold HSL Élkeresés Canny 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
Vezérlő szoftver Delphi AI működése Vonalkövetés Meghatározható vonalszín Detektáló sorok (balra-jobbra) Felső treshold – vonal azonosítás Alsó treshold – akadály veszély Irányítási döntések meghozatala Nincs detektált vonal - tolatás Akadálykerülés Kontúrpont-detektálás Pixelzaj-szűrés Akadálydetektálás detect(90) – előre detect(270) – hátra ... Ütközés veszély - tolatás 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Vezérlő szoftver C# AI működése Univerzális algoritmus Pályanavigáció Vonalkövetés Objektumkövetés Paraméterek Távolság Keresési szög Threshold minimum 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
Eredmények RC tesztvideó Vonalkövetés Közel homogén közeg Fehér vonal Nehézségek Fehér út, fehér fal Fényvisszaverődés Nagy haladási sebesség Sikeres vonalkövetés. Tapasztalatok, nehézségek, megoldandó problémák 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Eredmények Modell RC tesztvideó 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Konklúzió Könnyen reprodukálható komponensek Továbbfejleszthető Költségtakarékos eszközök Egyszerű összeállítás Továbbfejlesztés Térképezés modul Vakvezető robot -Sikerült találnunk olyan hardveres és szoftveres megoldásokat, amelyek segítségével könnyen implementálható az automatikus navigáció más robotos rendszereke is, egy optikai érzékelőt felhasználva. -Előnye az egyszerű összeállítás, olcsó megvalósítás. -Optimális esetben sikeres akadálykerüléses navigációt képes folytatni. -Számítási igénye minimálisra csökkenthető, így alternatív feldolgozási eszközök, pl kéziszámítógépek vagy újabb generációs mobiltelefonok is képesek lehetnek erre a célra (kamerával felszereltek) 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Hivatkozások Omnidirectional Vision page: http://www.cis.upenn.edu/~kostas/omni.html A PAL – optika és a fotózás: http://fotomuveszet.elender.hu/0012/001216.html CNY 74-4 optocsatoló: www.produktinfo.conrad.de/datenblaetter/175000-199999/183610-da-01-en-CNY742.pdf Kónya László - Mikrovezérlők alkalmazástechnikája, ChipCAD Elektronikai Disztribúció Kft., 2000,2003 Optocsatoló Mikrokontroller PAL optika 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Köszönjük a figyelmet! Örömmel fogadunk a projekt irányában történő bármilyen érdeklődést. Elérhetőség Mornailla László lacc@mad.hu Pekár Tamás keni@mad.hu Solymosi Csaba Gergő socsaba@gmail.com Honlapunk: http://roberta.obuda.kando.hu/iar/2004_2005/Palcom 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Kérdések? 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
Vezérlő szoftver Irányítás modul Akadálykerülés Kontúrpont-detektálás Pixelzaj-szűrés Akadálydetektálás detect(90) – előre detect(270) – hátra ... Ütközés veszély - tolatás -Akadálykerüléshez előfeldolgozásként élkereső algoritmust használuk, melynek eredményességét pixelzajszűréssel támogatjuk. -A vezérlés akkor működőképes, ha homogén vagy gyengén textúrázott környezetben navigáltatjuk a robotot. -Ekkor a PAL-holtpont szélétől (a középponttól r1 távolságban) különböző szögértékben kontúrpont-távolságot mérünk. -Ezen távolságok alapján küldjük ki a robot számára az irányítási adatokat. -Esetünkben a gyorsabb haladást tekintjük alapvetőnek, tehát a körkép vizsgálata főleg a felső részen történik. Ha a távolságértékek olyannyira lecsökkentek hogy a robot már nem képes az akadály kikerülésére a mögöttes részt vizsgáltatva lehetséges esetben tolatást végeztetünk. 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
Vezérlő szoftver Vonalkövetés Meghatározható vonalszín Detektáló sorok (balra-jobbra) Felső treshold – vonal azonosítás Alsó treshold – akadály veszély Irányítási döntések meghozatala Nincs detektált vonal A kép alsó felét vizsgáljuk a fenti metódussal -Vonalkövetés során egy meghatározott színintenzitáshoz hasonlítjuk a további pixeleket, így becsülve a követendő vonal helyzetét a robothoz képest. -A PAL-középpont x koordinátáját tekintve alapértéknek különböző y értékekkel 3 vonalban vizsgáltatjuk azokat. Ahol a színintenzitás többször egymás után is nagyobb, az a pont potenciális útnak tekintendő. -A 3 detektáló vonal irányát és nagyságát meghatározva irányváltoztató adatot küldünk ki a robot részére. -Ha az első vonal mentén az intenzitás alacsony az akadálynak minősül, és ellentétes irányváltoztatásra kényszeríti a robotot. -Ha nincs értékelhető vonal vagy akadály, tolatás történik, és a mögöttes rész vizsgálatára is sort kerítve hasonló módszerrel kerestethetünk alkalmas pályát. 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
Vezérlő szoftver Képfeldolgozó modul Színkiemelés Éldetektálás lépései Zajcsökkentés (Noise reduction) Élkiemelés (Edge enhancement) Éldetektálás (Edge detection) Éllokalizálás (Edge localisation) -Ahhoz hogy megfelelő információkat tudjunk az irányítás számára biztosítani, a rádiójelen beérkező képfolyamot előfeldolgozásra kell küldeni. -Az előfeldolgozás első lépése a kép zajmentesítése. Erre azért van szükség, mivel a fel-felvillanó pixelek, apróbb intezitásváltozások a képben nagy arányban ronthatják a detektálás folyamatát. Ezek a zajok többnyire a rádiós jeltovábbításból származnak. -Megoldásként különböző szűrőket (gauss, medián), closing(zárás) és opening(nyitás) algoritmusokat használhatunk. -További eredményes zajelnyomást és élesítést DirectShow filterrel, az ingyenes, nyílt forráskódú ffdshow használatával is elérhetünk. Segítségével a nagyobb pixelintenzitásváltozások kiküszöbölhetőek, így tovább lehet küldeni őket a következő feldolgozási szintre. 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Továbbfejlesztés Kiszolgáló egység Kistávú szállítás Térmegfigyelés Robotfoci Az információkinyerés lépései a) eredeti kép b) háttérszűrés és hisztogram c) végeredmény http://www.dei.unipd.it/~emg/papers/emgIROS04-OMCL.pdf http://robotics.aist-nara.ac.jp/~yoshio/papers/papers/IROS99_omni.pdf http://www.dei.unipd.it/~emg/papers/emgIROS04-OMCL.pdf http://www.cis.pku.edu.cn/vision/Visual&Robot/people/pi%20wenkai/doc/pi-motion-detection.pdf 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Optical flow 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba PAL-optika Panoramic Annual Lens Greguss Pál professzor találmánya NASA díj (1989) Széleskörű felhasználás Katonai Orvosi Űrkutatás A PAL-optika professzor Greguss Pál találmánya. A professzor által készített optikán nagyon jól látszódnak a hasonlóságok a kagyló szemével (2. ábra). A C felület kiképzése és az optikailag a levegőnél sűrűbb anyag gyűjtőlencseként viselkedik (ez a kagyló szemlencséje). A tárgyról a fény az A homorú tükörre vetődik (ez felel meg a szem homorú gömbtükörének), az optikán belül valódi kép keletkezik a B tükör felületén (a kagyló retinájának felel meg). Műszakilag mi nem tudunk a kagyló retinájának megfelelő görbült érzékelő felületet készíteni, ezért a képet egy domború gömbtükörrel vetítjük ki az optikából (mint a Schmidt-távcsőben). A B tükör és a D felület (törés - sűrűbb közegből ritkább közegbe -) miatt virtuális kép keletkezne az optikán kívül. Emiatt az érzékelő felületre vetítéshez még szükséges egy lencserendszer is. 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
Tervezett – lehetséges irányzatok IPL, OpenCV 24bit-es kamera Optical flow Ojektumkövetés Térfigyelés Wireless adatátvitel (Audio/Video) GPS navigáció Térképezés Hanganalízis Robot Auto Racing Simulator Az OpenCV az Intel® Open Source Computer Vision Library [2.1] rövid neve. Ez egy olyan algoritmusgyűjtemény C ill. C++ nyelvre, melyben több, mint 300 közép- ill. magas szintű API függvénnyel a legnépszerűbb képfeldolgozási és a gépi látás témakörébe tartozó algoritmus került implementálásra. Az Intel® Integrated Performance Primitives (IPP)-re támaszkodva [2.2] optimális sebességű kódot ad, és legfőbb előnye, hogy készen kapott függvényekkel dolgozhatunk, ami csökkenti a hibalehetőségeket, illetve javít a kód olvashatóságán. Az OpenCV highgui segítségével könnyen olvashatunk be és jeleníthetünk meg ablakban különböző képformátumokat. Ezeket azután valamilyen függvénnyel manipulálva újra kirajzoltathatjuk, akár másodpercenkénti többszöri frissítéssel is, vibrálás nélkül. 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Exploratores II. Exploratores II. Lépegető robot, mely PAL-optika segítségével detektálta a lábak környezetében levő akadályokat. 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba Vezérlő szoftver A program részei PALCom Keretprogram Imagetrans Képfeldolgozás RadioControl LPT1 COM1 AI Mesterséges intelligencia Bele kell rakni a nagy ábrába 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
Szoftveres megvalósítás Imagetrans modul SUSAN éldetektálás Konturkeresés nem differenciáló operátorral Smith és Brady ötlete (http://www.fmrib.ox.ac.uk/~steve/susan/susan/node1.html) A SUSAN algoritmus segítségével meghatározhatóak egy cellatérkép akadályainak határolóvonalai és sarokpontjai. Ezek között kell a navigációt megvalósítanunk. Evvel a módszerrel nem kell minden egyes képpontot figyelembe venni a navigáció során csupán a vonalakat, s ezáltal kisebb az erőforrásigény, noha induláskor, illetve egy másik cellába való átlépéskor előkalkulációra van szükség, ami egy rövid időre nagy mennyiségű számítási kapacitást igényel. Az következő ábrán látható a kör alakú maszk, amely végigpásztázza a képet. Ennek a maszknak a középső pixelje a nucleus. 2.1.1. ábra: A mintán négy kör alakú maszk helyezkedik el különböző pozíciókban 2.1.2. ábra: Négy kör alakú maszk hasonlóság alapú szinezéssel, az USAN-ok a maszk fehér részeiként vannak ábrázolva A maszkban található pixelek intenzitása összehasonlításra kerül a nucleus intenzitásával. A maszk területét USAN-nak nevezzük (Univalue Segment Assimilating Nucleus). A SUSAN-elv alapja a kép minden egyes pixelének a környezetében található hasonló intezitású pixelekkel történő asszociációja. Ez a környezet, azaz az USAN sok információt hordoz a kép felépítéséről. Az USAN mérete, centrális és második nyomatéka alapján élek találhatók. A többi tulajdonság-detektáló algoritmussal ellentétben itt nem használunk származtatott képeket, illetve zajszűrőket. Az USAN terület a legnagyobb az azonos pixeleket tartalmazó “sík” területen, kb. felére csökken az élekhez közel, illetve még kisebbre a sarokpontokban. 2.1.3. ábra: Az egyes pixelekhez tartozó USAN terület 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
Szoftveres megvalósítás Imagetrans modul SUSAN éldetektálás Az ugrásszerű átmenet elkerülése, stabilabb eredményt ad 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
Szoftveres megvalósítás Imagetrans modul SUSAN éldetektálás USAN-nak nevezzük (Univalue Segment Assimilating Nucleus). A SUSAN-elv alapja a kép minden egyes pixelének a környezetében található hasonló intezitású pixelekkel történő asszociációja. A SUSAN algoritmus segítségével meghatározhatóak egy cellatérkép akadályainak határolóvonalai és sarokpontjai. Ezek között kell a navigációt megvalósítanunk. Evvel a módszerrel nem kell minden egyes képpontot figyelembe venni a navigáció során csupán a vonalakat, s ezáltal kisebb az erőforrásigény, noha induláskor, illetve egy másik cellába való átlépéskor előkalkulációra van szükség, ami egy rövid időre nagy mennyiségű számítási kapacitást igényel. Az következő ábrán látható a kör alakú maszk, amely végigpásztázza a képet. Ennek a maszknak a középső pixelje a nucleus. 2.1.1. ábra: A mintán négy kör alakú maszk helyezkedik el különböző pozíciókban 2.1.2. ábra: Négy kör alakú maszk hasonlóság alapú szinezéssel, az USAN-ok a maszk fehér részeiként vannak ábrázolva A maszkban található pixelek intenzitása összehasonlításra kerül a nucleus intenzitásával. A maszk területét USAN-nak nevezzük (Univalue Segment Assimilating Nucleus). A SUSAN-elv alapja a kép minden egyes pixelének a környezetében található hasonló intezitású pixelekkel történő asszociációja. Ez a környezet, azaz az USAN sok információt hordoz a kép felépítéséről. Az USAN mérete, centrális és második nyomatéka alapján élek találhatók. A többi tulajdonság-detektáló algoritmussal ellentétben itt nem használunk származtatott képeket, illetve zajszűrőket. Az USAN terület a legnagyobb az azonos pixeleket tartalmazó “sík” területen, kb. felére csökken az élekhez közel, illetve még kisebbre a sarokpontokban. 2.1.3. ábra: Az egyes pixelekhez tartozó USAN terület 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
Szoftveres megvalósítás Imagetrans modul SUSAN éldetektálás A nucleus és a maszkban lévő pontok eltérése alapján megjelölés: A hasonló intenzitásúak száma A területen levő élek meghatározása az élválasz függvénnyel történik (g geometriai küszöb) 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba
PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba http://robotics.aist-nara.ac.jp/~yoshio/papers/papers/IROS99_omni.pdf 2005. november 10. PAL-Commander Mornailla László, Pekár Tamás, Solymosi Csaba