fakultet organizacije i informatike - bib.irb.hr · pdf filesveuČilište u zagrebu...

44
SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Marko Cindrić Programiranje bespilotnih letjelica ZAVRŠNI RAD Varaždin, 2017.

Upload: duongnga

Post on 16-Mar-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

SVEUČILIŠTE U ZAGREBU

FAKULTET ORGANIZACIJE I INFORMATIKE

V A R A Ž D I N

Marko Cindrić

Programiranje bespilotnih letjelica

ZAVRŠNI RAD

Varaždin, 2017.

SVEUČILIŠTE U ZAGREBU

FAKULTET ORGANIZACIJE I INFORMATIKE

V A R A Ž D I N

Marko Cindrić

Matični broj: 42176/13–R

Studij: Informacijski i poslovni sustavi

Programiranje bespilotnih letjelica

ZAVRŠNI RAD

Mentor:

Doc. dr. sc.

Markus Schatten

Varaždin, kolovoz 2017

I

Sadržaj 1. Uvod ....................................................................................................................................... 1

2. Bespilotne letjelice ................................................................................................................. 2

2.1 Terminologija ................................................................................................................... 2

2.2 Kratki pregled povijesti .................................................................................................... 3

2.2.1 Rana povijest ............................................................................................................. 3

2.2.2 Vijetnamski rat .......................................................................................................... 4

2.2.3. Bosna ........................................................................................................................ 5

2.2.4. Afganistan ................................................................................................................ 5

2.3. Civilna uporaba ............................................................................................................... 6

2.3.1. Rasprostranjenost bespilotnih letjelica ..................................................................... 6

2.3.2 Upotreba u geodeziji ................................................................................................. 8

2.3.3. Primjena u poljoprivredi ......................................................................................... 10

2.3.5 Kontrola i nadzor nad kritičnom infrastrukturom ................................................... 11

2.3.6 Sigurnost i okoliš ..................................................................................................... 11

2.3.7 Praćenje i nadzor okoliša ......................................................................................... 12

2.3.8 Potraga i spašavanje ................................................................................................ 13

2.3.9. Sigurnost ................................................................................................................. 13

2.3.10. Dostava ................................................................................................................. 13

2.4. Klasifikacija .................................................................................................................. 14

2.5. Komponente bespilotnih letjelica .................................................................................. 16

2.6. Pravna regulativa ........................................................................................................... 18

3. Okviri za razvoj UAV aplikacija ......................................................................................... 20

3.1. node-ar-parrot ............................................................................................................... 20

3.1.1. Client ..................................................................................................................... 21

3.1.2. Client API .............................................................................................................. 21

3.1.3. UdpControl ............................................................................................................ 25

3.1.4. UdpControl API .................................................................................................... 26

3.2. PS-Drone ...................................................................................................................... 27

3.2.1. PS-Drone API naredbe .......................................................................................... 27

4. Implementacija aplikacije za upravljanje UAV-a ............................................................... 32

4.1. Pokretanje letjelice ....................................................................................................... 32

4.2. Glavni program ............................................................................................................. 33

4.2.1. Preuzimanje slike ................................................................................................... 34

4.3. Prikaz cijelog koda aplikacije ....................................................................................... 35

5. Kritički prikaz ...................................................................................................................... 36

II

6. Zaključak ............................................................................................................................. 37

7. Literatura ............................................................................................................................. 38

1

1. Uvod

U današnje vrijeme svjedočimo ubrzanom razvoju, usavršavanju i stvaranju novih

tehnologija koje pomažu u različitim ljudskim aktivnostima. Jedna od tih tehnologija su

bespilotne letjelice. Iako su tek danas postale pojam svakodnevnice, bespilotne letjelice postoje

već dugi niz godina. U samom početku razvoja bespilotnih letjelica, one su se koristile

uglavnom za vojne svrhe, te upravo je to razlog zašto se njihov razvoj držao u tajnosti.

Danas za razliku od početne namjene korištenja bespilotnih letjelica, one se koriste u

različitim segmentima života, od vojnog, civilnog do rekreativnog. Korištenje bespilotnih

letjelica, naročito u civilne svrhe, bilježi eksponencijalan rast, kako u pogledu njihovog, broja,

veličine i težine, tako i u pogledu sve brojnijih mogućnosti njihove primjene (EUR-Lex, 2014).

Glavnih pet točaka tržišta korištenja bespilotnih letjelica su: zabava, informacije i mediji,

nadzor i inspekcija, znanost o Zemlji i javna sigurnost.

U ovom radu ćemo detaljno opisati sami razvoj bespilotnih letjelica kroz povijest,

njihovu primjenu odnosno svrhu i koje su razlike među tipovima bespilotnih letjelica, te pravnu

regulativu. Zatim ćemo proći kroz određene programske jezike koji se danas najčešće koriste

za programiranje bespilotnih letjelica i kroz primjere programskih kodova pokazati neke od

mogućnosti programiranja istih.

2

2. Bespilotne letjelice

Najjednostavnije govoreći, bespilotne letjelice su letjelice sposobne izvršiti kontinuirani

let bez pilota (Bento M. F., 2008.). Prilikom definiranja pojma bespilotnih letjelica (eng.

Unmanned Aerial Vehicles – UAV) u brojnoj literaturi nailazimo na bogat izbor objašnjenja.

Razlog tome je njihova višestruka primjena, kako u vojne, tako i u civilne, ponajviše rekreativne

svrhe.

Bespilotne letjelice su letjelice ili zrakoplovi bez posade, odnosno bez pilota, te mogu

letjeti samostalno s unaprijed programiranim planom leta ili preko daljinskog upravljana od

strane pilota. U mogućnosti su prenositi različiti teret i dolaze u različitim veličina, od veličine

kukca pa sve do veličine komercijalnih zrakoplova.

U usporedbi s letjelicama upravljanima od strane pilota, bespilotne letjelica pružaju

dvije jako važne prednosti: ekonomične su i smanjuju rizik života pilota. No unatoč tome, stopa

nesreća je gotovo sto puta veća od zrakoplova s posadom. Zbog toga je još uvijek potrebno

poboljšanje sigurnosti i pouzdanosti.

2.1 Terminologija

U svijetu još uvijek ne postoji univerzalna, općeprihvaćena definicija bespilotne

letjelice.

Terminologija koja se trenutno koristi za bespilotne civilne ili vojne letjelice je

raznolika: dron, bespilotna letjelica (UAV), bespilotni zrakoplovni sustav (UAS), daljinski

upravljan zrakoplovni sustav (RPAS) ili letjelica (RPA). Ovi nazivi ne daju uvijek uvid u

specifične značajke različitih letjelica i sustava. Riječ „dron” vojnog je podrijetla, no ponekad

se upotrebljava i za letjelice i sustave koji se koriste u civilne svrhe (EUR-Lex, 2015.).

Izrazi RPAS i UAV (engl. unmanned aerial vehicle – bespilotna letjelica) u skladu su s

međunarodnom regulativom Međunarodne organizacije za civilno zrakoplovstvo (ICAO).

ICAO ne koristi pojam „dron”, no on je u govornom jeziku danas vrlo uvriježen. Ipak, kako bi

se izbjegle pravne nejasnoće, uključujući i u pogledu odgovornosti i osiguranja, preporučuje se

da se u europskom kontekstu u što većoj mjeri koristi terminologija ICAO-a. (EUR-Lex, 2015.).

3

2.2 Kratki pregled povijesti

Kroz povijest bespilotnih letjelica, UAV sustavi imaju tendenciju da su razvijani za

vojne svrhe, kao što je slučaj i s mnogim drugim tehnologijama, dok civilna uporaba započinje

tek kada je razvoj i testiranje bilo postignuto u vojnom području.

Mogli bi reći da je prva bespilotna letjelica kamen koji je bacio špiljski čovjek u

pretpovijesno doba ili možda ispaljena raketa u Kini u 13. stoljeću. Ova „vozila“ imaju malo ili

nimalo kontrole i u suštini bi samo slijedila balističku putanju. Ako bi se ograničili na vozila

koja proizvode aerodinamično dizanje ili imaju imalo kontrole, zmaj bi se vjerojatno uklopio u

definiciju prvog UAV-a. (Fahlstrom, Gleason, 2012., str. 3)

2.2.1 Rana povijest

Godine 1883., Englez Douglas Archibald prikačio je anemometar na vezicu zmaja i

izmjerio brzino vjetra na visini do 370 metara. Također je i prikačio kamere na zmajeve u 1887.

godine, što je bi zapravo predstavljalo prvu izviđačku bespilotnu letjelicu. Za vrijeme

španjolsko-američkog rata, William Eddy je uslikao stotine fotografija sa zmajeva, što bi moglo

smatrati jednim od prvih korištenja bespilotnih letjelica u bitkama.

Za vrijeme prvog svjetskog rata, bespilotne letjelice postaju prepoznatljiv sustav.

Charles Kettering (iz poznatog Generals Motors-a), je razvio dvokrilnu bespilotnu letjelicu za

vojni signalni korpus. Letjelica se razvijala oko tri godine i nazvan je Kettering Aerial Torpedo,

no poznatija je pod nazivom „Kettering Bug“ ili samo „Bug“. Letjelica je mogla letjeti oko 65

do 90 km/h i nositi oko 80 kg eksploziva. Bila usmjerena prema cilju sa svojim postavkama i

imala je odvojiva krila koja bi se ispustila u trenutku kada bi letjelica bila iznad mete

dopuštajući trupu aviona da padne na tlo kao bomba. Također 1917., Lawrence Sperry je razvio

UAV, sličan kao od Katteringa. Letjelica je imala naziv Sperry-Curtis Aerial Torpedo, a bila je

namjena za mornaricu. Imala nekoliko uspješnih letova, no nikad se nije koristila u ratu.

Često čujemo o UAV začetnicima koji su razvili rane zrakoplove, no također su od

velikog značaja bili i začetnici koji su smišljali i razvijali važne dijelove sustava bespilotnih

letjelica. Jedan od njih je bio Archibald Montgomery Low, koji je razvio podatkovne veze (eng.

data links ). Profesor Low je rođen u Engleskoj 1888., i bio je poznat kao „Otac radijskih sustava

4

za usmjeravanje“. Razvio je prvu podatkovnu vezu i riješio probleme sučelja bespilotnih

letjelica koje je uzrokovao motor. U rujnu 1924. godine je napravio prvi uspješni svjetski let

putem radio signala. Bio je vrstan pisac i izumitelj, umro je 1956. godine.

1937. još jedan Englez, Reginald Leigh Denny, i dvojica Amerikanaca, Walter Riytter

i Kennet Case, su razvili seriju bespilotnih letjelica nazvanih RP-1, RP-2, RP-3 i RP-4. Oni su

1939. godine osnovali tvrtku pod nazivom Radioplane Company, koja je kasnije postala

dijelom Northrop-Ventura Division-a. Tvrtka je izradila tisuće ciljnih dronova (eng. target

drones) za vrijeme drugog svjetskog rata. Jedna od njihovih ranih radnica u tvornici je bila

