fakultet organizacije i informatike - bib.irb.hr · pdf filesveuČilište u zagrebu...
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-