Vodenje kvadrokopterja na podlagi slike Matevž BOŠNAK, Drago MATKO, Sašo BLAŽIČ Izvleček: Določanje položaja plovila predstavlja enega izmed temeljnih problemov pri vodenju zračnih plovil. V članku bo predstavljen sistem za določanje položaja brezpilotnega zračnega plovila s sposobnostjo VTOL (angl. vertical take-off and landing) v zaprtem prostoru z namenom vodenja po položaju. Sistem temelji na računalniški obdelavi slike, zajeti s kamero na plovilu, in je sposoben ne le določanja položaja plovila glede na fiksne oznake na tleh prostora, temveč tudi gradnje zemljevida oznak. V predstavljeni rešitvi se tako določen položaj plovila skupaj s podatki o njegovem stanju prenese v okolje Matlab Simulink, kjer je načrtan sistem vodenja, rezultati sistema vodenja pa se nato iz okolja Simulink preko namenske aplikacije pošljejo brezpilo-tnemu zračnemu plovilu. Ključne besede: kvadrokopter, avtonomni sistemi, računalniška analiza slike, določanje položaja in gradnja zemljevida (postopek SLAM) ■ 1 Uvod Vodenje brezpilotnih plovil po položaju zahteva natančno poznavanje trenutnega položaja plovila v vsakem časovnem trenutku, kar je v našem primeru predstavljalo osnovno raziskovalno nalogo. Rešitev se zgleduje po principih vodenja na osnovi slike [1], [2], [3], [4] in temelji na združevanju informacije iz rezultatov računalniške obdelave digitalne slike s kamere ter kopice senzorjev, kot so senzorji pospeška, kotne hitrosti in višine. Prikaz delovanja predlaganega sistema je bil izveden z implementacijo na kvadro-kopterju AR.Drone [5]. Kvadrokopter AR.Drone je množični proizvod, namenjen za uporabo z mobilnim telefonom. Ogrodje je sestavljeno iz karbonskih in plastičnih struktur, nanj so pritrjeni štirje rotorji s pogonom z brezkrtačnimi motorji, sen- zorskoin nadzornovezje,odstran-ljivabaterijain parbarvnihvideoka-mer. Za zaššito rotzrjev inogrodja slana voljo vaqanhdátna lua¡na za lelh nja v zaprtih eaoatorih in manjša lnnbaa na leaenje zunaj. Seezorsko vezje a kvadrokop-terju AR.Drone že vsebuje enoto IMU jan°l. ioortial meosnromenz unit)s [zospe^omMtri inžiroslnoz p¡ ten" altrazvzmi marilnik v¡t¡ndr KaaarokoaVerjeroPatao oprvmljea s kamero VGA, ki je usmerjena v smer leta ¡nima ločlji vost 640 x 480 slikovnihtočk, in kameno,usmarje-nčpootitlom , lo0ljivoktilk6 n k44 sli keonih t^c^cik^. Zai zvaja njen i zkoni-votsOa otatsiMzac|e kvadročopterja in komunikacijeznadoomim sistemom je kvadrokopter AR.Drone opremljen s procesorjem ARM9 s tckto m46tjMHz, ^ptgarjo vetjem sistem kjntx k kadrom 2.6.2n [6], Zaksmnnikakijo h/adrolaopter AR.Drone deluje kot brezžična do- Slika 1. Bločni diagram predstavljene rešitve stopna točka WiFi in tako omogoča vodenje kvadrokopterja tako preko mobilnihnaprav s sistemoma Android in iOS kot tudi preko osebnega računalnika, saj je puoi zvajalec Parrot izdal specifikacije uporabljenega paoUnkoia [7] ins temomog o -čil dostop do meritev senzorjev, slik aame- savaOrukopUerjnke rood enje. gavodgnaekvadrokoaturjao mo nao-vili program v programskem jeziku k# (fmihaaa n kok Oplieaci[oAd.Dron e control na sliki 1), ki je namenjen: - komunikaciji s kvadrokopterjem preko omenjenega protokola, - izvajanju obdelave zajete slike (navpično navzdol postavljene) kamere, izvajanju prilagojenega algoritma za metodo SLAM (angl. Simultaneous Localization And Mapping) [8], - izvajanju algoritmov vodenja kvadrokopterja po položaju [9], - zaznavanju trkov z ovirami na podlagi modela kvadrokopterja, - posredovanju podatkov meritev v simulacijsko shemo in iz nje v okolju Matlab Simulink. V tem prispevku bomo podali kratek opis sistema za razpoznavanje slike, sistema SLAM in vmesnika z okoljem Matlab Simulink. ■ 2 Delovanje sistema za razpoznavanje slike Računalniška obdelava slike je proces, s katerim dvodimenzionalno polje vrednosti, ki ustrezajo izmerjenim jakostim svetlobe za posa-meznoslikovno točko, pretvorimo v novo sliko ali v niz številskih po-dktkov, skkterimi opišemovsebino slike, ki nas zanima. V našem primera izookkekatetp slike (inkopije predhodno zajete slike) izluščimo polatkk p eoložnju (ovso določenih umetnih značilnih točk v sliki in podateko slikovnemtokv. Sistem zaokdelapo siike,V tmo e realizirali z uporabo ene videoka-mere, ki je fiksno pritrjena na ohišje kvadrokopterja, smo ločili v sistem za: - merjenje optičnega toka v sliki z značilnimi točkami FAST in metodo Lukas-Kanade, - razpoznavo značilk v sliki in - določevanje položaja kamere na podlagi razpoznanih značilnih točk. Polje gibanja je vektorsko polje, sestavljeno iz vektorjev, ki kažejo premike posameznih točk med zajetjem dveh zaporednih slik in ga potrebujemo za ocenjevanje linearne hitrosti premikanja kamere nad površino. V večini situacij (problemi nastanejo pri spreminjanju osvetlitve predmeta) lahko polje gibanja aproksimiramo z uporabo optičnega toka [10] (angl. optical flow), ki predstavlja vektorsko polje (prikaz na sliki 2), katerega komponente so vektorji, ki kažejo navidezne premike izbranih točk slike. Za izračun optičnega toka v sliki smo izbrali diferenčno metodo Lucas-Kanade z izvajanjem po piramidnih slojih [11], ki predpostavi konstanten optični tok v bližnji okolici preiskovane slikovne točke in reši sistem enačb za optični tok za vse slikovne točke v bližnji okolici z uporabo metode najmanjših kvadratov. Zaradi pristopa s piramidnimi sloji se postopek najprej izvede na nivoju nizke ločljivosti in se nato ponavlja na slojih z višjimi ločljivostmi. Značilne točke (značilke), ki smo jih uporabili za določitev vektorjev optičnega toka, smo določili z uporabo algoritma FAST [12]. Značilke FAST smo uporabili le za določanje vektorja globalnega optičnega toka in niso uporabljene za določanje položaja. Za določanje položaja in gradnjo zemljevida smo uporabili umetno postavljene značke (angt(čypV-poOkrte n zeirkk GRATF za razpoznavanje in sledenje značk(knkl- G(yppjčcogPVk^nzj ižaja, korskepeedkrij i tega filhra pa smvivzjali nadhdlacimate-matičnega modela kvadrokopterja ter regulacijskih signalov, poslanih kva-drokopterju [9] - kotu valjanja, kotu prevračanja, kotni hitrosti sukanja ter spremembi višine. Izhodi filtra položaja so nato bili uporabljeni kot ocena trenutnega stanja sistema v sklopu regulatorja. Izvajanje opisanega filtra položaja kvadrokopterja je bilo izvedeno pri časovnem koraku T = 20 ms. V isti zanki smo poleg samega filtra položaja kvadrokopterja izvedli tudi zaznavanje trkov z ovirami in sledenje trajektoriji, vendar se bomo v nadaljevanju omejili na vmesnik za vodenje kvadrokopterja preko okolja Matlab Simulink. ■ 5 Vmesnik Matlab Simulink Simulacijsko okolje Matlab Simulink temelji na grafičnem programiranju in jepogostouporabljenoza simulacije in vodenje. Načrtali smo masWran funkcijski blok,ki vsebgje vmesnik za vodenje in zaznavanje kvadrokopnerjrAR.Dbooe ikomo-goča preizkušanje različnih algoritmov vode njv (primer shem e prikazan na sliki 5). Pod masko funkcij -sbegnklzka»AR.Drobedmesnik<< je zaekha Matlab S-junkcija j ipaMhX (angl. Matlab Executable), ki s po- | [Link_x] >-| | [Liiik_vx] >H | [Link_roll] I [Link_y] > | l [Link_vy] Rt [Link_pitch]~^>-| [Link_z] R- Referenca za kotno hitrost sukanja Vklop regulatorja za kot valjanja Vklop regulatorja za kot prevračanja Vklop regulatorja zasuka Vklop regulatorja višine "i Master enable signal T« masterEnable (set to 2806) flying (set to 1 to take-off) __o__ j-KjLin^vx] | |>fvX~] roll pitch yaw isFlying battery controlFlags x SLAM y SLAM z SLAM yaw SLAM Targets visibility -X[Link_x] | X ^$-ink_z] | pj<[Link_vy] | j vy | _pH hih PC X^ j-►