Norma Jean Daugietry, kasnije poznata kao Marilyn Monroe. Nijemci su u kasnijim godinama

drugog svjetskog rata koristili smrtonosne bespilotne letjelice V-1 i V-2. Tek su se u vrijeme

Vijetnamskog rata bespilotne letjelice uspješno koristile kao sredstva za nadziranje odnosno

izviđanje. (Fahlstrom, Gleason, 2012., str. 4)

2.2.2 Vijetnamski rat

Tijekom Vijetnamskog rata bespilotne letjelice su se opsežno koristile u bitkama ali

samo za izviđačke pothvate. Zrakoplovi su uglavnom u zrak bili ispaljivani iz transportnog

zrakoplova C-130 i bili ponovno prikupljeni padobranom.

Poticaj za operacije u jugoistočnoj Aziji su došle od aktivnosti tijekom kubanske raketne

krize (eng Cuban Missle Crisis) kada su bespilotne letjelice razvijane za nadzor ali zbog toga

što je kriza bila završena prije nego što su postale dostupne, nisu se koristile. Jedan od prvih

ugovora je bio između Ryan Firebee i zračnih snaga (eng. Air Force), poznat kao 147A za

vozila bazirana na Ryan Firebee ciljnom dronu. To je bilo 1962. i nazvani su Fireflys. Iako

Fireflys dronovi nisu bili operativni tokom kubanske krize, preuzeli su scenu za Vijetnam.

Northrop je također unaprijedio taj rani dizajn. Firefly je bio primarni zrakoplov korišten u

jugoistočnoj Aziji.

Korišteno je 3.435 zrakoplova, i većina od njih odnosno 2.873 (84%) su nakon rata

ponovno osposobljeni. Zanimljivo je da je letjelica TOMCAT uspješno izvršila 68 zadataka

prije nego što je izgubljena, što govori o efikasnosti korištenja bespilotnih letjelica u ratu. Na

kraju Vijetnamskog rata 1972., zrakoplovi su doživjeli 90% uspjeh u obavljanju zadataka.

5

Unatoč brojnim anegdotama i opisima velikih uspjeha, činjenica je da bespilotne

letjelice nisu igrale presudnu ili ključnu ulogu u ratu. Na primjer, marinci nisu pucali prema

nijednoj bespilotnoj letjelici tokom kopnenih napada prema članku iz Naval Proceedings

objavljenom u 10. mjesecu 1991. godine. No što je postignuto, je buđenje svijesti vojne

zajednice o tome „što bi moglo biti“. Što je naučeno u pustinjskoj oluji (eng. Desert Storm) je

da bespilotne letjelice su potencijalni ključ bojnog sustava, što je osiguralo njihov daljnji razvoj.

(Fahlstrom, Gleason, 2012., str. 4)

2.2.3. Bosna

Operacija Sjevernoatlantskog saveza (eng. North Atlantic Treaty Organisation – NATO) u

Bosni je jedna u kojoj su se bespilotne letjelice koristile za prismotru i izviđanje. Bombaški

napadi su uspješno izvedeni nakon što je NATO 1995. zračnim napadima demobilizirao

bosansko-srpske vojne ustanove. Na fotografijama iz zraka su vidljive oštećeni srpski tenkovi

i zgrade. Noćna izviđanja su bila od velike važnosti jer bi se tada najtajnije operacije izvodile.

Bespilotna letjelica naziva Predator je primarno korištena u Bosni, te je uzlijetala iz Mađarske.

(Fahlstrom, Gleason, 2012., str. 6)

2.2.4. Afganistan

Rat u Iraku je promijenio položaj bespilotnih letjelica. Na početku rata, bespilotne

letjelice su i dalje bile pod razvojem i moglo bi se reći nesigurne, no mnoge letjelice u razvoju

su korištene u operaciji za iračku slobodu (Operation Iraqi Freedom). Letjelica Global Hawk je

efektivno bio korišten tokom prve godine bez obzira na njegov rani stadij razvoja. Pioneer,

Shadow, Hunter i Pointer tipovi letjelica su najviše korišteni. Marinci su izveli stotine zadataka

koristeći Pioneer letjelice tokom bitke za Fallujah kako bi locirale i označile mete, te pratili

korak pobunjeničkih sila. Posebno su efektivni bili noću i mogu se smatrani jednim od

odlučujućih oružja u bitci.

Ratna verzija Predatora, mini-UAV-a, kao što je Dragon Eye, i široki spektar ostali UAV

sustava je korišteno na bojnim poljima Afganistana i Iraka, te su se pokazale veliku vrijednost

bespilotnih letjelica u vojnim službama. (Fahlstrom, Gleason, 2012., str. 7)

6

2.3. Civilna uporaba

Kroz prethodna poglavlja možemo uočiti da su se kroz povijest bespilotne letjelice

uglavnom koristile u vojne svrhe, tek u današnje vrijeme ljudi uočavaju da možemo imati veliku

vrijednost u uporabi bespilotnih letjelica za civilne potrebe. Vojna upotreba UAV-a se može

podijeliti na tri područja, to su pomorska, kopnena i zračna upotreba, dok se u civilne svrhe

može upotrijebiti u različitim područjima

ljudskih aktivnosti kao npr. u geodeziji tj.

fotogrametriji, poljoprivredi, industrijskoj

proizvodnji, civilnoj zaštiti, upravljanju

katastrofama, zaštiti okoliša, nadzorom

policijskog djelovanja, obavještajnim

službama, novinarstvom, komercijalnim

djelatnostima, razonodom itd.

Također je sve veća uporaba bespilotnih

letjelica za inspekciju nepristupačnih

dijelova u industrijskim objektima kao što

su: brane, dalekovodi, visoki dimnjaci, cjevovodi, mostovi i dr. Isto tako sve popularniji i mali

modeli namijenjeni za razonodu.

2.3.1. Rasprostranjenost bespilotnih letjelica

Kako bespilotne letjelice postaju manje, jeftinije i jednostavnije za upravljanje, a

regulatorne izmjene, naročito u SAD-u, smanjuju prepreke za nove korisnike, letjelica je sve

više. Federalna uprava za avijaciju (eng. Federal Aviation Administration, FAA) predviđa da će

se do kraja 2016. godine u SAD-u samo u komercijalne svrhe koristiti više od 600.000 letjelica

- trostruko više od broja registriranih zrakoplova s ljudskom posadom. Uz to, očekuje se i 1,9

milijuna u rekreacijske svrhe. Na globalnoj razini očekuje se da će tržište bespilotnih letjelica

dostići 4,7 milijuna jedinica ili više do 2020. godine, pri čemu se predviđa da će tržište letjelica

za komercijalnu primjenu porasti s 2 milijarde dolara na 127 milijardi dolara. (Allianz, 2017.)

Slika 1. Upotreba letjelica u poljoprivredi. Izvor:

https://geospatialmedia.s3.amazonaws.com/wp-

content/uploads/2017/08/140911-drones-editorial.jpg,

dostupno: 4. rujan 2017.

7

"Broj dronova u komercijalnoj upotrebi znatno će se povećati u sljedećem desetljeću jer

su učinkoviti za izvršavanje teških ili opasnih zadataka", objašnjava Thomas Kriesmann, viši

osiguratelj za opću avijaciju u AGCS-u. Očekuje se da će se zbog toga smanjiti nesreće na radu,

poput pada zaposlenika s krova tijekom inspekcija zgrada, a time i gubici zbog kompenzacija

radnicima. Bespilotne letjelice bi u budućnosti mogle riješiti niz problema i smanjiti troškove i

u nizu drugih industrija, u zemljama u razvoju i slučajevima prirodnih katastrofa. (Allianz,

2017.) Najnovije upotrebe uključuju dostavljanje krvi i cjepiva na udaljene lokacije u Africi,

gašenje požara, kontrolu štetnika, pa čak i dostavljanje u ugostiteljskim zanimanjima kao što je

dostava hrane.

Osiguratelji sve češće upotrebljavaju ovaj tip letjelica za jednostavniju i sigurniju

procjenu rizika građevinskih ili infrastrukturnih projekata. Nakon velikih katastrofa zahtjevi za

odštetu također se mogu jednostavnije i učinkovitije obraditi uz pomoć bespilotnih letjelica za

pregled štete. Na primjer, kad se dijelovima Tianjina u Kini nije moglo pristupiti nakon velikih

eksplozija prošle godine, slike visoke rezolucije koje su snimili dronovi uspoređene su s

prethodnim fotografijama kako bi se utvrdilo koliko je vozila uništeno. Allianz također

podržava FairFleet, tržište koje povezuje rukovoditelje bespilotnih letjelica s tvrtkama kojima

su potrebni, te nudi osiguranje i namirenje zahtjeva za odštetu. (Allianz, 2017.)

Danas najvećim proizvođačem bespilotnih letjelica za civilnu upotrebu smatra se

kineska kompanija DJI, sa sjedištem u gradu Shenzhen-u. Prihodi su joj 2014. iznosili oko 500

milijuna dolara, a procjenjuje se da su 2015. udvostručeni. (Ryan Mac, 2015)

Uz nju, među poznatijim proizvođačima nalaze se još i francuski Parrot, odnosno

njezina švicarska podružnica senseFly, američki 3D Robotics, kanadski Aeryon, švedski

CybAero, korejski Gryphon, te još jedna kineska kompanija Syma. No proizvodnja samih

letjelica ustvari je tek manji dio globalnog potencijala koji, čini se, ima nova industrija. (Divya

Joshi, 2017.)

Prema izvješću tvrtke PwC (Price Waterhouse Coopers) “Clarity from above“ može se

govoriti o globalnoj tržišnoj vrijednosti rješenja baziranim na bespilotnim letjelicama višoj od

127,3 milijardi dolara.

8

To je, prema PwC-ovim proizvođačima, vrijednost postojećih poslovnih usluga i rada

koje će se u budućnosti vjerojatno zamijeniti rješenjima baziranim na bespilotnim letjelicama.

Gospodarski sektor u kojem primjena bespilotnih letjelica ima najveće izglede jest

infrastruktura u kojoj se govori o tržišnoj vrijednosti od otprilike 45,2 milijarde dolara. (PwC,

2016.)

Bespilotne letjelice s kamerama i senzorima pružaju poduzećima diljem svijeta

potpunije podatke. Također se koriste u prijevozu i preciznim poslovnim aktivnostima te tako

sve više utječu na poslovne strategije poduzeća

Na drugoj po redu "The Commercial UAV Show" konferenciji u Londonu održanoj

2015. godine izlagalo je stotinjak tvrtki iz cijelog svijeta. Korisnici su prezentirali projekte s

bespilotnim letjelicama uz mnoštvo savjeta kako započeti projekte, kako ih prezentirati,

implementirati te dijelili konkretna iskustva iz provedenih projekata. Dominirala su rješenja za

preciznu poljoprivredu, snimanje arheološke baštine, geodetske izmjere, izrada karata i

modeliranje, nadzor okoliša, požarišta, prometnica te razne inspekcije, a pojavio se i značajan

