Szakdolgozat Miskolci Egyetem Pilóta nélküli járm vek látás alapú, precíziós navigálása Készítette: Kálmán Roland 2015. Programtervez Informatikus BSc. Témavezet : Árvai László Konzulens: Dr. Házy Attila Miskolc, 2015
Miskolci Egyetem Gépészmérnöki és Informatikai Kar Alkalmazott Matematikai Tanszék Szám: Szakdolgozat Feladat Kálmán Roland (FUDJ82) programtervez informatikus jelölt részére. A szakdolgozat tárgyköre: digitális látás A szakdolgozat címe: Pilóta nélküli járm vek látás alapú, precíziós navigálása A feladat részletezése: Helyb l fel- és leszállásra képes pilóta nélküli légi járm vek látás alapú leszállássegít rendszerének kidolgozása. A feladat megoldásához szükséges áttekinteni a vonatkozó irodalmat - beleértve akár a pilóta által vezetett - leszállást segít rendszereket. Ki kell választani a megfelel képfeldolgozási környezetet, gyelembe véve a repül eszköz fedélzeti korlátozásait (súly, energiafogyasztás, méret). Ezzel együtt meg kell alkotni és optimalizálni a rendszer által könnyen és megbízhatóan felismerhet jelöl rendszert. És az így megtervezett rendszer demonstrációs változatát el kell készíteni. Témavezet (k): Árvai László, vezet kutató, Bay Zoltán Közhasznú Nonprot Kft. Konzulens(ek): Dr. Házy Attila, egyetemi docens A feladat kiadásának ideje: 2014. szeptember 26.................................. szakfelel s 2
Eredetiségi Nyilatkozat Alulírott Kálmán Roland; Neptun-kód: FUDJ82 a Miskolci Egyetem Gépészmérnöki és Informatikai Karának végz s Programtervez Informatikus szakos hallgatója ezennel büntet jogi és fegyelmi felel sségem tudatában nyilatkozom és aláírásommal igazolom, hogy a Pilóta nélküli járm vek látás alapú, precíziós navigálása cím szakdolgozatom/diplomatervem saját, önálló munkám; az abban hivatkozott szakirodalom felhasználása a forráskezelés szabályai szerint történt. Tudomásul veszem, hogy szakdolgozat esetén plágiumnak számít: szószerinti idézet közlése idéz jel és hivatkozás megjelölése nélkül; tartalmi idézet hivatkozás megjelölése nélkül; más publikált gondolatainak saját gondolatként való feltüntetése. Alulírott kijelentem, hogy a plágium fogalmát megismertem, és tudomásul veszem, hogy plágium esetén szakdolgozatom visszautasításra kerül. Miskolc,............év............hó............nap................................. Hallgató 3
1. A szakdolgozat feladat módosítása szükséges (módosítás külön lapon) nem szükséges................................................. dátum témavezet (k) 2. A feladat kidolgozását ellen riztem: témavezet (dátum, aláírás): konzulens (dátum, aláírás):................................................................................. 3. A szakdolgozat beadható:................................................. dátum témavezet (k) 4. A szakdolgozat................... szövegoldalt................... program protokollt (listát, felhasználói leírást)................... elektronikus adathordozót (részletezve)...................................... egyéb mellékletet (részletezve)................... tartalmaz.................................................. dátum témavezet (k) 5. bocsátható A szakdolgozat bírálatra nem bocsátható A bíráló neve:............................................................................................. dátum szakfelel s 6. A szakdolgozat osztályzata a témavezet javaslata:................ a bíráló javaslata:................ a szakdolgozat végleges eredménye:................ Miskolc,......................................................... a Záróvizsga Bizottság Elnöke 4
Tartalomjegyzék 1. Bevezetés, célkit zés 7 2. Pilóta nélküli légijárm vek 9 2.1. VTOL UAV és a precíz leszállási képesség jelent sége.......... 10 2.2. Fejlesztési eszközök............................. 12 2.2.1. Quadrocopter............................ 12 2.2.2. Billen rotoros repül gép...................... 13 3. Leszállást segít rendszerek 14 3.1. Pilóta vezette repül gépek......................... 14 3.1.1. Rádiós rendszerek.......................... 14 3.1.2. Optikai rendszerek......................... 15 3.2. Pilóta nélküli repül gépek......................... 16 3.2.1. Amerikai Egyesült Államok Haditengerészet megoldásai..... 16 3.2.2. Kísérleti megvalósítások...................... 18 4. A rendszer 21 4.1. Megközelítés................................. 22 4.2. Leszállás megkezdése és leszállás...................... 23 4.3. A probléma pontos megfogalmazása.................... 23 5. A rendszer implementálása 25 5.1. Képfeldolgozó egység............................ 25 5.2. Képfeldolgozás folyamata.......................... 26 5.2.1. Átalakítás és képek el sz rése................... 26 5.2.2. Blob detekció............................ 28 5.3. Markerek meghatározása és felismerése.................. 28 5.3.1. Alakzat kiválasztása........................ 29 5.3.2. Trapéz felismerése, az algoritmus m ködése........... 30 5.3.3. Trapéz optimalizálása....................... 32 5.3.4. Trapéz és annak felismerésének a gyakorlati megvalósítása... 34 5.4. Kamera kalibráció.............................. 37 5.5. Térbeli leképezés.............................. 38 5.6. Szimuláció.................................. 40 6. A rendszer megvalósítása, kiértékelése 44 6.1. Számítási egység választás......................... 44 6.1.1. Az algoritmus futtatása és kiértékelése az eszközön....... 45 6.2. Jöv beli fejlesztési lehet ségek....................... 49 5
7. Összefoglalás 51 7.1. Elkészített programok........................... 51 Ábrák jegyzéke 53 Irodalomjegyzék 55 Adathordozó használati útmutató 58 6
1. fejezet Bevezetés, célkit zés Programtervez informatikus hallgatóként sok érdekes területtel volt alkalmam megismerkedni tanulmányaim során. Ezek közül, amelyeket szerettem volna e szakdolgozat munkakörébe választani az, az egyfajta mesterséges intelligencia megalkotása, számítógépi képfelismerés segítségével. Emellett másik számomra érdekes terület az, ahol adott egy eszköz, és annak a szoftveres vezérlése a cél, illetve egy szimulációs környezet létrehozása hozzá. Az el z szempontok alapján esett a gyelmem a pilóta nélküli légi járm vekre. Rengeteg olyan videót és képet találni az interneten manapság, amiket köznyelvben drónoknak is nevezett eszközökkel vettek fel. Manapság egyre elterjedtebb, hogy él közvetítéseknél is jelen vannak, hisz nagyon praktikus mikor állványok és helyhez kötött eszközök nélkül is tudunk adni él felvételt egy-egy nagyobb rendezvényr l. Az el bb említett céloknál, viszont vannak sokkal komolyabb alkalmazásai is. Mivel az irányító csak távolról vezérli az eszközt, így olyan helyekre is el lehet juttatni ket, ahova már csak esetlegesen emberi élet veszélyeztetésével lenne lehet ség elérni. Nézhetünk akár egy katonai felderítést, vagy egy nagyobb kiterjedés erd t z esetén a terület belsejét. Továbbá ezekre a célokra beláthatjuk, hogy egyes esetekben nincs is szükség nagyméret légi járm vekre. Így az emberi jelenlét elvételével, kisméret gépeket is építhetünk. Ezek üzemeltetése és javítása jelent sen olcsóbb. A költséghatékonyságból adódóan egyes online web áruházak, jelenleg is fejlesztenek drónokat, hogy megoldják a gyors és kényelmes házhozszállítást [1]. Ezen felül egyes helyzetekben hatalmas el nyt jelenthet a kis méretük, illetve hogy egyes típusok képesek helyb l fel- és leszállni. Lehet vé válik számukra a zikai akadályok miatt nehezen megközelíthet helyekre való eljutás. Ez például hasznos lehet, ha gyógyszereket [2], utánpótlást kell eljuttatni a rászorulóknak, elzárt falvakba, háborús övezetekbe. Természetesen az el bb említett lehet ségek mindegyikében már jelen vannak a drónok napjainkban is, ezért azok automatizálására történnek mindíg újabb fejlesztések. Ezt a feladatot is több kisebb-nagyobb részre tudjuk bontani, mint például az utak felderítése, akadályok felismerése és így az ütközések elkerülése, fel- és leszállás, stb. Ezzel pedig el is érkeztem a saját célkit zésemhez, amely az volna, hogy egy ilyen eszköz digitális szenzor (érzékel ) és egy kisméret számítógép segítségével képes legyen egy ismert tulajdonságokkal rendelkez marker (jelz ) rendszert felismerni, azok alapján pedig meghatározni a saját relatív helyzetét, majd elvégezni a leszállást. A dolgozat 7
témáján túl, pedig ezt megvalósítani akár egy mozgó járm re is. Így ami a munkám részét képezi, az angolul Unmanned Aerial Vehicle-nak nevezett, továbbiakban UAV-ok és az önm köd leszállási rendszerek részletes megismerése, ezek ismeretében az optimális eszközök kiválasztása költség, súly, méret és hatékonyság tekintetében. Ezek közé tartozik maga a repül szerkezet, a ráhelyezett fedélzeti számítógép, a kamera és a markerek. Ezután a már megfelel kongurációhoz megtalálni a legmegbízhatóbb jelöl rendszert, nyílt forráskódú képfeldolgozót. Végül pedig megírni a végleges feldolgozó programot, szimulációkat készíteni és teszteket végezni. Végül pedig kiértékelni az elkészített algoritmusokat. Mivel a drónok vezérlésére már léteznek a piacon kapható használatrakész szoftverek, így a pályatervezés és irányítás nem témája a szakdolgozatnak, csak a digitális látás, képfeldolgozás és térbeli leképezés. 8
2. fejezet Pilóta nélküli légijárm vek Pilóta nélküli légi járm veknek, egyszer bben drónoknak nevezzük azokat a repülni képes eszközöket, melyek vezérléséhez nem szükséges a személyzetnek a gépen tartózkodnia, egyes esetekben pedig képesek lehetnek önmaguk irányítására. A statisztikák azt mutatják, hogy egyre jobban kezd elterjedni a világ minden táján. A felhasználásuk nagy részét a katonaság és egyéb szervek teszik ki, de egyre többen kezdenek vele hobbiból is foglalkozni. A következ ábrán [3] egy el rejelzés látható az UAV-ok beszerzési és fejlesztési költségére: 2.1. ábra. Az UAV-ok költségvetésének el rejelzése a világban [3] (Szerz fordítása) Ebb l is látszik, hogy az USA-n kívüli területeken is már 8 éven belül majdnem a duplájára fog emelkedni a drónok beszerzése, illetve ennek a területnek a kutatása és fejlesztése. Így nyilvánvalóvá válik az is, hogy még sok fejl dés áll az eszközök el tt. Visszatérve az UAV-okra, több típust tudunk megkülönböztetni m ködésük, felépítésük, méretük alapján. Els sorban minket a mikro és kisméret gépek érdekelnek. Ezek 9
2.1. VTOL UAV és a precíz leszállási képesség jelent sége 0,5 és 25 kilogramm között mozognak. Hatótávolságuk nem túl nagy és 0-3 km-es magasságban üzemelnek. A piacon még ezeken a típusokon belül is nagy választék van, de jelenleg kett fajta áll rendelkezésemre. Az egyik egy quadrocopter, a másik pedig egy xszárnyas- billen rotoros repül gép. Ezekr l a fejezet végén esik részletesebben szó. A közös bennük, hogy képesek függ leges irányú elmozdulásra fel- és leszálláskor. Ezek az úgynevezett VTOL (Vertical Take-O and Landing) UAV-ok. A rendszer fejlesztése kizárólag ilyen képesség ekre történik. 2.2. ábra. Az UAV-ok osztályozása (http://uav-society.blogspot.hu, szerz fordítása) 2.1. VTOL UAV és a precíz leszállási képesség jelent sége Ezeknek a drónoknak a felhasználási területein nagyrészt fontos, hogy rövid id n belül úton legyenek, kis helyen is elférjenek, és könnyen tudjanak mozogni széls séges terepviszonyok között is. Nincs szükség kifutópályára fel- és leszálláskor, így szinte bárhonnan képes elindulni a VTOL UAV. A céljuk is lehet összetett, ezért nem csak egy A-ból B-be való eljutásról van szó, hanem esetenként akár komoly man verezésekr l. Elengedhetetlenné válik tehát, hogy vertikálisan (függ legesen) is tudjanak mozogni, vagy tartani a helyzetüket. A precíz leszállási képesség egyik legf bb jelent sége, hogy emberi beavatkozás nélkül tudjon a járm egy adott platformra leszállni nagy pontossággal. Az emberi rontás lehet sége kiesik és egy robosztus rendszernél a hibázás esélye nagyon alacsonnyá válik. Ezen felül egy nagyméret gépet tekintve már elengedhetetlenné válnak képzett pilóták, akik felszállnak vele, majd lerakják azt egy nem túl távoli mobil központból. A közelben kell lenniük, hisz másodperces késések is számottev ek ilyenkor. Viszont a küldetés közbeni utasításokat akár a bolygó másik felér l is kiadhatják. Egy cikk szerint [4], a fel- és leszállás automatizálásával elhagyhatóvá válik a földi pilótafülke és az azokhoz tartozó kommunikációs kapcsolatok kiépítése. Ezért az egyik nagy korlátozó ok az UAV-ok felhasználásánál ez, hiszen kevés az erre képzett ember, az eszközök pedig drágák. Továbbá a kisméret gépek üzemideje nagyon kicsi. Ugyanis minél nagyobb tömeget kell elbírnia, annál több energiát fogyaszt. Így az akkumulátor kapacitását a célnak 10
2.1. VTOL UAV és a precíz leszállási képesség jelent sége 2.3. ábra. Egy földi pilótafülke (http://www.wired.com) megfelel en kell megválasztani és megtalálni a leghatékonyabb súly-energiafogyasztás arányt. Az átlagos munkaideje egy töltéssel ezeknek a drónoknak 40 perc és 1 óra körül van. Ilyenkor az irányító személynek le kell szállnia, majd kicserélni az energiaforrást, ami közben az emberi rontás veszélye fennáll. Továbbá a csere is id igényes. Ennek a folyamatnak az automatizálásával is nagy el nyre lehet szert tenni. Egy ilyen automatizált rendszerrel létre lehet hozni folyamatosan mozgásban lév meg- gyel egységeket. Ezek biztonsági célokon felül katasztrófák megel zésére is alkalmasak lehetnek. Történtek fejlesztések erd tüzek meggyelésére [5], amely segítségével az égb l gyelhet ek a veszélyeztett zónák. Továbbá egy jól m köd rendszer esetén már akár a leszálló felület is lehet mozgásban, legyen az akár egy teherautó platója, vagy egy hajó fedélzete. Ez nagyban könnyítené az olyan helyzeteket, ahol az állomás mozgásban van. Visszatérve az el z példára, vegyünk egy természeti katasztrófát. Az egyéb funkcióra alkalmas (mentés, t zoltás) földi vagy vízi járm vek is összeköthet vé vállnak a drón fel- és leszálló platformjával. Ez a valóságban úgy nézne ki, hogy menet közben valaki elküldi és vezérli az eszközt, eközben a szállító járm végzi zavartalanul a saját feladatát, majd a drón visszatér és leszáll minden nehézség és bonyolult kézi man verezés nélkül. Ebben a példában a legnagyobb nyereség az id, ami életeket menthet. Az energiaforrás cseréjét tovább vezetve, itt is beláthatjuk, hogy egy t zoltásra szánt drón, ha képes a vizet automatikusan újratölteni, nagyobb hatékonyságot érhetnek el. Mivel nem kell ket kézzel irányítani, több gépet is üzemeltethetnek egyszerre, kevesebb személyzettel. 11
2.2. Fejlesztési eszközök 2.2. Fejlesztési eszközök Jelenleg az említett két eszköz áll rendelkezésre a fejlesztéshez. A közös bennük, hogy tartalmazniuk kell egy körülbelül bankkártya méret, egyetlen lapra integrált számítógépet és képi szenzort a feldolgozáshoz. 2.2.1. Quadrocopter Egy ezzel foglalkozó cikk [6] megfogalmazásában. Általánosságban multikoptereknek hívják azokat a mechanikailag egyszer légi járm veket, ahol a mozgást több lefele irányított rotor sebességeinek kontrollálásával érik el. Aerodinamikailag nem stabilak, így szükség van szoftveres kiegyenlítésre, nélkülük nem is m ködnek. Ezek a programok adatokat gy jtenek a bels giroszkóp és gyorsulásmér segítségével, majd azok kiértékelésével vezérlik az eszközt. Irányításukat a rotorok forgási sebességével tudjuk elérni. 2.4. ábra. Egy X525-ös quadrocopter (www.aliexpress.com) A kategórián belül az egyik legegyszer bb koncepció a quadrocopter. A nevéb l is adódik, hogy négy rotorja van. Rövid légcsavarokkal szerelt és nagy el nye, hogy nincs szükség mechanikailag összehangolni azok forgását. A propellerek méretéb l következik, hogy a környezeti sérülésveszély kicsi ütközés esetén. Azok forgási iránya és sebessége alapján a 2.5 ábra mutatja, hogyan képes navigálni. 12
2.2. Fejlesztési eszközök 2.5. ábra. Az irányítás módja (http://wikipedia.org) 2.2.2. Billen rotoros repül gép Ezeknek az eszközöknek a felépítése nagyon változatos lehet. A rendelkezésre álló modell két cs légcsavart tartalmaz. Ezek képesek elfordulni, így lehet vé téve a helyb l felés leszállást, azaz a vertikális mozgást a gépnek. Leveg ben a szárnyak kialakításából adódóan hasonlóan m ködnek, mint a repül gépek. Így nagyobb sebesség érhet el velük, viszont a legnagyobb el nyük egy hagyományos helikopterrel vagy multikopterrel szemben, hogy a repülési id és hatótávolság megn. Ugyanis a hajtóm veknek kisebb teljesítményt kell leadniuk a szárnyak által generált felhajtóer miatt. A kialakításból még az is adódik, hogy sokkal kisebb terhet is bírnak el, mint a rövid vagy hagyományos nekifutással felszállni képes társaik. Ennek elkerülése érdekében futóm vekkel szerelhet és VTOL helyett STOL-á alakítható. (Short Take-O and Landing). Ilyenkor a fel- és leszálláshoz rövid kifutás szükséges, viszont a szárnyak nagyban segítenek a megnövekedett teheremelésben. Egy másik el ny k még, hogy meghibásodás esetén vitorlázással csökkenthet a sérülés mértéke. 2.6. ábra. A gép tervezett kinézete (http://www.cygnusuav.hu) 13
3. fejezet Leszállást segít rendszerek A leszállást segít rendszerek fontosságáról az el z fejezetben írtam. A jelenleg m köd fejlesztések áttekintése pedig ennek a fejezetnek a tárgya. Érdemes el ször áttekinteni a fejl dést, illetve megnézni, hogy hol jár napjainkban ez a technológia. 3.1. Pilóta vezette repül gépek Egy történelmi cikkre [7] hivatkozva az els sikeres beavatkozás nélküli leszállást 1937- ben hajtotta végre két pilóta. Ez a gép az egyik jük által kifejlesztett rádiós jeladók és m szerek segítségével volt képes erre a mutatványra. Ett l függetlenül sokáig mégsem volt megoldott a leszállás automatizálása a többi gépen, így kézzel kellett azt végrehajtaniuk az irányítóknak. Régóta léteznek az irányító segítségére kifejlesztett rendszerek, amelyek egy jó kiindulást biztosíthatnak arra, hogy egy fedélzeti szoftvernek mit kellene végrehajtania és hogyan tegye azt. Érdemes ezeket részletesebben is megismerni, hogy esetleges támpontokkal vagy ötletekkel szolgáljanak a saját munkámban. A két legelterjedtebb módszer részletezése következik. 3.1.1. Rádiós rendszerek Egyik ilyen közismert rendszer az úgynevezett ILS (Instrument Landing System). Segítségével akár veszélyes id járási viszonyok között is biztonságosan letehet egy repül gép. M ködése azon alapszik [8], hogy a földön kihelyezett rendszer által kibocsájtott rádiós jelre csatlakozik a repül gép fedélzeti számítógépe. Ekkor kioszt neki egy haladási útvonalat, majd a pilóta a m szerek segítségével a kiválasztott pályára állítja a gépet. Ezután különféle jelzések által vezérelt markerek segítik az irányító tájékozódását és a leszállás állapotát. Ez a technológia már az 1950-es években is létezett, a megnövekedett légi forgalom hatására. 14
3.1. Pilóta vezette repül gépek 3.1. ábra. Egy ILS rendszer kialakítása (http://instrument.landingsystem.com/) 3.1.2. Optikai rendszerek Mivel kép alapú információk alapján szeretném a leszállást végrehajtani, így érdemes ezeket a technológiákat is szemügyre venni [9]. OLS-nek (Optical Landing System) hívják azokat a rendszereket, ahol a pilóta valamilyen optikai jelz rendszer segítségével tudja megfelel pályára állítani a gépet. Kezdetben a látásukra, és egy a földön jelzéseket adó irányító személyre hagyatkozva voltak kénytelenek landolni. Ezt a megoldást váltotta fel egy energiaforrásra kötött, mobil állomás, amit az adott helye telepítenek. Ezt a rendszert angolul meatball, azaz húsgolyónak is szokás hívni. A nevét onnan kapta, hogy egy látszólag fel-le futó csali fény jelzi a pilótának, hogy az optimális magassághoz képest milyen helyzetben van a gép. Ezt a fényjelzést persze nem kézzel vagy géppel irányítják, hanem egy olyan trükköt alkalmaznak, hogy a sugarakat feler sítik, majd átengedik Fresnel lencséken [9]. Ezek a lencsék biztosítják, hogy a fényforrásra való rálátás beesési szögét l függ, hogy a pilóta mit lát. M ködését úgy kell elképzelni, hogy ha a középs fény lefele mozdul el, akkor a gép is túlságosan alacsonyan száll, ellenkez esetben pedig túl magasan. Ebb l következik, hogy a pilótának középen kell tartania ezt a fényt. További kiegészít fények is találhatóak rajta, egyéb tájékoztatásakat szolgáltatva. Ezt a technológiát f leg anyahajókon használják, és a mai napig nagyon elterjedt. 3.2. ábra. Egy mobil optikai leszállást segít rendszer (http://wikipedia.org/) 15
3.2. Pilóta nélküli repül gépek 3.2. Pilóta nélküli repül gépek Az UAV-ok felhasználása napjainkban már nem csak katonai célúak, hanem belefolyt az egyéb szervek és hobbi felhasználók körébe is. Ezek automatizált le-és felszállása így nagyon sok embert foglalkoztat, és tényleges kivitelezésük még nem elterjedt. Ebben az alfejezetben megnézzük, milyen próbálkozások voltak erre, és hol tart a jelenleg az amerikai haditengerészet az anyahajós drónjaikkal. 3.2.1. Amerikai Egyesült Államok Haditengerészet megoldásai Mivel egyre több küldetésnél lett szükség az UAV-okra, így elengedhetetlenné vált a 100%-os önvezérlés. A felszállás könnyen kivitelezhet, de a földet érés nagyobb fejtörést okoz. Ezért egy id ben inkább arra törekedtek, hogy ezt a man vert ki tudják kerülni. Szárazföldön például egyik megoldás, hogy ejt erny vel szerelik [10] a drónokat, majd a visszatéréskor kinyitják az ejt erny t, és ahova érkezik, ott összeszedik. Err l még jóindulattal sem mondható el, hogy precíz, illetve egy mozgó anyahajón már közel lehetetlen megoldásnak számít. Ezért törekedtek helyette egyfajta elkapó rendszer kidolgozásán. Ez az úgynevezett háló-alapú befogás. A lényege, hogy egy hálós szerkezetet állítanak [11], majd a fedélzeti számítógép vagy egy vezérl személy valamilyen módszerrel belevezeti a gépet. Ez egy elég low-tech (alacsony technológiájú) kivitelezés, már-már inkább csak valami ideiglenes és olcsó megoldásnak t nik, mintsem komoly találmánynak a probléma megoldására. Nagy súlyú gépekre nem alkalmazható, illetve kis eszközöknél is nagy a sérülés veszélye. Id igényes a hálóból való kiszedés, továbbá költséges a folyamatos javítás. Ezen felül külön csapatokat kell fenntartani ezen munkák elvégzésére. 3.3. ábra. A hálós elkapás megörökítése (http://olive-drab.com) 16
3.2. Pilóta nélküli repül gépek Történtek próbálkozások ennek a technológiának a továbbfejlesztésére is. Egy elképzelésre [11] hivatkozva, megpróbálták lecserélni a hálót acél kábelekre, amit az UAV-nak a rajta kialakított fékhoroggal kell elkapnia. Ezután a kábel képes ráhúzni az eszközt egy guruló platformra. Ez egyébként egy mai napig használt módszer a pilóták vezette repül gépek esetén is. Legnagyobb el nye az el djével szemben, hogy a gép sérülésének valószín sége csökken, kisebb a költségveszteség, és rövidebb id a gépek visszanyerése, továbbá a gépeken csak egy kicsi átalakítást kell elvégezni. Hátránya pedig, hogy egy pályát kell kialakítani a guruló platformnak, illetve meg van rá az esély, hogy els re nem sikerül elkapni a kábelt, csak többszöri próbálkozásra. Ezek a megoldások inkább mechanikai kivitelezések, mintsem a számítógépes technológia kihasználása. A cél így az volt, hogy különféle szenzorok segítségével legyen képes tényleges leszállást végrehajtani egy UAV. Egy, a haditengerészet által kiadott prezentációban [12] olvashatunk róla, hogy a tervek között szerepelnek olyan elképzelések, mint például az akadályok felismerése és kikerülése, érzékel k általi adatkapcsolat, és olyan fedélzetre való leszállási képesség is, ahol maga a hajó nincs felszerelve erre kialakított eszközökkel. Ami fontos még, hogy mindezt úgy tudja végrehajtani, hogy az id járás, a leszállópálya egyes pontjainak kitakarása, vagy rossz látási viszonyok se befolyásolják a man vert. Mindezek megvalósítását a következ módszerekkel szeretnék elérni: Geostacionárius m hold (Pseudolite) alkalmazása a lokális helymeghatározáshoz. SRGPS (Shipboard Relative GPS) használata, ami szintén a relatív helyzet ismeretéhez szükséges a hajó és az UAV között. EO/IR (Electro Optical / Infrared) érzékel k a leszállás segítésére. Ilyenek a lézerek, LED-ek, vezetett hullámok. Lézer alapú távvezérlés (LIDAR). Lézeres ILS rendszer. Rádiófrekvenciás jelek közötti id különbség mérése, ami a hátralév repülési id t, azaz a gép távolságát határozza meg. Aktív és passzív RADAR-ok. Továbbá a célok között említi, hogy kés bbiekben mindezt úgy, hogy a GPS alapú navigáció teljes elhagyásával. Ez azért egy fontos lépés, mert sok esetben a jelet könnyen elveszítheti a gép, így nem lehet egy ilyen kritikus helyzetet alapozni rá. A nagy áttörés egy 2013. júliusi esemény [13], amikor megtörtént az els sikeres leszállás egy anyahajóra, amit az X-47B elnevezés lopakodó hajtott végre. Az internetet bejárta a híre, és egy videó, amin lerakják a gépet, de sajnos az automatikus leszállásról készült verzió nem került ki. Egy anyahajóra meg kell jegyezni, hogy a víz hullámzása és a folyamatos haladás megnehezíti a leszállást. Egy ilyen leszállópályának 6 szabadságfokú elmozdulása van, amivel tudnia kell számolni a rendszernek. Ebb l adódik, hogy az els ilyen sikeres leszállás ember által egy nagy eseménynek tudható be és történelemkönyvekbe is bekerült: 1911. január 18-án Eugene Ely hajtotta végre a USS Pennsylvania (ACR-4) cirkálóra. [14] Így láthatjuk, hogy elég sok id nek kellett eltelnie, hogy egy repül gép ezt a man vert a fedélzeti program segítségével, önállóan 17
3.2. Pilóta nélküli repül gépek elvégezze. A megvalósítás pontos kivitelezésér l nem adtak ki közleményt, de az el z ekben felsorolt lehet ségek segítségével valósították meg. A bonyolultságáról viszont annyit tudni, hogy négy különálló, de egymással kommunikáló számítógépet alkalmaztak, amik folyamatosan adatokat cseréltek és abban az esetben, ha csak egyik jük is eltér eredményeket számol, a leszállás megszakítandó. 3.4. ábra. A leszállás megörökítése (www.dailytech.com) 3.2.2. Kísérleti megvalósítások A haditengerészeten kívül más szerveket is foglalkoztat ez a téma, viszont mivel a költségvetésük kicsi, ezért más, olcsóbb megoldások kerülnek el térbe és persze az UAV-ok mérete is kisebb. Egy jelenleg is piacon lév és m köd technológiát [15] a RUAG Aerospace fejlesztett ki. Ez az OPATS (Object Position And Tracing Sensor) elnevezés rendszer egy földi lézeres egységgel állapítja meg az UAV helyzetét. Amint a kihelyezett eszköz látótávolságába ér a drón, egy lézert irányít rá. A gépre szerelt macskaszem segítségével pedig a visszatükrözésb l számolja ki annak helyzetét és a leszálláshoz szükséges pályát. Emiatt a rendszer egyszer és olcsó sok UAV felhasználása esetén is. Bár sajnos egyszerre csak egy gépet tud kezelni és a jöv beli lehet ségek is korlátozottak. 18
3.2. Pilóta nélküli repül gépek 3.5. ábra. A leszállás megörökítése (http://www.ruag.com) Egy másik lehetséges megoldást a Dél-kaliforniai Egyetemen fejlesztettek [16, 17] ki UAV helikopterekre. A képi feldolgozásra hagyatkozva képes felismerni, követni, pályát tervezni és leszállni egy mozgó platformra. El re beleprogramozták, hogy milyen formájú alakokat kell keresnie a gépnek, majd az adott pillanat képe és a valós méretek ismeretében állapítja meg a saját helyzetét az eszköz. A kihelyezett jelzéseknél fontos, hogy minél egyedibbek legyenek bármi máshoz képest, ami a környezetében el fordulhat. Nagy hátránya, hogy ezek a passzív markerek csak a közelb l ismerhet ek fel, rossz id járási körülmények vagy fényviszonyok miatt nem láthatóak. 3.6. ábra. Passzív markerek felismerése (http://rd.csp.it/archives/1142) 19
3.2. Pilóta nélküli repül gépek Ehhez hasonló megoldásokkal sokan próbálkoznak jelenleg is. A felhasznált algoritmusok hasonló képfeldolgozási módszereket használnak. Ezekben különféle sz r k segítségével feler sítik a kép azon részeit, amelyet fel kell dolgozni, majd valamilyen algoritmussal kinyerik a kívánt információt. Ezekb l az adatokból pedig megállapítják az UAV relatív pozícióját a markerekhez képest. Másik újszer nek számító megoldással többen is foglalkoznak jelenleg. Egy olyan jelenségr l van szó, amit az emberek is nap-mint nap érzékelnek és feldolgoznak [18, 19]. Viszont az alapötletét a rovarok repülése adta, akik bármilyen újszer környezetbe képesek mozogni hibátlanul a gyenge látásuk ellenére is. Ami lehet vé teszi ezt számukra az úgynevezett optikai áramlás (Optical Flow). Nagy el nye a korábbi képfeldolgozási megoldásokkal szemben, hogy alacsony min ség képekkel is nagy hatékonysággal tud dolgozni, így kisebb lesz a feldolgozásra szükséges kapacitás. Lényege a látott kép elúszási mértékének a mérése. Egyszer logikával is rájöhetünk, hogy a vizsgáló és a vizsgált tárgyak között valamilyen matematikai összefüggés van. A közelebbi tárgyak elhaladás közben gyorsan mozognak, a távolabbiak lassabban. Például vegyünk egy olyan esetet, ahol a meggyelt tárgy, adott id alatt a látóterünk feléig jut el, ellenben azzal, amikor a teljes látótéren áthalad. A magasság ismeretében és a szenzor adataiból már számolható az elmozdulás mértéke. Ezt használják ki, a mintavételezéseket régiókra, vagy pixelekre osztva összehasonlítják egymással, majd az eltérésekb l egy értéket adnak vissza a program számára. Ezekb l a kapott eredményekb l egy folyamatosan változó vektormez t lehet felírni, amiben a vektorok irányát és hosszát ez a módszer adja. 3.7. ábra. Két képkocka között számolt vektorok (http://cbia..muni.cz) Az én esetemben persze gyelembe kell azt is venni, hogy a vizsgáló eszköz és a vizsgált platform is mozog, illetve a drón ki is billenhet akár. Jelenleg ezzel a technológiával már képesek az UAV-ok tájékozódni a visszatérési ponthoz vezet úton, és a közben felmerül akadályokat felismerni, egy bels modellt alkotva a környezetükr l. 20
4. fejezet A rendszer Egy ilyen rendszer m ködésének több meghatározó fázisa is van. Az els az, amikor a drón túl messze van a leszálló platformtól, vagy még nincs jó rálátása a markerekre. Ekkor valamilyen módszer segítségével meg kell határozna a relatív helyzetetét a leszálló felülethez képest, majd megközelíteni azt néhány méteres közelségben. Miután ez megtörtént, egy másik üzemmódba váltva, a képi feldolgozásra hagyatkozva történik a további pályatervezés. Ekkor fenn áll a lehet sége a leszállás megszakításának, ha a mért adatok egy bizonyos biztonsági küszöböt átlépnek. A harmadik üzemmód akkor következik, ha sikerült a gépet centiméteres pontosságig eljuttatni a leszálló felülethez. Ekkor egy mechanikai rendszer m ködésbe hozásával kell megfogni a drón talpát vagy lábait. 4.1. ábra. A leszállás fázisai (Szerz saját képe) 21
4.1. Megközelítés 4.1. Megközelítés Ez az a rész, amelyben valamilyen technológia segítségével az UAV megközelíti a platformot. Ilyen technológia lehet például az egyszer GPS, ami 10 méter körüli átlag pontosságot tud adni. Viszont itt ennél többre van szükség, így egy lehetséges megoldásnak bizonyulnak az úgynevezett dierenciál GPS-ek (DGPS) [20]. Ezek m ködése azon alapszik, hogy elhelyeznek egy referencia egységet a leszállón, és az ebb l kapott adatokkal korrigálják a drónon lév adatokat. A módszer segítségével, már akár centiméteres pontosságot is sikerült elérnie egyes gyártóknak. Ezen kívül léteznek LPS-ek [21] (Local Position System) is, melyek WiFi, ultrahang vagy rádiófrekvencia segítségével képesek helyzetet meghatározni. Egy közvetít antenna jeleit mérik a gépre helyezett érzékel k, és ezt használják tájékozódásra. A nagy el nyük a GPS-ekkel szemben, hogy beltérben hatékonyak, illetve nem blokkolják az épületek a jeleket. Viszont hatótávolságuk nyílt téren jelent sen alacsonyabb [22]. 4.2. ábra. Egy dierenciál GPS m ködése (Szerz saját képe) A folyamatot úgy kell elképzelni, hogy a drón felveszi a kapcsolatot a leszálló platformmal egy kommunikációs csatornán. Amennyiben egy folyamatosan mozgó objektumról van szó, akkor pályát és találkozási pontot egyeztetnek, majd az UAV az el z leg említett rendszer segítségével megtervezi a pályát a két eszköz között. 22
4.3. A probléma pontos megfogalmazása 4.2. Leszállás megkezdése és leszállás A rendszer amint képes a képi és egyéb érzékel k adatainak feldolgozásából navigálni, átvált azok feldolgozására, és folytatja a pályatervezést a leszálláshoz. Ez a legkritikusabb fázisa a m veletnek. Itt fontos, hogy amint a mért adatok egy bizonyos hibat résen kívül esnek, a leszállás legyen megszakítható. Jobbik esetben a drónt el kell küldeni távolabbra, majd újrapróbálkozni az elejét l. Ilyen az, amikor a mozgó platform megd l esetleg, és emiatt a folyamat nem biztonságos. Rosszabbik esetben a géppel történik valami szerencsétlenség, így lezuhan. Ilyen rendszert egy szabályozási hurokkal tudunk létrehozni. Ez egy olyan ciklus aminek legmeghatározóbb lépései a képek feldolgozása, markerek felismerése, koordináták kinyerése, pálya megtervezése, majd a drón vezérlése, majd az egész újrakezdése. A 4.3 ábrán látható egy ilyen hurok m ködése. 4.3. ábra. Szabályozási hurok m ködése (Szerz saját képe) Miután az említett problémák megoldásával egy meghatározott távolságon belülre kerül a drón, akkor jöhet az utolsó fázis, ahol egy mechanikus rendszer képes a gépet valamilyen módon megfogni. 4.3. A probléma pontos megfogalmazása A szakdolgozat témáját az el z ekben felsoroltak közül a második fázis teszi ki. Ennek a fázisnak is a relatív helyzet meghatározása fontos számomra, és nem a vezérlés, a bevezetésben említett okok miatt. Kis költségvetéssel szeretnék hatékony rendszert létrehozni. A korábban említett módszerek közül ki kell zárnom teljesen a rádiós megoldásokat. Ezek hatékonyak és prok, de frekvencia engedély kellene hozzájuk, publikust használva pedig könnyen zavarhatóak. Továbbá komoly infrastruktúra kiépítését és eszközöket igényelnek, amely szintén kizáró ok. Ellenben az optikai rendszerekhez nem kell más, mint egy feldolgozó számítógép, egy képi szenzor, a markerek kialakítása, és esetleg egy optikai áramlás érzékel. Az eddigi hasonló megoldásokban passzív markereket használtak a fejleszt k. Ezek széls séges fényviszonyok és id járási tényez k mellett könnyen válhatnak felismerhetetlenné. Az én esetemben infravörös LED-ek (fényt kibocsátó dióda) alkotják majd ezeket, amelyeknek célom a megbízhatósági szintjét tesztelni. Mivel kültéren a Nap infra sugárzása zavaró jelnek számít, így kés bbiekben megoldás lehet, hogy ezeket a fényforrásokat egy 23
4.3. A probléma pontos megfogalmazása kódmodulált rendszer villogtatja olyan módon, amit a hardver képes érzékelni. Egyik akadály pontosan ebb l adódik, hogy mi az a sebesség, amit a rendszer képfeldolgozása még kezelni tud. A LED-ek száma és kihelyezése egy el re meghatározott alakban történik, amit az UAV-nak ismernie kell. Viszont így felmerül a kérdés, hogy mi az optimális módja az alakzat megválasztásának, ahol minél nagyobb hibat rése van egyegy marker kiesése esetén is a rendszernek. Ez lehet akár becsillanás, vagy adódhat id járási viszonyokból is. Az eddigi megoldásokból kiindulva két nagy kategóriát lehet megkülönböztetni az ilyen rendszerekb l. Az egyik, amikor valamilyen csatornán az UAV leküldi a mért adatokat, és egy földi számoló egység végzi a bonyolult feldolgozásokat. A másik, amikor az eszközre helyezett egykártyás számítógép teszi azt, és nincs kommunikációs csatorna földi egységekkel. A piacon már kezdenek elterjedni hatékony bankkártya méret gépek, ami még újdonságnak számít. Az els esetben hibaforrás lehet, hogy az adatok elvesznek, az újraküldés id t vesz igénybe, zavarhatóak a jelek. Ezekb l adódóan nem képes az azonnali reakcióra a drón, ami ennél a kritikus m veletnél fontos szempont. Amennyiben lehetséges, a második lehet séggel szeretnék élni, így azok közül kell megtalálnom az optimálisat. Mivel a képfeldolgozási algoritmusok er forrás igényesek, így a számolás id igénye is egy probléma forrása lehet. Ezért másik kérdés, hogy milyen kóddal és nyelven érhet el a kívánt hatékonyság. Az érzékel k kiválasztása is egy fontos lépés. Ez lehet például olyan infra sz r lencsével ellátott kamera, ami csak az infravörös hullámokat engedi át. Továbbiakban az infra sz r kifejezés alatt ezt a típust értem. Léteznek más ilyen eszközök is, ilyen a Pixart Sensor, amit például a Nintendo Wii is használ. Ez egy optimalizált, gyors hardver/szoftver páros, de alacsony felbontáson m ködik, ami miatt csak kis hatótávolságon belül használható. Az eszközhöz közeli kézmozdulatokra és gesztusokra van kiélezve. Vannak még hasonló eszközök, de a dolgozat a kamera képeken alapul, így azokkal nem foglalkozom. A bemen képi adatok pedig további kérdéseket vetnek fel, hogy milyen képfeldolgozó könyvtárak állnak rendelkezésre a feldolgozáshoz ingyenes felhasználással jelenleg. Mi az, ami a leghatékonyabb, és alacsony er forrást igényel. Amennyiben a fedélzeti számítógép kapacitása képes kezelni az el z leg említett problémákat hatékonyan, további fejlesztés lehet egy optikai áramlás szenzor beépítésével a leszállás segítése. Ez megint felveti a kérdést, hogy az adott költségvetési korlátok között létezik-e olyan mini számítógép, ami képes kezelni ezeket az algoritmusokat hatékony sebességgel. Az el z leg említett problémák közül a markerek kihelyezését, algoritmusok hatékonyságát csak egy módon tudom felmérni, és az a tesztelés. Mivel egy drón beüzemelése körülményes lenne ilyen célokra, így a virtuális megoldásoknál kell maradnom. A képfeldolgozó egység egy külön modulban kerül megírásra. Ennek legf bb bemen információja maga a kép. Nagy el nye, hogy valamilyen szimulációs környezetet rá tudok kapcsolni az algoritmusaimra anélkül, hogy bármi módosítást végeznék azokon. 24
5. fejezet A rendszer implementálása 5.1. ábra. A feldolgozás részei (Szerz saját képe) 5.1. Képfeldolgozó egység Talán a dolgozat egyik legfontosabb része, hogy megtaláljam a leghatékonyabb képfeldolgozó könyvtárat. Itt a f bb szempontok egyike, hogy kereszt-platform (több operációs rendszeren is futtatható) és lightweight (gyors és egyszer ) legyen, széles dokumentációval és nagy függvénykészlettel. Accord.NET (http://accord-framework.net/) Az AForge.NET könyvtár kib vítéséb l jött létre. Kép és hangfeldolgozó keretrendszer, rengeteg beépített függvénnyel. Alkalmas gépi tanulásra, genetikus algoritmusok létrehozására, és a fuzzy logikát is ismeri. Elterjedt eszköz az úgynevezett LEGO Mindstorm robotok programozói körében. Ezek speciális épít elemekb l készült robotok, amiknek 25
5.2. Képfeldolgozás folyamata a vezérléséért felel s szoftvereket ennek segítségével írják. Ahogyan a nevéb l is látszik, ez a.net keretrendszerhez kapcsolódik, ami gyors és hatékony programfejlesztést biztosít Windows rendszereken, illetve átjárást az operációs rendszer verziói között. A képfeldolgozó könyvtár programozási nyelve C# és található benne már Mono támogatás. Ez egy olyan platform, ami Linuxos környezetben is megvalósítja a.net függ ségeket és C#-ban íródott programok fordítására is képes. Viszont a Mono még ha minimális teljesítményromlást is okoz Windowshoz képest, az a pár képkocka is dönt fontosságú lehet. Ezen felül a C/C++ nyelveken jobban megvalósítható a keresztplatform támogatás is, így ezt a lehet séget elvetettem. VXL (http://vxl.sourceforge.net/) Egykor hatékony képfeldolgozó könyvtár gy jtemény volt C++ nyelvhez. Elismert szakmabeliek fejlesztették és használták, nagyon hatékony, széles platformtámogatással rendelkezik, viszont gyenge és hiányos a dokumentációja, ma már nem fejlesztik, így háttérbe szorult a vetélytársaival szemben, elavult. OpenCV (http://opencv.org/) Ha képfeldolgozásról esik szó, ma a legtöbb embernek az OpenCV jut eszébe el ször. Hosszú évek folyamatos fejlesztésének eredménye hogy, magasan kiemelkedik társai közül. Kereszt-platformú, majdnem minden közismert nyelven implementálták már, vagy készítettek úgynevezett interfészt hozzá, amin keresztül az adott nyelv el tudja érni a könyvtár metódusait. Kimagasló dokumentáció, sok beépített függvény, hatékony algoritmusok, valós idej feldolgozás, elterjedtségéb l adódóan széles támogatottság fórumokon. Nyílt forrású és felhasználása ingyenes, els sorban a valós idej képfeldolgozáshoz fejlesztették. Széles képfeldolgozással kapcsolatos területeken használják. Ilyen például az arc és gesztus felismerés, mobil robotika, kép szegmentáció, mozgáskövetés, kiterjesztett valóság, stb. Minden megtalálható benne, amire szükség lehet a munkám során, így ez a választott rendszer. 5.2. Képfeldolgozás folyamata Ez az egység felel s a valós idej információ feldolgozásért. Tudjuk, hogy a markerek foltok formájában fognak látszódni a képen. Ezek megtalálására már elterjedt módszerek léteznek. Viszont ahhoz, hogy ezt elvégezhessük több el feldolgozási lépésre van szükség. 5.2.1. Átalakítás és képek el sz rése A képfeldolgozás már széles körben elterjedt folyamat. A beérkez képek nagy valószín séggel RGB, azaz vörös, zöld, kék színkódolású, 24 bit mélység ek. Ez annyit jelent, hogy egyenként a kép összes pixelje 24 biten kerül reprezentálásra, így minden képpont 16 777 216 féle egyedi színt kaphat. Mivel a projekt esetében a színek nem 26
5.2. Képfeldolgozás folyamata játszanak szerepet, így számítási id t takaríthatunk meg, ha a képet szürkeárnyalatos bit-térképpé alakítjuk. Ez annyit tesz, hogy a pixelek egy 0-255 közötti számértékkel kerülnek tárolásra. A szám a fehér szín er sségének mutatója lesz ezután, és elég 8 bit a tárolására. Ilyen átalakításra többféle számítási módszer [23] is létezik. Az egyik ilyen az, amikor a három színkomponens minimuma és maximuma összegének vesszük a felét. Továbbá létezik olyan módszer is, amikor a vörös, zöld, kék színeket átlagoljuk, esetleg súlyozzuk azokat. A mai képfeldolgozó rendszerekben már létezik ezekre optimalizált bels függvény, így ezt nem kell megírnom. Az OpenCV egy olyan módszert alkalmaz, amely a pixelt körülvev színek alapján egy formulával megállapítja, hogy mi a vizsgált képpont fényessége [24, 25]. 5.2. ábra. Kép szürkeárnyalatossá alakítása (Szerz saját képe) Mivel alakokat, objektumokat kell megtalálnunk a képen, ezért fontos, hogy kiemeljem a számomra fontos elemeket. Erre egyik legjobb módszer, a thresolding [26]. A kapott szürkeárnyalatos képen egy olyan átalakítást jelent ez, ahol bináris kép lesz a kimenet. Egy ilyen képnek a jellemz je, hogy minden pixel igaz, vagy hamis értékkel bír, azaz fekete vagy fehér. A legtöbb számítógépes képfeldolgozási m veletnek egy ilyen kép a kiindulási követelménye. A thresolding [27] algoritmusok matematikai számításokkal képesek elérni a kívánt eredményt. A legtöbbjük el re meghatározott küszöbértékekkel dolgozva vizsgálja a képpontokat, hogy elérnek-e egy bizonyos szintet, majd annak megfelel en adnak eredményt. Az elterjedt feldolgozó könyvtárak erre is nyújtanak már beépített optimális megoldásokat a felhasználóknak, ahogyan az OpenCV is. 5.3. ábra. Kép bináris átalakítása (Szerz saját képe) 27
5.3. Markerek meghatározása és felismerése 5.2.2. Blob detekció Az el z leg kapott bináris képen a cél, hogy megtaláljam a LED-eket. Ennek egyik lehetséges és elterjedt módja az angolul blob detection [28] (folt felismerés) nev algoritmus alkalmazása. Az ilyen matematikai algoritmusok lényege, hogy a képen olyan alakzatokat keressenek, melyek színben, telítettségben, alakban elkülönülnek a környezetükt l. Több változata létezik, például két meghatározó osztályozásuk, hogy színes képen adott szín foltok keresése, vagy színt l függetlenül, minden összefügg alakzat megtalálása. Az én esetemben a markerek fehéren fognak látszódni a képen, így a színek vizsgálata elhagyható. A megtalált alakzatok közül ezután megvizsgálom, hogy melyek azok, amikkel továbbiakban dolgozhatok, és mi az, amit el kell vetni. Az OpenCV blobkeres függvénye több paraméter megadásával is segít sz kíteni a találatokat. Ilyenek a szín, méret, alak, konvexitás és egyéb tulajdonságok. A keresést elvégezve egy tömböt ad vissza a blobok középpontjával és azok méretével. Ezeken a pontokon kell a kés bbiekben megtalálni és felismerni az el re meghatározott alakzatokat. 5.4. ábra. Foltok megtalálása és bekeretezése (Szerz saját képe) 5.3. Markerek meghatározása és felismerése Az els legfontosabb lépés, hogy a jelz rendszer legyen meghatározva, és aztán minden további lépést csak erre lehet alapozni. A cél, hogy a leszálló platform felületéhez képest meg tudjam határozni a drón helyzetét. Mivel egy síkot legalább 3 pont határoz meg, így minimum ennyi jelzésre van szükségem. A markerek által meghatározott alakzat koordináta rendszere egy (Xp,Yp, Zp) hármas, az UAV-ét pedig szintén hasonlóképpen lehet felírni (Xd, Yd, Zd). Ezt a rendszer meghatározást mutatja az 5.5 ábra is. A platform rendszerében kell kés bbiekben meghatároznom a drón koordináta rendszerének középpontját. Viszont egy robosztus rendszer létrehozásához gyelembe kell vennem, hogy kieshetnek pontok, ezért szükség van redundancia létrehozására. Ez azt jelenti, hogy a szükségesnél több információt tartalmazzon a kialakítás, amihez 4, vagy attól több pont szükséges. Ezek kihelyezése történhet sokféle módon, de olyanra van szükség, amib l egyértelm en visszaszámolható a kamera relatív helyzete az alakzathoz képest, illetve minél kisebb er forrást vesz igénybe a számolása. Egy robosztus algoritmusnak fel kell tudnia 28
5.3. Markerek meghatározása és felismerése 5.5. ábra. A platform és a drón koordinátarendszere (Szerz saját képe) ismerni az alakzatot valószer szögtartományokon belül, nagy ponthalmazok között is. Erre minden el zetes információ ismerete nélkül csak akkor van lehet ség, ha az összes lehetséges megoldást kipróbálja. Így egy olyan sajátos alakzatra van szükségem, amir l biztonságosan megállapítható, hogy az megfelel, vagy sem. 5.3.1. Alakzat kiválasztása Végtelen változat létezik. A rálátás szögét l függ en a kétdimenziós leképezésük torzulhat. Ezt az okozza, hogy a kamera síkja és az alakzat síkja nem párhuzamos, így az alakzat vetülete úgynevezett perspektivikus torzulást szenved. A teljesen szabálytalan alakzatok legnagyobb hibája, hogy az élek és szögek elváltozásával nehezen és kis tartományban ellen rizhet algoritmusokkal, hogy helyes alakzatot találtam-e meg egy ponthalmazban. Redundanciák létrehozásával tudjuk ezt kiküszöbölni. Ilyen lehet például a hasonló szögek, hasonló oldalhosszúságok alkalmazása egy alakzaton belül. A fejlesztés során szeretnék minél kevesebb csúcsot alkalmazni, így négy ponttal dolgozok a következ ekben a számítási igények csökkentése végett. 29
5.3. Markerek meghatározása és felismerése Szabályos négyzet, téglalap, rombusz Ezek az alakzatok könnyen felismerhet ek, sok az ismétl d oldalhosszúság és szögméret. Viszont a legnagyobb gond velük, hogy nem tudjuk meghatározni milyen irányból lát rá a rendszer. Képzeljünk el egy szabályos négyzetet, amit felülr l nézünk. Nem tudnánk megmondani, hogy melyik az eleje és vége, ha nem vagyunk ismeretében az irányoknak. Így a relatív helyzet meghatározására sincs lehet ség. A rombusz és téglalappal ugyanez a probléma. Ezeknél több információval rendelkez alakzatokra van szükségem. Egyenl szárú trapéz Ez egy speciális négyszög. Sok olyan információt tartalmaz, amelyet algoritmusok tudnak kezelni. Van két egyenl hosszúságú szára, két párhuzamos oldala, amelyek közül az egyik biztosan rövidebb a másiknál, két egyenl hegyes és tompa szöge. Ezeket a tulajdonságokat csak széls séges torzulások esetén veszíti el, de olyanba megfelel m ködés közben nem kerülhet a drón. Kérdés, hogy trapézon belül mi az az optimális kialakítás, ami a legnagyobb szögtartományban használható. Ez az alakzat megfelel nek bizonyult a fejlesztéshez. 5.3.2. Trapéz felismerése, az algoritmus m ködése A célom egy ponthalmazban megtalálni a nekem megfelel arányokkal rendelkez alakzatot. Az ismert információ a megtalált blobok középpontja a képen, a várt eredmény egy ismert trapéz arányaival megegyez ponthalmaz megtalálása, a csúcsok és az élek felismerése, majd egy régió meghatározása, amelyben megtaláltam. Amennyiben még nincs régióm, a teljes képen kell keresnünk, ellenben elég a régión belül. Ez egy gyorsítási lehet ség, amely segítségével, nagy valószín séggel a következ képkockán meg tudom határozni, hogy hol találom meg a markereket. Abban az esetben, ha nem találom benne, visszaesik az algoritmus a teljes képre. A csúcsok megtalálására a pontok összes ismétlés nélküli kombinációját vizsgálva van lehet ség. Nincs el zetes információm, nem tudom, hogy mekkora blobok és egymástól milyen távol lév blobok engedélyezettek, nem tudok kizárni semmit, így ez elkerülhetetlen. A vizsgálat els lépéseként megpróbálok egy konvex alakzatot felrajzolni a pontok felhasználásával. Amennyiben nem sikerül, nem trapézt találtam. Erre a vizsgálatra kényelmes megoldást biztosít az OpenCV egyik beépített függvénye. Megkeresi a ponthalmazt magába foglaló legkisebb konvex alakzatot, majd visszaadja azokat a pontokat. Továbbá megadható, hogy az óramutató járásával ellentétes vagy azonos irányú körüljárást alkalmazzon. Ez az algoritmus amennyiben 4-b l 4 ponttal tér vissza, akkor léphet a következ vizsgálatra. A második lépésben egy segéd tömböt hozok létre, amelynek elemei olyan objektumok, amik tárolják a pontok közepének helyét, a pontokhoz tartozó bezárt szögeket, és egyéb mellékes információkat az indexekre vonatkozóan. 30
5.3. Markerek meghatározása és felismerése 5.6. ábra. Konvex alakzat meghatározása (Szerz saját képe) A bezárt szögek ismeretében megvizsgálom három egymást követ szögek eltérését. Amennyiben itt nem találok 2 darab olyat, amik 10 fokos t résen belül megegyeznek, akkor az azt jelenti, hogy nem trapézt találtam. Erre abból lehet következtetni, hogy nem találtam meg az egymás mellett elhelyezked, egyformának vélt hegyes vagy tompaszögeket, vagy túl nagy a torzulás mértéke. Ebben az esetben az algoritmus továbblép a következ ponthalmaz vizsgálatára. Ellenben a következ ellen rz lépés jön. A harmadik lépés el tt a segédtömböt a pontokhoz tartozó szögek alapján növekv sorba rendezem. Így el re kerül a két hegyes szög, hátra a két tompa. Ezután az azonosnak vélt szögeket 10 fok t réssel összehasonlítom. Amennyiben nem egyeznek, azt jelenti, hogy nem szabályos trapézt találtam. Ellenkez esetben már biztos lehetek a trapéz fogalmában, így a két párhuzamos oldal közé húzott mer leges által meghatározható a magassága is. Negyedik lépésként, mikor már azonosítottam a trapézt, tudok a bels szögekre nézve korlátokat felállítani. Mivel ismerem az eredeti alakzat szögeit, itt megtudom határozni, hogy adott szögeinek mekkora torzulást engedhetek meg biztonságos korlátok között. Viszont a gyakorlat azt mutatja, hogy a zavaró tényez k, becsillanások nagyon csekély eséllyel formálnak szabályos trapézt, ezért ez elhanyagolható egyel re. Ötödik lépésként egy POI-t (Point of Interest) hozok létre. Ez egy olyan régió, amelyben a számomra hasznos pontokat találtam, hogy a következ vizsgálat során gyelmen kívül tudjam hagyni a nem bele es ket, ezzel is gyorsítva a programon. Az 5.7 ábrán látható, hogy a kék négyzetben találhatóak az értékes pontok, azon kívül a program számára nem fontosak. Ezeket továbbiakban gyelmen kívül hagyja. Nagy valószín séggel e régióba fog esni a következ képkockán is a marker. Amennyiben nem így történik, a teljes képet vizsgálja újra. Ezután az ismert indexek, a szögek, és a segéd tömb alapján beindexelem a pontokat úgy, hogy a kezd szám mindig a tompa élekkel rendelkez csúcsok közül az els re essen, ha óramutató járásával azonos körbejárást alkalmazok. Erre azért van szükség, mert kés bbiekben a relatív helyzet kiszámolásához tudnom kel, hogy melyik csúcs minek a megfelel je a valóságban. 31