PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
PALCOM Navigáció és térképezés PAL-optika alkalmazásával Budapesti Műszaki Főiskola Neumann János Informatikai Főiskolai Kar Informatikai és Automatizált Rendszerek szakirány 2006. november 17.
Készítette: Mornailla László, IV. évfolyam Pekár Tamás Gábor, IV. évfolyam Solymosi Csaba Gergő, IV. évfolyam http://palcom.bmfnik.hu Konzulens: Vámossy Zoltán főiskolai docens
1
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
3
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
Tartalomjegyzék 1
BEVEZETÉS .............................................................................................................................................................. 6
2
IRODALOMKUTATÁS .............................................................................................................................................. 7 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9
A ROBOT FOGALMA................................................................................................................................................. 7 A ROBOTOK CSOPORTOSÍTÁSA HELYVÁLTOZTATÁSI KÉPESSÉGÜK ALAPJÁN ........................................................................... 8 A ROBOTOK NAVIGÁCIÓJA ...................................................................................................................................... 10 TÉRKÉPEZÉSEN ALAPULÓ NAVIGÁCIÓ MEGVALÓSÍTÁSA.................................................................................................. 11 TOVÁBBI HASONLÓ PROJEKTEK ................................................................................................................................ 13 TELJES LÁTÓSZÖGŰ (OMNIDIRECTIONAL) RENDSZEREK .................................................................................................. 14 PAL OPTIKA ........................................................................................................................................................ 16 A MESTERSÉGES NEURÁLIS HÁLÓZATOK ..................................................................................................................... 18 NEURÁLIS HÁLÓZATOK ALKALMAZÁSA KÉPFELDOLGOZÁSI RENDSZEREKBEN ....................................................................... 18
3
RENDSZER VÁZLAT ............................................................................................................................................... 19
4
HARDVER ELEMEK ................................................................................................................................................ 20 4.1 4.2 4.3 4.4
MODELL AUTÓK ................................................................................................................................................... 20 TÁVIRÁNYÍTÓK ..................................................................................................................................................... 21 KAMERÁK ........................................................................................................................................................... 25 FELDOLGOZÓ EGYSÉG ............................................................................................................................................ 26
5
ALKALMAZOTT KÉPFELDOLGOZÁSI ALGORITMUSOK ........................................................................................... 27
6
A PROTOTÍPUS RENDSZER (2004-2005) ............................................................................................................... 30 6.1 6.2 6.3 6.4 6.5 6.6
7
A RENDSZERSZOFTVER MŰKÖDÉSE ..................................................................................................................... 34 7.1 7.2 7.3 7.4 7.5
8
AZ OPTIKA PARAMÉTEREINEK MEGÁLLAPÍTÁSA ............................................................................................................ 39 KÉPKITERÍTÉS ....................................................................................................................................................... 40 POZÍCIÓ MEGÁLLAPÍTÁSA ....................................................................................................................................... 40 NEURÁLIS HÁLÓ ................................................................................................................................................... 41 A TÉRKÉP TARTALMI FELÉPÍTÉSE - A BLENDING SZÜRŐ ................................................................................................... 42 STATIKUS SZŰRÉS .................................................................................................................................................. 42 A TÉRKÉP STRUKTÚRÁLIS FELÉPÍTÉSE ......................................................................................................................... 42 ÖSSZEFOGLALÁS ................................................................................................................................................... 43
DÖNTÉSHOZÓ MODUL ......................................................................................................................................... 44 9.1 9.2 9.3
4
ÁTTEKINTÉS ......................................................................................................................................................... 34 FELHASZNÁLT KÖNYVTÁRAK .................................................................................................................................... 35 A SZOFTVER KERETRENDSZERE ................................................................................................................................. 37 INPUT MODUL ...................................................................................................................................................... 38 ELŐFELDOLGOZÓ MODUL (FILTER) ........................................................................................................................... 38
A DÖNTÉSTÁMOGATÓ RENDSZER (PALLIBRARY) ................................................................................................. 39 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8
9
A PROTOTÍPUS KERETRENDSZER ............................................................................................................................... 30 AZ ELŐFELDOLGOZÓ MODUL (IMAGETRANS) .............................................................................................................. 31 RADIOCONTROL MODUL ........................................................................................................................................ 31 DÖNTÉSHOZÓ MODUL ........................................................................................................................................... 31 A PAL-KALIBRÁCIÓ MŰKÖDÉSE ............................................................................................................................... 33 ÖSSZEFOGLALÁS, ÉS KONKLÚZIÓK ............................................................................................................................ 33
VONALKÖVETÉS ................................................................................................................................................... 45 PÁLYAKÖVETÉS .................................................................................................................................................... 46 OBJEKTUMKÖVETÉS .............................................................................................................................................. 46
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával 10
NAVIGÁCIÓS ALRENDSZER (NAVIGATION MODUL) .............................................................................................. 48
11
A RENDSZER HATÉKONY MEGVALÓSÍTÁSÁNAK ELVEI .......................................................................................... 50 11.1 11.2
12
AZ EREDMÉNYEK BEMUTATÁSA ........................................................................................................................... 52 12.1 12.1 12.2 12.3 12.4
13
A RENDSZER TESZTELÉSE .................................................................................................................................... 52 FUTÁSI IDŐ MÉRÉSI EREDMÉNYEK ........................................................................................................................ 54 A RENDSZER ÉRTÉKELÉSE, ÉS ÖSSZEHASONLÍTÁSA MÁS RENDSZEREKKEL ....................................................................... 55 ALKALMAZÁSI TERÜLETEK................................................................................................................................... 58 TOVÁBBFEJLESZTÉSI IRÁNYOK.............................................................................................................................. 58
MELLÉKLET ............................................................................................................................................................ 59 13.1 13.2 13.3
14
ALKALMAZOTT OPTIMALIZÁCIÓK.......................................................................................................................... 50 ALKALMAZOTT PROGRAMFEJLESZTÉSI METODIKÁK .................................................................................................. 51
LEGGYAKORIBB OMNIDIRECTIONAL-KAMERÁK ÉS FELHASZNÁLÁSUK ............................................................................ 59 A MEGVALÓSÍTOTT RENDSZER HARDVER KIÉPÍTÉSE .................................................................................................. 60 SUSAN (SMALLEST UNIVALUE SEGMENT ASSIMILATING NUCLEUS) ÉLKERESŐ ALGORITMUS [19] .................................... 61
IRODALOM HIVATKOZÁS ...................................................................................................................................... 63
5
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
1 Bevezetés A dolgozat témája egy olyan PAL optikával felszerelt mobil robot megtervezése és kivitelezése, amely autonóm navigációra képes. Autonómia alatt olyan feladatok önálló elvégzésére való képességet értünk, mint vonalkövetés, akadálykerülés, objektumkövetés, önálló helyzet-meghatározás, térképezés, illetve térkép alapján komplexebb navigáció megvalósítása. A robot összeállításának alapvető kritériuma volt, hogy hardver oldalról egyszerű, könnyen reprodukálható komponenseket használjon fel, ezzel stabil alapot nyújtva a további kutatásokhoz és fejlesztésekhez. Ennek megfelelően a rendszer problémamegoldó képessége szoftveres úton lett megvalósítva. Az elkészített rendszer főbb jellegzetessége a hasonló szerkezetektől eltérően, hogy az alapvető vonalkövetési, sávkövetési és objektumkövetési feladatokon túl egy hibrid módszerrel – genetikus algoritmussal, és hiba-visszaterjesztéssel – képzett neurális háló segítségével autonóm módon képes feltérképezni a számára ismeretlen környezetet. Ennek felhasználásával később olyan navigáció is megvalósítható, melynél a robot a térképen statikus, valamint a beérkezett képen dinamikus akadály-felismerést végezve képes a felhasználó által megadott cél pozícióba ütközés mentesen eljutni. A fejlesztés során felmerülő problémák jelentős részére több különböző megoldás lett kidolgozva. A rendszer egészét tekintve ilyen a korábbi fejlesztések során elkészített prototípus rendszer [6. fejezet], amely nagymértékben hozzájárult a jelenlegi program formálódásához. A prototípus rendszer korábbi TDK, OTDK keretében, valamint a RAAD 2006-os [1] konferencián is bemutatásra került [2]. A prototípus rendszer továbbfejlesztéseként előállt egy végleges rendszer, mely számos újítást hozott. Ilyen például a navigációs modul, a térképező alrendszer, valamint a felmerült lokalizációs probléma. Az alkalmazott megoldás kiválasztása során a legfontosabb szelekciós kritériumok a valósidejűség, modularizálhatóság, valamint a környezet változásait figyelembe vevő reagáló képesség volt. A dolgozat először ismerteti a témába vágó hasonló rendszereket [2. fejezet], majd a rendszer rövid áttekintése [3. fejezet] után sorban ismerteti a hardver [4. fejezet], valamint a szoftver [5.-11. fejezet] fejlesztése során felmerült problémákat, és azok megoldásait. A hátralévő részben ismertetésre kerül a rendszer különböző aspektusainak teszteredményei [12. fejezet], valamint azok összehasonlítása más, hasonló rendszerekkel. Végül sor kerül az alkalmazhatóság [12.3. fejezet], valamint a lehetséges továbbfejlesztési irányok [12.4. fejezet] kérdésére is.
6
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2 Irodalomkutatás 2.1 A robot fogalma A robot kifejezésen olyan eszközt, berendezést értenek, amely az ember fizikai és/vagy szellemi munkájához hasonló tevékenységet végez, tehát eleget kell tenniük az intelligencia bizonyos alapfeltételeinek (érzékelés, információ-feldolgozó kapacitás, tudás illetve emlékezet, tanulási képesség és döntéseken alapuló közlési - cselekvési képesség, stb.). A szerkezettel szemben elvárt főbb követelmények és jellemzők a következők: rugalmas újraprogramozhatóság több szabadságfokú mozgáslehetőség anyagok, berendezések, szerszámok mozgatására vagy különböző feladatok végrehajtására alkalmas architektúra. A robotok generációk szerint csoportosíthatók intelligencia-szintjük (I-IV generációs robotok), a külső megjelenésük (robotkarok, mobil robotok), pályavezérlés típusa szerinti (PTP vagy CP), valamint az alkalmazási területük alapján. Míg az I. generációs robotokat egyszerű, alacsony szintű programozás és műveleti képesség jellemzi, addig a II. generációs robotok a környezetet érzékelők segítségével vizsgálják és tevékenységüket a vett jelek alapján a pillanatnyi szituáció figyelembevételével módosítani tudják. Feladataikat magas szintű robotprogramozási célnyelven lehet meghatározni. A III. generációs robotokban kapnak nagyobb szerepet a mesterséges intelligencia elemei. Az érzékelőktől származó jeleket feldolgozzák, a magukról és a környezetről tárolt modellt képesek intelligens módon, önállóan módosítani képesek információ kiválasztására és kombinálására. Megjelennek az önálló viselkedési algoritmusok és a döntési rendszerek. E generáció működésére az összetett tevékenység és a feladatok magas szintű, általános megfogalmazása jellemző. [3] A projekt készítése során kerekes mobil robotok (RC-autókat) kerültek előtérbe.
7
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2.2 A robotok csoportosítása helyváltoztatási képességük alapján 2.2.1 Kerekes robotok Az egyik csoportot a kerekes robotok alkotják. A kerekek számát tekintve léteznek három-, négy- vagy hatkerekű megoldások. Általában a kisebb akadályok átlépésére sem képesek, az akadályokon inkább a kikerülés taktikájával igyekeznek túljutni. Az átlépés lehetőségének hiányát ellensúlyozza, hogy a kerekes robotok jóval mozgékonyabbak és fürgébbek lábakon közlekedő kollégáiknál. A kerekes mobil robot megvalósításakor a legegyszerűbb választásnak egy távirányítós modell autó tűnik. E modellek többféleképpen csoportosíthatóak: Motor szerint megkülönböztethetőek benzinmotoros, illetve elektromotoros típusok. A projekt szempontjából az elektromotoros megvalósítás tűnik a megfelelőbb megoldásnak. Mérete szerint kétféle csoportosítás lehet. Egyik a méretarány szerinti. Ha fontos a gyors irányváltoztatás, mozgékonyság szerepének fontossága a kis hely miatt, akkor egyértelműen az 1:20, és kisebb méretű autó az ideális választás. Nagyobb hely esetében kellemesebb megoldás lehet a nagyobb, 1:10 méretarányú autó. Másik csoportosítás lehet az autó típusa, miszerint személyautó, vagy terepjáró az. Ez utóbbi természetesen nagyobb. Irányíthatóság szerint léteznek olyan típusok, melyek maximum 8 fajta irányban irányíthatóak (továbbiakban RC), illetve olyanok, melyek úgynevezett precíziós irányíthatósággal rendelkeznek (továbbiakban Modell RC). Kommunikációs csatorna szerint vannak melyek oda-vissza kommunikációra képesek, illetve vannak, amelyeknél az autó csak fogadni képes a távirányító jeleit. Előzőhöz persze ehhez megfelelő távirányító is kell, mely komolyabb, így meglehetősen drága is.
2.2.2 Járó robotok A mobil robotok másik csoportjába a járó robotok tartoznak. E csoporton belül megkülönböztethetőek lépegető és mászó típusokat attól függően, hogy közel vízszintes terepen, vagy meredek falakon végzik a feladatukat. Ezen robotok megvalósítása jóval nehezebb, mint a kerekes típusoké. Léteznek előre, kutatásokhoz elkészített kész koncepciók is, például az Aibo robotkutya. Az alábbiakban két hazai fejlesztésű projekt kerül bemutatásra. 2.2.2.1 Explorates II (1997-1998) [4] Az EXPLORATES II egy négylábú robot, mely elsőként használta a PAL optikát roboton. A robot demonstrációs, oktatási célokra lett kifejlesztve. A PC oldali vezérlőprogram egy DOS környezet alatt futó grafikus szoftver, mely Borland C nyelven íródott. Az útkeresési stratégiáját Back Propogation típusú neurális hálózattal valósították meg. A robot 5 db. ATMEL 89C51-es mikrovezérlővel rendelkezik, mely négy (lábanként egy) a lábak vezérléstét irányítja, az ötödik pedig központi vezérlő, amely összehangolja a processzorok munkáját, illetve a PC-vel tartja a kapcsolatot soros kommunikációs vonalon. 8
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával 2.2.2.2 FOBOT (2002-2003) [5] A FOBOT egy hatlábú robot, mely szintén PAL optikával van ellátva. Célja, hogy egyenetlen terepen gyorsan, és stabilan haladjon. A lábakat mozgató motorokat PIC16F873-as mikrovezérlő vezérli. A roboton GPS vevő biztosítja a durva helyzet-meghatározáshoz szükséges koordinátákat. A PC-n térképen követhetjük a mozgást és adhatunk meg célkoordinátákat, vagy bejárandó útvonalat. A PAL optikával készült kép estében – már korábban feltérképezett objektumok ismeretében – az élek megtalálása és azonosítása után háromszögeléssel számítható ki a robot pozíciója. A felhasználó ezek mellett valós időben kiterített PAL optikás képen is vizsgálhatja a robot környezetét. A két robot összehasonlítása: Test
Hossz
Súly
Haladási sebesség
270 mm
600 mm
2,5 kg
400 mm/perc
134 mm
432 mm
3,2 kg
3,2–5 m/perc
Szélesség
Magasság
Explorates II
400 mm
FOBOT
305 mm
2.2.2. táblázat: ExploratesII, FOBOT összehasonlítása
A táblázatból egyértelműen látszik, hogy a FOBOT mérete kisebb, és nagyobb sebességre képes. Az Explorates II előnye a FOBOT-hoz lépest, hogy képes oldalirányú mozgásra is, percenként 90 mm utat megtéve, ez a tulajdonság a váznak kialakításbeli különbségéből adódik.
2.2.3 Lánctalpas, gumitalpas robotok Ezeknek előnye hogy csupán két kerék meghajtásával (nagyobb típusnál több) akár helyben is képes megfordulni. Beltéri használatnál a gumitalpas megoldás használata tűnik megfelelőnek, így a padlózatot, szőnyeget nem roncsolja a lánctalp.
2.2.4 Repülő robotok Ez a megoldást már a fejlesztés kezdő szakaszában elvetésre került, mivel a célkitűzésekkel ellentétben nem költséghatékony, másrészt pedig beltéri navigációhoz nem használható
9
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2.3 A robotok navigációja Pálya- és útvonaltervezésnél megkülönböztethetők durva és finom pályatervezés. Durva pályatervezés esetén a cél a pálya főbb sarokpontjainak megtalálása, míg finom pályatervezéskor (a durva pályatervezés eredményét felhasználva, két sarokpont között) a lehető legfinomabban lebontva kell leírni a bejárandó utat. A pályatervezés készülhet előre ismert, részben ismert, vagy teljesen ismeretlen környezetet feltételezve. Az akadályok elhelyezkedése lehet statikus, vagy időben változó. Ha előírások vannak az útvonalon kívül még az időbeli ütemezésre is, trajektória-tervezésről van szó. Más szempontokat figyelembe véve, szintén megkülönböztethetőek valós időben történő és egylépéses pályatervezés aszerint, hogy az útvonaltervezés csak egy egységnyi távolságon történik, vagy a tervezés az egész útra előre történik, majd az a végrehajtás során nem módosul. A munkatérben elhelyezkedő objektumokat két csoportba sorolhatóak: céltárgyak és akadályok. A pályabejárás, vagy navigáció során a megtervezett pályát a robot követi. Legnagyobb problémát a robot tervezett és realizált helyzete közötti különbség jelenti. Megoldást a nagyszámú környezeti szenzor által szolgáltatott adatok összehangolt feldolgozásával lehet elérni. Annak érdekében, hogy a robot valós környezeti viszonyok között bejárja az előírt pályát elengedhetetlen a pontos helymeghatározás. A helymeghatározásnak megkülönböztetik statikus és dinamikus változatait. Az első esetben a robot szenzorjelek által megadott pozícióját hasonlítják a lehető legpontosabban össze a környezeti modell előzetesen ismert leírásával. A dinamikus helyzet-meghatározás ezzel szemben verifikálás jellegű: a korábbi szenzorjellemzők által szolgáltatott (helyzet, sebesség, stb.) információkból kalkulált helyzetnek és a mozgó robot aktuális állapota közötti különbséget újra és újra ismétlődően kiértékelik, és ha kell, módosítják az adatokat. Figyelembe véve a szenzorjelek pontatlanságát, bizonytalanságát a helyzetmeghatározás gyakran útjelzők használatával történik. Az útjelző a környezet karakterisztikus fizikai jellemzője, amelyet a robot érzékel és a nyert információt a helyzetének pontosítására, vagy esetleg az útvonal követésének ellenőrzésére használja. A robot navigálás során az útjelzőtől útjelzőig mozog. A korábbi kutatások során az útjelzőket bináris adatként kezelték, attól függően, hogy érzékelhető-e, vagy sem. Az újabb kutatások azonban figyelembe veszik, hogy a robot és az útjelzők egymáshoz viszonyított helyzetétől nagyban függ a kiértékelés. A mobil robotok főbb jellemzője a helyváltoztatási képesség. Ezt a navigációs rendszere által teheti meg, mely alapulhat térképkészítésen, vagy annak nélkülözése mellett.
10
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2.4 Térképezésen alapuló navigáció megvalósítása Térképezésen alapuló navigáció megoldására két eset létezik. Vagy előre fel van térképezve a robot környezete, vagy a robotnak kell felépítenie saját környezeti térképét. A rendszer által előállított térkép pontosítását a kamerán kívül további szenzorok segítségével lehet elérni (lézeres vagy ultrahangos távolságmérők). A helyzet-meghatározó eszközök egyik fajtája a GPS. Léteznek olyan robotikai fejlesztések, amelyek csak erre az eszközre hagyatkoznak térképezés szempontjából. A ljubljanai egyetemen a ViCoS (Visual Cognitive Systems Laboratory) által készített CogVis projekt [6] gráfmodellt épít a térképezéshez. Az utóbbi időben kísérletek folynak WLAN hálózatokkal történő háromszögelő helyzet meghatározásra is.
2.4 a ábrák: A 3D-s modell eltárolásra kerül, egyre jobban pontosítva az ideális útvonalat [6]
2.4 b ábrák: A robot helyzetének változásával a GPS támogatású CogVis rendszer felépíti a környezeti 2 dimenziós térképet [6]
11
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2.4.1 A térképezés menete [7] A navigálás és helymeghatározás négy elengedhetetlen lépése a következő: érzékelők lekérdezése, látás alapú navigálásnál a kamera kép lekérdezése tájékozódási pontok megtalálása – helyi térkép összeállítása: éldetektálás, szűrés, finomítás a mért és a várt adatok összeegyeztetése, tájékozódási pontok azonosítása az adatbázis felhasználásával pozíció kiszámítása
A térkép alapú navigáció alapvető követelményei, melynek a helymeghatározás sikerességét befolyásolják: legyenek elégséges stacionárius, könnyen megkülönböztethető jellemző vonások, melyek az illesztésnél felhasználhatók pontosság: a feladattól függően az érzékelő térkép legyen elég pontos a felhasználáshoz jelentős mennyiségű érzékelési és feldolgozási energia álljon rendelkezésre.
A készített térkép akkor tekinthető megfelelőnek, ha a következő követelmények teljesülnek:
meg kell adnia a szükséges információkat és eljárásokat is a környezetben a robot pozíciójának és állásának becsléséhez a pályatervezéshez, az akadályelhárításhoz és egyéb navigációs feladatokhoz szükséges információkat is könnyen lehessen szerezni a robot által használt térábrázolási rendszer típusa nyújtson módot arra, hogy következetesen beépítsük az újonnan érzékelt információkat a meglévő világmodellbe A térképkészítéshez felhasznált érzékelők információinak feldolgozási folyamata:
12
jellemző vonások kinyerése a nyers érzékelői adatokból a különféle érzékelő típusoktól származó adatok összevonása egy környezeti modell automatikus létrehozatala az absztrakció különböző fokozataival.
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2.5 További hasonló projektek 2.5.1 Evolution Robotics – ER1 [8] Az Evolution Robotics ER1 „személyi robot-rendszere” nem túl látványos jelenség: kerekes alumíniumvázra erősített laptop, fogantyús karral, USB digitális kamerával. Ám (tervezői szerint) az új generációs félautonóm robotok legelső példánya volt. Elsősorban egy speciális, több cselekvést betanító, idegen környezetben történő zökkenőmentes mozgást biztosító szoftver miatt. Maximum tízezer digitális képet tárol, s bonyolult optikai-számítástechnikai műveletsorokkal érzékeli a körülötte lévő világban történő helyváltoztatásokat. Azaz, ellentétben elődeivel, nem „vak”, és nem rohan egy széknek, miután tíz centivel odébb lett tolva. Egyszerű hangutasításokra indul útjára a tanulási folyamatot követően. Ahhoz, hogy megtaláljon egy célpozíciót, be kell tanítani. A tanítás lefényképezés, azonosítás, tárolás részekből áll. Ezek után szükség szerint (percenkénti harminc állókép sebességgel) feldolgozza.
2.4.3. ábra: Az intelligens laptop robot ER1 [8]
Az olcsó robotplatform fejlett operációs rendszere miatt egyedi, mely egyben az otthoni barkácsolók dolgát is megkönnyíti. Bill Gross, az egyik alapító a Netscape böngészőhöz hasonlítja Evo Vision szoftverüket: előbbi az Internetet tette tömegesen hozzáférhetővé, utóbbi a robotokkal teszi ugyanezt. Másrészt – (egyelőre kezdetleges) beszédfelismerő rendszerének, digitális kamerájának, mobilitásának köszönhetően – a gyógyászatban is hasznát vehetik a robotnak: ágyhoz viheti a mozgásképtelen betegek gyógyszerét, stb. (Szakértők véleménye szerint, sokkal fejlettebb, többre képes a Sony legendás AIBO-jánál.).
2.5.2 CameraCar – SR04 [9] Az 1995-ös (elenyésző mennyiségű Lego-elemet tartalmazó) CameraCart távirányító segítségével működteti az (emberi) operátor. A vezető szemben ül a televízió-rendszerrel, székéből távirányítja a gépet. Az eredeti modellt fix, előre és kissé lefelé néző kamerával látták el, ami Andersonék amatőr, házukban megrendezett bajnokságain ugyan elegendőnek tűnt, viszont a szabadtéri megmérettetéshez módosításokat kellett véghezvinniük rajta. Miután megtették, a kamera vertikálisan 110 fokos ingásra, horizontálisan 360 fokos forgásra lett képes. Mindez (egyszerű és egyirányú) kommunikációt is lehetővé tesz: feje biccentésével igent, rázásával nemet jelez a robot. 2.4.4. ábra: A gyors mozgású CameraCar [9]
13
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2.6 Teljes látószögű (omnidirectional) rendszerek Három alapfajtája van a teljes látószögű érzékelőknek:
több képből állítják össze speciális lencsét használnak fel (PAL-optika) konvex tükröket alkalmaznak
2.6. ábra: RingCam kamerarendszer [10]
2.6.1 Omnidirectional-rendszer A leggyakoribb 360 fokban látó rendszerekben hagyományos kamerával és konvex tükrökkel érik el a teljes látószöget. Előnyük a megfelelő kialakításnál a lehetséges magas felbontás, azonban méretükből adódóan csak nagyobb mobil robotok esetében használják. A teljes látószögű rendszerekről kielégítő információt az [10] hivatkozásban találhatók. A 13.1. mellékletbe omnidirectionalrendszerek és robotos megvalósításuk képei kerültek.
14
2.6.1. ábra: Különböző visszaverődéses tulajdonságú konvex tükrök [11]
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2.6.2 The Caboto projekt [11] Az egyik leginspirálóbb írás a témában a Caboto projekt volt, amely az edinburghi egyetemen készült. Olyan omnidirectional rendszert használ, ahol a 360 fokos látószöget domború tükör segítségével érik el. A robot egy komplett, kerekeken guruló számítógépet takar.
2.6.2. a ábra: Omnidirectional rendszerrel felszerelt robot [11]
2.6.2. b ábra: A mobil robot által bejárt tesztkörnyezet [11]
A robot feladata mesterségesen felépített környezetben (homogén alapon) való akadálykerülő ütközésmentes navigálás végrehajtása. A Linux operációs rendszert futtató számítógép végezte a képfeldolgozást és az irányítást is. A színes képet 3 színcsatornára lebontva és egyesével Canny-éldetektálást, alkalmazva a 3 képet összeadták és kirajzolódott a környezet kontúrja.
2.6.2. c ábra: A robot az élektől való távolságot becsülve kerülte ki az akadályokat.[11]
15
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2.7 PAL optika Az emberi látás architektúrája elsősorban biológiai evolúció terméke. Számos előnyös tulajdonsága mellett azonban van néhány aspektus, ami alapján hátrányosnak tekinthető. Az egyik alapvető probléma, hogy egyszerre a környezetnek csak mintegy 120+30 fokos területét képes belátni (jóllehet annak feldolgozása majdnem-3 dimenziós kognitív reprezentációt tesz lehetővé). A központelvű képalkotási (Centric Minded Imaging, CMI) szemlélet ezzel szemben hengeres, melynek előnye, hogy a teljes környezet egy időben látható, viszont a 3 dimenziós információ egy része elveszik. A központelvű képalkotásnak nevezett megoldás úgy jön létre, hogy a képtérfogatot először egy képzeletbeli hengerpalástra vetítjük, melynek sugara megegyezik a mindenkori látótávolsággal, majd az egész így kapott vetületet a henger tengelyére merőleges síkra transzformáljuk. Ennek következében olyan körgyűrű alakú kép jön létre, amelyben a gyűrű szélessége megfelel a képalkotás „függőleges” látószögének, míg a koncentrikus gyűrűk változó „vízszintes” térszögeket jelentenek egy adott „függőleges” térszögben. Más szóval, ezek a gyűrű alakú képek a háromdimenziósan látott geometriai viszonyok kétdimenziós vázát szolgáltatják, vagyis a háromdimenziós látótérben fellépő „mélységbe tűnés” jelenségét, a perspektíva érzetet kétdimenziós felületen, egy pontba való összetartás révén érik el. Egy olyan képalkotó tömb jött létre, melynél a képtömböt körülvevő háromdimenziós térről az optika belsejében egy háromdimenziós miniatűr képtérfogat jön létre. [12] A PAL-optika Greguss Pál professzor találmánya (2.7 á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. A 2.7. a ábra: A PAL-optika szerkezete és B tükör és a D felület (törés - sűrűbb közegből működése [13] 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. Az ilyen lencserendszer szenzorként való alkalmazása nagymértékben csökkenti a szükséges szenzorok számát, és ezzel együtt az energiafelvételt is. [13] A PAL optika előnyei a többi kamerával felszerelt rendszerrel szemben:
16
Az optikából kinyert képből tetszőleges, a környezetben elhelyezkedő objektum iránya meghatározható. Nincs szükség mozgó alkatrészre a környezet vizsgálatához. Változó távolságban az éles kép eléréséhez nem szükséges külön fókuszálni.
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával Előnyeiből adódóan az egy optikai érzékelő kielégítő mennyiségű információt biztosít a navigációhoz. A hasonló PAL optikával rendelkező rendszereknél látható, hogy az optika elhelyezésének módja többféleképpen nyújt hasznos információt. A HPAL (Humanoid Panoramic Annular Lens) egy olyan optika, ahol a PAL optika tengelyében lévő tükröző felület egy részét eltávolították. Így keresztül nézhetünk a leképező tömbön, a panorámikus leképező képesség bármiféle csorbulása nélkül. Így ha egy leképező lencsét helyezünk el az optika elé, akkor a gyűrűs kép közepén lévő holtteret is képpel lehet kitölteni. [14] A feltalálót NASA díjjal jutalmazták (1989), azóta kutatások folynak az optika széleskörű felhasználására az orvostudományban, a hadászatban, és űrkutatásban is. A NASA 1997-es SEDSAT-1 programja keretében is megjárta a Titan nevezetű holdat, de beépítik kisebb műholdakba is. Az űrkutatás mellett katonai alkalmazásokban is szerepet játszik a PAL-optika, jelenleg mind a NATO, mind különböző japán cégek nagy érdeklődést mutatnak iránta. A PAL körkép kétféle kiterítési mód alapján transzformálható. Perspektívikus kiterítés (2.7. b ábra): ez a kiterítési mód a feldolgozás szempontjából többletinformációt nem nyújt. Csupán látványossági elemként alkalmazható. A kiterítés folyamán a képen egyre nagyobb sugarú köröket véve, a kiterített kép pixelei az ezen körön lévő pixelek kiválasztásával áll elő.
A[ x, y]
B[Oy
d * cos(i * 2), Ox
d * sin( i * 2)]
Ahol „A” az előállítandó kép, „B” az eredeti körkép. „O” az eredeti kép középpontkoordinátái.
2.7. b ábrák: Az eredeti, és a hozzá tartozó kiterített kép
PAL-optikából érkező képek esetében a kép közepén elhelyezkedő “holttér” képfeldolgozási szempontból nem rendelkezik információval, elhagyható. Virtuális felülnézeti kép (2.7. c kép): Ezzel a projekt számára kifejlesztett újszerű módszerrel a térképező modul foglalkozik. Segítségével történik a térkép összeillesztése, valamint a robot pozíciójának meghatározása a térképen. A módszert alkalmazva a földön lévő párhuzamos egyenesek a képen is párhuzamosak.
2.7. c ábra: A PAL kép felülnézeti kiterítése
17
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2.8 A mesterséges neurális hálózatok A neurális hálózat biológiai neuronok összekapcsolt csoportja. Modern használatban a szó alatt a mesterséges neurális hálót értjük, amelyek mesterséges neuronokból állnak. Így a Neurális Háló kifejezés két különböző koncepciót is jelent: A mesterséges neurális hálózat a biológiai neurális hálóból néhány tulajdonságát modellezi. Az alkalmazások többsége technikai jellegű, és nem kognitív modell. A neurális háló egyszerű egységekből áll, abban az értelemben, hogy belső állapotai leírhatók számokkal, ezek az aktivációs értékek. Mindegyik egység generál egy aktiválási értéktől függő kimeneti értéket. Az egységek 2.8. ábra: Mesterséges csatlakoznak egymáshoz, mindegyik csatlakozás tartalmaz neurális hálózat grafikus egy egyéni súlyt (szintén számokkal leírva). Minden egység reprezentációja [15] kiküldi a kimeneti értékét az összes többi egységnek, amelyekkel kimenő kapcsolatban vannak. Ezen kapcsolatok miatt az egység kimenete hatással van a másik egység aktivációjára. A kapcsolat bemeneti oldalán álló egység fogadja az értékéket, és azok súlyozásával kiszámolja az aktivációs értékét (összeszorozza a bemeneti jelet a hozzá tartozó bemenet súlyával, és veszi ezek összegét) A kimenetet az aktivizációtól függően az aktivizációs függvény határozza meg (pl az egység kimenetet generál –„tüzel”- ha az aktivizáció egy határérték felett van). A hálózat a csatlakozások súlyának módosításával tanul. [15]
2.9 Neurális hálózatok alkalmazása képfeldolgozási rendszerekben Neurális hálózatok képfeldolgozó rendszerekben való alkalmazása nem számít új keletű megoldásnak. Már a korai képfeldolgozó rendszerekben is alkalmazták őket. Az alábbi előnyökkel rendelkeznek a hagyományos képfeldolgozási algoritmusokkal szemben: Megfelelő bemenet, kimenet, és tanítási minta definiálásával a neurális háló belső működésének ismerete nélkül is előállítható néhány problémára megoldás Sokkal gyorsabb reagálási képességgel rendelkeznek, amivel könnyen kompenzálható a kimenet pontatlansága. A korai alkalmazások közül figyelemre méltó az ALVINN [16] (1989, An Autonomous Land Vehicle in a Neural Network) projekt [17]. Ennek keretében egy átalakított katonai HMMWV [18] típusú személyszállítót egy beépített számítógép segítségével vezérelték. A jármű videokamerájának jelét elő feldolgozás után egy neurális háló bemeneti egységeire kapcsolták, kimenete a járműkormányozás irányát adta meg. A neurális háló tanítási mintáját emberi vezetésből képzett adatokból állították elő. A rendszer autópályákon 150 kilométert vezetett különböző sebességekkel, maximális sebessége 100 kilométer / óra volt. Normális sebességgel vezetett továbbá egysávos földúton, kövezett bicikliúton, és kétsávos kertvárosi úton is.
18
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
3 Rendszer vázlat Egy mobil robot legalább három fő komponenssel rendelkezik: mobil robotszerkezet, szenzor, feldolgozó egység. A bevezetőben vázolt célokat szem előtt tartva a robot elkészítéséhez e komponensek az alábbi módon valósultak meg. Robotszerkezetként egy RC modell autót használva nemcsak könnyű, és költséghatékony rendszer valósítható meg, hanem egy egyszerű átalakíthatóságú, gyors helyzetváltoztató képességgel rendelkező robot készíthető. A szenzor funkciót a robot tetejére felfüggesztett, PAL optikával felszerelt kamera tölti be. A Panoramic Annular Lens (PAL-optikás) 360°-ban látó kamerával felszerelt robotok előnye a hagyományos szenzorokkal ellátott robotokkal szemben, hogy elegendő egy optikai érzékelő a környezet feltérképezésére minden irányból. A rendszer moduláris felépítése, és a közöttük zajló kommunikáció az alábbi módon történik (ld. 3. ábra). A robot vezérlése a PAL-optikás kamerán keresztül kap képi adatot a környezetről. A kameráról átküldött videojel feldolgozását a számítógép végzi, és az általa nyert információkból a program automatikusan vezérli a robotot. A vezérlés soros portra illesztett távirányítón keresztül történik.
3. ábra: A rendszer megvalósításának blokkvázlata
19
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
4 Hardver elemek A projekt hardveres alkotóelemei:
távirányítású modell autó távirányító kamera (lencsével és PAL- optikával) PC + digitalizáló kártya.
4.1 Modell autók A rádió-távirányítású modell autó szerepe a mobil robot alapját képezi. Erre a elemre van felerősítve a kamera, és ezen találhatóak a megfelelő energiamennyiséget hordozó akkumulátorok. Azért, hogy a projekt számára a legelőnyösebb, költségkímélőbb megoldás legyen biztosítva, olcsó, mégis nagy mobilitással rendelkező távirányítós RC autók lettek kiválasztva. A projekt megvalósítása két fajta modell autóval történt. A későbbiekben ezek az RC, és Modell RC. Először az RC autó lett kifejlesztve, majd később szükségessé vált a Modell RC elkészítése is a precíziós irányítás miatt. A rendszer szoftverrésze hasznosítható mindegyik modellhez, a kommunikációs hardver kicserélésével.
4.1.1 RC autó Az RC autó (4.1.1. ábra) kis mérete miatt fordulékonyabb. Hátránya: a maximum 8 irányváltoztatási lehetőség. Az autó hat irányban képes helyváltoztatásra, és helyben a balra-jobbra kormányzást is támogatja. Ha az energia kevés, vagy ha gyengül az elem a balra-jobbra irányváltoztatás nehézkesen működik, a kerék nem fordul el teljes mértékben. A kiskocsi 4 darab 1.5Vos ceruzaelemmel működik, viszont a rendelkezésre álló ceruza-akkumulátorok 1.2V feszültséget adnak. Ezért töltöttségtől függően 1 vagy 2 akkumulátorral kipótolva nagyobb tehersúly mellett is megőrzi gyorsulását és kanyarodókészségét.
20
4.1.1. ábra: RC autó
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
4.1.2 Modell RC autó A fejlesztés során kétféle Modell RC (4.1.2. ábra) került kipróbálásra, az 1:10, és 1:14 méretarányú típusok. A különbség csupán méreteiken nyilvánul meg, ebből adódóan más és más a kanyarodási tulajdonságuk. Egyik előnyük az RC-hez képest, hogy állítható az autó, és a távirányító kommunikációs frekvenciája, így több hasonló Modell RC–t lehet egyidejűleg irányítani. Másik fontos előnye a precíziós irányítás, mely szerint az irány, és a sebesség tetszőlegesen 4.1.2. ábra: 1:14-es méretarányú Modell RC autó mértékben állítható, ezáltal jelentősen pontosabb navigációra képes. Mindenféle plusz súlyterhelés nélkül a végsebessége ~20-30km/h. Két motorral rendelkezik, az egyik a meghajtómotor, a másik az első kerekeket mozgató szervó motor a kanyarodáshoz. Ha az akkumulátor merül, a motorok működése lelassul, a kanyarodás lassabbá, az előre-hátramozgás nehézkesebbé válik. Az akkumulátor 8 cellás, 650 mAh, melyet szükség esetén pótolni lehet 8 db ceruza akkumulátor soros összekötésével.
4.2 Távirányítók A modell autók és a PC közötti kommunikáció megvalósításához egy illesztő áramkör szükséges, mely segítségével a feldolgozó egység irányítani képes a robotot. A két fajta modell autóhoz különböző illesztő áramkörök szükségesek.
4.2.1 RC távirányító A távirányító 9V-os elemmel működik. A PC-vel való összekötés után a vezérlés párhuzamos porton keresztül történik. Ha az elektronikus kapcsolóáramkörök megfelelő módon vannak bekötve, akkor a vezérlőjel hatására a bemenetük és kimenetük között kis ellenállásértékekkel jellemezhető kapcsolatot létrehozzák. Hardverfeltételek: kisméretű NYÁK panel, ellenállások 25 pólusú párhuzamos porti kábel csatlakozóval optocsatoló (4.2.1 ábra) Jel-átalakítási célokra tökéletesen megfelel az optocsatoló, annak is a 4 kapuból álló változata, mivel 4 vonalon érkeznek a jelek a PC-től (előre, hátra, jobbra, balra). Az optocsatoló működése során a bemenetére érkező pozitív feszültség 4.2.1. ábra: CNY 74-4 optocsatoló hatására a fotodióda kinyitott állapotba kerül és párhuzamos portra kötve fényt bocsát ki. Az áramkör másik oldalán található fotótranzisztor a fény hatására kinyit, azaz a kollektora és emittere között szinte rövid zár képződik, a kollektorán jelen levő feszültség kijut az emitterére. 21
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával Jól látható, hogy az optocsatoló be- és kimenete között nincs galvanikus kapcsolat, tehát ezzel a leválasztás megoldható. A párhuzamos port maximális kimeneti árama 20mA, így biztosítani kell, hogy az optocsatoló bemeneti árama maximum 20mA legyen. Ez egy előtét ellenállás beépítésével oldható meg, melynek értéke az Relőtőt=Umax/Imax képlettel számítható. Ahol Umax a párhuzamos port maximális kimeneti feszültsége, ami 5V , Imax pedig az előbb említett 20mA. Ebből az ellenállás értéke minimálisa, szabványérték szerint: R=270Ω. A teljes áramkör működése tehát: a PC felől érkező vezérlőjel aktív magas szintjének hatására az optocsatoló a tápfeszültségnek megfelelő nagyságú feszültséget kapcsol az elektronikus kapcsoló áramkör megfelelő vezérlőbemenetére, ezáltal a kapcsolóhoz tartozó két végpont, amelyek a távirányító megfelelő pontjaira csatlakoznak rövidre záródnak. A távirányító működésbe lép és kibocsátja a megfelelő jelet a mobil robot felé, minek hatására a robot a megfogalmazott parancs szerinti műveletet végrehajtja.
4.2.2 Modell RC távirányító A távirányító 9V-os elemmel működik. Hatótávolsága erősen függ az elem töltöttségétől. Teljes kapacitású elemmel 30–40m hatótávolság érhető el. Az irányítás 2 db potenciométerrel történik. Az egyik az előre-hátrahaladási irányok vezérléséhez, a másik a jobbra-balra irányokhoz szükséges. A feladat szintén az, hogy ne manuálisan, hanem PC-ről lehessen a vezérlő utasításokat kiadni.
4.2.2. a ábra: A távirányító elvi kapcsolási rajza (részlet)
22
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával Erre több lehetőség adódik, egyik a digitális potenciométer alkalmazása, a másik a PIC mikrokontroller család használata. A választás az utóbbira esett. A PIC18F1320 mikrokontroller előnye, a kis mérete, a többszintű megszakításkezelés, valamint az alacsony működtetési áram. A modell autó két motorral rendelkezik, a meghajtómotor, és a szervomotor a kanyarodáshoz. A távirányító ezeket a motorokat vezérli. Az eredeti távirányító elvi kapcsolási rajzából a lényeges részlet a 4.2.2. a ábrán látható. Mivel tranzisztorok alkalmazásával lett megépítve, létezik benne beavatkozási pont. Ez a közös pont a D1, D3, és D2 diódák anódja. Ezt vezérli a Tr1, és Tr2 tranzisztor. A vezérlőimpulzusok periódusideje 15ms. 4.2.2. b ábra: Közös ponton mért vezérlőjel Az első impulzust a Tr4 tranzisztor adja, és indítja Tr1 időzítését, amit a távirányító irányvezérlő potenciométere befolyásol. Ha lejárt az idő, akkor jön a második impulzus, ami a Tr2 tranzisztor időzítését indítja és annak lejártát a sebességvezérlő potenciométer befolyásolja. Ha ez az idő is lejárt, akkor jön a harmadik impulzus (4.2.2. b ábra). Ezt a periódust kell leutánozni a mikrokontrollerrel. A 4.2.2 b/a ábrán a Tr1, Tr2 tranzisztorokhoz tartozó idő egyforma. Az RC első kerekei egyenesen állnak, illetve sebessége 0. A Tr2 időzítését változtatva tolatást, illetve a sebesség maximumát állítjuk be. Ezekkel az impulzusokkal kell a mikrokontrollert a közös pontra csatlakoztatni, majd a távirányítót vezérelni. A PIC programjában egy Timer megszakítást okoz 15ms -onként. A megszakítást az első impulzus kiadása jelzi. Ezzel "egy időben" másik Timer indul egy olyan számláló értékkel, amit a PC-ről kapott vezérlőérték határoz meg (akár lehet ugyanaz is). A megszakítását a második impulzussal jelzi, majd újraindul a következő vezérlőadattal. Miután megszakít, kiküldi a harmadik impulzust is, majd kilép a megszakításból. Adatok áttöltésére a PC felől kb. a 15ms időnek a fele áll rendelkezésre, mely elegendő, hiszen csak néhány byte-ot kell átküldeni (irány, sebesség = 2bájt). Tehát az utolsó impulzus után a PIC megszólítja a PC-t. Időt ad neki hogy válaszoljon. Ha időn belül jön válasz, akkor az új adatokkal feltölti a vezérlőadatokat tároló regisztert. Ha nem jön válasz, akkor a régi adatokat veszi aktuálisnak. A válaszidő kb. 3-4ms, mivel a letöltéshez, és tároláshoz is időre van szükség. A PIC használatához szükséges elvi kapcsolási rajz a 4.2.2. c ábrán látható. A helyes működéshez az 4.2.2. a ábrán D1, D3-nak jelölt diódákat a közös pontról le kell választani és helyette bekötni a 4.2.2. c ábrán D1-nek jelölt új diódát. Továbbá a C4 kondenzátort is le kell választani a két dióda (D2, D4) közül. E két diódának maradnia kell, mert feszültségszintet állítanak be a közös ponton.
23
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
4.2.2. c ábra: Kiegészítő kapcsolás elvi rajza
A PC soros porton keresztül kommunikál a PIC-kel. A soros szabvány (RS232) nem TTL szintű jeleket határoz meg, ezért szintillesztéshez MAX232 IC-t kell használni. Előnye, hogy 5V-os feszültséggel kell táplálni, hasonlóan a mikrokontrollerhez. A PIC processzor működéséhez szükséges 5V-ot a 7805, a távirányító 9V-ját a 7809 feszültségstabilizáló IC-k állítják elő a 12V-ból. A 4.2.2. c ábrán Tr1-el jelölt tranzisztor kollektorára rá kell vezetni a 9V-ot, 1k-s ellenálláson keresztül, mert különben a tranzisztor lezártakor a kondenzátor nem sülne ki. A kondenzátor közös pont felőli részén pozitív a feszültség, a tranzisztor zárt állapotában az ellenállás szintén pozitív feszültséget kelt a kondenzátor ezen oldalán is, ezzel az kisül, vagy átpolarizálódik, mivel 9V-nál kevesebb a feszültség a közös ponton. Ha jön az impulzus, akkor a tranzisztor kinyit, és „rásüti” a kondenzátort a közös pontra, amitől ott egy negatív impulzus keletkezik. A távirányítóhoz szükséges 9V-ot az R4 ellenállás elől lehet kinyerni. A panelra kerül még egy RJ11 6/4-es csatlakozó, ami a soros porthoz való csatlakozást segíti elő. 24
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
4.3 Kamerák Manapság számos területen alkalmaznak képalkotó eszközzel felszerelt számítógépes rendszereket. A célterület igényeitől függően használható egy vagy több kamera, mely a felhasználás módjától függően lehet rögzített, vagy mobil eszköz részeként mozgó. Általánosságban elmondható, hogy a gyakorlati alkalmazásukhoz és széleskörű elterjedésükhöz szükséges hardveres feltételek, azaz a kellő teljesítmény csak az utóbbi évek rohamos fejlődésének köszönhetően állnak rendelkezésre. A projekt készítése során számos kamera tesztelésére került. A projekt korábbi szakaszában USBkamerával történt a képátadás, ami egyrészt előnyt, másrészt hátrányt jelentett. Előnyei közé sorolható az egyszerű csatlakoztatás és nagynak számító 640x480-as felbontás 20 képkocka/másodperc mellett, azonban hátránya a gyenge fényérzékenység kiütközött tesztelésnél, mikor USB hosszabbítás mellett a képen átadott zaj jelentősen megnövekedett. Ez a képelemzésnél már olyan szinten rontotta a végeredményt, hogy az „egyszerűbb” CCDkamera – digitalizáló kártya választás tűnt előnyösebbnek.
4.3. a ábra: A kamera az RC autóra rögzítve és az általa belátott térrész
A Sony panelkamera fényérzékenysége nagyságrendekkel jobb, mint a tesztelt USBkameráé, ezért rosszabb fényviszonyok közt is aránylag jó képet produkál. Hátránya, hogy alacsonyabb felbontással (352x288 pixel) csak szürkeárnyalatos képet tud közvetíteni. A fejlesztés kezdeti szakaszában ez a konfiguráció még nem korlátozza a projektet, mivel a videojel 8bit-es átalakításra kerül a képfeldolgozás alatt. Később szükség volt színek, textúrák felismerésére. A kimenő videojel RCA-RCA kábelen keresztül fut a digitalizáló kártyába. A jelenlegi megoldás egy vezeték nélküli kamerarendszer (4.3. b ábra), mely képes audio-, valamint színes (24bites) képátvitelre. A hatótávolsága 20-70 méter, mely nagymértékben függ a leárnyékolás nagyságától és a kamera tápellátását biztosító feszültségtől (8-12 V). A rendszer 2.4 GHz-en működik. A fogadótól RCA-RCA kábelen kerül a jel a digitalizáló kártya composite bemenetére. A kamera tápellátása egy 9V-os, 200mAh Ni-MH akkumulátor, vagy hosszabb kameraidő érdekében, 8db. AA méretű, 1.2V 2000 mAh-ás sorba kötött akkucella. Míg az RC-nél a kamera rögzítése fix (25cm), addig a Modell RC-nél változtatható magasságú. Magasabb pozícióba emelve nagyobb terület belátására van lehetőség. A szenzor lefelé néz, így a bejárandó utat vizsgálja. A PAL-optika holtterében helyezkedik el a kocsi, ezért annak csak közvetlen környezete látszik.
25
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
4.3. b ábra: A vezeték nélküli kamera rendszer tartozékai [19]
4.4 Feldolgozó egység A szoftver futtatása a Prototípus rendszer esetén erősen PC függő, viszont a végleges rendszernél a .NET architektúra miatt kevésbé platformhoz kötött rendszerről van szó. Bármilyen C# futtató környezetben működőképes, amennyiben a felhasznált könyvtári függvények (vagy velük ekvivalens funkciók) az adott platformon rendelkezésre állnak. Mind a CCD, mind a vezeték nélküli kamerához szükség van egy digitalizáló kártyára, vagy gazdaságosabb megoldásként TV tunerre. USB tuner felhasználása előnyösebb, mivel könnyebb a rendszert áthelyezni más feldolgozási rendszer alá, valamint laptop alkalmazásával kültéri használat is elérhető. [20]
26
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
5 Alkalmazott képfeldolgozási algoritmusok A döntéstámogató modul támogatására, valamint eredményességének javítására több képfeldolgozó algoritmusra szükség van. Az alkalmazott képfeldolgozó algoritmusok egy lehetséges csoportosítása:
Pont alapú: Egy régi pixelértéket egy újra cserél, valamilyen függvény alapján. Ilyenek például: o Inverz/negálás: Az aktuális pixelértéket a maximum pixelértékből (255) kivonva a kép negált változatát kapjuk:
g ( x, y) o
255
f ( x, y)
Kontrasztnövelés/csökkentés: szürkeségi értékek nyújtása úgy, hogy több információt lássunk
Maszk, vagy ablak alapú: A kép adott pixelét a környezetében lévő pixel függvényében módosul. Egy maszk pásztázza végig a képet. Ez a maszk egy mátrix, melynek elemei súlyok. Ezt hívják konvolúciós mátrixnak. A maszkok lehetnek szimmetrikusak, illetve nem szimmetrikusak. Használatai: o Az így kapott súlyozott értékek összege lesz az új pixel értéke. o Bizonyos pixeleket veszünk ki, és ezek adják az új pixel értékét Morfológiai szűrők:
Ezek a transzformációk objektumokat választanak szét, vagy egyesítenek, lyukakat fednek be, vagy éppen megnagyítják. A dilatáció megnöveli a területet, az erózió pedig lecsökkenti. A zárás művelet a képben található belső lyukakat, hibákat illetve kis öblöket, bemélyedéseket csökkenti, illetve el is tüntetheti. A nyitás művelet pedig a nagyobb alakzatokról leszakadt kisebb részeket távolítja el, illetve csökkenti. Minden pixelre egy 3*3-as ablakot fektetve, az ablak által lefedett környező pixelek értékeit felhasználva állítható elő az új pixel.
erózió: az ablak pixeleiből vesszük a minimum értéket dilatáció: az ablak pixeleiből vesszük a maximum értéket opening: először erózió, majd egy dilatáció algoritmus lefuttatása closing: az opening algoritmus fordítottja, először dilatáció, azután erózió.
27
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával Élkereső szűrők: Az alábbi élkereső szűrők szintén maszk alapú szűrők. 3*3-as maszkot alkalmazva, különböző minőségű, és pontosságú eredmény kapható. Ezen szűrők közül a Prototípus rendszerben [6. fejezet] a leghasználhatóbbnak a Sobel bizonyult (5. a ábrák).
a) A Sobel maszkja
b) A Prewit horizontális és vertikális maszkjai
c) Kirsch maszk
5. a ábrák: Kontúrpont kereséshez használt maszkok
5. b ábrák: Sobel éldetektáló, majd zajszűréssel kiegészítve
28
d) Robinson maszk
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával A végleges rendszerbe beépítésre került [7. fejezet] HSL szűrő használatával a kép színárnyalat szerinti szegmentására van lehetőség, intenzitás és megvilágítottság szerint. A színárnyalat (Hue) 0-360 intervallum közé, az intenzitás (Saturation) és megvilágítottság (Luminance/Brightnes) 0-100 közé eshet. Két esetben érdemes alkalmazni a HSL szűrést. Ha a pálya teljesen homogén, akkor hatékony sáv követés, ha az objektum a környezettől jelentősen eltérő színű (pl. vörös árnyalat), objektumkövetés során.
5. c ábrák A képen HSL szűrést végzünk vörös színre.
Az RGB szűréssel hasonló eredményességet lehet elérni, viszont az algoritmus futási ideje jelentősen gyorsabb, mint a HSL esetében. A 3 színcsatorna alapján minimum és maximum értékeken belül vizsgálja a pixelintenzitást, és ha a határok közé esik, akkor azt megjeleníti, különben fekete marad. A Threshold szűrés segítségével binarizáció érhető el, így csak azok a pixelek fognak beleszámítani a detektáló algoritmusba, amelyekre valójában szükségünk van. Abban az esetben, ha a környezetben nagymértékű fényváltozások következnek be, például fényesebb/megvilágítottabb területről árnyékosabb részre halad a robot, akkor egyfajta kiegyensúlyozást kell alkalmaznunk. Erre az Autobalance nyújt megoldást, mellyel a dinamikus értékváltoztatást lehet kezelni. Működése közben a kép telítettségére következtet, majd ez alapján a Threshold minimum és maximum értékeit automatikusan változtatja.
5. d ábrák: Világosabb területből sötétebbe való áthaladásnál az autobalance kiegyensúlyozza a fényintenzitást
29
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
6 A prototípus rendszer (2004-2005) A prototípus rendszer célja stabil alap lefektetése a térképezés számára, melyben a kipróbált algoritmusok, problémák megoldásai felhasználhatóak a végső rendszerben. A rendszer feladata egy PAL optikás kamerával felszerelt négykerekű mobil robot automatizált navigálása, akadálykerülése, vonalkövetése. A prototípus rendszer fejlesztése közben folyt a hardver kiépítése, tesztelése is. A stabil alap az egyszerűbb navigációk képessége mellett, képfeldolgozó eljárások kipróbálását, hardver tesztelését jelenti. A prototípus rendszer, és a végleges rendszer felépítése hasonló. A kameráról átküldött videojel feldolgozását a számítógép végzi, és az általa nyert információból a program automatikusan vezérli a robotot, amíg az el nem végzi előre meghatározott feladatát. A megvalósított prototípus rendszer akadálykerülésre, illetve objektumkövetésre.
képes
ütközésmentes
sávkövetésre,
6.1 A prototípus keretrendszer A keretrendszer összefogja a többi modult, egyetlen felhasználói felületen megjelenítve őket, mely tartalmazza az összes paraméterezési lehetőséget A feldolgozás sorrendisége (továbbiakban pipeline) a következőképpen épül fel. A kameráról beérkező PAL optikás képet a keretrendszer fogadja, majd továbbítja az előfeldolgozó (Imagetrans) részére. A szükséges transzformációk elvégzése után a döntéshozó modulhoz kerül a már feldolgozott kép, mely a RadioControl modul segítségével vezérli a robotot.
6.1. ábra: A prototípus rendszer grafikus felülete
30
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
6.2 Az előfeldolgozó modul (Imagetrans) Az előfeldolgozó (ImageTrans) modul tartalmazza az alkalmazott, kipróbált képfeldolgozási algoritmusokat. A beérkezett videojel előfeldolgozásra kerül az információ kinyerés érdekében. Előfeldolgozás, ami a digitális kép létrehozását, leképezési hibáinak kijavítását, és a további feldolgozáshoz kedvező átalakítását (jellemző tulajdonságok kiemelése, zaj csökkentése) jelenti, olyan eljárásokat takar, amelyek képből képet állítanak elő. Az előfeldolgozás első lépése a kép zajmentesítése. Erre azért van szükség, hogy az éldetektálás megfelelően hatékony legyen, különben a fel-felvillanó pixelek, apróbb intenzitásváltozások a képben is elég nagy arányban ronthatják a detektálás folyamatát. Ezek a zajok többnyire a rádiójeles továbbításból származnak, viszont a tesztelt USBkameránál is hasonló volt a helyzet, mivel a vezeték meghosszabbítása szintén további zajt generált. Megoldásként különböző szűrőket (gauss, medián) és closing (zárás) algoritmusokat használva a zajok, nagyobb pixelintenzitás változások jelentősen kiküszöbölhetőek. A feldolgozás után a kép a következő feldolgozási szintre kerül. Az információkinyerés legfontosabb eleme a prototípus rendszerben az éldetektálás. Számos algoritmus került beépítésre. Robinson, Kirsh, Laplace, Prewitt, Roberts, Sobel és SUSAN élkeresést alkalmazva különböző kimeneti értékeket (képeket) produkálva.
6.3 RadioControl modul A vezérlés szoftveres megoldásánál figyelembe kell venni a kimeneti eszközök csatornáját. Az RC autó irányítása párhuzamos porton keresztül történik. A Zlportio [21] komponens segítségével közvetlenül lehet írni az eszközre byte típusú adatokat. Kilenc irányváltoztató érték küldhető az irányításnak. Előre(1), balra(8), jobbra(4), balraelőre(9), jobbra-előre(7), hátra(2), balra-hátra(10), jobbra-hátra(6), állj(0). Ezek az értékek manuálisan a programból is vezérlehetők.
6.3. ábra: A robotot az egér és numerikus billentyűzet segítségével is irányítani lehet
Az automatikus navigálás irányítását a döntéshozó modul végzi a RadioControl megfelelő függvényeit felhasználva. A függvények megfelelő késleltetéssel tetszőleges sorban való meghívása bonyolultabb manőverekre is lehetőséget ad.
6.4 Döntéshozó modul A kezdeti feltételezések szerint az akadályok detektálása csak akkor lesz megbízható, ha a mobil robot homogén környezetben (pl. folyosón vagy útpályán) helyezkedik el, és az objektumok nagyobb mértékben eltérő színintenzitásúak. A kontúrpontok a navigálás alapját képezik. A modul bekapcsolásával a robot a meghatározott viselkedési formák alapján helyzetváltoztatást végez.
31
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
6.4.1 Sáv követés A prototípus rendszer döntéshozó moduljának sávkövetése a potenciális akadályok detektálásán alapul. Az algoritmus sebességét szem előtt tartva a középponttól kiindulva csak 6 irányban történik a tényleges távolságvizsgálat. A detektáló függvény működése során egy meghatározott kiindulóponttól – mely többnyire a PAL-optika beállított középpontja - meghatározott szögben valamint tetszőlegesen állítható tolerancia, értékkel pixelekben mért távolsági értéket ad vissza a kontúrponttól. A beérkezett távolsági adatokat 6.4.1. ábra: Különböző szögekben detektált kielemezve hozza meg a rendszer a kontúrpontok kiküldendő helyzetváltoztatási irányokat a navigációs modul számára, mely a robotot vezérli. A visszakapott adatok növekvő vagy csökkenő értékei alapján jobbra vagy balra vezérlést küldenek. Ha az előre néző detektáló vonal megadott „distance” értéktől kisebb, akkor a robotot megállásra kényszeríti, mivel közeli akadályt detektált. Ekkor, ha lehetséges a kép alsó felén is elvégzi a feljebb említett vizsgálatot, majd tolatást végez mindaddig, amíg a körkép felső felén detektált akadály már nincs útban. Ezzel az egyszerű algoritmussal megfelelő hatásfokot lehet elérni az ütközésmentes navigációban abban az esetben, ha megfelelő gyorsaságú a képfeldolgozás és a robot sebessége és iránya belátható terület kb. 70%-án belül kontrollálható.
6.4.2 Vonalkövetés Vonalkövetés során az algoritmus egy meghatározott – többnyire világos – színintenzitáshoz méri a pixeleket, így viszonyítva a követendő vonal helyzetét a robothoz képest. Három vízszintes detektáló vonal egyeneshez tartó távolsági adatai elegendő információt nyújtanak a követendő vonal relatív irányát illetőleg. Ahol a színintenzitás többször egymás után is nagyobb, az a pont potenciális útnak tekintendő. A detektáló vonalak irányát és nagyságát meghatározva a modul 6.4.2. ábra: A vonaldetektálás irányváltoztató adatot küld ki a robot részére. Ha az első vonal mentén az intenzitás alacsony, akadálynak minősül, és ellentétes irányváltoztatásra kényszeríti a robotot. Azonban 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 keres alkalmas pályát. 32
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
6.5 A PAL-kalibráció működése Ahhoz hogy a rendszer kellő pontossággal határozza meg a robotakadály távolságot, a PAL-kép kalibrációra szorul, mely manuálisan (a képre kattintva), valamint automatizálva is elvégezhető. A PALCenter a középpontot, az r1 (PAL InnerCircle) a belső holttér sugarát, az r2 (PAL OuterCircle) pedig a nagy sugarat jelenti pixelek-koordinátában (6.5. ábra) Mivel a PAL-optika és lencse felfogatása a kamerára nem stabil, gyakran elmozdul a beállított helyzetből a kép, ezzel elrontva a helyes detektálás menetét. Így egy automatikus PAL-kalibráció került 6.5. ábra: PAL-kép detektálás szempontjából fontos szerkezeti felépítése beépítése. Az új PAL középpont a legutolsó középponthoz képest kerül meghatározásra. Ha nincs megadva középpont a kép közepe lesz a mérvadó. Az algoritmus középponttól felfelé és lefelé, majd jobbra és balra kontúrpont távolságot vizsgál, ezen értékeket összegezve és megfelezve jön létre az új PAL középpont.
6.6 Összefoglalás, és konklúziók Szoftverfejlesztési szempontból a vezérlő szoftver Borland Delphi 7-es fejlesztői környezetben készült, melyben kipróbálásra kerültek a korábban bemutatott szűrők, és elkészült többféle navigációs megvalósítás. A prototípus rendszer gyenge pontjait kiküszöbölendő, valamint annak elméletét átemelve, a rendszer átkerült .NET/C# alá, az áttekinthetőség, modularizálhatóság, és sebességoptimalizáció reményében. A .NET-es verzió Microsoft Visual Studio 2005 alatt lett fejlesztve. A C# / .Net architektúra előnyei a Delphihez képest: A tiszta objektum orientált (OOP) felépítése miatt jobban támogatja az egységek modularizálhatóságát, illetve a komponensek újrahasznosítását A platformfüggetlenség miatt a kész rendszer viszonylag könnyen átültethető más architektúrára, operációs rendszerre pl.: mobil (CE) eszközökre, ezzel a robotot teljesen autonóm eszközzé válhat. A két rendszer hasonlósága: Mindkét rendszer fejlesztése, és tesztelése Microsoft Windows rendszeren történt. Belső működésüket tekintve pipeline elven működnek. A képek feldolgozása folyamatosan, egymás után történik, a következő feldolgozandó kép mindig a legfrissebb kép, a kameráról. A feldolgozás 20-30 kép egy másodperc alatt, és minden kép átmegy a teljes pipeline-on.
33
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
7 A rendszerszoftver működése 7.1 Áttekintés
7.1. ábra: A rendszerszoftver működése
A szoftver pipeline felépítésű. A digitalizáló kártyáról érkező képfolyam DirectX segítségével az Input modulba érkezik, mely továbbítja az aktuális képet az előfeldolgozónak (Filters modul), valamint a PALLibary modulnak. Az előfeldolgozó a beérkező képen elvégzi a szükséges transzformációkat, majd továbbadja a már feldolgozott képet a keretrendszeren keresztül a Döntéshozó modulnak. A PALLibary a pozíció meghatározása után felépíti a térképet, és kapcsolatba lép az útkereső modullal, ha szükséges. Az útkereső kiszámolja a megfelelő, lehetőleg a legrövidebb utat a cél elérése érdekében, és egy haladási iránynak megfelelő értéket továbbít a döntéstámogató rendszernek. 34
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával A döntéstámogató a programjának megfelelően meghozza a szükségesnek ítélt változtatást a robot mozgásában, és továbbítja azt a navigációs modulnak. A navigációs modul a döntést átalakítja a megfelelő irányítókód-kombinációra, majd soros illetve a modell RC esetében párhuzamos porton keresztül kiküldi a távirányítónak, így vezérelve a robotot.
7.2 Felhasznált könyvtárak A megvalósított rendszer több, mások által készített könyvtárat alkalmaz, amely stabil alapot adott a rendszer elkészítéséhez.
7.2.1 DirectshowLib [22] A DirectShow a Microsoft DirectX technológiába épült, ’média-folyam architektúra’, melynek segítségével jó minőségű audio-video alkalmazások készíthetők mind visszajátszáshoz, mind pedig rögzítéshez. Támogatja az alapvető, a telepített multimédia formátumokat, valamint az analóg, és digitális eszközök nagy részét, mind kamera, mind más beviteli eszköz formájában. Mivel a .NET nem implementálja a teljes DirectShow interfacet, ezért egy külső komponens felhasználásával került beillesztésre. A folyamatos fejlesztés alatt álló DirectShowNet libary a DirectShow C#-os illesztője (lásd: 7.4. fejezet). Segítségével a Microsoft Windows teljes beépített DirectShow komponense elérhetővé válik. Ennek előnyei, hogy minden, a DirectShow által ismert kameratípust képes kezelni a szoftver. A dekódolási, valamint a kirajzolási fázis a menedzselt (managed) kódtól külön szálon fut. Ezzel egyrészt rengeteg processzoridőt lehet nyerni, másrészt, amikor a managed kód képet vesz le, biztosan az a kép lesz, amit a periféria éppen közöl. Tehát nem léphet fel időelcsúszás az esetleges lassú feldolgozási sebesség miatt. További előnye a DirectShowNetnek, hogy szabadon felhasználható, valamint nyílt forrású (open source). Hátránya, hogy a DirectShow jó néhány funkcionalitása még nem érhető el benne, valamint, hogy olyan könyvtárakra (unmanaged.dll) támaszkodik, ami egyedi a Windows operációs rendszerekre, ezért más rendszerekben való alkalmazáskor vagy emulálni kell ezeket a könyvtári eljárásokat, vagy kicserélni az adott rendszerben megfelelő funkciókra. A DirectShow a különböző feladatokra filtereket használ, melyek összekapcsolásával megoldható kamera kép megjelenítése, videó lejátszása, kép kinyerése, videó felvétele több tömörítő eljárás segítségével. Ezek mellett számos filtert rendelkezésre bocsát, melyek akár képfeldolgozó eljárásokat is lehetnek. Az összekapcsolt filterek egy adatfolyam gráfot alkotnak, a 7.2.1. ábrán látható módon.
7.2.1. ábra: A videó kép adatfolyama
35
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
7.2.2 Aforge [23] Az Aforge egy C#-ban fejlesztett képfeldolgozó alkalmazás és függvénygyűjtemény, mely számos szűrési és képanalizáló algoritmust tartalmaz. A projekt által hasznosított szűrők: Szín alapú szűrők HSL szűrés (lineáris korrekció, színtelítettség, fényesség, színárnyalat módosítók) Binarizálás (threshold, Bayer dithering, Floyd-Steinberg, Burkes, Jarvis-JudiceNinke, Sierra, Stevenson-Arce, Stucki dithering metódusok) Konvolúciós szűrők (középérték, blur, élesítés, gauss-szűrő) Éldetektálás (Sobel, Canny) Többféle zajszűrés (Median, adaptív szűrő) Átméretezés és forgatás
7.2.3 OpenCVWrapper [24] A SharperCV az OpenCv képfeldolgozási eljárásgyüjtemény .NET-es változata, de sajnos kompatibilitási hibákból kifolyólag nem teljes értékű átirat. Mivel több algoritmus hasznos a projekt szempontjából, beillesztésre került a végleges verzióba. A szűrők közül a leghasznosabbnak a Canny algoritmus bizonyult. Felhasználásra került továbbá a térképezés során a jellemző pont detektáló algoritmusa, jóllehet ez a végleges verzióban nem szerepel [8.3.1. fejezet].
7.2.4 C# Neural network library [25] Neurális háló implementációnak Franck Fleurey által készített Neural Network könyvtár került alkalmazásra. A rendszer előnye, hogy a háló topológiája paraméterezhető módon adható meg, valamint több tanítási módszert is implementált. A rendszer alkalmazásáról részletesebben lásd 8.4. fejezet.
7.2.5 WeifenLuo [26] A WeifenLuo egy szabadon felhasználható .NET-es ablakkezelő komponens. Hasonló megoldással rendelkezik, mint a Microsoft Visual Studio 2005 ablakkezelése. Segítségével a főablakon belül bárhová helyezhető a gyermekablak, így egy átláthatóbb, személyre szabható ablakszerkezetet lehet létrehozni. Program kilépésénél lehetőség van a kiosztások mentésére xml formátumban, így a program indításakor a legutolsó állapot fog visszatöltődni.
36
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
7.3 A szoftver keretrendszere A keretrendszer lehetőséget ad új funkcionalitás gyors, és egyszerű rendszerbe illesztésére. Ezek lehetnek: képfeldolgozó eljárások, navigálási programok, egyéb szenzorokból szerzett információk feldolgozását végző modulok. A felhasználói felület a prototípus verzióhoz képest teljesen újra lett gondolva: az egyes modulokhoz tartozó paraméter-módosítási lehetőségek jól elkülönítve helyezkednek el, ezzel az egyedi modultesztelések felgyorsultak, valamint nagymértékben nőtt a felület átláthatósága is. Szoftverfejlesztési szempontból az egyes modulok külön könyvtári állományba (.dll) való helyezése több előnyel is járt. Egyrészt ily módon csökkent a fordítási idő, másrészt egy közös illesztési felületben (továbbiakban: interface) való megállapodás után, a fejlesztés egymással párhuzamosan történt. Az egyes modulok fejlesztés során önállóan, majd globálisan is tesztelésre kerültek. (A használt programfejlesztési metodikákról lásd 0 fejezet) A keretrendszer feladata, hogy közrefogja a modulokat, és a már ismertetett pipeline-végrehajtást végigvigye ezek felhasználásával. A feldolgozási pipline a keretrendszerben van definiálva. Betölti a modulokat a megadott sorrendben, majd definiálja köztük a szükséges kapcsolatokat. Több modul a feladatát csak más modulok felhasználásával képes véghezvinni. A keretrendszerbe épített számláló megadott időpillanatonként lekéri az aktuális képet az input modulból. Ezt az időt videólejátszásnál képkocka per másodperc (fps) fogalommal definiálják. A 25 fps elegendő a képfeldolgozó eljárásoknak, valamint a folyamatos videólejátszáshoz.
7.3. ábra: A végleges rendszer grafikus felülete
37
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával A keretrendszer letárolja az aktuális képet, valamint az előző képet, melyre később szükség lehet a feldolgozás fázisában. A modulok paraméterezése -tesztelési célokat megkönnyítendő - XML fájlba menthetőek.
7.4 Input modul Az input modul a kamerák kezelésén felül lehetővé teszi, a teszt-futások rögzítését, valamint a felvett videók visszajátszását, ily módon az algoritmusokat és a többi modult a hardver használata nélkül is lehet tesztelni. A feldolgozási filtergráf felépítését a 7.4. ábra szemlélteti. A kamera feldolgozásának folyamata szűrőkön keresztül történik. A bementi eszköz (esetünkben TV tuner) két kimenetén történik a bementi képfolyam mentése, megjelenítése, valamit a feldolgozó algoritmusok számára a kép kinyerése. A videó mentése a Capture kimeneten történik. Az “encoder” filter jelöli a számítógépre telepített kodek-eket, pl. divx, ffdshow. Lehetőség van a nyers, tömörítetlen videó mentésére is, így nagy méretű fájlokat kapunk. A preview kimeneten történik a megjelenítés, valamint a képkinyerés. A kimenetre egy ffdshow decoder van kötve, melynek segítségével nagyon gyors, valamint hasznos szűrőket alkalmazhatunk a képfolyamra, pl.: zajmentesítés, élkeresés. Mivel a képfolyam megjelenítése és az aktuális kép kinyerése különböző filtereken keresztül lehetséges, szükségünk van egy Smart Tee elágazó filterre, mely a beérkező jelet kétfelé bontja, és továbbítja a Video Render számára a megjelenítéshez, valamint a Sample Grabber-nek, mellyel a kép kinyerése valósítható meg.
7.4. ábra: A feldolgozási filtergráf
7.5 Előfeldolgozó modul (Filter) Az Előfeldolgozó a beérkező képet megfelelő képfeldolgozó transzformációk után továbbítja a következő feldolgozási szintre. A modul lehetőséget nyújt képfeldolgozó eljárások egyszerű implementálására, használatára. Segítségével egy szűrőlista építhető fel az alkalmazni kívánt eljárásokból. A modul végighalad a listán, minden filtert egyenként alkalmazva a beérkezett képen. Ebből kifolyólag szerepet játszik a filterek sorrendje is, melyeket változtatva különböző kimeneti eredmények érhetők el. A modul lehetőséget nyújt továbbá több különböző filter használatára is egy feldolgozási ciklus alatt. Minden algoritmus saját beállításokkal rendelkezik, melyeket kimentve későbbi tesztelésekhez újból felhasználhatók. A prototípushoz képest hasonló előfeldolgozó szűrő csak a SUSAN, melynek implementálása nem hozta meg a kívánt eredményt. Helyette hatékonyabb algoritmusok kerültek beépítésre. A döntéstámogató modul segítésére az élkereső eljárások helyett szín alapú algoritmusok alkalmazása kapott nagyobb szerepet. HSL, és RGB filterek után Threshold szűrést alkalmazva jó eredménnyel lokalizálható a bejárandó út. 38
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
8 A Döntéstámogató rendszer (PALLibrary) A PALLibrary egy döntéstámogató modul PAL optikás rendszerekhez. Feladata a beérkező képek alapján a mobil robot lokalizációja, valamint környezetről egy sík térkép felépítése, és karbantartása. A lokalizáció relatív: a felépített térkép kiindulási pontja megegyezik a robot kiindulási pontjával. A beérkező kép először egy kiterítési (unfolding) előszűrésen megy keresztül, majd a kiterített kép alapján meghatározásra kerül a robot előző képhez mért elmozdulása, és elfordulása. Végül a kiterített képen vett hasznos pixelek egy áteresztő (blending) szűrőn keresztül a térképre kerülnek. Az egyes almodulok eredményességének mérésére kétféle mérőszám került bevezetésre: az egyik a modul funkcionális jóságának kvantifikálása, a másik pedig a futási idő.
8.1 Az optika paramétereinek megállapítása Az optikából beérkező képen található pixelek jelentős része nem rendelkezik a térképezés szempontjából effektív információtartalommal. Alapvetően két ilyen holtteret lehet megkülönböztetni a jelenlegi architektúrában: tartóállványok által kitakart területeket, valamint a középpontra nézve körszimmetrikus belső vakfolt / külső holttér területét. Ennek az almodulnak a feladata az utóbbi automatizált megállapítása. A középpont megállapításáért felelős algoritmus abból a feltételezésből indul ki, hogy a vakfolt általánosságban a kép közepén helyezkedik el. Így először veszi a kép középpontját, majd egy threshold alapú pixeldifferenciálás segítségével felméri az adott ponttól a vakfolt horizontális, és vertikális kiterjedését. A két szakasz megfelezésével előáll a vakfolt középpontjának pozíciója.
8. ábra: A Térkép
felépítése
8.1. ábra: Az optika
megtalált paraméterei
A belső vakfolt sugarának megállapításáért felelős algoritmus a középpontból kiindulva átlósan mind a négy irányba felméri a vakfolt kiterjedését. Ez a mérés két szomszédos pixel differenciája alapján történik. Ezzel előáll négy szakasz, majd ezen szakaszok átlagát véve előáll a belső sugár. A külső sugár megállapítása hasonlóképpen történik, viszont ott a két szomszédos pixel differenciája helyett az adott pixel értékét feltételezzük egy threshold érték fölé. A megállapított értékek nem optimálisak, de kielégítők: mivel ezt a mérést csupán egyszer - a konfigurálási szakaszban - kell elvégezni, az eredmények akár kézzel ellenőrizhetőek, felülbírálhatóak.
39
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
8.2 Képkiterítés Ez a modul a PAL optikából érkező képet transzformálja egy olyan felülnézeti képpé, amelyen a földön lévő, párhuzamos egyenesek a képen is párhuzamosak. A képkiterítő előszűrés végeredménye alapján kerül az aktuális pozíció meghatározásra, valamint - további előszűrések után - ezekből a képekből épül fel a teljes térkép. A kiterítés elvégzéséhez szükséges néhány lemért aránypár, ami reprezentálja, hogy a PAL optika valós helyzetétől síkban X távolságra elhelyezkedő pontok az optikából érkező képen milyen távolságra helyezkednek el (Y). A modul a mért adatokból interpoláció segítségével egy közelítő leképzési görbét készít. A leképzési egyenletet a beérkező kép minden pixelére alkalmazva előáll a felülnézeti képet (lásd a 8.2. ábrán). Jóllehet mind a kiterítés, mind az interpoláció során információvesztés történik, ez a végeredmény térképen nem számottevő.
8.2. ábra: Képkiterítés: bal felülről lefelé:az eredeti kép, a kiterített kép, és a kiterítéshez használt interpolációs függvény
8.3 Pozíció megállapítása A lokalizáció relatív mivoltát szem előtt tartva ez a feladat alapvetően redukálódik a két beérkezett kép közötti relatív elfordulás, és elmozdulás megállapítására. Két különböző módszer került kipróbálásra, ezek a következők: OpenCV, és jellemző detektálás Neurális háló alapú lokalizálás
40
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
8.3.1 OpenCV, és jellemző detektálás A módszer alappillérét az OpenCV [27] könyvtárban található feature detection függvény képezi, mely képes[28] sarokpontok felismerésére, valamint azok követésére. Ezt felhasználva a kép kiterítése, majd egy átméretezési transzformáció alkalmazása után a jellemző pontokból számítható lenne a az elfordulás, és az elmozdulás nagysága, és iránya. A tesztelés során azonban számos probléma akadt ezzel a módszerrel. Az első ezek közül, hogy az OpenCV jellemző detektálási függvénye alapvetően álló kamera előtt mozgó objektumokat feltételez,és nem mozgó kameráról figyelt statikus jellemzőket. A második probléma, hogy az optikával ellátott kamera az átlagos elmozdulásához képest egyszerre csak viszonylag kevés területet lát benne, ennek következtében a felismert jellemzők helyzete nagymértékben változik két kép között –a jellemző pontok oszcillálnak. A problémák kiküszöbölése érdekében másik módszer került alkalmazásra.
8.4 Neurális háló A módszer alappillérét az irodalomkutatásban már említett ALVINN projekt képezi. A beérkezett képekből először egy különbség-kép kerül előállításra, majd a háló bemenetét ez a különbség kép adja. A hálónak három kimenete van: az X,Y tengelyen való elmozdulás, valamint az elfordulás.
8.4.1 Térképezés tesztelése Mivel a térképet egy neurális háló építi fel, szükség van egy tanítómintára, mellyel a háló betanítható. Ahhoz hogy megfelelő számú tanító minta álljon rendelkezésre, nagy beltéren kellett videókat forgatni. A videókat képkockákra vágva, a képeket kézzel összeillesztve, majd a kép pozíció, és fordulási adatait letárolva, létrejött a tanító minta, ami alapján történt a háló tanítása.
8.4.2 A háló struktúrája, és tanítása Neurális háló implementációnak egyik legalapvetőbb kérdése a topológia, a háló szerkezete. Az elkészített tesztrendszer alapvetően előrecsatolt hálót feltételez, az optimális háló mélység, valamint a szintenként használt neuronok száma paraméterként megadható. A Felhasznált könyvtárak [7.2] fejezetben található Neural Network Library segítségével két féle tanítási módszer került kipróbálásra: hiba-visszaterjesztés (backpropagation), és genetikus algoritmuson alapuló módszer. A háló kiterjedésének tervezésekkor két határérték fontos: túl kicsi háló esetén fennáll annak az esélye hogy szuboptimális eredményt ad, túl nagy háló esetén a tanítási fázis túl sok időt fog elvenni. Az egyes hálók jóságának kvantifikálására egy mérőszám került bevezetésre: a mérőszám azt adja meg, hogy a tanítási minta egy részhalmazát kiválasztva, és azzal betanítva a hálót, a tanítási minta maradék részét mekkora hibaértékkel képes lemérni. Ennek minimalizálását szem előtt tartva, a végeredmény háló egy 2 szintű, szintenként 15 neuront tartalmazó háló lett. A tanítási folyamat során érdekes még megjegyezni, hogy a tanítási idő minimalizálása érdekében egy hibrid módszer került alkalmazásra: a tanítás első fázisában a genetikus algoritmus nagy vonalakban (1%-os hibázási pontossággal) összeállította a neurális hálót, majd az apró pontosításokat (a 0.1%-os optimális határig) a hiba-visszaterjesztéses algoritmus fejezte be. 41
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
8.5 A térkép tartalmi felépítése - a blending szűrő A korábbiakban vázolt kiterítési, és lokalizációs hibák csökkentése érdekében az egyes területekhez tartozó színkomponens értékek egy blending szűrőn keresztül íródnak át a térképre leképezett pozíciójukba. A blending szűrő lényege, hogy a térképen minden pixel színkomponens értéke mellett letárolásra kerül az is, hogy az adott pixel tartalma hány korábbi beérkező képből került kiszámolásra (a továbbiakban: alfa komponens). A beérkező értékek hatása tehát a felépített térképre nézve logaritmikusan csökken. Az egyes pixel színkomponensek megállapítása a következőképpen történik:
Px, y ,r
Px, y , g Px, y ,b
Px, y ,a
( Px , y ,r Px , y ,a ( Px, y ,a
( Px, y , g Px, y ,a ( Px, y ,a ( Px, y ,b Px , y ,a ( Px, y ,a
Px, y ,a
K x , y ,r * K x , y ,a ) K x , y ,a )
K x , y , g * K x , y ,a ) K x , y ,a )
P: K: r,g,b: a:
térkép beérkezett kép színkomponensek alfa komponens
K x , y ,b * K x , y ,a ) K x , y ,a )
K x , y ,a
A szűrő alkalmazása három előnnyel jár: Az egyes pixelértékek meghatározásában a korábbi képek is szerepet játszanak Az elkészített térkép kevésbé lesz érzékeny a zajra Statikus szűrés (lásd 8.6 alfejezet)
8.6 Statikus szűrés A robot architektúrájából adódóan a képen vannak olyan részletek, amelyek a térképezés szempontjából nem tartalmaznak hasznos információt, térképbe illesztésük nem lenne előnyös. Ilyen például a 8.2. ábrán megfigyelhető állvány, valamint a középső vakfolt. Ezeket a képrészleteket a modul egy statikus maszk segítségével tünteti el oly módon, hogy a blending szűrő bemeneti képén a maszkon található pixelek súlyát nullára állítja. Így a megadott képrészletek nem kerülnek a térképbe illesztésre.
8.7 A térkép strukturális felépítése A térképezés alapvető feladata a robot által már korábban bejárt területekről beérkezett képek tárolása oly módon, hogy abból további modulok algoritmikusan egységes, és konzisztens módon tudják kezelni a környezetet. A robot által feltérképezett – és ennek megfelelően tárolandó – terület tetszőlegesen nagy lehet, ennek megfelelően az egész térkép egyetlen memória tömbben való tárolása nem lehetséges. Annak érdekében, hogy a térkép dinamikusan növelhető legyen, az egész képet statikus méretű darabokra való bontása után az egyes térkép-darabkák, valamint a közöttük lévő kapcsolódási mátrix kerül letárolásra. 42
8.7. ábra: A térkép strukturális tagoltsága
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
8.8 Összefoglalás Az előállított rendszer a kameraképek gyenge minősége, és a gyors mozgás ellenére is képes stabil térképezésre. Az elmozdulás megállapítására jellemzőkövetés helyett a neurális háló alkalmazásával nemcsak pontosabb helyzetmeghatározást, de gyorsabb futási időt is eredményez, ezzel további erőforrásokat felszabadítva. Az előállított rendszer segítségével kinyert térkép számos további navigálási, és programozhatósági lehetőségre mutat előre [12.4. fejezet].
43
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
9 Döntéshozó modul A korábbi, prototípus rendszerben elkészített Döntéshozó modul átírására két okból került sor. Egyrészt a három alapvető navigációs program – a vonal, sáv, és objektumkövetés – egy univerzális, egységes algoritmus keretei között került integrálásra; másrészt pedig, hogy lehetőséget biztosítson új navigációs programok – például térkép alapú navigáció – rendszerbe illesztésére. A prototípus rendszerben az algoritmus – a diszkrét irányítású RC robotot alapul véve – kielégítő volt, viszont az új rendszerben a precíziós irányítás további beállításokat igényel. A döntéshozó modul feladata a navigációs modul irányító értékekkel való vezérlése. Az univerzális döntési algoritmus működésének feltétele, hogy megfelelően legyenek beállítva a PAL-optika jellemző paraméterei: a középpont (X,Y), a belső holttéri sugár (r1) és a külső sugár (r2). (9. a ábra)
9. a ábra: A PAL optika jellemző
étékei Az optika tulajdonságán kívül manuálisan felvett értékek is szükségesek a döntéshozó rendszerhez. Ezek az adatok az optikára és a robot tulajdonságaira vonatkozó adatok, melyek automatikus beállítása algoritmusokkal csak nehezen vagy egyáltalán nem lehetségesek:
Distance: A maximális figyelési távolságot százalékban adja meg a külső sugárhoz képest. A robot kanyarodási paramétereit jelentősen változtathatja. Scanning degree: A keresési szög 0360 fokig terjedhet a robot haladási irányának megfelelő szögtől kezdődően. 9. b ábra: A manuálisan beállítható döntéshozói Threshold minimum: A legkisebb paraméterek elfogadható pixelintenzitások összegét határozza meg. Az adat változtatása a feldolgozás eredményének minőségét befolyásolja. Zajos kép esetében hibatűrést lehet beállítani. Turning degree: A robot maximális fordulási szöge, mely Modell RC esetében 40-45 fok között található. Tolerance: Az előrefelé haladáshoz képest tolerancia szöget lehet meghatározni. Általában a diszkrét irányításnál van jelentősége, mivel így kis eltérésnél sem fog a prototípus szoftver esetén megfigyelhető oszcilláló mozgást végezni. Speed Limiter: A robot maximális elérhető sebességét lehet korlátozni a beállítással. Object distance: Objektumkövetésnél ezen a detektált távolsági határon túl engedélyezi az objektum irányába történő helyzetváltoztatást. Az algoritmus egy olyan irányvonalat határoz meg a képen, mely a középpontban tart össze, a kezdete a középponttól r1 távolságnyira van. A distance értéken belül 90 44
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával foktól elkezdve a scanning degree értékig balra (>90fok) illetve jobbra (<90fok) detektálást végez a következő módon: A meghatározott vonalak mentén összeadja a pixelek intenzitását. A threshold minimum küszöbszámot túllépő szögértékek maximumja lesz kiválasztva az irányítás számára. A szögérték ellenőrzésre kerül, hogy a robot elfér-e az adott szakaszon. Mivel az algoritmus az adott problémakörre nézve univerzális, ezért csak a paramétereket kell változtatni a helyes irányítás érdekében. Előnye, hogy nem szükséges a PAL optika megléte, a kiindulási középpontot a kép aljára állítva, anélkül is eredményes navigáció érhető el.
9.1 Vonalkövetés A distance értéket, vagyis az r1-től r2-ig tartó figyelési távot úgy érdemes beállítani, hogy a távoli zavaró objektumok, fények ne kerüljenek bele a detektáló vonalba. 30-60% közötti érték beállításával elkerülhető a távoli, zajnak tekinthető foltok potenciális útként való azonosítása. A scanning degree a keresési szöget jelenti a középálláshoz képest. Nem feltétlenül érdemes a robot tényleges kanyarodási szögétől nagyobbra venni. A helyes threshold minimum érték általában 5000-10000 között van binarizált kép esetén, hosszabb útszakasz figyelésekor magasabb összegértéket kell meghatározni. A tolerance stabilizáló érték 3-6 fok közt már elég jó stabilitást biztosít az egyenes haladás érdekében. A robot sebességét vonalkövetésnél lehet a legnagyobbra venni, hiszen általában nem kell számolni a felbukkanó akadályokkal és elegendő hely van biztosítva a kanyarodáshoz is. Az algoritmus hatékonyságát a Threshold képfeldolgozási szűrés növelheti, így biztosan csak a kiválasztott színintezintásoknak megfelelő utat fogja figyelembe venni.
9.1 ábrák: A nyers, és a binarizált képre alkalmazott vonalkövetés
45
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
9.2 Pályakövetés A distance értéket nagyra érdemes állítani, hogy a terepet minél jobban „belássa” a detektáló vonal. A scanning degree a robottól függő maximális kanyarodási szög értéke. A threshold minimum érték 10000-20000 között (binarizált kép esetén), annak érdekében, hogy csak olyan terepen haladjon, ahol megfelelő távolságon belül meg tud állni felbukkanó akadály esetén. A tolerance érték 10-15 fok közt kevesebb ingázást tesz lehetővé. 9.2. a ábra:Trackkövetés canny A sebesség mértékét a környezethez képest éldetektálással, invertálással és kell megfelelően meghatározni. Beltéri thresholdozással környezetben lassabb, óvatosabb navigációt kell megvalósítani. Threshold szűréssel szegmentálva csak a kifejezetten egyszínű utat veszi figyelembe.
9.2. b ábra: Treshold szűrővel való pályakövetés
9.2. c ábra: HSL szűrés, és binarizálás
9.3 Objektumkövetés Olyan objektumot képes a robot követni, amely nagy mértékben eltér a környezeti színintenzitásoktól. Általában az ilyen színek a világos rózsaszín, világoszöld, narancssárga, vörös. A képekre előfeldolgozásnak RGB vagy HSL szűrést, majd binarizációt alkalmazva threshold szűrővel, az objektum jól elkülöníthető. Az alábbi beállításokkal képes az univerzális algoritmus a robot objektumkövetését megvalósítani: Az object distance paraméter nagyban függ az optika típusától, a kamera magasságától. Megadható hogy milyen távolságon túl kezdjen az objektumhoz közelíteni illetve távolodni a robot. 46
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával Az object tolerance beállítás a „nyugalmi állapotot” A distance érték a maximális objektumkövetési táv megfelelője. Általában a teljes belátható környezetben történik az célpont detektálása (90-100%). A scanning degree paraméter maximálisra állításával a teljes belátott környezetben történik az objektumkeresés. A threshold minimum érték alacsonyra állításával a legkisebb/legtávolabbi szegmentált folt is potenciális követendő célpont lehet. A tolerance paraméter a követendő objektum nagyságától függ. Kis méretnél alacsony értéket (0-5 fok) megadva pontosan irányba tartja a robotot, míg nagy méret esetében ha bizonytalan a mozgás nagyobb toleranciaszintet lehet beállítani. A robot sebességének (speed limiter) korlátozása itt is célravezető a követendő célpont hirtelen helyzetváltoztatásai miatt.
47
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
10 Navigációs alrendszer (Navigation modul) A modul feladata a robot hardverével való kapcsolattartás. Ez a modul nem része a pipeline vezetéknek, mivel nincs képfeldolgozás. A döntéshozó modul a megfelelő irány meghatározása után elküldi a vezérlési értékeket a Navigációs alrendszer számára, mely soros porton továbbítja azokat a távirányítónak. Mivel - kompatibilitási okokból szükséges volt a prototípus hardverrel való kommunikáció, ezért az alrendszer képes mind a soros, mind a párhuzamos porton keresztül vezérelni.
10. a ábra: A Navigációs alrendszer grafikus felülete
A modul lehetőséget biztosít manuális irányításra is. Ennek segítségével billentyűzetről navigálható a robot, felvétel készíthető a kiadott értékekről, valamit a köztük eltelt időről. A kiadott kontroll-értékek több lehetséges alkalmazása van, jóllehet a rendszerben ezek még nincsenek kiaknázva: A lokalizáció tesztelése során a kontroll-értékek felhasználhatóak egyfajta kiinduló értékként, további pontosítás céljából Navigációs forgatókönyv (script): előre meghatározott, több irányítási értékből álló navigáció beépíthető az irányítási értékek mellé. Pl. gyors megfordulás a kerekek visszafele, majd előrefele pörgetésével (farolás) A döntéstámogató modul százalék arányos értékeket küld ki, melynek célja a különböző Modell RC-k közötti kompatibilitás megőrzése, valamint az RC használatának biztosítása. Párhuzamos porton 9 irányváltoztató érték küldhető az irányítónak, ezért a kapott százalékos értékek átalakításra kerülnek a maximum 9 értékre. Előre (1), balra (8), jobbra (4), balra-előre (9), jobbra-előre (7), hátra (2), balra-hátra (10), jobbra-hátra(6), állj(0). Soros portra csatlakozáshoz szükség van a megfelelő port, paritás bit, baudrate beállítása. A csatlakozás sikeres kimenetelét PIC „OK” visszajelzéssel tudatja. Amennyiben nem érkezik visszajelzés, értesítést küld, hogy nem képes kommunikálni a távirányítóval. Ekkor ellenőrizni kell a távirányító bekapcsolt állapotát. A végleges (.NET) rendszerben a soros porti kommunikáció a System.IO.Ports névtér segítségével történik. A kiküldött értékek a hardver felépítéséből adódóan különböző intervallumok közé eshetnek, valamint a középérték sem feltétlenül a matematikai közép, ezért ezek változtatására a modul lehetőséget biztosít.
48
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával Az irányítási értékek kiküldése akkor veheti kezdetét, mikor a PIC jelzést küld. Amennyiben készen áll az adat fogadására, a modul kiküldi a két irányváltoztató értéket (irány, sebesség). Ezek után visszaigazolást vár a PIC-től, mely válaszul kiküldi az előbb fogadott adatokat. Ha a visszakapott értékek megegyeznek a kiküldött adatokkal, a kommunikáció sikeres volt. A billentyűzetről való irányítás a 10. b ábra: Billentyű lenyomása az idő Microsoft DirectX névterének DirectInput függvényében osztály segítségével lett megoldva. A DirectInput lehetővé teszi a billentyűzet kezelését. Mivel a kézi navigáció nem működhet együtt a döntéshozó vezérlésével, kikapcsolásra kerül a döntéshozó kézi beavatkozás során. A billentyűzetről való irányítás úgy lett megtervezve, hogy kezelése a felhasználó számára intuitív legyen. A robotot a nyíllal jelzett billentyűkkel lehet vezérelni. Így összesen nyolc irányítási lehetőségre van mód. Mivel a Modell RC precíziós irányítású, a kézi irányításnál is törekedni kellett ennek helyes megvalósítására. A kiküldendő adat a megengedett intervallum között addig növekszik, amíg a billentyű lenyomott állapotban van. Amennyiben ez az állapot megszűnik, ugyanolyan mértékkel csökkenni kezd (10. b ábra). A növekmény értéke változtatható a kívánt motor reakció függvényében. Ezt az értéket érdemes feljebb állítani, ha az autó akkumulátora merülni kezd, mivel ilyenkor a motorok lassabban reagálnak.
49
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
11 A rendszer hatékony megvalósításának elvei 11.1 Alkalmazott optimalizációk Összetett rendszer lévén a sebesség optimalizáció fontos szerepet játszott a fejlesztés során. Egy-egy problémára sokszor többféle algoritmus született, majd a leggyorsabb algoritmus került beépítésre. Az algoritmusok mellett feltüntetett időértékek a kernel32.dll-be épített PerformanceCounter függvény segítségével kerültek megállapításra, mely ezredmásodpercre pontos időmérésre képes. A mérés minden esetben egy AMD Athlon 2000XP típusú számítógépen, Windows XP operációs rendszer alatt lett elvégezve, teljes task minimalizáció mellett. A mérési eredmények 1000 futás alatti átlagszámot mutatnak.
11.1.1
Bitmap.Clone() gyorsítás
Jóllehet a framework-ben a képek átadása referenciaként történik, sokszor szükség van a teljes kép másolatára. A keretrendszerbe épített képmásoló függvény a Bitmap.Clone() meglehetősen lassú, ezért szükség volt alternatív megoldást keresni. Három különböző megoldási mód lett kidolgozva a Clone() függvény helyett: NewBitmap: a Framework System.Drawing.Graphics osztályával belerajzolható a kép egy újonnan létrehozott Bitmapba. copyMemcpy: a windows ntdll.dll függvénygyűjteményében található memcpy függvénnyel egy memóriaterületről tudunk átmásolni egy másik memóriaterületre, hosszának megadásával. Scan0: ez az eljárás egyszerűen pixelenként másolja át a képet egy másik képbe Futási idő
Algoritmus
függvényhívás / másodperc
Bitmap.Clone()
0.01 sec
100
NewBitmap()
0.005 sec
200
CopyMemcpy()
0.001 sec
1000
Scan0()
0.008 sec
125
10.1. táblázat: Kép másoló metódusok futási ideje
A táblázatból jól látszik, hogy a MemCpy függvény a leggyorsabb, ezért alkalmazása az egész projekt folyamán további erőforrásokat szabadított fel más algoritmusok számára.
50
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
11.1.2
A kiterítés optimalizációja
A 8.2-es fejezetben ismertetett kiterítési algoritmus megvalósítása során az alábbi optimalizálás történt. A PAL optika középpontjának ismeretében egy transzformációs mátrix generálható, melynek nagysága megegyezik a feldolgozandó kép nagyságával, és az egyes elemei pedig tartalmazzák, hogy a felépítendő kiterített kép egyes pixeleinek értékek az eredeti képen merre találhatóak. A pixelek pozícióját a memóriában való elhelyezkedése alapján határozza meg -ily módon a kiterítési transzformáció néhány lépésben elvégezhető, tehát gyors. Másik előnye egy ilyen transzformációs mátrix alkalmazásának, hogy ezt a futás alatt csak egyszer kell legenerálni, ezután használható minden további kép kiterítéséhez.
11.2 Alkalmazott programfejlesztési metodikák 11.2.1
A fejlesztés módszere
A szoftver alapvetően evolúciós fejlesztéssel készült: a főbb vázlatok egyeztetése után a programot modulokra bontva, az egyes modulok fejlesztése, tesztelése egymással párhuzamosan történhetett.
11.2.2
Forrásfa
Már a készítés korai stádiumában felmerült arra az igény, hogy az egyik fejlesztőnél történt változtatások a másik fejlesztőhöz minél gyorsabban eljussanak. Egy verzió kontroller (version controll) rendszer bevezetése nem csak erre a problémára adott megoldást. A központosított forrásfa egyben tárolja az összes eddigi változtatást, így, ha a szoftver evolúció valahol zsákutcába torkollik, könnyen vissza lehet térni egy korábbi verzióra. Ráadásul a feltöltött forrásfa tárolja a szoftver teljes aktuális állapotát, íj módon még ha maga a központi forrásfa meg is semmisül valamilyen hardver, vagy szoftver hiba miatt, az aktuális állapot bármelyik fejlesztő számítógépén megtalálható. Ennek köszönhetően a fejlesztés folyamán egyetlen kódsor sem veszett el. Az Interneten számos, szabadon használható verzió rendszer található. Három okból esett a választás a Subversion-re [29]. Egyrészt, a Better SCM Initiative oldalán [30] található összehasonlítás, másrészt a hozzá letölthető –ugyancsak nyílt forrású (GPL)- TortoiseSVN egyszerű, intuitív felhasználói felülete.
11.2.3
Wiki
A fejlesztés során felmerülő problémák szóbeli egyeztetése igénybe vesz legalább két fejlesztőt, ami egyrészt nem biztos, hogy mindig adott, másrészt egy-egy probléma miatt nem lehet megtenni azt, hogy az egész fejlesztést szüneteltetjük. Ennek a problémának a megoldására létrehoztunk egy olyan weblapot, amit bárki szerkeszthet, hozzáfűzhet, elvehet sorokat, képeket, stb. Az ilyen oldalakat, avagy portálokat összefoglaló néven Wikinek hívják. A leghíresebb külföldi wikinek, a Wikipédiának [31] több, mint 796.000 szócikke van a dolgozat írása idején.
51
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
12 Az eredmények bemutatása 12.1 A rendszer tesztelése 12.1.1
Hardver tesztelés
Az RC autó összeköttetése a PC-vel nem okozott nagy gondot, ezért már a Prototípus rendszer fejlesztése közben lehetőség volt tesztelni a rendszert, így párhuzamosan történhetett a modell RC, és a prototípus rendszer fejlesztése. Amíg a Modell RC távirányítója nem készült el, a kapcsolás, és a program próbapanelon lett tesztelve. Amikor becsatlakozási ponton mért impulzusok megegyeztek az eredeti távirányító megfelelő helyen mért impulzusaival, a távirányító megépítésre kerülhetett, tesztelése elkezdődhetett. A rendszer fejlesztése során elsődleges cél a Modell RC- t vezérlése volt, mivel így az RC autó irányítása alapvetően megoldott. Mivel a fejlesztés kezdeti szakaszában nem állt rendelkezésre vezeték nélküli kamera, a feldolgozó egység közelében kellett homogén környezetet kialakítani. Wireless kamera beszerzése nagyobb lendületet adott a projektnek, mivel nagyobb tesztelési terület állt rendelkezésre. A két fajta robot méretbeli különbsége meghatározta a robotok tesztelési környezetét. Az RC robot egy folyosó méretű helyen nehézség nélkül képes megfordulni, míg a Modell RC korrigálások során, mivel az irányító kerekek lehetséges pozíciója több mint 3 fajta érték lehet. Ez a robot az RC robothoz képest nehézkesebben fordul. Ez felveti a maximális sebesség problémáját, mivel gyorsabb haladáskor a robot nehezen fordul, így szükséges sebességének lekorlátozása.
12.1.2
A szoftver modulok funkcionális tesztelése
A modulok egyesével –még a keretrendszerbe kerülés előtt– külön kerültek tesztelésre. Így egy jól átlátható, jól modularizált rendszer állt elő, amelyek bővítése, módosítása a későbbiekben egyszerűen elvégezhető. Teszt videók felvételével, a robot összeállítása nélkül mind a prototípus rendszernél mind pedig a végső rendszernél gyorsabbá vált a tesztelés. Az e videók alapján készített kódrészletek, algoritmusok a robottal való éles tesztelés során is megfelelően működtek. A szoftver különböző számítógépeken is kipróbálásra került, annak érdekében, hogy a végrehajtás és futási idő szempontjából egy optimálisabb kód szülessen.
12.1.3 Az elkészített rendszer tesztelése A fejlesztés hatékonysága miatt a rendszer több környezetben tesztelésre került. Kezdetben szobában, mely kis mérete miatt csupán a hardver működőképességének
52
12.1.3 a ábra: A robot érzékeli az elé kerülő akadályokat, és kísérletet tesz azok kikerülésére
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával tesztelésére volt alkalmas (12.1.3. a ábra). A vezeték nélküli kamera alkalmazásával a következő tesztelési környezet folyosó volt, ahol lehetőség nyílt pályát felállítani. Mivel ez a hely a Modell RC-nek nem elegendő, pályakövetés helyett vonalkövetésre lett tesztelve. A Modell RC pálya navigációjának tesztelése érdekében egy nagy, üres szobában került felállításra a bejárandó út. Sikeres tesztelés után szabadtéri tesztelésre is sor került, mivel szükséges volt a rendszer vizsgálata természetes fényviszonyok mellett is (12.1.3. b ábra). A tesztelések során a változó fényviszonyok, videó jelzavarok, fényvisszaverődések jelentősen befolyásolták a rendszer tesztelésének hatékonyságát, de a paraméterek megfelelő beállításával, képszűrési eljárások alkalmazásával, a program hibatűrővé tételével a robot sikeresen elvégezte a feladatát.
12.1.3. b ábra: Kültéri környezetben a robot a járdán navigál
A PAL optika a nem gyári összeszerelés, valamint az elhasználódásból adódó problémák miatt a kezdetben elfogadhatóan éles képének minősége jelentős mértékben romlott, így a tesztelést egyre nehezebb volt kivitelezni. A feldolgozás hatékonyságának javítása érdekében szükségszerűvé válik Omnidirectional rendszerre való áttérés. Mivel az univerzális navigáló algoritmus úgy lett megtervezve, hogy ne befolyásolja az optika megléte, csupán gyűjtőlencsével is jó eredményeket lehet elérni pálya navigáció, vonalkövetés, és objektumkövetés terén. Mivel azonban a térképezés számára szükséges egy felülnézeti kép a térkép összeállításához, a rendszert át kell átalakítani. További problémák a távirányító, és a vezeték nélküli kamera hatótávolságaiból adódtak. A távirányító 10-15 méteres távolsága nem tette lehetővé az igazán nagy terepen való tesztelést. Nagyobb antenna, valamint egy házi gyártmányú cantenna [32] javított a távolságon. A kamera hatótávolsága is jelentősen leromlott az árnyékolás miatt, mivel a fogadó egységet a feldolgozó egységhez közel kellett elhelyezni. A jeltovábbításból származó gondok a képen vibrálással jelentkeztek. A cantenna használata itt is javított a hatótávolságon. Nagy, üres beltéren a hatótávolság kevésbé okozott problémát, mivel mindkét esetben a fogadó légvonalban látta az adót, így a leárnyékolás nem jöhet szóba.
53
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
12.1 Futási idő mérési eredmények A futási idők mérése azért kritikus, mert nagy sebességnél a stabil navigáció érdekében egy másodperc alatt legalább 20 képet szükséges feldolgozni.
12.1.1
Képfeldolgozó algoritmusok
Invert
0.0027 sec
függvényhívás / másodperc 370
HSL
0.0437 sec
22
Rgb filter
0.0026 sec
384
Gray 8 bit
0.0175 sec
57
Gauss
0.0186 sec
53
Blur
0.0642 sec
15
Sharpen
0.0189 sec
52
Edggefilter
0.0225 sec
44
Threshold
0.0112 sec
89
Pixellate
0.0144 sec
69
Futási idő(másodperc)
Algoritmus
12.3.1. Táblázat: a felhasznált képfeldolgozó algoritmusok futási ideje
12.1.2
Térképező algoritmusok Futási idő(másodperc)
Algoritmus
függvényhívás / másodperc
PAL optika detektálása
0.0025 sec
400
Virtuális felülnézet
0.0078 sec
128
Neurális háló futási ideje
0.0001 sec
10000
Kép felkészítése a blending szűrésre (AddBlendingInfo)
0.0069 sec
144
Blending szürő
0.0095 sec
105
Teljes térképezés ciklus
0.0268 sec
37
12.3.2. Táblázat: A térkép készítéséhez felhasznált algoritmusok futási ideje
12.1.3
Összefoglalás
Az itt felhasznált algoritmusok közül a döntéshozó modul az alapvető navigációs program során csak néhányat (az esetek többségében kevesebb, mint 3-at) hasznosít, és a térképezéshez szükséges algoritmusok futási ideje is optimális, így a valósidejűséghez szükséges 20 képkocka másodpercenkénti feldolgozása elérhető. 54
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
12.2 A rendszer értékelése, és összehasonlítása más rendszerekkel A rendszer értékeléseként elmondható, hogy a bevezetőben lefektetett szelekciós kritériumoknak az alábbi módon felel meg: Hardver: a 4. fejezetben tárgyalt módon az elkészített hardver egyszerű felépítéséből adódóan könnyen reprodukálható, valamint alacsony költségvetésű. Valósidejűség: A 12.1-es fejezetben tárgyalt módon a tesztelésre használt hardveren a navigáláshoz szükséges algoritmusok valós időben lefutnak. Modularizálhatóság, és programozhatóság: a fejlesztői környezet kiválasztása, valamint a keretrendszer kialakítása lehetőséget ad a rendszer új funkcionalitással, modulokkal való egyszerű bővítésére. Dinamikusság a környezet változásaira: mind a képfeldolgozási algoritmusok, mind a döntéshozó modul jól paraméterezhető, továbbá a megfelelő képfeldolgozási algoritmusok alkalmazásával a rendszer a tesztelés során ennek a kritériumnak megfelelt. Optimális megoldás kiválasztása: az egyes problémák megoldási terének vizsgálata után a lehetőségekhez mérten a legoptimálisabb megoldás került kiválasztásra. Az összeállított rendszer a 12.3 fejezetben leírt módon további kutatásokra, és fejlesztésekre mutat előre. Az eltérő célok, valamint a rendelkezésre álló hardver konfigurációk miatt a más rendszerekkel való összehasonlítás meglehetősen körülményes. A 12.2.a táblázatban azok az általános tulajdonságok kerülnek összefoglalásra, amiben a rendszerek összehasonlítása egyáltalán kivitelezhető. A 12.2.b táblázatban az egyes rendszerek megvalósított algoritmusainak összehasonlítása látható. A táblázatokban feltüntetett rendszerek hasznos tulajdonságai az alábbi módon ötvöződnek a PALCOM projektben: Az ER1 projekthez hasonló módon a PALCOM moduláris módon támogatja a továbbfejlesztést, jóllehet integrált feldolgozó egység híján a döntéshozás külön számítógépen történik. A többi rendszerhez hasonlóan a PALCOM rendelkezik egyfajta térképezéssel. A kevesebb számú szenzor (1 darab PAL optika például az ATRV 24 darab hanglokátorával szemben) felhasználása azonban korlátozottabb térképezést tesz lehetővé, viszont a sík térkép felépítéséhez ez is elegendő. A megvalósított navigálási programok szempontjából a PALCOM ötvözi az összehasonlításra került rendszerek 12.2.b táblázatban látható navigálási képességeit. A fentiek alapján összegzésként elmondható, hogy a lefektetett szelekciós kritériumok alapján a PALCOM rendszer a felvetett problémákra optimálisabb megoldást nyújt, mint az összehasonlításra került többi rendszer.
55
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
ER1 []
ATRV-mini []
FOBOT []
Érzékelők
Webkamera
Nagy sebességű pan/tilt kamera 24 ultrahangos szenzor Navigációs érzékelők 12 csatornás GPS
Robot típusa
Kerekes, háromkerekű
Sebesség
Közepes
Kamera jellemzői
N/A
Magasság
Adatforgalom formája
Caboto []
CMU robot []
PALCOM
CCD kamera, GPS
CCD kamera
Két lézeres letapogató Camrecorder
1 darab wireless kamera
Kerekes
Lépegető hatlábú
Kerekes
Kerekes
Kerekes, Mobil RC
Közepes
Lassú
Lassú
N/A
Gyors (~1 m/s)
Dönthető/forgatható
PAL optika
Omdirectional rendszer
Omnidirectional (parabolikus tükör)
PAL optika
Fél méter
~fél méter
Közepes
~1 méter
Fél méter
Lokális feldolgozás laptopon keresztül
Beépített PC linux operációs rendszerrel
Állítható kameramagasság Képfolyam a wireless kameráról, vezérlő utasítások távirányítón keresztül
Vezetéken Beépített PC, keresztül a PCvezetékről táplálva vel összekötött
12.2 a táblázat: A rendszer összehasonlítása alternatív rendszerekkel
56
Laptop
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
ER1
ATRV-mini
FOBOT
Caboto
CMU robot
PALCOM
Objektum követés Vonalkövetés Akadálykerülés Környezet autonóm bejárása Térképezés 12.2. b táblázat: az összehasonlított rendszerek algoritmus képesség
57
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
12.3 Alkalmazási területek Néhány a projekt lehetséges alkalmazási területei közül:
Vakok, gyengén látók mindennapi életükben való segítségnyújtás ismeretlen terepen való tájékozódáshoz fontos terület lehet. Az iskolák, közintézetek területén, illetve minden olyan helyen, ahol a vakvezető kutya használata társadalmi okokból nem elfogadható, a vezetőt robottal helyettesítve, az segítene a felhasználónak egy adott célállomásra eljutni. Mozgássérült emberek számára közlekedésben nyújthatna segítséget. A rendszert kerekesszékre szerelve, a fixen kijelölt útvonal bejárását, automatikus navigációval érné el. Szállítás és logisztika: Kórházakban betegellátásnál, étteremben kiszolgálásnál, raktározás területén szintén alkalmazható a rendszer, megfelelő hardver építésével. Nagyobb épületek, irodák mobil automatizált megfigyelőrendszereként is alkalmazható.
12.4 Továbbfejlesztési irányok Annak érdekében, hogy a rendszer működését egy előre elkészített, vagy régebbi térképen is biztosítani lehessen, szükség van lokalizáció meghatározására, amely megadja a robot helyzetét, és irányát a térképen. Ez számos problémakört vet fel, mint például megváltozott fényviszonyok, megváltozott terep, dinamikus akadályok. A bevezetőben megfogalmazott célokat figyelembe véve a rendszer egy útkereső eljárással bővíthető, melynek a felhasználó által megadott célkoordinátákat átadva, kiszámolja az aktuális helyzet, és a koordináták közötti legrövidebb távolságot a térképen. Majd a döntéshozó modult támogatva, mindíg a meghatározott út irányának megadásával segíti a robot navigációját. A jelenlegi térképezési rendszer sík térképpel dolgozik, azaz egyszerre csak egyszintű térképen képes navigálni. Ennek továbbfejlesztéseként többszintű épületben, emeletek közötti mozgás feltérképezésére is lehetőség nyílik. A PAL optika minőségét javítandó, lehetőség van omnidirectional rendszerre való áttérésre, és a rendszer átalakítására erre a szenzorra is. A feldolgozó egységet a robotra szerelve, a rendszer wireless kapcsolaton keresztül akár hálózatra is csatlakoztatható, melyel jelentősen csökkenne a szükséges perifériák száma, valamint megszűnnének a rövid hatótávolságból eredő problémák.
58
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
13 Melléklet 13.1 Leggyakoribb Omnidirectional-kamerák és felhasználásuk
13.1. a ábra
13.1. b ábra
13.1. c ábra
13.1. e ábra: Térfigyelésre használatos kamera
13.1. g ábra: CogVis: kamera és hyperbolikus fémtükör párosítása [6]
13.1. f ábra: Lefkos nevű robot navigációja ODmegvalósítással
13.1. h ábra: A Lefkos a környezet jellegzetes pontjai (élek, sarkok) alapján navigál
59
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
13.2 A megvalósított rendszer hardver kiépítése
13.2. a ábra: 12h ábra: 1:10 -es modellautó alapú robot
13.2. b ábra: Az eredeti távirányítóra csatlakoztatott kiegészítő elektronika
60
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
13.3 SUSAN (Smallest Univalue Segment Assimilating Nucleus) élkereső algoritmus [33] Ez az algoritmus köralakú maszkot használ. A maszk középső pixelét nucleusnak hívják.
13.3. a ábra: A mintán négy kör alakú maszk helyezkedik el különböző pozíciókban
13.3. b ábra: A maszkok érzékenysége különböző telítettségnél
61
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával A maszk területét USAN-nak hívják (Univalue Segment Assimilating Nucleus). Négy kör alakú maszk hasonlóság alapú színezé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 SUSAN-elv alapja a kép minden egyes pixelének a környezetében található hasonló intenzitá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.
13.3. c ábra: Az egyes pixelekhez tartozó USAN terület
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. Az elv integráló hatása és a nemlineáris érzékenysége jó zajelnyomást okoz. A SUSAN biztosítja a leghatékonyabb éldetektálást, azonban a futásideje többszöröse a többi élkereső algoritmus végrehajtásához képest.
5.2.3.2d ábrák: A 8bites PAL-kameraképet SUSAN éldetektálóval szűrjük
62
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
14 Irodalom hivatkozás 1
RAAD2006 –15TH International Workshop on Robotics in Alpe-Adria-Danube Region http://www.bmf.hu/conferences/raad2006/ 2006.11.17
2
RAAD cikk: PAL-Commander http://palcom.bmfnik.hu/content/hu/2006/PALCOM-RAAD2006-eng.pdf
2006.11.17
3
Mesterséges Intelligencia, 18. Robotok fejezet, (Futó I. (Ed.)), AULA Kiadó, Budapest 1999. 4
EXPLORATES II (1997-1998) http://ultra.obuda.kando.hu/~exploratores/
2006.11.17
5
FOBOT (2002-2003) http://roberta.obuda.kando.hu/iar/2002_2003/fobot/fooldal.html http://www.bmf.hu/conferences/jubilee/Vamossy.pdf
2006.11.17 2006.11.17
6
University of Ljubljana, Faculty of Computer and Information Science Visual Cognitive Systems Laboratory - CogVis projekt Cognitive Vision Systems http://cogvis.fri.uni-lj.si P2NAV - Mobil Robot Navigáció http://hassanking.fw.hu/
2006.11.17
7
2006.11.17
8
Evolution Robotics ER1 http://www.evolution.com/er1
2006.11.17
9
Mobil robotok http://www.agent.ai/main.php?folderID=169&articleID=833&ctag=articlelist&iid=1 2006.11.17 10
Omnidirectional Vision page http://www.cis.upenn.edu/~kostas/omni.html
2006.11.17
11
Emanuelle Menegatti: The Caboto Project MSc in Artificial IntelligenceDivision of Informatics University of Edinburgh 2000 www.dei.unipd.it/~emg/papers/caboto.pdf
2006.11.17
12
A PAL – optika és a fotózás http://fotomuveszet.elender.hu/0012/001216.html
2006.11.17
13
A körpanorámás képalkotás katonai akalmazása http://www.zmka.hu/tanszekek/ehc/konferencia/may/tothimre.htm A dolgozat írásakor nem elérhető
63
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
14
Hajtogatott sugármenetű optika mesterséges hold helyzetmeghatásozásához és egyidejűleg a földfelszín fényképezéséhez http://www.muszeroldal.hu/MMK/nr72/greguss.pdf A dolgozat írásakor nem elérhető 15
Mesterséges neurális hálózatok a Wikipédián http://en.wikipedia.org/wiki/Artificial_neural_network
2006.11.17
16
Stuart J. Russel - Peter Norvig: Mesterséges Intelligencia modern megközelítésben, 691. oldal 17
ALVINN: An Autonomous Land Vehicle In a Neural Network http://www.cse.unr.edu/~monica/Courses/CS493790/PapersPDF/Pomerleau_ALVINN.pdf
2006.11.17
18
High_Mobility_Multipurpose_Wheeled_Vehicle http://en.wikipedia.org/wiki/High_Mobility_Multipurpose_Wheeled_Vehicle
2006.11.17
19
Vezetéknélküli kamera http://minirc.hu
2006.11.17
20
USB tuner http://tven.terratec.net/modules.php?op=modload&name=News&file=article&sid=236 2006.11.17 21
ZLPortIO http://www.specosoft.com
2006.11.17
22
DirectShowNET Library http://directshownet.sourceforge.net/
2006.11.17
23
Aforge www.codeproject.com/cs/media/Image_Processing_Lab.asp
2006.11.17
24
SharperCV http://www.cs.ru.ac.za/research/groups/SharperCV
2006.11.17
25
C# Neural network library http://franck.fleurey.free.fr/NeuralNetwork/
2006.11.17
26
WeifenLuo http://sourceforge.net/projects/dockpanelsuite/
2006.11.17
27
Open Source Computer Vision Library http://www.intel.com/technology/computing/opencv/index.htm 28
2006.11.17
OpenCV Reference Manual http://www.cs.unc.edu/Research/stc/FAQs/OpenCV/OpenCVReferenceManual.pdf 64
PALCOM - Navigáció és térképezés PAL-optika alkalmazásával
2006.11.17
29
Subversion http://subversion.tigris.org
2006.11.17
30
Better SCM Initialive http://scm.berlios.de
A dolgozat írásakor nem elérhető
31
Wikipédia http://wikipedia.org
2006.11.17
32
Cantenna http://www.cantenna.com/
2006.11.17
33
S.M. Smith and J.M. Brady. SUSAN - a new approach to low level image processing. Int. Journal of Computer Vision, 23(1):45–78, May 1997. http://www.geocities.com/ResearchTriangle/Campus/7971/susan.htm
2006.11.17
65