broj specijaliziranih tvrtki za senzore, motore, antene i ostale dijelove bespilotnih letjelica.

(Tihomir Šašić, 2015.)

2.3.2 Upotreba u geodeziji

Jedna od najčešćih primjena bespilotnih letjelica u oblasti geodezije je u

fotogrametrijske svrhe, za izradu 3D modela objekata, digitalnog modela terena i digitalnog

ortofoto plana. Teško je točno precizirati primjenu bespilotnih letjelica u geodeziji, ali ona koja

se najviše ističe je izrada geodetskih podloga koje se mogu upotrijebiti u mnogobrojnim

oblastima.

2.3.2.1 Projektiranje

Za projektiranje i izradu idejnih rješenja budućih objekata potrebno je koristiti podloge

koje pružaju dovoljnu količinu informacija. Upravo jedna takva je geodetska podloga dobivena

na osnovu snimanja bespilotnim letjelicama. Žilić (2015.) navodi da za razliku od tradicionalnih

metoda, prednost dobivanja geodetske podloge snimanjem bespilotnim letjelicama ogleda se u

vrlo kratkom vremenskom periodu dobivanja rezultata, ekonomskoj isplativosti i snimanju

9

gotovo svih vrsta terena. Kombinacijom digitalnog modela terena i digitalnog ortofoto plana

možemo dobiti različite geodetske podloge, kako u vektorskom obliku tako i u rasterskom

obliku.

2.3.2.2 Rudarstvo

Primjena bespilotnih letjelica u oblasti rudarstva ogleda se najviše u računanju

zapremine zemljanih masa vanjskog kopa. Na osnovu fotogrametrijskog oblaka točaka ili

digitalnog modela reljefa može se izračunati zapremina ili volumen bilo kojeg tijela. Za razliku

od tradicionalnih metoda, gdje se snima zemljana masa po profilima, prednost snimanja sa

bespilotnom letjelicom ogleda se u tome što se dobiva nekoliko stotina tisuća točaka, sa svim

karakterističnim prijelomima, koji znatno utiču na zapreminu tj. volumen zemljanih masa.

(Žilić A., 2015.)

2.3.2.3 Geologija

U području geologije, bespilotne letjelice se mogu primjenjivati na način da pružaju

raznolikost informacija dobivenih na osnovu proizvoda bespilotne letjelice. Tako se na osnovu

digitalnog ortofoto plana mogu identificirati zone klizišta, kao i poplavljena područja nastala

uslijed vremenskih neprilika. Kombinacijom digitalnog modela reljefa s ortofoto planom mogu

se izvoditi razna računanja, od računanja zapremine pokrenute mase, površine i zapremine

klizišta, do računanja nagiba terena i orijentacije padine. (Žilić A., 2015.)

2.3.2.4. Šumarstvo

Na osnovu visoko rezolucijskih aerosnimaka, te njihovog objedinjavanja u digitalni

ortofoto plan ovaj proizvod se može koristiti i u šumarstvu. Žilić (2015.) navodi da osim

računanja površine, digitalni ortofoto plan može poslužiti za analizu bespravne sječe šume.

Instaliranje kamere na bespilotnu letjelicu sa NIR (eng. Near InfraRed) spektrom, može pomoći

pri analizi zdravlja šume na osnovu NDVI (eng. Normalized Diefferenced Vegetation Index)

vegetacijskog indeksa.

10

2.3.3. Primjena u poljoprivredi

Kao u svim zanimanjima važno je znati izabrati odgovarajuće strojeve, metode i opremu

za pojedine zahvate kako bi se oni uspješno obavili i time osigurali uspješnu proizvodnju. S

obzirom da svi GPS sustavi rade na istom principu, i u načelu imaju jednake komponente vrlo

visoke preciznosti, a koriste se za sadnju, zaštitu, gnojidbu i berbu povrća, voća, grožđa. Sito

(2016.) navodi da primjena bespilotnih letjelica nudi novu generaciju tehnike i tehnologije

nadziranja nasada i usjeva na nepristupačnim i udaljenim područjima. Sustav sadrži sve

komponente GPS-a, rukovanje sustavom je jednostavnije i u konačnici jeftinije, bez obzira što

su početna ulaganja nešto veća u odnosu na sustav GPS-a postavljenog na nekom vozilu. Na

većim proizvodnim površinama se spomenuti sustavi već primjenjuju s tim da je oprema

montirana na kabinu traktora, a rukovatelj u kabini putem kontrolnog monitora ima trenutni

nadzor i praćenje potrebnih parametara.

Nadalje Sito (2016.) navodi da veliki iskorak u poljoprivrednoj proizvodnji je primjena

bespilotnih letjelica koje su opremljene suvremenom opremom za snimanje usjeva ili nasada.

Ova metoda praćenja eventualnih promjena na biljkama je puno fleksibilnija i prikladnija u

odnosu na sustav koji je postavljen na traktoru. Tako se kod ove metode snimanja iz zraka

koristi pojam „Indeks vegetacije“ koji se definira kao izračun digitalnih vrijednosti dobivenih

gotovo infracrvenom i crvenom spektru. Indeks vegetacije je bez dimenzijsko zračenje

temeljeno na mjerenjima izračunatim iz kombinacije spektralnih traka iz daljinskih detektiranih

podataka. Vegetacijski indeks se izračunava iz digitalnih vrijednosti zabilježenih u pikselima

fotografija snimljenih različiti daljinskim uređajima (senzorima). Dakle, vegetacijski indeks je

empirijska formula dizajnirana da istakne kontrast u spektralnom odgovoru na dvije različite

spektralne trake slika, npr. u gotovo infracrvenom i crvenom spektru.

Korištenje različitih indeksa vegetacije za procjenu različitih biofizičkih svojstava

vegetacije daljinskih detektiranih podataka je uobičajena praksa. Međutim, na spektralni

odgovor vegetacijskog područja iz kojih su dobiveni indeksi vegetacije utječe nekoliko

čimbenika vezanih uz samu vegetaciju i okružujuću okolinu, kao što je bujnost vegetacije,

struktura lišća, sadržaj vode u lišću,, raznolikost tla i prisutnost sunčevog svjetla, kut sunca,

stanje izmaglice itd.

11

Primjena bespilotnih letjelica predstavlja najkvalitetnije moguće rješenje modernoj

poljoprivrednoj proizvodnji. To se prije svega odnosi na sjetvu i sadnju, gnojidbu i zaštitu

usjeva i nasada. Prilikom aplikacije pesticida oprašivačima u trajnim nasadima u praksi se

nailazi na mnogo problema. Primjenom bespilotne letjelice nasad se može često nadzirati te

pravovremeno uočiti potencijalna žarišta pojave bolesti štetnika. Tako se izbjegava nepotrebno

nanošenje pesticida u cijelom nasadu, već se tretiranje obavlja lokalizirano, što je i s ekološkog

stajališta jako poželjno. Time se mogu ostvariti velike ekonomske uštede, odnosno veća

konkurentnost proizvoda (voće, grožđe, povrće itd.) na domaćem i inozemnom tržištu. Velika

prednost primjene bespilotne letjelice je praćenje nasada i usjeva na nepristupačnim i udaljenim

terenima. (Sito S., 2016.)

2.3.5 Kontrola i nadzor nad kritičnom infrastrukturom

Primjenom bespilotnih letjelica kontrola i nadzor nad kritičnim dijelovima

infrastrukturnih objekata kao što su dalekovidi, željezničke pruge, cjevovodi ili elektrane mogu

se obaviti bez ugrožavanja ljudskih života. Ovakva primjena bespilotnih letjelica je korisna za

uočavanje nepravilnosti te štedi vrijeme prilikom planiranja te umanjuje troškove ali i smanjuje

nesreće na radu poput pada zaposlenika s krova tijekom inspekcija zgrada. Također prilikom

nadziranja infrastruktura koje štetno zrače radnici ne moraju biti neposredno izloženi tom

zračenju. Bespilotne letjelice su dokazale svoju korisnost kako u nadzoru tako i otkrivanju

neučinkovitosti raznih sustava i infrastruktura tako i u očuvanju života i zdravlja radnika.

(GEO-TRON, 2016.)

2.3.6 Sigurnost i okoliš

U složenom sustavu održavanja sigurnosti građana sudjeluju različite civilne i vojne

organizacije. Stalno se radi na uspostavljanju što veće sigurnosti građana bez ikakvih opasnosti.

Kao jedan od bitnih čimbenika sigurnosti priznata je zračna komponenta za određenu vrstu i

učestalost informacija uvedenih u mrežu sigurnosti za daljnje analize. Isto tako stalno se

povećava značaj u percepciji građana u očuvanju i zaštiti okoliša. Ermakora (2016.) navodi da

odavno je poznato da ono što građani sada rade utječe kakav ćemo okoliš ostaviti našim

budućim generacijama. Zbog toga treba paziti na okoliš ne bismo stvorili loše uvjete za život

onima koji dolaze poslije nas.

12

Praćenje obala u početku je bilo bitno zbog praćenja obalnog okoliša. Danas ima veliki

značaj zbog praćenja nelegalnih migracija. Nažalost, mnogi ljudi bježe iz svoje domovine zbog

loših i neljudskih uvjeta života u potrazi za boljim životom. Ermakora (2016.) navodi da se

često te ilegalne imigracije obavljaju preko morskih putova jer je morska granica manje čuvana

nego kopnena. Zračni način praćena ima sve važniju ulogu u obalnom praćenju zbog operativne

fleksibilnosti i dosljednosti.

Neka mjesta su prihvaćena kao vrlo važna za sigurnost zbog teških posljedica ukoliko

dođe do njihovog uništenja kao što su obalne luke, zračne luke, elektrane i vodovodne cijevi.

Terorizam je sve više prisutan i teroristički napadi ciljaju na ovakva mjesta zbog malo uloženog

truda za uništenje, a velike prouzrokovane štete. Zbog toga se ta mjesta mogu obilježiti kao

mjesta posebne sigurnosti. (Ermakora M., 2016)

2.3.7 Praćenje i nadzor okoliša

Zračne snimke mogu poslužite kao temelj za brojne organizacije čiji je fokus usmjeren

na okoliš. Kod ove vrste posla letjelice se mogu koristiti za praćenje stanja okoliša i šuma,

očuvanje prirodnih staništa, procjenu kvalitete zraka, za nadzor, prevenciju i gašenje požara,

kontrolu ilegalnih odlagališta i otpadnih voda, radioaktivnog onečišćenja te zapravo praćenje

cjelokupnog onečišćenja. One pomažu u odlučivanju i donošenju odluka na temelju kojih se

kreće u izvršavanje operacija. Ovakav način snimanja bespilotnim letjelica u opasnim

situacijama može zamijeniti izravno djelovanje čovjeka ali je i prihvatljiviji zato što je snimanje

i prikupljanje klasičnim avionom otežano zbog velikih financijskih troškova i vremenskih

uvjeta koje djeluju kao ograničavajući faktor za takvo prikupljanje podataka. (GEO-TRON,

2016.)

NASA primjerice razvija sustave bespilotnih letjelica sa termalnim kamerama koje bi

letjele iznad požarišta i trenutno slale podatke voditeljima požarišta tj. zemaljskim stanicama.

Voditelji bi te podatke koristili za određivanje brzine i smjer požara. Bespilotne letjelice postaju

ključni elementi u novoj tehnologiji borbe protiv požara.

13

2.3.8 Potraga i spašavanje

Težak je i požrtvovan rad te mnoštvo resursa uloženo prilikom svakog slučaja potrage i

spašavanja nestalih. Upotreba bespilotnih letjelica u situacijama nepristupačnog terena ili

slabije vidljivosti spasilačkim službama bi uvelike olakšala posao i smanjila vrijeme potrage.

U ovakvim situacijama bespilotne letjelice mogu doslovno spasiti životu.

2.3.9. Sigurnost

Poznata je učinkovitost upotrebe bespilotnih letjelica za policijski nadzor, zaštitu

državne granice, pomorski nadzor, nadgledanje raznih okupljanja i događaja, kao i slične

operacije. Općenito, letjelice s fiksnim krilima (eng. fixed-wing aircrafts) su najbolje rješenje

za potrebe organizacija koje se bave ovim područjem. Njihova prednost leži u jednostavnosti

upotrebe te mogućnost zasebnog podešavanja i prilagodbe sukladno potrebama s kojima se

korisnik susreće kao što su upotreba termalne i infracrvene kamere, fotoaparati, laserski skeneri

i slično. (GEO-TRON, 2016)

2.3.10. Dostava

Ruanda bi trebala postati prva država koja je uspostavila komercijalnu mrežu isporuke

bespilotnim letjelicama. U državi sa slabom putnom infrastrukturom, namjera je da bespilotne

letjelice dostavljaju zalihe krvi i prijeko potrebne lijekove u udaljene klinike. Pošiljke koje su

ranije kopnom putovale danima ili tjednima, sada će do pacijenata dolaziti u samo nekoliko

sati. (Simons D., 2016.)

Njemačka tvrtka DHL je dobila dozvolu njemačkih vlasti da na otok Juist u Sjevernom

moru bespilotnim letjelicama šalju lijekove i hitne pakete. Neće letjeti iznad kuća, a može nositi

1,2 kg tereta. Isto tako tvrtka Amazon je odavno najavila kako bi njihovu dostavnu službu

uskoro mogle zamijeniti bespilotne letjelice. (Bryan V., 2014.)

14

2.4. Klasifikacija

Postoji veliki broj različitih tipova bespilotnih letjelica s različitim mogućnostima,

ovisno o potrebama samih korisnika. Trenutno u svijetu ne postoji općeprihvaćena podjela

bespilotnih letjelica iako se intenzivno radi na ovom pitanju. Kriteriji za podjelu također nisu

usuglašeni, a im ih više od kojih ističemo, namjena, visina leta, težina pri polijetanju i

maksimalni dolet, područje letenja, kontrola i upravljanje, konstruktivna izvedba letjelice.

Europska zajednica za bespilotne letjelice (eng. European Association of Unmanned

Vehicles Systems – EUROUVS) kreirala je klasifikaciju bespilotnih letjelica na osnovu sljedećih

parametara: visina leta, trajanje leta, brzina, maksimalna nosivost (eng. Maximum takeoff

weight – MTOW), veličina letjelice, domet signala i dr.

Po namjeni bespilotne letjelice možemo podijeliti na vojne i civilne, a civilne na

komercijalne i nekomercijalne. Po namjeni se ove letjelice mogu podijeliti i u četiri glavne

kategorije

Mikro/mini (MAV/Mini),

Taktičke (TUAV),

Strateške

Bespilotne letjelice s posebnom zadaćom

Mikro i mini bespilotne letjelice obuhvaćaju kategoriju najmanjih platformi koje ujedno i lete

na najmanjim visinama (ispod 500 metara). (Bento M. F., 2008.)

Tablica 1: Klasifikacija bespilotnih letjelica prema EUROUVS

Kategorija

Max.

Nosivost

(kg)

Visina leta

(dolet)

(m)

Trajanje

leta (h)

Domet

signala

(km)

Mini/mikro mikro 0.10 250 1 <10

mini <30 150-300 <2 <10

Taktičke

Bliskog doleta 150 3000 2-4 10-30

Kratkog doleta 200 3000 3-6 30-70

Srednjeg doleta 150-500 3000-5000 6-10 70-200

Dugog doleta - 5000 6-1 200-500

Dugog doleta i

trajanja leta 500-1500 5000-8000 12-24 >500

15

Po načinu kontrole i upravljanja bespilotne letjelice dijelimo na autonomne sustave,

sustave samoupravljanja, sustave upravljanja po radarskom ili radio snopu (sustav

telenavođenja), sustave telekomandnog upravljanja i kombinirane sustave (autonomni,

neautonomni). (Vindiš M., 2014.)

Prema visini leta, težinu pri polijetanju i maksimalnom doletu bespilotne letjelice možemo

podijeliti na (BHDCA, 2016):

Kategorija 1 (masa do 1 kg, visina leta do 50 m iznad površine (eng. AGL – Above

Ground Level), dolet do 150 m),

Kategorija 2 (masa veća od 1 kg do 5 kg, visina leta do 150 m AGL, dolet do 500 m),

Kategorija 3 (masa veća od 5 kg do 20 kg, visina leta do 300 m AGL, dolet do 2500 m),

Kategorija 4 (masa veća od 20 kg, visina leta veća od 300 m AGL, dolet veći od 2500

m).

Po konstruktivnoj izvedbi bespilotne letjelice možemo podijeliti na letjelice koje ostvaruju

uzgon potreban za let na:

Fiksnim aeroprofilnim površinama tj. krilima (zrakoplovi)

Rotirajućim aeroprxofilnim površinama tj. elisama (helikopteri, žirokopteri

,multirotori)

Srednje leteće

dugog trajanja

leta

1000-1500 5000-8000 12-24 >500

Strateške

Visoko leteće

dugog trajanja

leta

2500-

12500

15000-

20000 12-48 >500

Bespilotne

letjelice s

posebnom

zadaćom

Smrtonosne 250 3000-4000 3-4 300

Mamci 250 50-50000 <4 0-500

Stratosferske U razvoju 20000-

30000 >48 >2000

Egzosferske U razvoju >30000 U

razvoju U razvoju

16

Prema međunarodnoj organizaciji za civilno zrakoplovstvo (eng. International Civil

Aviation Organization – ICAO) bespilotne letjelice mogu se podijeliti u dvije kategorije:

1. Autonomne letjelice – temelje se na naprednim sustavima za dinamičko navođenje te se

trenutačno smatra neprikladnim za regulaciju u civilnom zrakoplovstvu radi zakonskih

problema te pitanja odgovornosti.

2. Letjelice na daljinsko upravljanje (RPA) – letjelice na daljinsko upravljanje podliježu

pravnim potpisima kao Međunarodne organizacije za civilno zrakoplovstvo tako i

propisima i zakonima nacionalnih agencija za civilno zrakoplovstvo. Letjelice na

daljinsko upravljanje mogu se podijeliti na one sa fiksnim krilima, rotacijske te ostale

modele. (Varšić N., 2016.)

Danas se u civilne svrhe najčešće primjenjuju mini i mikro bespilotne letjelice s

propelerima tzv. dronovi. Razvojem tehnologija i pojeftinjenjem sustava za izvođenje

letova bez pilota u zrakoplovu takvi sustavi su danas ekonomski prihvatljivi za razne

namjene.

2.5. Komponente bespilotnih letjelica

U današnje vrijeme poseban značaj i široku primjenu dobila je vrsta bespilotnih letjelica

koje nazivamo multirotori, a za koju se skoro uvijek koristi naziv dronovi. Stoga ćemo u

nastavku nešto šire obraditi ovu vrstu bespilotnih letjelica.

Multirotor je letjelica s minimalno 3 rotirajuća tijela (elise). Ova konfiguracija letjelice

naziva se Trikopter, i on je po načinu upravljanja drugačiji od ostalih multirotora kao što su

quadkopter (4 motora), hexkopter (6 motora), oktokopter (8 motora) itd. Jedino kod

konstruktivne konfiguracije trikoptera jedan motor mora biti pomičan, kod svih ostalih

konfiguracija motori su fiksni. Pojavom pristupačnih motora bez četkica (eng. brushless) te

unaprjeđenjem baterije i minimiziranjem elektroničkih komponenti došlo je do ekspanzije

multirotor letjelica na tržištu. Razvoj kontrolera leta omogućio je jednostavno upravljanje sa

inače složenim sustavom upravljanja, što je rezultiralo masovnom proizvodnjom i korištenjem

multirotora u razne svrhe.

17

Pozicioniranje motora jedan iznad odnosno ispod drugoga nudi određene prednosti i

nedostatke kod multirotora sastavljenih u „X“. Žilić (2015.) navodi da prednosti ove

konfiguracije su smanjenje dimenzija letjelica i nešto lakša konstrukcija što olakšava transport,

a glavni nedostatak je smanjene efikasnosti rada motora koja pada i do 20% u odnosu na istu

konfiguraciju elektroničkih komponenti postavljenih kao standardni oktakopter. Osnovni

elementi multirotora su motori, propeleri, upravljač leta, baterija i konstrukcija koja sve to

povezuje u cjelinu popularno nazvan okvir (eng. frame). Za multirotore poboljšanih

karakteristika koriste se motori bez četkica gdje su namotaji u središtu motora i imaju ulogu

statora, a permanentni magneti su smješteni po obodu motora i imaju ulogu rotora. Glavna

odlika ovih motora je pouzdan rad, jak okretni moment, i velika brzina odaziva na promjenu

broja okretaja motora. Ova zadnja karakteristika je ključni element za upravljanje multirotorom,

jer se upravljanje svodi na brze promjene broja okretaja motora.

Da bi multirotor uopće mogao funkcionirati i biti upravljiv mora imati upravljač leta.

To je elektronski uređaj koji u sebi ima ugrađen elektronski kompas, žiroskop, akcelerometar

(mjerač ubrzanja) i često barometar. Svaki bolji upravljač ima i GPS (eng. Global Positioning

System) modul za očitavanja položaja. Obrađujući podatke od navedenih senzora upravljač šalje

signale pojedinim motorima da smanje ili povećaju broj okretaja te na taj način održava stabilan

let multirotora. Mnogi upravljači imaju mogućnost priključka vanjskog senzora (npr. sonar),

koji će dati podatak o udaljenosti od neke prepreke. (Žilić A., 2015.)

Svi navedeni dijelovi multirotora smještaju se u konstrukciju. Pravilo koje se mora

poštovati je uravnoteženost multirotora po svim osima. Što je multirotor uravnoteženiji to će

motori koristiti manje energije za upravljanje i stabilizaciju pa će cijela letjelica biti efikasnija.

Multirotori su u mogućnosti izvoditi programirani let. To znači da se putem programa unaprijed

odrede točke na koje treba doći sa definiranom visinom i brzinom između točaka. Preciznost

održavanja visine omogućava upravljač koji, kako je ranije navedeno, pored ostalih senzora,

ima i barometar koji mu omogućuje letenje na točno zadanoj visini. Ovakav let se izvodi

korištenjem GPS podataka, te otvara vrata u primjeni za svrhu geodetskog mjerenja. Ukoliko

na letjelici imamo postavljenu kameru moguće je programirati let po točno zadanoj ruti i na

njoj definirati točke na kojima će kamera snimit fotografiju. Kada letjelica završi let u memoriji

kamere ostaju snimljene fotografije koje se međusobno jednim dijelom preklapaju, pri čemu za

svaku fotografiju postoje GPS koordinate i podatak o visini. Kada se ovi podaci uvrste u za to

namijenjen program možemo dobiti trodimenzionalni prikaz terena. (Žilić A., 2015.)

18

2.6. Pravna regulativa

Širenjem civilne uporabe bespilotnih letjelica uvidjele su se mnoge opasnosti koje bi se

mogle pojaviti. Zabilježene su nezakonite uporabe bespilotnih letjelica diljem svijeta kojima su

ugrožavani ljudski životi i koji nisu u skladu s određenim zakonima poput zakona o zaštiti

osobnih podataka. Kako bi se ograničila i osigurala uporaba bespilotnih letjelica mnoge države

su donijele posebne zakone o toj temi ili su zakoni u izradi.

Zakoni su doneseni prvenstveno zbog sigurnosti ljudi čiji bi život mogao biti ugrožen

uporabom bespilotnih letjelica. Letjelice se mogu vrlo lako nabaviti ili izraditi te postoji

mogućnost preplavljenosti zračnog prostora. Zbog toga je potrebno registrirati svaku letjelicu i

regulirati njezinu uporabu. Pojavljuje se i problem zaštite osobnih podataka s kojim bi svaki

rukovatelj bespilotnim zrakoplovom trebao biti upoznat. Također je određenim zakonima

potrebno urediti kvalitetu podataka koja bi bila iskoristiva u određene svrhe.

Međunarodna organizacija za civilno zrakoplovstvo (eng. ICAO – International Civil

Aviation Organisation) kao specijalizirana agencija Ujedinjenih Naroda (eng. UN – United

Nations) koja ima 191 državu članicu do sada nije razvila standarde i preporučene prakse (eng.

SARPS – Standards and Recommended Practices). Međutim, u tijek su aktivnosti studijske

grupe za bespilotne letjelice (eng. Unmanned Aircraft Systems Study Group) koju je ICAO

oformio 2007. godine i koja je izradila Circular 328 AN/190 on „Unmanned Aircraft Systems

(UAS)“ i amandmane na Aneks 2 (Pravila letenja – eng. Rules of the Air) i Aneks 7

(Nacionalnost zrakoplova i registracijske oznake, eng. Aircraft Nationality and Registration

Marks), Konvencije o međunarodnom civilnom zrakoplovstvu (engl. Convention on

International Civil Aviation), odnosno tzv. Čikaške konvencije. Naredni korak je usvojiti

standarde i preporučene prakse za bespilotne letjelice do 2018. godine. (European Aviation

Safety…, 2015).

Na razini EU trenutno važeća regulativa UREDBA (EZ) br. Br. 216/2008 Europskog

parlamenta i vijeća, od 20. veljače 2008. godine, o zajedničkim pravilima u području civilnog

zrakoplovstva i osnivanju Europske agencije za sigurnost zračnog prometa propisuje da

bespilotne letjelice težine iznad 150 kg podliježu istim propisima kao i zrakoplovi kojima

19

upravljaju piloti. Bespilotne letjelice težine ispod 150 kg su u nadležnosti regulative država

članica EU (European Aviation Safety…, 2015). Samim time različite države su ovu oblast

regulirale na različite načine. Zemlje u okruženju su izdale Pravilnike kojima je definiran način

kako, tko, gdje, zašto se, te u kakvim uvjetima mogu odnosno ne mogu koristi bespilotne

letjelice. Primjerice u Republici Hrvatskoj je na snazi Pravilnik o sustavima bespilotnih

zrakoplova iz 2015. godine koji je sveobuhvatno definirao pitanja: primjene, klasifikacije

bespilotnih zrakoplova kojima se izvode letačke operacije, klasifikacije područja letenja,

kategorizacije letačkih operacija, letenja zrakoplovnim modelom, obveznog osiguranja uporabe

radio frekvencijskog spektra, označavanju bespilotnog zrakoplova, pravila letenja, izvođenje

letačkih operacije i obveze operatora. Obzirom na nagli razvoj i bespilotnih letjelica i potrebu

usklađivanja regulative za ovu oblast Europska agencija za zrakoplovnu sigurnost (eng. EASA

– European Aviation Safety Agency) je od Europske komisije dobila zadatak da izradi set

propisa o bespilotnim letjelicama. Na temelju tog zadatka izrađen je nacrt regulative: NPA

2015-10 pod nazivom „Uvod u regulatorni okvir za operacije bespilotnih letjelica“. Predviđeno

je da buduća regulativa EU o letjelicama ukine postojeće ograničenje od 150 kg te da se odnosi

na sve bespilotne letjelice. Fokus je na uspostavu tri kategorije operacija bespilotnih letjelica

baziranom na kriteriju rizika. To su kategorije: otvorena (eng. Open), specifična (eng. Specific)

i certificirana (eng. Certified). (Jurić V. i sur., 2016.)

Schatten (2016.) navodi da različiti aspekti vezani uz privatnost i sigurnost, uključujući,

ali ne ograničavajući se na zone u blizini tla, zgrada, ali i prirode (npr. parkovi, rijeke itd.),

sigurnosne tehnologije na samim letjelicama (npr. sigurnosni padobrani, ali i sigurnosni

protokoli i algoritmi kako bi se osigurala sigurnost zraka), sigurnosne tehnologije na tlu (npr.

sigurnosne i mrežne barijere u područjima s gustim pješačkim prometom i sl.), se moraju

institucionalizirati. Osim toga, hitni način (eng. emergency mode) rada mora biti proveden u

letjelicama kako bi zaustavio ili preusmjerio letjelice od strane zakonske službe kada bi to bilo

potrebno, što uključuje signalne ili drugačije komunikacije između letjelica i policijskih

službenika. S obzirom na mnogobrojne tehnologije koje narušavaju privatnost dostupne na

dronovima, uključujući kamere, WiFi kartice i slično, protokoli koji osiguravaju privatnost

moraju biti institucionalizirani.

20

3. Okviri za razvoj UAV aplikacija

Okvir za razvoj aplikacija (engl. application programming interface, API) je skup

određenih pravila i specifikacija koje programeri slijede tako da se mogu služiti uslugama i

resursima operacijskog sustava ili nekog drugog složenog programa kao standardne biblioteke

rutina (funkcija, procedura, metoda), struktura podataka, objekata i protokola.

Korištenje API-ja omogućava programerima koristiti rad drugih programera štedeći vrijeme i

trud koji je potreban da se napiše neki složeni program, pri čemu svi programeri koriste iste

standarde. Napretkom u operacijskim sustavima, osobito napretkom u grafičkom korisničkom

sučelju API je nezaobilazan u stvaranju novih aplikacija. Umjesto da se programi pišu novi iz

temelja, programeri nastavljaju na radu drugih.

(Cielo G. C. 2014.) navodi kada je nekoliko API-ja dostupno u različitim jezicima s

različitim stupnjevima korištenja, ograničeni ste samo na jezike koje znate. U ovakvim

slučajevima poznavanje više jezika može biti jako korisno. U idućim poglavljima će se

detaljnije opisati dva okvira za razvoj letjelice Parrot AR.Drone 2, node-ar-drone i PS-Drone,

a ovo su najčešće korišteni okviri:

JavaDrone

ODC (OpenDroneControl)

python-ardrone

Argus

node-ar-drone

PS-Drone

3.1. node-ar-parrot

Kako bi koristili node-ar-parrot modul potrebno je na računalo instalirati node.js dostupan

na njihovoj službenoj stranici. Skripte napisane u node.js pokreću se iz konzole s navođenjem

naredbe node prije poziva skripte.

21

3.1.1. Client

Ovaj modul omogućuje visoku razinu API klijenta koji pokušava podržati sve značajke drona,

dok ih čini jednostavnim za upotrebu. Najbolji način za početi je kreirati datoteku repl.js.

var arDrone = require('ar-drone'); var client = arDrone.createClient(); client.createRepl();

Kada pokrenemo datoteku možemo direktno klijentu odnosno dronu slati naredbe.

Sada kada smo upoznati s klijentom, možemo napisati autonomni kod koji će obaviti iste radnje

koje smo i gore napisali.

var arDrone = require('ar-drone'); var client = arDrone.createClient(); client.takeoff(); client .after(5000, function() { this.clockwise(0.5); }) .after(3000, function() { this.stop(); this.land(); });

Ukoliko želimo da naša letjelica ima interakciju s nečime, trebali bi pogledati koje nam podatke

vračaju njezini senzori.

client.on('navdata', console.log);

3.1.2. Client API

Metoda kojom se kreira klijent je arDrone.createClient([options]), ona vrača novi client objekt,

opcije uključuju:

ip: IP adresu drona. Zadano vrijednost - '192.168.1.1'.

frameRate: broj prikazanih slika PngEncoder-a. Zadana (eng. default) vrijednost - 5.

imageSize: Veličina slike izrađena od PngEncoder-a. Zadana vrijednost - null.

22

client.createREPL()

Pokreče interaktivno sučelje sa svim dostupnim metodama klijenta u aktivnom području. Pored

toga, client se odnosi na samu instancu objekta client.

client.getPngStream()

Vraća PngEncoder objekt koji emitira zaseban pufer (engl. buffer) za png sliku kao 'data'

događaje (eng. events). Više poziva ove metode vraća isti objekt. Životni tijek veze (npr.

ponovno povezivanje na grešku) je upravljano od strane klijenta.

client.getVideoStream()

Vrača TcpVideoStream objekt koji emitira tcp paket kao 'data' događaje (eng. events). Životni

tijek veze (npr. ponovno povezivanje uoči greške) je upravljano od strane klijenta.

client.takeoff(callback)

Postavlja unutarnje stanje fly u true, callback je pozvan nakon što dron javi da lebdi.

client.land(callback)

Postavlja unutarnje stanje fly u false, callback se poziva nakon što dron javi da je sletio.

client.up(speed) / client.down(speed)

Metoda kojom dron dobiva ili smanjuje visinu, brzina može biti postavljena od 0 do 1.

client.clockwise(speed) / client.counterClockwise(speed)

Metoda kojom dron se rotira, brzina može biti postavljena od 0 do 1.

client.left(speed) / client.right(speed)

23

Kontrolira okretanje, koje je horizontalni pokret koristeći kameru kao referentnu točku brzina

može biti postavljena od 0 do 1.

client.stop()

Postavlja sve kretnje drona na 0, čineći da se dron efektivno lebdi na mjestu.

client.calibrate(device_num)

Zahtjeva od drona da kalibrira uređaj. Trenutno AR.Drone program izveden u sklopovskoj

opremi (eng. firmware) podržava samo jedan uređaj koji se može kalibrirati, to je magnetometar

(eng. magentometer), broj uređaja (device_num) je 0.

Magnetometar može biti kalibriran samo dok drone lebdi, kalibracija uzrokuje da se dron rotira

na mjestu rotira za punih 360 stupnjeva.

client.config(key, value, callback)

Šalje konfiguracijske naredbe dronu. Npr. ovim linijama koda možemo omogućiti korištenje

gornje i donje kamere drona:

// Pristupa glavnoj kameri client.config('video:video_channel', 0); // Pristupa donjoj kameri client.config('video:video_channel', 3);

Callback se poziva nakon što dron potvrdi zahtjev konfiguracije ili se dogodi istek vremena

(eng. timeout).

Alternativno, možemo proslijediti opcije objektu koje sadrže iduće:

key: postavlja ključ konfiguracije.

value: postavlja vrijednost konfiguracije.

timeout: vrijeme u milisekundama za koje se čeka potvrda drona.

24

Primjer:

var callback = function(err) { if (err) console.log(err); }; client.config({ key: 'general:navdata_demo', value: 'FALSE', timeout: 1000 }, callback);

client.animate(animation, duration)

Metoda kojom dron izvodi već preprogramirane naredbe leta po zadanom trajanju (eng.

duration) u milisekundama, animacije mogu biti jedne od sljedećih:

['phiM30Deg', 'phi30Deg', 'thetaM30Deg', 'theta30Deg', 'theta20degYaw200deg', 'theta20degYawM200deg', 'turnaround', 'turnaroundGodown', 'yawShake', 'yawDance', 'phiDance', 'thetaDance', 'vzDance', 'wave', 'phiThetaMixed', 'doublePhiThetaMixed', 'flipAhead', 'flipBehind', 'flipLeft', 'flipRight']

Primjer:

client.animate('flipLeft', 1000);

client.animateLeds(animation, hz, duration)

Naredba izvodi preprogramirane led sekvence (eng. sequence) po danoj hz frekvenciji i trajanju

u sekundama. Animacije mogu biti jedne od sljedećih:

['blinkGreenRed', 'blinkGreen', 'blinkRed', 'blinkOrange', 'snakeGreenRed', 'fire', 'standard', 'red', 'green', 'redSnake', 'blank', 'rightMissile', 'leftMissile', 'doubleMissile', 'frontLeftGreenOthersRed', 'frontRightGreenOthersRed', 'rearRightGreenOthersRed', 'rearLeftGreenOthersRed', 'leftGreenRightRed', 'leftRedRightGreen', 'blinkStandard']

Primjer:

client.animateLeds('blinkRed', 5, 2)

client.disableEmergency()

Uzrokuje da se REF bit za hitno stanje (eng. emergency) postavi na 1 dok

navdata.droneState.emergencyLanding je 0. Ova metoda oporavlja drona da opet može

letjeti i da prikazuje zelena svijetla nakon što je bio srušen i prikazuje crvena svijetla. Također

se primjenjuje kada se kreira novi klijent (eng. client) visoke razine (eng. high level).

25

Events

Klijent će emitirati događaje (eng. events) o slijetanju, lebdjenju, promijeni stanja baterije

(batteryChange), promijeni visine (altitudeChange) sve dok je demo navdata omogućena.

client.config('general:navdata_demo', 'FALSE');

3.1.3. UdpControl

UdpControl je API niske razine (eng. low level). Dron je kontroliran putem poslanih UDP

paketa na priključak (eng. port) 5556. Iz razloga što UDP ne garantira redoslijed poruka i

pošiljku, klijent mora uzastopno slati svoje instrukcije i uključiti inkrementalni niz brojeva za

svaku naredbu.

Na primjer, naredba korištena za polijetanje/slijetanje (REF), s nizom brojeva od 1, i

parametrom 512 (uzlijetanje) izgleda ovako:

AT*REF=1,512\r

Kako bi olakšali stvaranje i slanje tih paketa, ovaj modul izlaže UdpControl klasu koja obavlja

te zadatke. Npr. naredni program će izvesti da dron poleti i lebdi na mjestu.

var arDrone = require('ar-drone'); var control = arDrone.createUdpControl(); setInterval(function() { // Emergency: true naredba obnavlja drona iz hitnog načina koji se uzrokuje ako // se letjelica sruši. U praksi bi se samo trebala pozivati na početku pokretanja // aplikacije. control.ref({fly: true, emergency: true}); // Naredba vodi brigu o tome da dron lebdi na mjestu, odnosno da se ne kreće. control.pcmd(); // Ovom naredba uzrokuje slanje udb poruke koja treba biti poslana (više aredbi //je spojeno u jednu poruku. control.flush(); }, 30);

Kada smo u zraku, možemo letjeti slanjem argumenata pcmd() metodi:

control.pcmd({

26

front: 0.5, // leti naprijed s 50% brzinom up: 0.3, // leti gore s 30% brzine });

3.1.4. UdpControl API

arDrone.createUdpControl([options]) / new arDrone.UdpControl([options])

Kreira novu instancu objekta UdbControl gdje opcije mogu uključivati:

Ip: IP adresa drona. Zadana - '192.168.1.1'

Port: Priključak koji se koristi. Zadani – 5556

udpControl.raw(command, [arg1, arg2, …])

Ova metoda sadrži neobrađenu (eng. raw) AT* naredbu. Korisno je ako se želi potpuna

kontrola. Npr. naredba za uzlijetanje bi izgledala ovako:

udpControl.raw('REF', (1 << 9));

udbControl.ref([options])

Ova metoda sadrži AT*REF naredbu, a opcije su:

Fly: Postavljena na true za uzlijetanje odnosno lebdjenje, ili false kako bi pokrenula

slijetanje odnosno ostanak na zemlji. Zadano je – null.

Emergency: Da bi postavili bit izvanrednog stanja treba biti postavljeno na true, ili

false kako ga ne bi postavili. Zadano je – false.

udpControl.pcmd([options])

Metoda sadrži AT*PCMD (naprednu) naredbu, opcije su:

front ili back: Leti prema ili dalje od smjera prednje kamere.

left ili right: Leti lijevo ili desno od smjera prednje kamere.

up ili down: Dobiva ili smanjuje visinu.

clockwise ili counterClockwise: Rotira se oko srednje osi.

27

Vrijednosti za svaku opciju je brzina koju će odabrana opcija koristiti i može biti između 0 i 1.

Također se mogu koristi i negativne vrijednosti, tako npr. {front: 0.5} je isto što i {back: 0.5}.

udpControl.flush()

Šalje sve naredbe sadržane kao UDP paket dronu.

3.2. PS-Drone

PS-Drone je potpuno opremljen API, napisan u Python-u i za korištenje u istome. API je

namijenjen za Parrot AR.Drone 2.0. PS-Drone nudi pregršt mogućnosti poput senzorskih

podataka (pod nazivom NavData), konfiguracije i potpune video podrške. Dizajniran je da bude

jednako brz kao što je i Python. Funkcije koji su nepotrebne mogu se isključiti što omogućava

programu da se izvodi i na vrlo sporim računalima kao što je npr. Intel Atom N270 1.6 GHZ.

Video funkcija nije ograničena samo na gledanje, također je moguće analizirati video snimke

pomoću OpenCV2. Za programiranje drona preko PS-Drone API-ja potrebno je računalo ili

virtualni stroj (eng. virtual machine) s POSIX kompatibilnim operativnim sustavom poput

Linuxa i AR.Drone 2.0 bilo kojeg izdanja. OpenCV2 je preporučen i potreban za video podršku.

3.2.1. PS-Drone API naredbe

Prije početka programiranja u PS-Drone okviru za razvoj aplikacija potrebno je pomoću

import naredbe uvesti potrebni modul za upravljanje dronom odnosno PS-Drone. Nakon što je

uvezen (eng „import“) modul potrebno je inicijalizirati PS-Drone API.

1. import ps_drone #Uvodi PS-Drone API 2. drone = ps_drone.Drone() #Inizijalizira PS-Drone-API

drone.startup()

Metodom startup() se povezuje na drona. Nakon što je postavljena IP adresa i priključci (eng

„ports“) pozivamo ovu naredbu.

28

drone.trim()

Naredba trim() se poziva kada je dron na tlu. Ovom naredbom postavlja se referenca na

horizontalnu plohu na kojoj se nalazi letjelica.

drone.mtrim()

Pozivom mtrim() naredbe dron kalibrira magnetometar. Kako bi se izvela ova naredba letjelica

mora biti u zraku.

drone.takeoff()

Naredba kojom letjelica se podiže i ulazi u način leta (eng. flight mode). Potrebno je pozvati

naredbu prije svih ostalih namijenjenih kretanju.

drone.land()

Dron se spušta i napušta način leta.

drone.setSpeed(speed)

Naredbom se postavlja brzina kojom će se letjelica kretati. Vrijednost brzine (eng. speed) može

biti postavljena između 0 i 1.

drone.stop()

Naredbom stop() zaustavljaju se sve trenutne kretnje i letjelica drži poziciju. Ovo naredba se

koristi kada želimo da se letjelica zaustavi. Ako bi postavili brzinu neke kretnje na 0.0 letjelica

ne bi zadržala poziciju već bi lagano „plutala“ u zadanom smjeru.

Osnovne kretnje letjelice

moveLeft(speed): Naredba za kretanje u lijevu stranu od smjera prednje kamere.

moveRight(speed): Naredba za kretanje u desnu stranu od smjera prednje kamera.

moveUp(speed): Letjelica povećava visinu.

moveDown(speed): Letjelica smanjuje visinu.

29

moveForward(speed): Naredba za kretanje u smjeru prednje kamere.

moveBackward(speed): Naredba za kretanje u smjeru obrnutom od prednje kamere.

turnLeft(speed): Naredba za rotiranje letjelice u desnu stranu od smjera prednje kamere

turnRight(speed): Naredba za rotiranje letjelice u lijevu stranu od smjera prednje

kamere.

Ukoliko želimo dobiti podatke koje prikupljaju senzori letjelice potrebno je pregledavati

podatke koji se šalju kao NavData paketi. NavData (navigacijski podatci) se šalju kao blokovi,

sadržavajući mjerenja senzora i informacije o stanju letjelice. Dron omogućuje dva načina

slanja svojih NavData, demo i cijeli (eng „full“) način. Ovisno u načinu na koji šalje, 15 ili 200

NavData se šalje po sekundi.

drone.useDemoMode(mode)

Ovom naredbom prebacuje se između demo i cijelog načina. Po zadanome (eng „default“)

koristi se cjeloviti način slanja NavData, odnosno 200 blokova po sekundi, ukoliko naredbi

proslijedimo true, prebacuje se u korištenje demo načina, odnosno slanja 15 blokova po

sekundi.

drone.getConfig()

Zahtjev za trenutnim postavkama letjelice.

drone.setConfig(parameter, value)

Metoda kojom se postavljaju postavke letjelice. Postavke nisu u stvarnom vremenu te će se

konfiguracijski podaci ažurirati automatski nakon što su obrađene sve poništene postavke.

Primjer:

drone.setConfig(¨control:altitude max¨,¨5000¨)

Kako bi koristili video podršku PS-Drone API-ja potrebno je koristi openCV (Open Source

Computer Vision Library) biblioteku (eng. library).

30

drone.startVideo()

Metoda startVideo() aktivira i obrađuje video drona. Slike videozapisa dostupne su putem

varijable VideoImage, a početak aktivacije može potrajati sekundu.

drone.stopVideo()

Metodom stopVideo() deaktiviramo video.

drone.frontCam()

Metodom kojom se dron prebacuje na prednju kameru.

drone.groundCam()

Metoda kojom se dron prebacuje na donju kameru.

drone.sdVideo(option)

Postavlja strujanje (eng. stream) videa kodiran (eng encoded) u H.264 formatu, s rezolucijom

640 * 360.

drone.hdVideo(option)

Postavlja strujanje (eng. stream) videa kodiran (eng encoded) u H.264 formatu, s rezolucijom

1280 * 720.

drone.showVideo()

Otvara prozor s video prikazom aktivne kamere.

31

drone.hideVideo()

Sakriva otvoreni prozor video prikaza aktivne kamere.

drone.getBattery()

Metoda kojom se dohvaća trenutno stanje baterije drona.

drone.reset()

Metoda za lagano poništavanje (eng. soft reset) drona.

drone.shutdown()

Slijeće drona i gasi vezu između računala i letjelice, također determinira PS-Drone API.

Također ova naredba se pokreće i na kraju zadnje linije koda korisnika, kao zadano.

drone.anim(animation, duration)

Letjelica izvodi preprogramirani let. Prosljeđivanjem brojeva od 0 do 19 kao prvi parametar

određuje animaciju koju će letjelica izvoditi, a kao drugi parametar se prosljeđuje duljina

trajanja animacije.

32

4. Implementacija aplikacije za upravljanje UAV-a

U ovom poglavlju biti će prikazana implementacija aplikacije za AR.Parrot 2.0 letjelicu

kojom letjelica se uzdiže pet metara u zrak te na korisnikov pritisak bilo koje tipke sprema

zadnju sliku koju kamera primi te u tom trenutku se letjelica spušta. Aplikacija je pisana u

Python-u 2.7. te koristi PS-Drone API i OpenCV2 biblioteku.

4.1. Pokretanje letjelice

1. import time # Uvoz time biblioteke 2. import ps_drone # Uvoz PS-Drone-API biblioteke 3. import cv2 # Uvoz OpenCV biblioteke

Prva biblioteka time uvezena je radi vremena koje treba postavljati nakon gotovo svake

naredbe koju letjelica izvršava. Tako npr. ako pošaljemo naredbu letjelici da se uzdigne

potrebno je dati vremena da ona to obavi prije nego što se iduća naredbe ne krene izvršavati.

Vrijeme potrebno da letjelica obavi svoju naredbu zadajemo tako da napišemo

time.sleep(duration). Parametar za trajanje zadan je u sekundama, tako ako napišemo

time.sleep(7), kod staje izvršavanje idućih naredbi narednih 7 sekundi.

Biblioteka ps_drone je zapravo PS-Drone API, koja sadrži sve metode navedene u

prethodnom poglavlju uz još mnoštvo drugih naredbi koje se mogu naći u samoj dokumentaciji

tog okružja za razvoj UAV aplikacije. Pomoću ps_drone biblioteke izvršavamo sve operacije

vezane uz letjelicu, od njezine inicijalizacije do kretanja, slikanja itd.

OpenCV2 odnosno cv2 je biblioteka koju u aplikaciji ćemo koristiti za obradu slike koju

nam letjelica u pošalje. OpenCV2 sadrži pregršt naredbi za obradu slike i videa, od samog

mijenjanja dimenzija slike do potpune manipulacije slikama.

33

5. drone = ps_drone.Drone() 6. drone.startup() 7. drone.reset() 8. while (drone.getBattery()[0]==-1): time.sleep(0.1) 9. print "Battery: "+str(drone.getBattery()[0])+"% "+str(drone.getBattery()[1])

Na petoj liniji koda kreira se instanca klase Drone, preko koje će se pozivati sve metode

koje su potrebne da bi aplikacija odradila zadani zadatak. Preko naredbe startup() spaja se na

letjelicu preko IP adrese 192.168.1.1. Metodom reset() ponovno se pokreće letjelica, u slučaju

da je bila u izvanrednom stanju (eng. emergency mode) ponovno se omogućava njezino

korištenje, tj. LED lampe iz crvenih prelaze u zeleno svijetlo. Na osmoj liniji poziva se naredba

za dohvaćanje stanja baterije drona, te je potrebno dati neko vrijeme da se izvrši prethodna

naredba, odnosno naredba ponovnog pokretanja (reset), te se zatim ispisuje u konzoli (eng.

console) trenutno stanje baterije letjelice.

4.2. Glavni program

11. drone.setConfigAllID() 12. drone.hdVideo() 13. drone.frontCam() 14. drone.setMConfig("control:altitude_max","5000") 15. while CDC == drone.ConfigDataCount: time.sleep(0.0001) 16. drone.startVideo() 17. IMC = drone.VideoImageCount 18. drone.takeoff() 19. time.sleep(7) 20. drone.up() 21. time.sleep(5)

Prvi korak kako bi bilo omogućeno korištenje videa, je prebaciti drona na korištenje

multikonfiguracijskog načina naredbom setConfAllID(). Treba zapamtiti da korištenjem više

konfiguracijskog načina izmjene postavki drona se izvode naredbom setMConfig(). U idućoj

liniji koda postavljeno je tok (eng. stream) videa u h.264 formatu u rezoluciji 1200 * 720.

Nakon što je odabran način toka aktivira se prednja kamera letjelice naredbom frontCam().

Kako bi slika bila spremljena sa što više visine potrebno je postaviti veću visinu leta od one

zadane (eng. default). Metodom setMConfig() možemo mijenjati postavke letjelice pa tako ako

proslijedimo parametre za visinu letjelici će biti omogućeno lebdjenje na većoj visini nego što

je zadano. To radimo na način da metodi setMConfig() proslijedimo dva parametra, pa naredba

izgleda ovako:

34

drone.setMConfig(„control: altitude_max“, „5000“).

Time je rečeno letjelice da joj je zadana visina 5000 milimetara odnosno pet metara.

Potrebno je neko vrijeme da letjelica primjeni tu naredbu za mijenjanje postavki.

Naredbom startVideo() uključujemo mogućnost obrade videa od strane letjelice. Kada je sve

postavljeno letjelici se metodom takeoff() šalje naredba za podizanje, potrebno je čekati

minimalno 6-7 sekudni kako bi letjelica u potpunosti obavila tu metodu, nakon što je letjelica

u zraku šaljemo joj naredbu up() kojom se uzdiže na zadanu visinu.

4.2.1. Preuzimanje slike

22. stop = False 23. while not stop: 24. while drone.VideoImageCount==IMC: time.sleep(0.01) 25. IMC = drone.VideoImageCount 26. key = drone.getKey() 27. if key: stop = True 28. img = drone.VideoImage 29. pImg = cv2.resize(img,(1200,720)) 30. cv2.imshow('Drones video',pImg) 31. cv2.imwrite('drone_img.jpg', img ) 32. cv2.waitKey(1) 33. 34. drone.shutdown()

U početku ovog isječka koda inicijalizirana je varijabla stop s vrijednošću false, prema tome

kod ulazi u petlju (linija 22) koja će se izvoditi dok je vrijednost varijable false. Kroz svaki

prolazak kroz petlju sprema se broj trenutnog broja slike koju prikazuje letjelica i čeka se

potvrda korisnika odnosno slanje signala s tipkovnice da se promijeni vrijednost varijable stop

kako bi se kod prestao izvršavati. U trenutku kada korisnik pritisne jednu od tipki sprema se

konačna slika koju je letjelica primila preko prednje kamere u varijablu img. Uz pomoć

OpenCV2 biblioteke sliku možemo postaviti na željenu veličinu ili je dodatno obrađivati. U

ovom primjeru slika je postavljena na dimenziju 1280*720. Korisniku će se u izlazu prikazati

zadnja uhvaćena slika te će se pohraniti u direktorij (eng folder) iz kojeg je i pokrenuta sama

aplikacija. Slika se sprema pod nazivom drone_img u jpg formatu te se nakon toga dron gasi

naredbom shutdown() i završava rad aplikacije.

35

4.3. Prikaz cijelog koda aplikacije

Potpuni kod prethodno opisane aplikacije:

1. ##### Preporučen niz naredbi za pokretanje drona #####

2. import time # Uvoz time modula

3. import ps_drone # Uvoz PS-Drone-API

4. import cv2 # Uvoz OpenCV biblioteke

5.

6. drone = ps_drone.Drone() # Instanciranje klase Drone

7. drone.startup() # Spajanje na dron i pokretanje podprocesa

8. drone.reset() # Postavlja stanje drona da je spreman

9. # Čekaj dok letjelica ne obavi naredbu reset()

10. while (drone.getBattery()[0]==-1): time.sleep(0.1)

11. # Vrača stanje baterije letjelice

12. print "Battery: "+str(drone.getBattery()[0])+"% "+str(drone.getBattery()[1])

13. ##### Početak glavnog programa #####

14. drone.setConfigAllID() # Prebacivanje u multikofiguracijski način

15. drone.hdVideo() # Izabire veću rezoluciju slike.

16. drone.frontCam() # Izabire korištenje prednje kamere

17. # Postavljanje visine koju letjelica može dosegnuti u mm.

18. drone.setConfig("control:altitude_max","5000")

19. while CDC == drone.ConfigDataCount: time.sleep(0.0001)

20. # Potrebno je čekanje da se nova konfiguracija postavi

21. drone.startVideo() # Pokretanje video funkcije

22. IMC = drone.VideoImageCount # Broj kodiranih slika

23. drone.takeoff()

24. time.sleep(7)

25. drone.up()

26. time.sleep(5)

27. stop = False

28. while not stop:

29. while drone.VideoImageCount==IMC: time.sleep(0.01) # Čekaj do iduće slike

30. IMC = drone.VideoImageCount

31. key = drone.getKey()

32. if key: stop = True

33. img = drone.VideoImage # Spremi sliku

34. pImg = cv2.resize(img,(1200,720)) # Obradi sliku

35. cv2.imshow('Drones video',pImg) # Prikaži obrađenu sliku

36. cv2.imwrite('drone_img.jpg', img, )

37. cv2.waitKey(1) # OpenCV za Linux ima grešku i potrebna mu je ova linija koda

38.

39.

40. drone.shutdown()

36

5. Kritički prikaz

Iz prethodnih primjera koda, vidljivo je koliko API olakšava pisanje aplikacije kojom će

letjelica izvoditi autonomnu radnju. Početkom pisanja koda potrebno je dobro proučiti koje sve

mogućnosti nam daje API, također i dobro proučiti metode i upute koje se spominju u

dokumentaciji okvira za razvoj aplikacije. Na početku pisanja koda dobra praksa je pozvati

metodu reset(), kojom se letjelica postavlja na način spreman za let, inače bi svaki put prije

pokretanja aplikacije bilo potrebno dron resetirati ručno. Također vrlo dobra praksa je i ispisati

stanje baterije, jer često uzrok ne izvođenja leta je prazna baterija letjelice.

API ima zadane vrijednosti varijabli koje je potrebno proučiti, kao npr. IP adresa letjelice

na koju se spajamo, također vrijednost priključaka. Prilikom uspostavi leta imao sam problem

da koliko god dugo trajanje izvođenja metode takeoff() bi postavio, letjelica ne bi prelazila

visinu od 2000 mm odnosno 2 metra. Kasnije proučavanjem API-ja sam primijetio da u

zadanim postavkama zadana visina koju letjelica može doseći je bila 2 metra. Izmjenama

konfiguracije za visinu postavio sam letjelici doseg visine od 5 metara, što mi je omogućilo

ostvariti puno bolje slike s veće visine. Za kvalitetnije slike potrebno je postaviti letjelicu na

snimanje u HD načinu metodom hdVideo(), no bitno je da prije toga ne koristimo metodu

showVideo(), jer prilikom pozivanja te metode nemoguće je više mijenjati postavke vezane uz

kameru letjelice. U aplikaciju sam implementirao mogućnost korisnikovog utjecaja na trenutak

kada će dron „okinuti“ sliku, postavljanjem petlje koja će se izvršavati sve do trenutka dok

korisnik ne pošalje signal s tipkovnice za izlazak, u trenutku kada je signal poslan letjelica pamti

zadnju sliku koja se obrađuje uz pomoć OpenCV2 API-ja i sprema sliku na lokalno računalo.

Veliku korist dobivamo tom implementacijom jer možemo odabrati trenutak kada ćemo

ostvariti sliku i spustiti letjelicu.

Dio koda zadužen za slikanje je mogao biti bolje izvede, na način da korisnik može uslikati

više od jedne slike dok je dron u letu, postavkom da na jedan signal s tipkovnice letjelica slika

sliku, a na drugi odnosno drugu tipku se letjelica spušta. Tako bi omogućili korisniku puno veći

sadržaj slika i pregled onih koje su najbolje ispale za njegovu potrebu. Idealno bi bilo i kada bi

korisnik u letu mogao mijenjati visinu i položaj letjelice bez obzira na početno postavljenu, tako

da dok letjelica izvršava svoj let da ju korisnik može usmjeravati i pronaći najbolju poziciju za

ostvarivanje slike.

37

Opisivanjem okvira za razvoj UAV aplikacija vidimo da su mogućnosti programiranja

autonomnog leta drona beskonačne. U budućnosti bi se moglo napraviti da letjelica kada je u

zraku traži točno specifični detalj prema boji, obliku itd. Također da korisnik ima potpuno

kontrolu prilikom pokretanja koda bez pisanja kod, već putem grafičkog sučelja (eng.

Graphical User Interface – GUI) postavi parametre prema kojima će se letjelica ponašati i da

ona obavi tu radnju koja joj je zadana.

6. Zaključak

Kroz ovaj rad vidimo da su bespilotne letjelice kroz povijest od ubojitih oružja napokon

našle svoje mjesto i u civilnim primjenama. Svakim danom popularnost i shvaćanje koliku

korist možemo imati njihovim korištenjem je sve veća. Primjena bespilotnih letjelica se

pronalazi u gotovo svim granama ljudskog zanimanja, od poljoprivrede, dostave, sigurnosti

pa sve do plana slanja bespilotnih letjelica na Mars od strane NASA-e. Kroz velike

zajednice koje se bave programiranje letjelica možemo naići na veliki izvor informacija,

članaka, dokumentacija itd. vezanih uz programiranje UAV-a. Budući da su bespilotne

letjelice, bez obzira na gotovo stogodišnju primjenu u ratnim akcijama, vrlo mlada

tehnologija to doprinosi velikoj zainteresiranosti za tom tehnologijom, pogotovo što je

budućnost njihovog korištenja vrlo obećavajuća. Kroz praktični dio rada možemo zaključiti

da programiranje nečega što djeluje sofisticirano i komplicirano, na samoj konačnici nije,

zahvaljujući dobro dokumentiranim okvirima za razvoj UAV aplikacija i stalnoj podršci od

strane autora tih okvira. Ovakvim ubrzanim razvojem UAV-a uskoro bi svakidašnji prizor

prolaznika mogle biti letjelice koje će obavljati poslove koje su prije iziskivale velike

napore i ulaganja od strane različitih kompanija.

38

7. Literatura

[1] Fahlstrom P. G., Gleason T. J. (2012) Introduction to UAV Systems. Hoboken: Wiley.

[2] Vindiš, M. (2014) Bespilotne letjelice. Dostupno 11. kolovoza 2017. s

https://prezi.com/clqoauagm-1s/copy-of-bespilotne-letjelice/

[3] Govorčin, M., Kovačić, F., Žižić, I. (2012) Bespilotne letjelice SenseFly Swinglet.

Ekscentar.

[4] Varšić N. (2016), Agentna simulacija bespilotne letjelice u 3D okolini, diplomski rad,

Sveučilište u Zagrebu, Fakultet organizacije i informatike Varaždin.

[5] J. Philipp de Graaff (2012) The PS-Drone-API. Dostupno 15. kolovoza 2017. s

http://www.playsheep.de/drone/

[6] Felixge, (2017), node-ar-drone. Dostupno 15. kolovoza 2017. na

https://github.com/felixge/node-ar-drone.

[7] Ermakora M. (2016), Tehničke mjere zaštite bespilotne letjelice, završni rad, Veleučilište

Karlovac, Odjel sigurnosti i zaštite Karlovac.

[8] Nikolić V. (2015) Ispitivanje mogućnosti bespilotnih letjelica, diplomski rad, Sveučilište

u Zagreb, Geodetski fakultet Zagreb.

[9] EUR-Lex (2014) Mišljenje Europskog gospodarskog i socijalnog odbora o komunikaciji

Komisije Europskom parlamentu i Vijeću - Nova era za zrakoplovstvo – Otvaranje

zrakoplovnog tržišta za sigurnu i održivu civilnu uporabu daljinski upravljanih

zrakoplovnih sustava COM(2014) 207. Dostupno na: http://eur-lex.europa.eu/legal-

content/HR/ALL/?uri=CELEX:52014AE3189

[10] European Aviation Safety Agency (2015) Advance Notice of Proposed Amendment

2015-10: Introduction of a regulatory framework for the operation of drones. Dostupno

na: http://www.easa.europa.eu/system/files/dfu/A-NPA%202015-10.pdf

[11] Narodne novine (2015) Pravilnik o sustavima bespilotnih zrakoplova, 49/15. Dostupno

na: http://narodne-novine.nn.hr/clanci/sluzbeni/2015_05_49_974.html

[12] Žilić A. (2015), Primjena bespilotnih letjelica u geodeziji na primjeru

aerofotogrametrijskog sistema SenseFly eBee, stručni rad. INZA d.o.o, Sarajevo.

[13] Lewin S. (2015), Drones in Space! NASA's Wild Idea to Explore Mars. Dostupno 6. rujna

2017 na https://www.space.com/30155-nasa-drones-on-mars-video.html.

[14] Cielo G. C. (2014), How to Chose a Good AR Drone API. Dostupno 25. kolovoza 2017.

na https://www.space.com/30155-nasa-drones-on-mars-video.html

39

[15] Allianz Hrvatska (2016) Sve veća rasprostranjenost dronova donosi korist, ali i nove

rizike. Dostupno 25. kolovoza 2017. na http://www.svijetosiguranja.eu/hr/novosti/sve-

veca-rasprostranjenost-dronova-donosi-korist-ali-i-nove-rizike,19453.html

[16] Bento M. F. (2008) Unmanned Aerial Vehicles: An Overview. Dostupno 10. kolovoza

2017. na http://www.insidegnss.com/auto/janfeb08-wp.pdf

[17] BHDCA (2016). Vazduhoplovi na daljinsko upravljanje (prezentacija). Sarajevo:

BHDCA.

[18] Jurić, V., Kolobarić, J., Kvesić, V., Bjeliš, D. (2016): Bespilotne letjelice. Geodetski

glasnik, 50(47), 57-67.

[19] Bryan V. (2014) Drone delivery: DHL 'parcelcopter' flies to German isle. Dostupno 5.

rujna 2017. na http://www.reuters.com/article/us-deutsche-post-drones/drone-delivery-

dhl-parcelcopter-flies-to-german-isle-idUSKCN0HJ1ED20140924

[20] Simmons D. (2016) Rwanda begins Zipline commercial drone deliveries. Dostupno 15.

kolovoza 2017. na http://www.bbc.com/news/technology-37646474

[21] Sito S. (2014) Iskustva s bespilotnim letjelicama u poljoprivrednoj proizvodnji.

Dostupno 16. kolovoza 2017. na

http://www.gospodarski.hr/Publication/2016/9/iskustva-s-bespilotnim-letjelicama-u-

poljoprivrednoj-proizvodnji/8467#.WbgaGshJbIV

[22] PwC (2016) Clarity from above. Dostupno 16. kolovoza 2017. na

https://www.pwc.pl/pl/pdf/clarity-from-above-pwc.pdf

[23] Šarić T. (2015) U budućnosti će svaki dom imati svoj dron, a vjerojatno i aerodrom.

Dostupno 16. kolovoza 2017. na http://www.ictbusiness.info/kolumne/u-buducnosti-ce-

svaki-dom-imati-svoj-dron-a-vjerojatno-i-aerodrom

[24] Joshi D. (2017) Here are the world's largest drone companies and manufacturers to

watch and invest in. Dostupno 17. kolovoza 2017. na

http://www.businessinsider.com/top-drone-manufacturers-companies-invest-stocks-

2017-07

[25] Mac R. (2015) Bow To Your Billionaire Drone Overlord: Frank Wang's Quest To Put

DJI Robots Into The Sky. Dostupno 18. kolovoza 2017. na

https://www.forbes.com/sites/ryanmac/2015/05/06/dji-drones-frank-wang-china-

billionaire/#198fadb3b48f

[26] Schatten M., Multi-agent based Traffic Control of Autonomous Unmanned Aerial

Vehicles - Towards Traffic Regulation in Cities. Dostupno 11. rujna 2017. na

https://www.researchgate.net/publication/283225453_Multi-

40

agent_based_Traffic_Control_of_Autonomous_Unmanned_Aerial_Vehicles_-

_Towards_Traffic_Regulation_in_Cities