Generare traiectorii plate pentru sisteme de tip UAV cu func¸ tii B-spline Absolvent Stelea Andrei-Sorin Coordonator ¸ S.l. dr. ing. Florin Stoican… [602000]

Universitatea Politehnica Bucure¸ sti
Facultatea de Automatic ˘a si Calculatoare
Departamentul de Automatic ˘a ¸ si Ingineria Sistemelor
LUCRARE DE LICEN¸ T ˘A
Generare traiectorii plate pentru sisteme de
tip UAV cu func¸ tii B-spline
Absolvent: [anonimizat]
¸ S.l. dr. ing. Florin Stoican
Bucure¸ sti, 2015

Cuprins
List˘ a de figuri iii
List˘ a de tabele iv
List˘ a de algoritmi v
1 Introducere temporar˘ a licen¸ t˘ a 1
2 Aspecte teoretice referitoare la generarea traiectorilor plate 3
2.1 Platitudinea unui sistem dinamic . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Curbe Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Func¸ tii B-Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Interpolarea func¸ tiilor B-Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.1 Efectul inser¸ tiei nodurilor interne asupra curbei B-Spline . . . . . . . . . 12
2.5 Derivarea func¸ tiilor B-Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Dinamica vehiculelor aeriene 16
3.1 Variabilele caracteristice dinamicii sistemelor UAV . . . . . . . . . . . . . . . . . 16
3.2 Condi¸ tii de echilibru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 Ecua¸ tii de mi¸ scare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3.1 Deplasarea UAV pe axa orizontal ˘a a sistemului iner¸ tial . . . . . . . . . . . 19
3.3.2 Rota¸ tia UAV în jurul axelor de referin¸ t ˘a . . . . . . . . . . . . . . . . . . . 19
4 Generarea traiectoriilor plate 22
5 Sistemul Crazyflie 24
5.1 Nivelul hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.1.1 Acumulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.1.2 Senzori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.1.3 Motoare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.1.4 Microcontrolere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
STM32F405 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
nRF51822 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.1.5 Alte componente hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1.6 Schema bloc a nivelului hardware . . . . . . . . . . . . . . . . . . . . . . . 27
5.2 Nivelul software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2.1 Interfa¸ ta pentru terminalele mobile . . . . . . . . . . . . . . . . . . . . . . 28
5.2.2 Interfa¸ ta pentru PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3 Nivelul firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3.1 FreeRTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
ii

Cuprins
5.3.2 Rutine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Ini¸ tializarea sistemului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Opera¸ tiuni auxiliare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Module pentru algoritmi de control . . . . . . . . . . . . . . . . . . . . . . 35
Bibliografie 36
iii

List˘ a de figuri
2.1 Curba Bézier determinata de patru puncte în plan bidimensional . . . . . . . . . 7
2.2 Func¸ tie B-Spline redus ˘a la o curb ˘a Bézier . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Polinoame de baz ˘a B-Spline de grad 1 . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Polinoame de baz ˘a B-Spline de grad 2 . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Curb ˘a B-Spline "nefixat ˘a" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6 Curb ˘a B-Spline "fixat ˘a" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.7 Efectul inser ˘arii unui nod intern . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1 Reprezentarea unghiurilor Euler. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.1 Crazyflie 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2 Comanda unui motor în curent continuu . . . . . . . . . . . . . . . . . . . . . . . 26
5.3 Schema bloc a componentei hardware . . . . . . . . . . . . . . . . . . . . . . . . 28
5.4 Interfa¸ ta aplica¸ tiei Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.5 Meniul set ˘arilor aplica¸ tiei Android . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.6 Interfa¸ ta Python pentru PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.7 Log Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
iv

List˘ a de tabele
5.1 Faults affecting the wind turbine model . . . . . . . . . . . . . . . . . . . . . . . 26
v

List˘ a de algoritmi
vi

1 Introducere temporar˘ a licen¸ t˘ a
Lucrarea de fa¸ t ˘a are ca tem ˘a generarea traiectorilor plate pentru sisteme de tip UAV (Un-
manned Aerial Vehicle), prin intermediul func¸ tiilor B-spline.
Domeniul vehiculelor aeriene f ˘ar˘a pilot a cunoscut în ultimii ani o cre¸ stere exponen¸ tial ˘a.
Sc˘aderea costurilor de produc¸ tie, precum ¸ si progresele importante în aria microcontrolerelor au
determinat extinderea folosirii acestui tip de vehicule în domenii vaste ¸ si variate, pornind de
la mediul militar, pân ˘a la agricultur ˘a ¸ si jurnalism. Se estimeaz ˘a c˘a în urm ˘atorii ani, dronele,
denumirea popular ˘a a acestor vehicule, vor influen¸ ta puternic diversele industrii în care acestea
vor fi folosite. Astfel, aceste sisteme vor prelua par¸ tial sau chiar în totalitate func¸ tii si îndatoriri
ale operatorilor umani.
Vehiculele aeriene f ˘ar˘a pilot sunt considerate a fi cea mai important ˘a inova¸ tie din ultimii
ani la nivel militar. Îmbun ˘at˘a¸ tirea performan¸ telor sistemelor GPS (Global Positioning System)
permite, in caz de r ˘azboi, controlul sistemelor UAV de la distan¸ t ˘a, din interiorul bazelor militare
aflate la mii de kilometri distan¸ t ˘a de teatrul de r ˘azboi. Num ˘arul victimelor colaterale ¸ si al
daunelor materiale poate fi redus substan¸ tial în cazul utilizarii acestei tehnologii. Strategia celor
mai importante armate (din punct de vedere al capacit ˘a¸ tiilor) cuprinde într-o mare m ˘asura ¸ si
utilizarea UAV. Astfel, spre exemplu, armata american ˘a antreneaz ˘a în anul 2015 mai multi pilo¸ ti
specializa¸ ti în conducerea de la sol a UAV decât cei specializa¸ ti în pilotarea vehiculelor aeriene
tradi¸ tionale.
A¸ sa cum a fost deja men¸ tionat, dronele au tendin¸ ta de a p ˘atrunde în domenii variate din
mediul civil, nemaifiind destinate exclusiv domeniul militar, cel pentru care au fost creeate ini¸ tial.
Astfel, vehiculele aeriene f ˘ar˘a pilot sunt folosite chiar ¸ si în agricultur ˘a, înlesnind automatizarea
procesului de stropire a recoltelor. De asemenea, sistemele de tip UAV sunt folosite de diverse
institu¸ tii civile pentru supervizarea zonelor cu criminalitate crescut ˘a.
¸ Tinând seama de dezvoltarea relativ recent ˘a acestui tip de sisteme, în ceaa ce prive¸ ste
algoritmii de control ai vehiculelor aeriene f ˘ar˘a pilot se pot ob¸ tine înc ˘a rezultate noi. Ideea
de a folosi polinoame pentru a trasa o curb ˘a (care mai târziu va deveni traiectoria sistemului
UAV) nu este complet nou ˘a, fiind folosit ˘a în cadrul sofware-urilor specializate pentru editarea
grafic˘a. Însa, func¸ tiile B-spline ¸ si propriet ˘a¸ tiile acestora au atras recent aten¸ tia cercet ˘atorilor
¸ si inginerilor automati¸ sti în vederea utiliz ˘arii lor pentru generarea traiectorilor plate. Având
în vedere posibilitatea de a ob¸ tine rezultate care s ˘a aduca un plus valoare ariei algoritmilor
de conducere precum ¸ si impactul major pe care sistemele UAV îl vor avea în viitorul apropiat
asupra dezvolt ˘arii umane, alegerea acestei teme a fost una fireasc ˘a.
Lucrarea este structurat ˘a în 5 capitole care încearc ˘a s˘a ofere o perspectiv ˘a general ˘a asupra
gener˘arii de traiectorii plate pentru sisteme UAV. Pe lâng ˘a tratarea unor aspecte teoretice,
lucrarea ofer ˘a ¸ si o serie de rezultate experimentale.
1

Capitolul 1. Introducere temporar ˘a licen¸ t ˘a
Capitolul 1 prezint ˘a aspectele teoretice care stau la baza gener ˘arii traiectoriilor plate. Sunt
eviden¸ tiate propriet ˘a¸ tile func¸ tiilor Bézier. Acestea reprezint ˘a instrumentul central în formarea
func¸ tiilor B-spline. De asemenea, primul capitol ofer ˘a ¸ si o analiz ˘a comparativ ˘a a func¸ tiilor
Bezier ¸ si B-spline, fiind prezentate justific ˘ari pentru alegerea celor din urm ˘a pentru generarea
traiectoriilor. Odat ˘a ce a fost pus ˘a baza teoretic ˘a lucr ˘arii, sunt prezenta¸ ti în cadrul acestui
capitol algoritmi care permit calcularea func¸ tiilor B-spline.
Capitolul 2 vizeaz ˘a modelul dinamic al unui quadcopter. În cadrul acestui capitol este
prezentat ˘a din punct de vedere fizic func¸ tionarea unui vehicul aerian f ˘ar˘a pilot. Totodat ˘a, sunt
prezentate ecua¸ tiile matematice care descriu un sistem UAV, urmând a fi analizate constrângerile
care se impun asupra sistemului dac ˘a se dore¸ ste ob¸ tinerea unui traiectorii optime. De asemenea,
în cadrul acestui capitol este formulat ˘a problema de control optimal ¸ si este eviden¸ tiat modul în
care se va realiza controlul în bucl ˘a închis ˘a al sistemului UAV.
Capitolul 3 prezint ˘a descrierea solu¸ tiei hardware aleas ˘a pentru implementarea algoritmi-
lor de control din cadrul acestei lucr ˘ari. Sunt prezentate atât principalele caracteristici ale
sistemului Bitcraze Crazyflie, cât ¸ si modul prin care au fost culese ¸ si prelucrate datele de la
senzorii sistemului UAV pentru a implementa un regulator de tip PID pentru a putea men¸ tine
o altitudine constant ˘a a vehicului în vederea deplas ˘arii acestuia pe traiectoria optim ˘a.
2

2 Aspecte teoretice referitoare la generarea
traiectorilor plate
Încadrul acestui capitol sunt prezentate principalele aspecte teoretice care stau la baza ge-
ner˘arii traiectorilor plate. În prima parte a capitolului este pus în eviden¸ t ˘a conceptul de
platitudine a unui sistem dinamic, precum ¸ si a propriet ˘a¸ tile func¸ tiilor Bézier. Acestea repre-
zint˘a instrumentul central în formarea func¸ tiilor B-spline. De asemenea, primul capitol ofer ˘a ¸ si
o analiz ˘a comparativ ˘a a func¸ tiilor Bézier ¸ si B-spline, fiind prezentate justific ˘ari pentru alegerea
celor din urm ˘a pentru generarea traiectoriilor. Odat ˘a ce a fost pus ˘a baza teoretic ˘a lucr˘arii, sunt
prezenta¸ ti în cadrul acestui capitol algoritmi care permit calcularea func¸ tiilor B-spline.
2.1 Platitudinea unui sistem dinamic
În formalismul Teoriei Sistemelor, pentru a putea descrie comportamentul unui sistem dinamic
se utilizeaz ˘a ecua¸ tii diferen¸ tiale sau ecua¸ tii cu diferen¸ te, în func¸ tie de tipul sistemului (continuu
sau discret). Aceast ˘a lucrare se va concentra pe studiul sistemelor dinamice în timp continuu.
Sistemele de ecua¸ tii diferen¸ tiale ordinare pot fi la rândul lor clasificate dup ˘a num ˘arul de
ecua¸ tii ¸ si cel de necunoscute ca fiind sisteme determinate sau subdeterminate. Astfel, dac ˘a
num˘arul de necunoscute îl dep ˘a¸ se¸ ste pe cel al ecua¸ tiilor, sistemul de ecua¸ tii diferen¸ tiale este
considerat subdeterminat. În momentul în care unui sistem dinamic îi este descris comporta-
mentul prin intermediul unui sistem de ecua¸ tii diferen¸ tiale ordinare subdeterminat, vor trebui
aplicate anumite tehnici prin care s ˘a se încerce suplinirea faptului c ˘a sistemul de ecua¸ tii nu
este determinat. Pentru cazul în care sistemul de ecua¸ tii este liniar, exist ˘a suficiente astfel de
metode de proiectare a controlului sistemului. Num ˘arul posibilit ˘a¸ tilor scade semnificativ îns ˘a
când se face referire la sisteme de ecua¸ tii diferen¸ tiale ordinare neliniare. Una dintre metodele
de proiectare destinate sistemelor neliniare este prin intermediul platitudinii sistemului.
Platitudinea reprezint ˘a proprietatea sistemelor dinamice, atât liniare cât ¸ si neliniare, care
prevede c ˘a variabilele lor de sistem (intr ˘ari ¸ si st ˘ari) pot fi exprimate în func¸ tie de un anumit
num˘ar finit de variabile, numite ie¸ siri plate (Suryawan 2011). Pentru a eviden¸ tia aceast ˘a
proprietate, se va considera urm ˘atorul exemplu adaptat din sursa amintit ˘a:
˙x1=x1+ 3×3 (2.1)
˙x2= 3×2+ 4×3+u1 (2.2)
˙x3= 2×1+u2 (2.3)
3

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
Fie sistemul de ecua¸ tii diferen¸ tiale descris de (2.1),(2.2),(2.3). Conform clasific ˘arii realizate
la începutul sec¸ tiunii, se poate observa c ˘a acesta este subdeterminat, sistemul prezentând 5
necunoscute ¸ si doar 3 ecua¸ tii. Pentru a-l putea transforma într-un sistem complet determinat,
dou˘a variabile care compun sistemul vor trebui exprimate cu ajutorul unor func¸ tii arbitrar alese.
Astfel, alegând u1¸ siu2drept variabile ce vor fi exprimate prin intermediul unor func¸ tii arbitrar
alese, solu¸ tia sistemului, ( x1(t),x2(t),x3(t),u1(t),u2(t)), va fi parametrizat ˘a de trei variabile ¸ si
dou˘a func¸ tii. Fie func¸ tiile alese arbitrar:
y1= 0.5×1+ 1.5x2y2= 2×1 (2.4)
Se poate observa c ˘a variabilele x1,x2,x3,u1,u2pot fi exprimate doar prin intermediul
fun¸ tiilory1¸ siy2¸ si derivatelor sale, dup ˘a cum urmeaz ˘a:
x1= 0.5y2 (2.5)
x2= 0.66y1−0.16y2 (2.6)
x3=−0.16y2−0.16 ˙y2 (2.7)
u1=−1.98y1−0.16y2+ 0.66 ˙y1+ 0.48 ˙y2 (2.8)
u2=−y2−0.16 ˙y2+ 0.16 ¨y2 (2.9)
Având în vedere c ˘a prin intermediul lor au putut fi exprimate toate variabilele sistemului,
y1¸ siy2pot fi considerate ie¸ siri plate. Aplicând no¸ tiunea de platitudine asupra sistemelor, se va
considera urm ˘atorul sistem:
˙x=f(x(t),u(t)) (2.10)
sistem este caracterizat de vectorul st ˘arilorx(t)∈Rn¸ si de vectorul intr ˘ariloru(t)∈Rm. Pentru
a putea prezenta proprietatea de platitudine, toate traiectorile (x(t),u(t))trebuie s ˘a satisfasc ˘a
ecua¸ tiile diferen¸ tiale descrise de (2.1) în func¸ tie de vectorul ie¸ sirilor plate y(t)∈Rm, dup˘a cum
urmeaz ˘a:
x(t) = Υ(y(t),˙y(t),¨y(t),…,y (t)(r)) (2.11)
u(t) = Ψ(y(t),˙y(t),¨y(t),…,y (t)(r+1)) (2.12)
În cazul în care ie¸ sirea plat ˘ay(t)se poate exprima în functie de elementele vectorilor x,u
¸ si a derivatelor lor finite , aceasta este denumit ˘a ca fiind variabila endogen ˘a a sistemului (Fliess
¸ si al¸ tii 1994).
y=C(x,u, ˙u,¨u,…,u(y)) (2.13)
Proprietatea unui sistem de a fi plat, îi confer ˘a acestuia posibilitatea exprim ˘arii vectorilor
de stare ¸ si de comand ˘a far˘a a necesita integrarea unor ecua¸ tii diferen¸ tiale, opera¸ tie care uneori
poate fi dificil ˘a. O alt ˘a proprietate extrem de important ˘a este eviden¸ tiat ˘a de urm ˘atoarea teorem ˘a
(Fliess ¸ si al¸ tii 1994):
Teorema 2.1. Un sistem care de¸ tine proprietatea de platitudine este controlabil
Controlabilitatea se refer ˘a la posibilitatea de a ghida un sistem dintr-o stare ini¸ tial ˘ax0
spre o stare dorit ˘a, printr-o secven¸ t ˘a bine-definit ˘a de comenzi u, într-un timp finit.
4

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
Întrucât comportamentul unui sistem dinamic ce are proprietatea de platitudine poate fi
caracterizat prin intermediul ie¸ sirilor plate, este posibil ˘a generarea unei traiectorii ¸ tinând seama
doar de ie¸ sirile sistemului. Având în vedere rela¸ tiile dintre acestea ¸ si vectorii de stare ¸ si comand ˘a,
ie¸ sirile plate vor fi apoi mapate asupra intr ˘arilor sistemului. Astfel, se poate considera o leg ˘atur˘a
strâns ˘a între ie¸ sirile plate ale unui sistem ce prezint ˘a proprietatea de platitudine ¸ si generarea
unei traiectorii în timp real. Determinarea unei traiectorii plate presupune rescrierea unei ie¸ siri
plateyîn func¸ tie de un num ˘ar finit de puncte de control ¸ sipolinoame de baz˘ a . Vectorul punctelor
de control se va nota prin P, iar ce al polinoamelor de baz ˘a prin Λd, undedreprezint ˘a gradul
maxim al derivatelor ie¸ sirilor plate.
y(t) = ΛT
d(t)P, t∈[0,1] (2.14)
Complexitatea problemei se reduce de la g ˘asirea unei func¸ tii într-un spatiu infinit dimen-
sional la g ˘asirea unor coeficien¸ ti prin care se determin ˘a polinoamele de baz ˘a. Aceast ˘a abordare,
prezentat ˘a pe parcursul întregii lucr ˘ari, este una nou ˘a în ceea ce prive¸ ste generarea traiecto-
rilor în timp real. Sunt exploatate rezultate ob¸ tinute în domeniul graficii pe calculator, unde
s-au f ˘acut progrese remarcabile referitoare la controlul mi¸ sc ˘arii în aplica¸ tiile de anima¸ tie. În
sec¸ tiunile viitoare ale acestui capitol se vor prezenta diverse metode de a reprezenta ie¸ sirile plate
conform rela¸ tiei (2.14).
2.2 Curbe Bézier
Una dintre cele mai importante observa¸ tii f ˘acute în cadrul sec¸ tiunii precedente se refer ˘a la
necesitatea de a parametriza ie¸ sirile plate, cu scopul gener ˘arii unei traiectorii plate. Descrierea
acestor ie¸ siri se face prin intermediul unui vector care specific ˘a punctele de control ale curbei ¸ si de
un vector ce cuprinde polinoame de baz ˘a. În cadrul acestei sec¸ tiuni vor fi analizate capacit ˘a¸ tile
func¸ tiilor Bézier de a realiza aceast ˘a parametrizare.
Curbele Bézier apar pentru prima dat ˘a în literatura de specialitate în anul 1962, fiind
utilizate de c ˘atre inginerul francez Pierre Bézier pentru proiectarea ¸ sasiurilor automobilelor
Renault ( Who first defined the so-called Bezier curves? ). Cu toate acestea, studiul acestui tip
de curbe a început în anul 1959, prin eforturile lui Paul de Casteljau. El a dezvoltat algoritmul
care ast ˘azi îi poart ˘a numele. Acest algoritm reprezinta o metod ˘a numeric ˘a stabil ˘a de evaluare
a curbelor Bézier. Acestea au la baz ˘a polinoamele Bernstein (Maris ¸ si Braescu 2007). Un astfel
de polinom de grad mde aproximare a func¸ tiei fpe intervalul [0,1] este specificat prin rela¸ tia:
(Bmf)(x) =m/summationdisplay
k=0Ck
m·xk·(1−x)m−k·f/parenleftbiggk
m/parenrightbigg
(2.15)
Ck
m=m!
k! (m−k)!(2.16)
Pornind de la rela¸ tia (2.15), o curb ˘a parametric ˘a Bézier determinat ˘a de punctele Pi(xi,yi)
5

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
se define¸ ste ca:
fx(t) =n/summationdisplay
i=0Ci
n·ti(1−t)n−ixi (2.17)
fy(t) =n/summationdisplay
i=0Ci
n·ti(1−t)n−iyi (2.18)
¸ Tinând cont de obiectivul acestei sec¸ tiuni, acela de a exprima ie¸ sirile plate ale unui sistem
conform rela¸ tiei (2.14), se poate considera c ˘a:
ΛT
d(t)P= [b0,d(t)b1,d(t)… bd,d(t)] (2.19)
Realizând o procedur ˘a de identificare între rela¸ tiile (2.14), (2.17) ¸ si (2.18), se ob¸ tine:
bi,d(t) =d!
i! (d−i)!ti(1−t)d−it∈[0,1] (2.20)
P= [P0P1… Pd] (2.21)
În acest context, d+ 1reprezint ˘a gradul polinomului Bernstein pentru care se evalueaz ˘a
curba Bézier. Practic, o ie¸ sire plat ˘a poate fi exprimat ˘a prin intermediul ecua¸ tiilor parametrice
Bézier, dup ˘a cum urmeaz ˘a:
y(t) =d/summationdisplay
i=0bi,d(t)Pi (2.22)
Curbele Bézier prezint ˘a o serie de propriet ˘a¸ ti interesante care ar putea justifica utilizarea
acestora pentru generarea traiectoriilor plate:
• în cazul în care coordonatele punctelor de control se modific ˘a, polinoamele de baz ˘a îsi vor
p˘astra profilul
• curba Bézier va trece întotdeauna prin primul ¸ si ultimul punct de control. Nu este obliga-
toriu ca aceasta s ˘a fie tangent ˘a ¸ si la restul elementelor din vectorul punctelor de control
• curba Bézier va fi întotdeauna con¸ tinut ˘a în regiunea convex ˘a determinat ˘a de toate punctele
de control. Aceast ˘a proprietate este important ˘a dac˘a se dore¸ ste rezolvarea problemelor ce
¸ tin de intersectarea cu obstacole
Aceste propriet ˘a¸ ti pot fi observate în cadrul urm ˘atorului exemplu. Se dore¸ ste determinarea
ecua¸ tiei curbei Bézier determinat ˘a de punctele (0,0), (1,2), (2,3), (3,3). Pentru c ˘a punctele de
control sunt definite într-un spatiu bidimensional, pentru a calcula ecua¸ tia curbei Bézier vor
trebui determinate:
fx(t) =d/summationdisplay
i=0bi,d(t)xi (2.23)
fy(t) =d/summationdisplay
i=0bi,d(t)yi (2.24)
6

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
În urma explicit ˘arii rela¸ tiilor (2.23) ¸ si (2.24) se ob¸ tine:
fx(t) = 3t(1−t)2+ 6t2(1−t) + 3t3(2.25)
fy(t) = 2t(1−t)2+ 9t2(1−t) + 3t3(2.26)
Figura 2.1: Curba Bézier determinata de patru puncte în plan bidimensional
Cu toate acestea, exist ˘a anumite dezavantaje în ceea ce prive¸ ste utilizarea func¸ tiilor Bézier
pentru generarea de traiectorii plate (Suryawan 2011):
• în momentul în care se impun anumite constrângeri asupra traiectoriei care se va genera,
vor trebui utilizate curbe Bézier ale c ˘aror ecua¸ tii parametrice vor fi de un grad dsuficient de
mare încat s ˘a ridice probleme în ceea ce prive¸ ste stabilitatea numeric ˘a ¸ si asupra eficien¸ tei
de calcul
• modificarea unui punct de control determina modific ˘ari la nivelul întregii curbe Bézier,
fapt nedorit în ceea ce prive¸ ste proiectarea unei traiectorii.
• curba Bézier este situat ˘a la o distan¸ t ˘a prea mare fa¸ t ˘a de punctele de control la care nu
este tangent ˘a.
Aceste dezavantaje fac aproape imposibil ˘a folosirea curbelor Bézier pentru generarea tra-
iectoriilor pentru care se impun constrângeri. Este nevoie de folosirea unui alt tip de curbe care
s˘a p˘astreze principalele caracteristici ale curbelor Bézier, dar care s ˘a suplineasc ˘a neajunsurile
acestora. În cadrul sec¸ tiunii viitoare va fi considerat ˘a utilizarea func¸ tiilor B-spline, o form ˘a
general ˘a curbelor Bézier.
7

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
2.3 Func¸ tii B-Spline
Limit˘arile pe care curbele Bézier le prezint ˘a atunci când se dore¸ ste generarea unor traiectorii
plate asupra c ˘areia se impun anumite constrângeri fac necesar ˘a utilizarea func¸ tiilor B-Spline în
acest caz. În cadrul acestei sec¸ tiuni vor fi prezentate principalele propriet ˘a¸ ti ale acestui tip de
func¸ tii.
O func¸ tie B-Spline reprezint ˘a o generalizare a curbelor Bézier. Aceasta este caracterizat ˘a
de un set de puncte de control (la fel ca în cazul Bézier), dar ¸ si de un num ˘ar finit de noduri.
Structural, o curb ˘a B-Spline este alc ˘atuit˘a din mai multe segmente. Un segment poate fi alc ˘atuit
dintr-o curba Bézier sau chiar de o curba B-Spline. Punctul în care dou ˘a segmente adiacente
se întâlnesc este denumit nod. Un aspect foarte important este acela c ˘a func¸ tia î¸ si p ˘astreaz ˘a
continuitatea în noduri. Totodat ˘a, dac ˘a nodurile sunt situate la distan¸ t ˘a egal ˘a unul fa¸ t ˘a de
cel˘alalt, curba B-Spline se nume¸ ste uniform˘ a CITEAZ ˘A AICI . În caz contrar, ea este denumit ˘a
curb˘a B-Spline neuniform˘ a .
Principalul avantaj pe care îl au func¸ tiile B-Spline asupra celor din urm ˘a este reprezentat
de o flexibilitate mai mare în ceea ce prive¸ ste desenarea curbei printre punctele de control. Astfel,
pentru func¸ tiile B-Spline, num ˘arul punctelor de control nu impune gradul polinoamelor de baz ˘a.
Pot fi generate curbe cu un grad mic, iar num ˘arul punctelor de control s ˘a fie în continuare mare,
situa¸ tie care nu putea fi întâlnit ˘a pentru curbele Bézier (Suryawan 2011). Structura bazat ˘a pe
segmente a func¸ tiilor B-Spline confer ˘a posibilitatea de a trasa curbe complexe f ˘ar˘a a avea în
mod obligatoriu polinoame de baz ˘a cu grad mare. Aceast ˘a proprietate este important ˘a pentru
c˘a o func¸ tie B-Spline aproximeaz ˘a cu atât mai bine traiectoria descris ˘a de punctele de control
cu cât gradul ei este mai mic.
Unul dintre dezavantajele curbelor Bézier este acela c ˘a o modificare asupra unui punct
de control aduce modific ˘ari asupra întregii curbe. În cazul curbelor B-Spline, modificarea unui
punct de control produce modific ˘ari doar în cadrul segmentului de curb ˘a în care se g ˘ase¸ ste
acesta. De asemenea, prin modificarea pozi¸ tiei unui nod, lungimea unui segment ce compune
curba B-Spline se modific ˘a corespunz ˘ator. Astfel, func¸ tiile B-Spline dep ˘a¸ sesc limit ˘arile pe care
curbele Bézier le prezint ˘a în ceea ce prive¸ ste generarea traiectoriilor plate asupra c ˘arora se impun
constrângeri.
Din punct de vedere al formalismului matematic, o ie¸ sire plat ˘a poate fi exprimat ˘a prin
intermediul unei func¸ tii B-Spline, dup ˘a cum urmeaz ˘a:
y(t) = Λd(t)P=N/summationdisplay
i=0bi,d(t)Pi (2.27)
Λd(t) = [b0,d(t)b1,d(t)… bN,d(t)]T(2.28)
P= [P0P1… PN] (2.29)
Vectorul Λdreprezint ˘a vectorul polinoamelor de baz ˘a, iarPpe cel al punctelor de control.
Polinoamele de baz ˘a ale func¸ tiilor B-Spline prezint ˘a anumite caracteristici care le diferen¸ tiaz ˘a
de polinoamele de baz ˘a ale curbelor Bézier. Luând acest fapt in considerare, se poate eviden¸ tia
c˘a domeniul unei func¸ tii B-Spline este divizat în subdomenii de c ˘atre noduri. O alt ˘a proprietate
8

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
specific ˘a func¸ tiilor B-Spline este aceea c ˘a aceste polinoame de baz ˘a sunt diferite de zero doar pe
un num ˘ar limitat de segmente corespondente unor anumite subdomenii. Totodat ˘a, polinoamele
de baz ˘a sunt polinoame de grad d.
Mai precis, vectorul nodurilor, notat prin Veste reprezentat de un set de ν+ 1valoriτi,
undei∈0,ν, cu proprietatea c ˘aτi≤τi+1.
V= [τ0,τ1,…,τν] (2.30)
În cazul în care o valoare a unui nod apare de kori în cadrul vectorului de noduri, acest nod
este considerat c ˘a are multiplicitatea k. Nodurile care au multiplictitatea unu sunt considerate
simple .
Spre deosebire de cazul curbelor Bézier, polinoamele de baz ˘a ale func¸ tiilor B-Spline se
determin ˘a recursiv. Detalii specifice despre algoritmul de ob¸ tinere vor fi oferite în cadrul sec¸ tiunii
viitoare. Pentru a ob¸ tine polinoamele de baz ˘a de grad 01se folose¸ ste urm ˘atoarea formul ˘a:
bi,0(t) =/braceleftBigg
1dac˘aτi≤t<τi+1
0altfel(2.31)
Pentru determinarea polinoamelor de grad dse folose¸ ste formula:
bi,d(t) =t−τi
τi+d−τibi,d−1(t) +τi+d+1−t
τi+d+1−τi+1bi+1,d−1(t) (2.32)
Remarca 2.1.Se observ ˘a c˘a polinomul bi,d(t)este o combina¸ tie liniar ˘a între polinoamele bi,d−1(t)
¸ sibi+1,d−1(t)
Remarca 2.2.În cazul în care vectorul V con¸ tine doar 2 dou ˘a valori (ν0¸ siν1) care au ambele
multiplicitatea d+ 1, curba B-Spline ob¸ tinut ˘a se reduce la o curb ˘a Bézier.
În Figura 2.2 este pus ˘a în eviden¸ t ˘a Remarca 2.2. Fun¸ tia B-Spline este caracterizat ˘a de
vectorul de noduri V= [0,0,0,1,1], de vectorul punctelor de control (0.2,0.4),(0.4,0.7),(0.8,0.4)
¸ si de gradul 2 al polinoamelor de baz ˘a. Se observ ˘a c˘a func¸ tia ob¸ tinut ˘a prezint ˘a proprietatea
curbei Bézier de a trece exact prin primul ¸ si ultimul element al vectorului punctelor de control.
Se demonstreaz ˘a astfel ideea conform c ˘areia curbele Bézier reprezint ˘a o form ˘a particular ˘a a
func¸ tiilor B-Spline.
În Figura 2.3 ¸ si Figura 2.4 vor fi prezentate polinoamele de baz ˘a pentru curbe B-Spline
de grad 1 ¸ si 2. Acestea au fost ob¸ tinute în urma aplic ˘arii unui algoritm recursiv de calcul al
polinoamelor, bazat pe rela¸ tiile (2.31) ¸ si (2.32).
Analizând aceste figuri se observ ˘a c˘a polinoamele de baz ˘a sunt reprezentate pe întreg
domeniul definit de vectorul de noduri, dar au valori diferite de 0 doar pe anumite segmente. În
figurile eviden¸ tiate, nodurile sunt prezente în punctele (0,0), (0.3, 0), (0.5,0), (0.6,0), (1,0).
Gradul de netezime al func¸ tiei B-Spline este o proprietate extrem de important ˘a care este
influen¸ tat ˘a de gradul de netezime al func¸ tiei corespondente polinoamelor de baz ˘a în noduri.
1No¸ tiunea de polinoame de grad 0 poate fi considerat˘ a for¸ tat˘ a deoarece acestea sunt de fapt constante. S-a
preferat aceast˘ a formulare pentru a men¸ tine consecven¸ t˘ a la nivelul lucr˘ arii.
9

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
Figura 2.2: Func¸ tie B-Spline redus ˘a la o curb ˘a Bézier
Figura 2.3: Polinoame de baz ˘a B-Spline de grad 1
Dac˘a func¸ tia trasat ˘a prin intermediul polinoamelor de baz ˘a este neted ˘a în punctele determinate
de noduri, se va ob¸ tine o curb ˘a B-Spline care va avea acela¸ si grad de netezime. Din figurile
prezentate în cadrul acestei sec¸ tiuni se poate observ ˘a c˘a gradul de netezime este diferit în cele
dou˘a cazuri, fiind mai mare pentru cazul în care polinoamele de baz ˘au gradul mai mare. ¸ Tinând
cont de acest fapt, se poate face urm ˘atoarea remarc ˘a:
Remarca 2.3.Gradul de netezime al unei func¸ tii B-Spline cre¸ ste direct propor¸ tional cu gradul
polinoamelor de baz ˘a.
10

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
Figura 2.4: Polinoame de baz ˘a B-Spline de grad 2
În ceea ce prive¸ ste generarea de traiectorii plate sistemele UAV, este de dorit ca func¸ tiile
B-Spline s ˘a prezinte un grad de netezime cât mai mare. Dac ˘a traiectoria impus ˘a unui vehicul
aerian nu este suficient de neted ˘a, aceasta va fi greu de urm ˘arit din cauza limit ˘arilor de natur ˘a
mecanic ˘a.
2.4 Interpolarea func¸ tiilor B-Spline
Interpolarea func¸ tiilor B-Spline const ˘a în trasarea curbei B-Spline ¸ tinând cont c ˘a se cunoa¸ ste
vectorul punctelor de control ¸ si vectorul nodurilor ce define¸ ste segmentele care vor compune
fun¸ tia dorit ˘a. Pentru a putea realiza aceast ˘a opera¸ tie, vor trebui determinate polinoamele de
baz˘a.
În continuare, se propune trasarea unei curbe B-Spline ¸ tinând cont de formula (2.27). De
asemenea, se dore¸ ste ca aceast ˘a curb ˘a s˘a treac ˘a prin punctele de control (0.1,0.4) ¸ si (0.6,0.9) ¸ si sa
fie cât mai aproape de celelalte puncte de control. Vectorul punctelor de control este reprezentat
deV= [(0.1,0.4),(0.2,0.7),(0.5,0.7),(0.7,0.4),(0.5,0.9),(0.8,0.9),(0.6,0.9)]. Exist ˘a 10 noduri,
definite pe domeniul [0 1], aflate la distan¸ t ˘a egal ˘a unul fa¸ t ˘a de cel ˘alalt.
Rezultatul interpol ˘arii este prezentat în Figura 2.5. Se observ ˘a c˘a rezultatul nu este unul
satisf˘ac˘ator, curba B-Spline nefiind tangent ˘a la punctele specificate în cerin¸ t ˘a. Evitarea acestei
probleme fost tratat ˘a în mai multe lucr ˘ari de specialitate, rezultate importante fiind ob¸ tinute
în (Suryawan 2011). Pe baza acestor rezultate, se poate generaliza c ˘a, în momentul în care este
dat vectorul de noduri asociat unei func¸ tii B-Spline:
T={τ0,τ1,…,τn} (2.33)
11

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
Figura 2.5: Curb ˘a B-Spline "nefixat ˘a"
va fi nevoie de mai mult de n noduri pentru a putea ob¸ tine o func¸ tie B-Spline fixat ˘a.
Cre¸ sterea num ˘arului de noduri se realizeaz ˘a prin procedeul de cre¸ stere a multiciplicit ˘a¸ tii primului
¸ si ultimului element din vectorul de noduri. Cre¸ sterea multiplicit ˘a¸ tii se realizeaz ˘a prin inser¸ tia
unui nou nod în vectorul de noduri. Acesta nod va avea aceea¸ si valoare cu nodul pentru care
se dore¸ ste aplicarea procedurii. Num ˘arul de elemente ce trebuie inserate în cadrul vectorului
pentru a ob¸ tine o curb ˘a B-Spline fixat ˘a este aflat în legatur ˘a cu gradul polinoamelor de baz ˘a.
Astfel, este suficient ca multiplicitatea primului ¸ si ultimului nod s ˘a fie ded+1, undedreprezint ˘a
gradul polinoamelor de baz ˘a. Urmând acest procedeu, se va ob¸ tine vectorul de noduri:
T= (τ0,τ0,…,τ 0/bracehtipupleft/bracehtipdownright/bracehtipdownleft/bracehtipupright
d+1noduri,τ1,τd+2,…τn−2,τn−1,/bracehtipupleft/bracehtipdownright/bracehtipdownleft/bracehtipupright
n−2noduriτn,τn…τn/bracehtipupleft/bracehtipdownright/bracehtipdownleft/bracehtipupright
d+1noduri) (2.34)
În Figura 2.6 este prezentat ˘a curba B-Spline definit ˘a prin intermediul noului vector de
interpolare ¸ si a aceluia¸ si vector de puncte de control. Se poate observa cu u¸ surin¸ t ˘a c˘a aceasta
are acela¸ si profil ca ¸ si curba B-Spline nefixat ˘a. Problema interpol ˘arii primului ¸ si ultimudului nod
este dep ˘a¸ sit˘a. Acum, func¸ tia B-Spline este tangent ˘a la primul ¸ si ultimul element din vectorul de
noduri, a¸ sa cum se men¸ tioneaz ˘a în cerin¸ t ˘a. Mai mult decât atât, sunt eliminate erorile numerice
ap˘arute în primul caz.
2.4.1 Efectul inser¸ tiei nodurilor interne asupra curbei B-Spline
În cadrul acestei sec¸ tiuni s-a demonstrat c ˘a în cazul în care se m ˘are¸ ste corespunz ˘ator multi-
plicitatea nodurilor aflate la capetele vectorului de noduri, func¸ tia B-Spline devine fixat ˘a. În
continuare, se dore¸ ste studierea efectului cre¸ sterii multiplicit ˘a¸ tii nodurilor interne, adic ˘a acele
noduriτi∈Tcare au proprietatea c ˘aτi/negationslash=τ0sauτi/negationslash=τn.
12

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
Figura 2.6: Curb ˘a B-Spline "fixat ˘a"
Fie vectorul punctelor de control V= [(0.1,0.4),(0.3,0.7),(0.5,0.5),(0.7,0.5),(0.8,0.6),
(0.9,0.8),(0.8,0.9)]¸ si vectorul nodurilor [0,0,0,0.3,0.5,0.5,0.6,1,1,1]. Dup ˘a cum se poate vedea,
nodul intern 0.5 are multiplicitatea 2.
Figura 2.7: Efectul inser ˘arii unui nod intern
În Figura 2.7 se poate vedea efectul inser ˘arii unui nod intern. La fel ca în cazul inser ˘arii
unui nod diferit de nodurile interne, se poate observa c ˘a m˘arirea gradului de multiplicitate
al unui nod intern determin ˘a func¸ tia B-Spline s ˘a fie tangent ˘a la unul din punctele interne de
13

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
control. Totodat ˘a, se eviden¸ tiaz ˘a c˘a gradul de netezime al func¸ tiei scade în punctul de control
intern prin care trece curba.
Introducerea unui nou element în vectorul de noduri permite inserarea unui nou punct
de control (Suryawan 2011). Astfel, se m ˘are¸ ste gradul de control asupra unei curbe B-Spline.
Acest fapt este important pentru cazul în care se dore¸ ste ob¸ tinerea unei traiectorii asupra c ˘areia
se impun anumite constrângeri (precum necesitatea ca func¸ tia B-Spline s ˘a se afle la o distan¸ t ˘a
maxim ˘a de punctele de control). O alt ˘a proprietate important ˘a este aceea c ˘a inserarea nodurilor
nu afecteaz ˘a gradul plinoamelor de baz ˘a B-Spline.
În concluzie, se poate afirma c ˘a cre¸ sterea multiplicit ˘a¸ tii unui nod determin ˘a un control
mai bun asupra curbei B-spline.
2.5 Derivarea func¸ tiilor B-Spline
Considerând sistemul definit de rela¸ tia (2.10), se observ ˘a c˘a în cazul în care acesta prezint ˘a
proprietatea de platitudine, vectorul st ˘arilor ¸ si cel al intr ˘arilor se exprim ˘a în functie de ie¸ sirea
plat˘ay(t)¸ si de un num ˘ar finit de derivate ale sale.
Luând în considerare rela¸ tia (2.27), derivata de gradul I al unei func¸ tii B-Spline se poate
scrie:
˙y(t) =˙Λd(t)P=N/summationdisplay
i=0˙bi,d(t)Pi (2.35)
Evaluarea direct ˘a a˙bi,d(t)poate s ˘a fie costisitoare din punct de vedere al efortului de
calcul datorit ˘a metodei recursive de definire a polinoamelor de baz ˘a. Ar fi de dorit ca b(r)
i,d(t)s˘a
poat˘a fi exprimat ˘a ca o combina¸ tie liniar ˘a între dou ˘a polinoame de baz ˘ab(r−1)
i,d−1(t)¸ siλ(r−1)
i+1,d−1(t).
Se ob¸ tine astfel:
˙bi,d(t) =d
τi+d−τibi,d−1(t) +d
τi+d+1−τi+1bi+1,d−1(t) (2.36)
Introducând rela¸ tia (2.36) în (2.35), ecua¸ tia devine:
˙y(t) =N/summationdisplay
i=0d
τi+d−τibi,d−1(t)Pi+d
τi+d+1−τi+1bi+1,d−1(t)Pi (2.37)
Dup˘a o serie de prelucr ˘ari, se eviden¸ tiaz ˘a:
˙y(t) =N−1/summationdisplay
i=0bi+1,d−1(t)Qi (2.38)
UndeQireprezint ˘a:
Qi=d
τi+d+1−τi+1(Pi+1−Pi) (2.39)
Astfel, se arat ˘a c˘a derivata unei curbe B-Spline de grad deste la rândul ei o curb ˘a B-Spline
de gradd−1. Dac˘a se studiaz ˘a cazul unei func¸ tii B-Spline fixat ˘a, noul vector de noduri pe care
14

Capitolul 2. Aspecte teoretice referitoare la generarea traiectorilor plate
se va evalua derivata func¸ tiei se ob¸ tine prin înl ˘aturarea primului ¸ si ultimului nod din vector,
încat aceste elemente vor avea multiplicitatea d(în loc ded+ 1). Drept urmare, polinomul de
baz˘abi+1,d−1evaluat pe vectorul de noduri original este egal cu polinomul bi,d−1, evaluat pe
noul vector de noduri. Derivata func¸ tiei B-Spline evaluat ˘a pe noul vector de noduri devine:
˙y(t) =N−1/summationdisplay
i=0bi,d−1(t)Qi (2.40)
Derivata func¸ tiei B-Spline este de asemenea tangent ˘a la primul ¸ si ultimul punct de control,
de unde rezult ˘a:
˙y(0) =Q0 (2.41)
˙y(1) =QN−1 (2.42)
Q0¸ siQN−1se definesc ca:
Q0=d
τd+1(P1−P0) (2.43)
QN−1=d
1−τN−d−1(PN−PN−1) (2.44)
15

3 Dinamica vehiculelor aeriene
Acest capitol are ca scop prezentarea aspectelor teoretice legate de fizica zborului unui vehicul
aerian. Este necesar ˘a o bun ˘a întelegere a dinamicii vehiculelor pentru a putea proiecta în mod
eficient controller-ul care s ˘a asigure c ˘a sistemul UAV se va deplasa pe o traiectorie optim ˘a.
3.1 Variabilele caracteristice dinamicii sistemelor UAV
Un sistem UAV este alc ˘atuit în mod tradi¸ tional din patru motoare. Prin mi¸ scarea lor de rota¸ tie,
ele vor împinge aerul spre sol. Conform principiului ac¸ tiunii ¸ si al reac¸ tiunii, ca urmare a împin-
gerii aerului spre sol, va ap ˘area o for¸ t ˘a de reac¸ tie, egal ˘a dar de sens opus, care va ridica vehiculul
de la sol. Aceasta reprezint ˘a for¸ ta de trac¸ tiune.
Pozi¸ tionarea celor patru motoare este un aspect extrem de important din punct de vedere
constructiv. În momentul în care acestea sunt active, transmit cadrului pe care sunt fixate
anumite perturba¸ tii care pot destabiliza semnificativ aparatul. Pentru a se evita aceast ˘a situa¸ tie
nedorit ˘a, motoarele au fost pozitionate în linie, dou ˘a câte dou ˘a. De asemenea, sensurile de
rota¸ tie ale elicelor aflate în acelasi semiplan sunt opuse. Astfel, for¸ tele perturbatoare se vor
anula reciproc. Vitezele de rota¸ tie ale celor patru elice vor determina modul în care sistemul
UAV se va deplasa.
Quadcopterele prezint ˘a ¸ sase grade de libertarte. Astfel, ele pot executa misc ˘ari de transla¸ tie
pe cele trei axe, precum ¸ si mi¸ scari de rota¸ tie în jurul celor trei axe. Mi¸ sc ˘arile de rota¸ tie se clasific ˘a
în:
•ruliu – rota¸ tia în jurul axei transversale, φ
•tangaj – rota¸ tia în jurul axei orizontale, θ
•gira¸ tie – rota¸ tia în jurul axei de direc¸ tie, ψ
Având în vedere structura sistemului UAV, acesta poate fi caracterizat de:
•for¸ tele de trac¸ tiune :U1,U2,U3,U4. – generate de c ˘atre cele patru elice.
•vitezele de rota¸ tie :ω1,ω2,ω3,ω4- vitezele cu care motoarele execut ˘a rota¸ tiile.
•momentele for¸ telor de trac¸ tiune :M1,M2,M3,M4.
•masa sistemului :m
Determinarea ecua¸ tiilor dinamice ale sistemului UAV se va realiza în func¸ tie de dou ˘a
sisteme de referin¸ t ˘a: sistemul de referin¸ t ˘a al quadcopterului ¸ si cel al sistemului iner¸ tial de
referin¸ t ˘a.
16

Capitolul 3. Dinamica vehiculelor aeriene
Transformarea de la sistemul de referin¸ t ˘a iner¸ tial la cel al sistemului de referin¸ t ˘a al vehi-
cului aerian se face prin intermediul unghiurilor φ,θ,ψ. Aceste unghiuri se numesc unghiuri
Euler („Computing Euler angles from a rotation matrix“).
O rota¸ tie de ψradiani în jurul axei xeste determinat ˘a de:
Rx(ψ) =
1 0 0
0 cos(ψ)−sin(ψ)
0 sin(ψ) cos(ψ)
(3.1)
O rota¸ tie de θradiani în jurul axei yeste determinat ˘a de:
Ry(θ) =
cos(θ) 0 sin(θ)
0 1 0
−sin(θ) 0 cos(θ)
(3.2)
O rota¸ tie de φradiani în jurul axei zeste determinat ˘a de:
Rz(φ) =
cos(φ)−sin(φ) 0
sin(φ) cos(φ) 0
0 0 1
(3.3)
Matricea de rota¸ tie se define¸ ste ca:
R=Rx(ψ)Ry(θ)Rz(φ) (3.4)
Explicitând rela¸ tia (3.4), se ob¸ tine:
R=
C(θ)C(φ)S(ψ)S(θ)C(φ)−C(φ)S(θ)C(ψ)S(θ)C(φ) +S(ψ)S(φ)
C(θ)S(φ)S(ψ)S(θ)S(φ) +C(φ)S(θ)C(ψ)S(θ)S(φ)−S(ψ)C(φ)
−S(θ) S(ψ)C(θ) C(ψ)C(θ)
(3.5)
UndeC(x) = cos(x)¸ siS(x) = sin(x).
Se consider ˘a c˘a sistemul UAV are o structur ˘a simetric ˘a, ceea ce impune c ˘a matricea de
iner¸ tie s ˘a fie definit ˘a ca:
I=
Ixx 0 0
0Iyy 0
0 0Izz
(3.6)
În Figura 3.1 se eviden¸ tiaz ˘a reprezentarea unghiurilor Euler. Sursa foto http://www.
chrobotics.com/library/understanding-euler-angles .
17

Capitolul 3. Dinamica vehiculelor aeriene
Figura 3.1: Reprezentarea unghiurilor Euler.
3.2 Condi¸ tii de echilibru
Men¸ tinerea constant ˘a a altitudinii unui sistem UAV este un obiectiv extrem de important care
trebuie atins pentru a putea asigura urm ˘arirea unei traiectorii optime. Ca acest deziterat s ˘a fie
atins, trebuiesc îndeplinite anumite condi¸ tii de echilibru.
Pentru a determina ca sistemul UAV s ˘a nu se deplaseze pe axa vertical ˘a, for¸ tele de trac¸ tiune
generate de c ˘atre cele patru elice trebuie s ˘a fie egale cu greutatea quadcopterului.¸ Tinând cont
c˘a sensul for¸ telor de trac¸ tiune ¸ si sensul greut ˘a¸ tii sunt opuse. De asemenea, directia greut ˘a¸ tii
trebuie s ˘a fie paralel ˘a cu cele patru direc¸ tii ale for¸ telor de trac¸ tiune. În acest mod, se asigur ˘a c˘a
vehiculul nu se va deplasa pe axa vertical ˘a.
U1+U2+U3+U4=mg (3.7)
Efectul de rota¸ tie al unei for¸ te asupra unui corp este pus în eviden¸ t ˘a prin intermediul
m˘arimii fizice vectoriale numite momentul for¸ tei . Pentru a evita mi¸ sc ˘arile de rota¸ tie în jurul
axelor, se va impune ca suma momentelor ce afecteaz ˘a sistemul s ˘a fie nul ˘a:
M1+M2+M3+M4= 0 (3.8)
Mi=b·ω2
i+Im˙ωi (3.9)
Constantabreprezint ˘a constanta de frânare, iar Imeste considerat ˘a iner¸ tia motorului.
Pentru anumite valori ale vitezelor de rota¸ tie se pot ob¸ tine mi¸ sc ˘ari de ruliu, tangaj sau
gira¸ tie. Evitarea acestor situa¸ tii se face prin impunerea urm ˘atoarei rela¸ tii între cele patru viteze
de rota¸ tie ale elicelor:
ω2
1+ω2
3−ω2
2−ω2
4= 0 (3.10)
Nu în ultimul rând, mi¸ sc ˘arile de rota¸ tie în jurul axelor vehicului trebuie s ˘a r˘amân˘a nule,
18

Capitolul 3. Dinamica vehiculelor aeriene
a¸ sadar accelera¸ tiile unghiulare vor trebui s ˘a fie la rândul lor nule:
φ= 0θ= 0ψ= 0 (3.11)
˙φ= 0 ˙θ= 0 ˙ψ= 0 (3.12)
3.3 Ecua¸ tii de mi¸ scare
Mi¸ scarea sistemului UAV pe cele trei axe sau în jurul acestora este determinat ˘a prin modificarea
vitezelor de rota¸ tie (tura¸ tii) ale celor patru elice. Se consider ˘a(x,y,z )coordonatele in cadrul
de referinta iar (φ,θ,ψ )unghiurile Euler ale quadcopterului.
3.3.1 Deplasarea UAV pe axa orizontal˘ a a sistemului iner¸ tial
Ca vehiculul s ˘a se poat ˘a deplasa pe axa orizontal ˘a este necesar ca for¸ ta de trac¸ tiune s ˘a fie mai
mic˘a sau mai mare decât greutatea sistemului UAV.
• pentru ca altitudinea la care se afl ˘a sistemul UAV s ˘a scad ˘a, for¸ tele de tractiune trebuie s ˘a
fie mai mici decât greutatea:
ω2
1+ω2
2+ω2
3+ω2
4<mg (3.13)
• pentru ca altitudinea la care se afl ˘a sistemul UAV s ˘a creasc ˘a, for¸ tele de tractiune trebuie
s˘a fie mai mari decât greutatea:
ω2
1+ω2
2+ω2
3+ω2
4>mg (3.14)
De asemenea, este important ca vitezele de rotatie s ˘a fie egale între ele pentru a asigura
mi¸ scarea pe axa vertical ˘a.
3.3.2 Rota¸ tia UAV în jurul axelor de referin¸ t˘ a
Mi¸ sc˘arile în jurul axelor sunt determinate de cre¸ sterea vitezelor de rota¸ tie a dou ˘a dintre elicele
sistemului fa¸ t ˘a de celelalte componente. Turatiile motoarelor, (ω1,ω2,ω3,ω4)pot fi scrise in
forma:
U1=ω2
1+ω2
2+ω2
3+ω2
4
U2=ω2
4−ω2
2
U3=ω2
1−ω2
3
U4=ω2
1+ω2
3−ω2
2−ω2
4(3.15)
Practic, fie c ˘a se face referire la mi¸ scare de ruliu, tangaj sau gira¸ tie, ecua¸ tia vitezelor de
rota¸ tie (3.10) devine:
ω2
1+ω2
3−ω2
2−ω2
4/negationslash= 0 (3.16)
19

Capitolul 3. Dinamica vehiculelor aeriene
• pentru mi¸ scarea de tangaj este necesar ca, în fun¸ tie de sensul de rota¸ tie dorit, s ˘a se modifice
tura¸ tia motorului frontal ω1, ,fa¸ t˘a de tura¸ tia motorului din spate ω3:
U3=ω2
1−ω2
3 (3.17)
• pentru mi¸ scarea de ruliu este necesar ca, în fun¸ tie de sensul de rota¸ tie dorit, s ˘a se modifice
tura¸ tiaω4¸ fa¸ t˘a de tura¸ tia ω2:
U2=ω2
4−ω2
2 (3.18)
• pentru mi¸ scarea de gira¸ tie este necesar ca, în fun¸ tie de sensul de rota¸ tie dorit, s ˘a se respecte
ecua¸ tia :
U4=ω2
1+ω2
3−ω2
2−ω2
4 (3.19)
Atunci, accelera¸ tiile in coordonatele fixe sunt date de
¨x=1
m(sinφsinψ+ cosφsinθcosψ)U1 (3.20)
¨y=1
m(sinφcosψ−cosφsinθsinψ)U1 (3.21)
¨z=−g+1
m(cosφcosθ)U1 (3.22)
iar unghiurile sunt guvernate de rela¸ tiile
¨φ=(Iyy−Izz)˙θ˙ψ+U2
Ixx(3.23)
¨θ=(Izz−Ixx)˙φ˙ψ+U3
Iyy(3.24)
¨ψ=(Ixx−Iyy)˙φ˙θ+U4
Izz(3.25)
În continuare, se dore¸ ste exprimarea intr ˘arilor sistemului ( U1,U2,U3¸ siU4) în func¸ tie de
o ie¸ sire plat ˘a,y¸ si de num ˘arul finit de derivate ale acesteia. Drept urmare, se alege drept ie¸ sire
plat˘a vectorul:
y=/bracketleftBig
y1y2y3y4/bracketrightBig
=/bracketleftBig
x y z ψ/bracketrightBig
(3.26)
undex,y,z reprezint ˘a pozi¸ tiile pe axele sistemului de referin¸ t ˘a al quadcopterului. Unghiul de
gira¸ tieψa fost ales drept element al vectorului ie¸ sirii plate pentru c ˘a poate fi decuplat dinamic
din celelalte st ˘ari în cazul în care comanda U4este folosit ˘a pentru setarea la 0 a unghiului de
gira¸ tie.
Se ridic ˘a la p ˘atrat rela¸ tiile de definire ale ¨x,¨y,¨z¸ si se ob¸ tine:
U1=m/radicalBig
¨x2+ ¨y2+ (¨z+g)2 (3.27)
20

Capitolul 3. Dinamica vehiculelor aeriene
Dup˘a prelucr ˘ari asupra rela¸ tiilor, se eviden¸ tiaz ˘a:
θ= arctan/parenleftbigg¨xcosψ+ ¨ysinψ
¨z+g/parenrightbigg
(3.28)
φ= arctan/parenleftbigg¨xsinψ−¨ycosψ
¨z+g/parenrightbigg
cosθ (3.29)
¸ Tinând cont de structura simetric ˘a sistemului UAV ¸ si propriet ˘a¸ tiile matricei de iner¸ tie, se
ob¸ tin urm ˘atoarele rela¸ tii pentru tura¸ tii:
U2=¨φ (3.30)
U3=¨θ (3.31)
U4=¨ψ (3.32)
21

4 Generarea traiectoriilor plate
Generarea de traiectorii plate a fost abordat ˘a în mai multe lucr ˘ari de specialitate […].
Se consider ˘a vectorul de puncte de trecere W, avândN+ 1elemente. Scopul acestei
sec¸ tiuni este acela de a construi o traiectorie plat ˘a care s ˘a treac ˘a prin fiecare punct de trecere.
W=/bracketleftBig
w0w1… wN/bracketrightBig
(4.1)
Ie¸ sirea plat ˘a se define¸ ste ca:
y(t) =C(x(t),u(t),˙u(t),¨u(t),…,u(y)(t)) (4.2)
undex(t)reprezint ˘a starea sistemului dinamic la momentul de timp t, iaru(t)reprezint ˘a co-
manda. Problematica gener ˘arii unei traiectorii plate presupune rescrierea st ˘arilor ¸ si comenzilor
sistemului în func¸ tie de ie¸ sirea plat ˘a ¸ si impunerea constrângerii c ˘a traiectoria s ˘a treac ˘a prin
elementele vectorului de puncte de trecere.
x(t) = Υ(y(t),˙y(t),¨y(t),…,y (t)(r)) =wk, k∈0…N (4.3)
u(t) = Ψ(y(t),˙y(t),¨y(t),…,y (t)(r+1)) =wk, k∈0…N (4.4)
Se reaminte¸ ste c ˘a ie¸ sirea plat ˘ay(t)poate fi scris ˘a pe baza unor puncte de control ¸ si a unor
polinoame de baz ˘a:
y(t) = Λd(t)P, t∈[0,1] (4.5)
Introducând (4.5) în (4.3), respectiv în (4.4), se ob¸ tine:
x(t) = Υ(Λ d(t)P,˙Λd(t)P(t),¨Λd(t)P(t),…,Λ(r)
d(t)P(t)) =wk, k∈0…N (4.6)
u(t) = Ψ(Λ d(t)P,˙Λd(t)P(t),¨Λd(t)P(t),…,Λ(r+1)
d(t)P(t)) =wk, k∈0…N (4.7)
Pentru o scriere cât mai compact ˘a, se vor realiza urm ˘atoarele nota¸ tii:
˜Υ(Λd(t),P) = Υ(Λ d(t)P,˙Λd(t)P(t),¨Λd(t)P(t),…,Λ(r)
d(t)P(t)) (4.8)
˜Ψ(Λd(t),P) = Ψ(Λ d(t)P,˙Λd(t)P(t),¨Λd(t)P(t),…,Λ(r+1)
d(t)P(t)) (4.9)
Condi¸ tiile necesar s ˘a fie îndeplinite pentru a putea genera o traiectorie plat ˘a devin:
˜Υ(Λd(t),P) =wk, k∈0…N
˜Ψ(Λd(t),P) =wk, k∈0…N(4.10)
22

Capitolul 4. Generarea traiectoriilor plate
Presupunând c ˘a se dore¸ ste generarea unei traiectorii plate utilizând func¸ tii B-Spline "fi-
xate" (elementele vectorului de noduri sunt distribuite la distan¸ te egale pe ax ˘a), se poate formula
problema de optimizare a c ˘arui scop este minimizarea unui cost integral legat de st ˘arile ¸ si intr ˘arile
sistemului. Acest cost, Γ(x(t),u(t)), va trebui estimat pe intervalul [ τ0τN].τ0¸ siτNreprezint ˘a
primul ¸ si ultimul element din vectorul de noduri.
J= arg min
J/integraldisplaytN
t0||˜Γ(Λd(t),P)||dt
s.l. constrângerile (4.10)(4.11)
În cadrul acestei lucr ˘ari, costul ˜Γ(Λd(t),P) = Γ( ˜Υ(Λd(t),P),˜Ψ(Λd(t),P))va reprezenta o
penalizare pentru lungimea traiectoriei.
În ceea ce prive¸ ste generarea de traiectorii plate pentru sistemele UAV, din punct de vedere
practic, constrângerile impuse în (4.10) sunt în cele mai multe cazuri prea restrictive. Spre
exemplu, în mediul agricol, quadcopterul poate fi folosit pentru a scana parcelele de p ˘amânt.
Nu este necesar ca sistemul UAV s ˘a treac ˘a exact prin fiecare punct de trecere pentru a realiza
scan˘arile. Este suficient ca quadcopterul s ˘a se afle într-o vecin ˘atate a fiec ˘arui punct de trecere
în parte. O astfel de situa¸ tie se întâlne¸ ste ¸ si în cazul în care sistemele UAV sunt folosite pentru
erbicidarea câmpurilor agricole. Din nou, este suficient ca quadcopterul s ˘a fie prezent cel mult
într-o vecin ˘atate a punctelor de trecere f ˘ar˘a a diminua eficacitatea opera¸ tiunii de erbicidare.
Chiar ¸ si în ceea ce prive¸ ste ac¸ tiunile militare de spionaj, nu este necesar ca sistemul UAV s ˘a
fie prezent în fiecare punct de trecere, condi¸ tia ca acesta s ˘a treac ˘a printr-o vecin ˘atate a fiec ˘arui
punct de trecere fiind suficient ˘a. În aceste condi¸ tii, constrângerile impuse în (4.10) pot fi relaxate.
Se define¸ ste vecin ˘atatea unui punct de trecere ca fiind regiunea lui de siguran¸ t ˘aVk⊂Rnx.
Se dore¸ ste ca sistemul UAV s ˘a fie situat, la un anumit moment de timp, în regiunea de siguran¸ t ˘a
asociat ˘a fiec˘arui punct de trecere. Constrângerile (4.10) pot fi reformulate dup ˘a cum urmeaz ˘a:
˜Υ(Λd(t),P)∈{wk}⊕Sk, k∈0…N
˜Ψ(Λd(t),P)∈{wk}⊕Sk, k∈0…N(4.12)
Constrângerile (4.12) duc la reformularea costului:
J= arg min
J/integraldisplaytN
t0||˜Γ(Λd(t),P)||dt
s.l. constrângerile (4.12)(4.13)
23

5 Sistemul Crazyflie
Rezultatele experimentale prezentate în cadrul acestei lucr ˘ari au fost ob¸ tinute prin intermediul
sistemului UAV Crazyflie 2.0. În cadrul acestui capitol vor fi prezentate principalele caracteristici
ale dispozitivului, precum ¸ si modul de interac¸ tiune dintre acesta ¸ si utilizator.
Sistemul este dezvoltat de c ˘atre compania suedez ˘a Bitcraze AB. Implementarea proiectu-
lui a fost început ˘a în anul 2009, fiind pus ˘a în practic ˘a de c ˘atre cei trei ingineri care reprezentau
totodat ˘a ¸ si singurii angaja¸ ti ai companiei. Primul prototip al sistemului UAV este prezentat de
c˘atre cei trei în cadrul site-ului Hackaday.com, în anul 2010. Proiectul prime¸ ste critici pozitive,
fapt ce îi determin ˘a pe cei trei ini¸ tiatori s ˘a extind ˘a ideea de la care a pornit dezvoltarea siste-
mului. Se dore¸ ste acum ca utilizatorului s ˘a îi fie oferit nu doar un aparat de zbor în miniatur ˘a,
ci ¸ si o platform ˘a de dezvoltare open-source.
Crazyflie este un quadcopter în miniatur ˘a ce cânt ˘are¸ ste aproximativ 19 grame ¸ si m ˘asoar˘a
aproximativ 9 centimentri între bra¸ tele care sus¸ tin motoarele. Sistemul este alimentat de la un
acumulator Li-Po având o capacitate total ˘a de 240 mAh. Acest acumulator permite timpi de
zbor de pân ˘a la 7 minute. Reînc ˘arcarea bateriei se face prin intermediul unui cablu USB ¸ si,
pentru acumulatorul standard, aceasta dureaz ˘a aproximativ 40 de minute.
Comunica¸ tia cu dispozitivul prin care se transmit comenziile este f ˘acut˘a fie prin interme-
diul unei antene USB, fie prin utilizarea tehnologiei Bluetooth Low-Energy – în cazul utiliz ˘arii
unor terminale mobile pentru a comanda aparatul. Pentru antena USB, distan¸ ta pentru care
este posibil ˘a transmisia este de maxim 1000 de metri.
De asemenea, Crazyflie 2.0 dispune de dou ˘a microcontrolere. STM32F405 realizeaz ˘a toate
opera¸ tiile de baz ˘a, acest procesor având o frecven¸ t ˘a de 168 MHz. nRF51822 gestioneaz ˘a trans-
misia radio ¸ si managementul de consum.
5.1 Nivelul hardware
5.1.1 Acumulator
Dispozitivul este alimentat de c ˘atre un acumulator pe baz ˘a de polimer de Litiu (LiPo). Capaci-
tatea maxim ˘a a acestuia este de 240 mAh. Acumulatorul este sensibil la supra/sub – înc ˘arcare, la
fenomene de desc ˘arcare rapid ˘a precum ¸ si la expunere la temperaturi ridicate. Pentru a diminua
aceste dezavantaje, sistemul este dotat cu un modul de protec¸ tie a circuitelor (Protection Circuit
Module). Înc ˘arcarea acumulatorului se face prin intermediul unui cablu µUSB. Produc ˘atorul
Crazyflie asigur ˘a pentru acumulatorul standard, timpi de zbor de pân ˘a la 7 minute.
24

Capitolul 5. Sistemul Crazyflie
Figura 5.1: Crazyflie 2.0
5.1.2 Senzori
Crazyflie 2.0 este prev ˘azut cu o unitate iner¸ tial ˘a de m ˘asurare (Inertial Measurement Unit). IMU
ofer˘a informa¸ tii legate de diver¸ si paramentri de zbor c ˘atre interfa¸ ta cu utilizatorul. Aceste date
sunt ob¸ tinute de la senzorul MPU – 6050, care con¸ tine un accelerometru ¸ si un giroscop. Cele
dou˘a dispozitive sunt montate împreun ˘a pe aceea¸ si plac ˘a. De asemenea, pe lâng ˘a giroscop ¸ si
accelerometru, sunt disponibile date de la un barometru ¸ si de la un magnetometru. Sistemul
ofer˘a posibilitatea ata¸ s ˘arii separate a unui magnetometru HMC5883L pentru a înl ˘atura driftul
de tangaj.
5.1.3 Motoare
Deplasarea vehicului este ob¸ tinut ˘a prin intermediul a patru motoare de curent continuu cu
perii. Fiind patru motoare de curent continuu, este suficient s ˘a fie aplicat ˘a la borna motoarelor
o tensiune variabil ˘a pentru a ob¸ tine viteze variabile. Varia¸ tia tensiunii este asigurat ˘a printr-un
semnal PWM, ob¸ tinându-se o vitez ˘a propor¸ tional ˘a cu factorul de umplere. Din punct de vedere
al structurii, acest tip de motoare prezint ˘a ¸ si dezavantaje. Cel mai mare dezavantaj este acela
c˘a sunt generate perturba¸ tii electromagnetice la un nivel foarte mare. În tabelul urmator sunt
afi¸ sate specificatiile electrice ale celor 4 motoare:
5.1.4 Microcontrolere
Crazyflie 2.0 dispune de dou ˘a microcontrolere, STM32F405 ¸ si nRF51822.
25

Capitolul 5. Sistemul Crazyflie
Descriere Valoare
Tensiune nominal ˘a 3.7 V
Rated Voltage 4.2 V Max
3 Fixed Value
4 Sensor
5 Sensor
Tabela 5.1: Faults affecting the wind turbine model
Figura 5.2: Comanda unui motor în curent continuu
STM32F405
• realizeaz ˘a toate opera¸ tiile de baz ˘a
• nucleu 32 biti ARM Cortex
• frecven¸ t ˘a de 168 MHz
• memorie Flash de pân ˘a la 1 Mbyte
• 192 + 4 Kbytes memorie SRAM
• 140 porturi I/O
• 15 interfe¸ te de comunicare
• conectivitate avansat ˘a USB 2.0
• prezint ˘a unitate pentru calcul CRC
• real time counter (RTC)
• moduri Sleep, Stop Standby pentru a reduce consumul
• 2 convertoare D/A
• 17 timere
nRF51822
• gestioneaz ˘a transmisia radio ¸ si managementul de consum.
• ofer ˘a suport pentru standardul Bluetooth Low-Energy
26

Capitolul 5. Sistemul Crazyflie
• nucleu 32 biti ARM Cortex
• 128 KBytes memorie Flash
• 16 Kbytes memorie RAM
• sistem flexibil pentru power management pentru fiecare dispozitiv periferic
• real time counter (RTC)
• 31 pini I/O
• senzor de temperatur ˘a
• 1 timer 32 bi¸ ti
• 2 timere 16 bi¸ ti
5.1.5 Alte componente hardware
• elice
Sistemul este echipat cu patru elice de plastic, cu o dimensiune de 45 de mm.
• antena radio USB
Comunica¸ tia între dispozitivul prin care utilizatorul transmite comenzile sale ¸ si Crazyflie
2.0 se face prin intermediul undelor radio. Transmisia radio este manageriat ˘a prin interme-
diul microcontrolerului nRF51822. Antena radio USB are o l ˘argime de band ˘a de 2.4 GHz.
Distan¸ tele pentru care comunica¸ tia între client ¸ si dispozitiv se realizeaz ˘a f˘ar˘a întâmpina
probleme sunt de maxim 1 Km.
• inel luminos
Una dintre dot ˘arile suplimentare pe care le prezint ˘a kitul de dezvoltare Crazyflie este
inelul luminos. Acesta este alc ˘atuit din 12 module RGB si 2 LED-uri frontale, montate pe
o plac ˘a de 3 cm. Pe lâng ˘a rolul decorativ, inelul luminos poate fi folosit pentru a ilumina
traiectoria sistemului UAV pe timp de noapte sau conditii sc ˘azute de lumin ˘a.
5.1.6 Schema bloc a nivelului hardware
În Figura 5.3 (sursa foto: https://wiki.bitcraze.io/_detail/projects:crazyflie:hardware:
hw_overview_wiki.png? ) este eviden¸ tiat ˘a structura hardware a sistemului Crazyflie 2.0.
5.2 Nivelul software
Nivelul software este cel care face leg ˘atura dintre utilizatorul care dore¸ ste s ˘a comande sau s ˘a
seteze anumi¸ ti parametri ai sistemului UAV Crazyflie 2.0.
La momentul scrierii acestei teze, utilizatorilor le sunt disponibile dou ˘a interfe¸ te prin care
s˘a comunice cu dispozitivul UAV, în func¸ tie de tipul de platform ˘a de pe care se ruleaz ˘a aplica¸ tia
27

Capitolul 5. Sistemul Crazyflie
Figura 5.3: Schema bloc a componentei hardware
client. Astfel, pachetul de dezvoltare Crazyflie pune la dispozi¸ tie pentru utilizatorii de PC o
interfa¸ t ˘a scris ˘a în limbajul Python, iar pentru utilizatorii de terminale mobile, ofer ˘a o aplica¸ tie
capabil ˘a s˘a asigure comunica¸ tia cu dispozitivul prin tehnica Bluetooth Low-Energy. În cadrul
sec¸ tiunilor urm ˘atoare, vor fi descrise cele dou ˘a interfe¸ te.
5.2.1 Interfa¸ ta pentru terminalele mobile
Bitcraze pune la dispozi¸ tie o aplica¸ tie pentru terminalele mobile care suport ˘a sistemul de operare
Android. Versiunea oficial ˘a poate fi desc ˘arcat˘a de la adresa https://play.google.com/store/
apps/details?id=se.bitcraze.crazyfliecontrol2 .
Pentru a putea rula aceast ˘a aplica¸ tie este necesar ca dispozitivul mobil s ˘a fie dotat cu un
sistem de operare Android (versiunea 4.0 sau mai recent ˘a). Faptul c ˘a aplica¸ tia nu este disponibil ˘a
¸ si utilizatorilor care de¸ tin terminale incompatibile cu sistemul Android este un minus, dar poate
reprezenta o direc¸ tie de continuare a dezvolt ˘arii produsului pentru autorul lucr ˘arii. De asemenea,
pentru a putea asigura comunica¸ tia cu dispozitivul fizic, terminalul mobil trebuie s ˘a dispun ˘a de
tehnologie Bluetooth Low-Energy. Aceasta este disponibil ˘a cu prec ˘adere în cadrul terminalelor
de ultim ˘a genera¸ tie, fiind diferit ˘a de standardul Bluetooth.
În Figura 5.4 este prezentat ecranul principal al aplica¸ tiei. Se observ ˘a c˘a interfa¸ ta este
simplist ˘a. Elementele principale ale acesteia sunt cele 2 controale tip joy-stick. Prin intermediul
lor, utilizatorul poate seta gradul de gira¸ tie, ruliu ¸ si cel de tangaj. De asemenea, cele 2 controale
permit cre¸ sterea tura¸ tiei motoarelor. În cazul în care se dore¸ ste, sistemul UAV Crazyflie 2.0
poate fi controlat prin intermediul accelerometrului dispozitivului mobil, în detrimentul joy-
stick-urilor virtuale. Din experimentele efectuate s-a observat c ˘a, în general, accelerometrul nu
ofer˘a o precizie foarte bun ˘a asupra controlului sistemului.
28

Capitolul 5. Sistemul Crazyflie
Figura 5.4: Interfa¸ ta aplica¸ tiei Android
În partea superioar ˘a ecranului, aplica¸ tia transmite utilizatorului informa¸ tii despre co-
manda care urmeaz ˘a s˘a fie transmis ˘a sistemului. Prin parametrul "Thrust", este oferit ˘a va-
loarea în procente a for¸ tei de trac¸ tiune pe care o vor exercita cele patru motoare în total. Prin
valorile men¸ tionate pentru "Yaw", "Pitch" ¸ si "Roll" sunt men¸ tionate unghiurile de rota¸ tie pe
care quadcopterul le va face în jurul axelor proprii. Totodat ˘a, prin intermediul parametrului
"Link", aplica¸ tia transmite utilizatorului dac ˘a exist ˘a o conexiune activ ˘a între dispozitivul fizic
¸ si aplica¸ tie.
Dup˘a cum se poate observa, aplica¸ tia nu ofer ˘a informa¸ tii despre valorile curente ale for¸ tei
de tractiune sau a unghiurilor de rota¸ tie. Acest fapt face imposibil ˘a reglarea în bucl ˘a închis ˘a
a sistemului UAV. Unul dintre obiectivele acestei teze este acela de a îmbun ˘at˘a¸ ti capacit ˘a¸ tile
pe care aplica¸ tia Android le ofer ˘a utilizatorului, astfel încât acesta s ˘a poat ˘a realiza controlul
automat al quadcopterului ¸ utilizând ¸ si terminale mobile.
De asemenea, în partea superioar ˘a a ecranului pot fi observate dou ˘a pictograme. Ap ˘asând
una dintre aceste dou ˘a pictograme, utilizatorul poate accesa meniul de configurare al al aplica¸ tiei
sau s˘a ini¸ tieze conectarea c ˘atre un dispozitiv Crazyflie.
Ap˘asarea pictogramei "Scanare" determin ˘a activarea Bluetooth-ului în cazul în care acesta
nu este activ. Apoi, este ini¸ tiat ˘a o scanare a dispozitivelor Crazyflie disponibile pe o raz ˘a de
câtiva metri. Dac ˘a un quadcopter este activ, aplica¸ tia lanseaz ˘a procedeul de conectare la acesta.
Conform set ˘arilor, este creeat un canal de comunica¸ tie între cele dou ˘a dispozitive ¸ si are loc
transmiterea parametrilor ce compun comanda sistemului. În cazul în care conexiunea nu poate
fi realizat ˘a sau un dispozitiv nu este accesibi, aplica¸ tia fer ˘a utilizatorului notific ˘ari prin care
semnaleaz ˘a e¸ secul opera¸ tiunii.
În Figura 5.5 este prezentat meniul pe care utilizatorul îl poate accesa în momentul în
care este ap ˘asat˘a pictograma "Set ˘ari". Dup ˘a cum se poate observa, set ˘arile sunt transpuse în
patru mari categorii:
•Set˘ari conexiune
Utilizatorul poate în cadrul acestei categorii s ˘a seteze canalul radio prin care se face trans-
misia de date sau s ˘a modifice rata la care se face transmisia de date. Dac ˘a utilizatorul
29

Capitolul 5. Sistemul Crazyflie
Figura 5.5: Meniul set ˘arilor aplica¸ tiei Android
experimenteaz ˘a laten¸ te mari datorate conexiunii prin Bluetooth Low-Energy, acesta poate
activa din cadrul acestei sec¸ tiuni o op¸ tiune care încearc ˘a s˘a reduc ˘a laten¸ ta serviciului.
Printe alte set ˘ari prezente în aceast ˘a categorie se num ˘ar˘a posibilitatea de a ini¸ tia din acest
meniu conexiunea cu un dispozitiv Crazyflie.
•Set˘ari pentru controlul zborului
Selectând aceast ˘a categorie, utilizatorul poate accesa mai multe moduri de configurare a
joy-stick-urilor virtuale. Se pot asocia diverse combina¸ tii de rota¸ tii pe care pe care unul
din controale le poate transmite c ˘atre Crazyflie. Totodat ˘a, aplica¸ tia ofer ˘a posibilitatea
de a activa un mod avansat de zbor, prin care sunt înl ˘aturate limit ˘arile implicite aplicate
tura¸ tiilor maxime sau a unghiurilor de rota¸ tie.
•Set˘ari controale
Aceast ˘a categorie permite fie selectarea unui joy-stick virtual sau a unui gamepad drept
control principal. În caz c ˘a dore¸ ste, utilizatorul poate transmite comenzile c ˘atre Crazyflie
folosindu-se de senzorii cu care terminalul mobil este dotat. Totu¸ si, în cazul în care
aceast ˘a op¸ tiune este activat ˘a, aplica¸ tia recomand ˘a ca giroscopul dispozitivului mobil s ˘a nu
fie folosit pentru generarea mi¸ scrilor de ruliu ¸ si tangaj.
•Set˘ari aplica¸ tie
Aceast ˘a categorie este relativ s ˘arac˘a în op¸ tiuni. Utilizatorul poate activa, în cazul în care
de¸ tine un terminal mobil care ruleaz ˘a pe sistemul de operare Android 4.4, rularea aplica¸ tiei
pe tot ecranul.
5.2.2 Interfa¸ ta pentru PC
Interfa¸ ta pentru PC a fost dezvoltat ˘a în limbajul de programare Python. Pentru a putea rula
aplica¸ tia pentru PC sub sistemul de operare Windows, este necesar ˘a instalarea bibliotecilor
specifice Python, precum ¸ si a unor biblioteci suplimentare: Qt, Pyusb ¸ si Pygame.
Figura 5.6 ilusreaz ˘a ecranul principal al clientului Python. Dup ˘a cum se poate observa,
aceast ˘a interfa¸ t ˘a este mai complex ˘a ¸ si ofer ˘a mai multe informa¸ tii relevante pentru utilizator
30

Capitolul 5. Sistemul Crazyflie
Figura 5.6: Interfa¸ ta Python pentru PC
decât aplica¸ tia pentru dispozitivele mobile Android. ¸ Tinând cont de acest fapt, se consider ˘a
c˘a interfa¸ ta pentru PC este potrivit ˘a pentru realizarea unor algoritmi care s ˘a permit ˘a controlul
automat al unui sistem UAV.
Interfa¸ ta are o structur ˘a tabular ˘a, cele dou ˘a taburi care o compun oferind informa¸ tii despre
activitatea quadcopterului precum ¸ si informa¸ tii de natur ˘a grafic ˘a asupra unor parametri specifici
înregistra¸ ti în timpul zborului.
Primul tab ofer ˘a posibiltatea ajust ˘arii unor parametri legate de controlul parametrilor de
zbor. Tabul este de asemenea structurat în 3 categorii:
• control de baz ˘a al parametrilor de zbor
Aceast ˘a categorie ofer ˘a utilizatorului posibilitatea s ˘a aleag ˘a modul de zbor al quadcop-
terului (avansat sau normal). De asemenea, pot fi limitate manual unghiurile de ruliu ¸ si
tangaj. Este pus ˘a a la dispozi¸ tie ¸ si optiunea de a alege cum se dore¸ ste ca for¸ ta de trac¸ tiune
s˘a creasc ˘a (liniar sau neliniar), dar aceasta nu este momentan activ ˘a.
• control avansat al parametrilor de zbor
Modificarea parametrilor prezen¸ ti în cadrul acestei sec¸ tiuni presupune un nivel de cuno¸ stiinte
mai avansat referitor la modul de zbor ¸ si la dinamica quadcopterului. Pot fi setate valori
minime ¸ si maxime pentru comanda sistemului precum ¸ si valori maxime pentru rota¸ tiile în
jurul axelor.
• date de zbor
Cea de-a treia sec¸ tiune joac ˘a un rol important pentru cazul în care se dore¸ ste proiectarea
unui algoritm de reglare. Aici sunt furnizate informa¸ tii de ordin grafic despre pozi¸ tia
quadcopterului fa¸ t ˘a de axe. De asemenea, este prezentat nivelul actual al tura¸ tiilor pentru
31

Capitolul 5. Sistemul Crazyflie
fiecare motor ¸ si al unghiurilor de rota¸ tie. Interfa¸ ta poate re¸ tine anumite valori de referin¸ t
a pentru tura¸ tia total ˘a ¸ si pentru unghiurile de rota¸ tie, ceea ce permite realizarea unei
compara¸ tii între valorile actuale ale parametrilor aminti¸ ti ¸ si referin¸ te.
Cel de-al doilea tab prezint ˘a grafice care reprezint ˘a evolu¸ tia a diver¸ si parametri ale¸ si de
utilizator în timpul zborului. Aceste grafice sunt realizate în timp real în mod implicit, dar
utilizatorul poate alege ca aceste grafice s ˘a nu fie afi¸ sate în timp real. Totodat ˘a, este posibil ˘a
alegerea num ˘arului de e¸ santioane prin care se traseaz ˘a graficul. De asemenea, se poate modifica
¸ si orizontul de timp. Din p ˘acate, nu sunt oferite posibilit ˘a¸ ti de salvare a acestor grafice sau a
datelor pe baza c ˘arora se genereaz ˘a ele în fi¸ siere externe aplica¸ tiei.
Pe lâng ˘a cele dou ˘a taburi, aplica¸ tia prezint ˘a un meniu general din care pot fi accesate
diferite func¸ tii. Printre facilit ˘a¸ tile de o importan¸ t ˘a major ˘a accesibile din acest meniu se num ˘ar˘a
adaugarea unui nou tab la interfa¸ ta de baz ˘a în care se poate observa func¸ tionarea toolbox-ului
CRTP Sniffer (View > Toolboxes > Crtp sniffer).
CRTP Sniffer este un utilitar care permite studierea pachetelor care sunt transmise între
clientul Python ¸ si dispozitivul Crazyflie 2.0. Semnifica¸ tia acronimului CRTP provine de la
numele protocolului utilizat pentru transmisa de date de la quadcopter ¸ si c ˘atre quadcopter,
Crazyflie Real Time Protocol. Sunt puse la dispozi¸ tia utilizatorului date referitoare la durata
comunica¸ tiei în milisecunde, direc¸ tia transmisiei, num ˘arul portului / canalului de comunica¸ tie,
precum ¸ si o descriere a datelor transmise.
Totodat ˘a, din sec¸ tiunea View a meniului general, prin bifarea optiunii Log Blocks, este
creeat un nou tab ce va con¸ tine un tabel populat cu date de la parametrii quadcopterului care
sunt disponibili utilizatorului. Num ˘arul variabilelor afi¸ sate în tabel nu este egal cu num ˘arul
parametrilor de zbor distinc¸ ti care sunt disponibili la nivel hardware. Acest fapt este posibil
deoarece quadcopterul Crazyflie, de¸ si achizi¸ tioneaz ˘a date de la to¸ tii senzorii func¸ tionali, nu
transmite decât o parte dintre ace¸ stia c ˘atre clientul Python. Dac ˘a se dore¸ ste accesul la parametrii
indisponibili interfe¸ tei, vor trebui aduse modific ˘ari la nivelul firmware.
O alt˘a sec¸ tiune important ˘a în cadrul meniului general este cea de configurare a dispozi-
tivului de zbor. Prin selectarea intr ˘arii "Crazyflie", apoi f ˘acând click pe op¸ tiunea "Bootloader",
utilizatorului i se ofer ˘a posibilitatea de a actualiza firmware-ul dispozitivului UAV. Firmware-ul
poate fi uploadat fie din interfa¸ ta clientului Python sau prin intermediul consolei. Totodat ˘a,
utilizatorii pot configura ¸ si din acest meniu parametrii de zbor, fie pentru versiunea 1.0 sau 2.0
a quadcopterului.
Prin intermediul interfe¸ tei, se poate modifica de asemenea configura¸ tia controalelor pentru
cazul în care comanda quadcopterului se face prin intermediul unui gamepad. Utilizatorul poate
customiza modul în care controleaz ˘a quadcopterul, astfel încât s ˘a î¸ si asigure o experien¸ t ˘a cât
mai pl ˘acut˘a.
De asemenea, clientul Python ofer ˘a ¸ si estim ˘ari pentru nivelul de înc ˘arcare al acumulato-
rului ¸ si al calit ˘a¸ tii conexiunii. Nivelul de înc ˘arcare al bateriei influen¸ teaz ˘a performan¸ tele quad-
copterului Crazyflie 2.0 în timpul zborului, de aceea este extrem de important ca utilizatorul s ˘a
cunoasc ˘a cel pu¸ tin aproximativ nivelul de înc ˘arcare al acumulatorului.
32

Capitolul 5. Sistemul Crazyflie
Figura 5.7: Log Blocks
5.3 Nivelul firmware
Nivelul firmware este cel care face leg ˘atura între nivelul fizic al sistemului UAV ¸ si cel software.
În esen¸ t ˘a, firmware-ul reprezint ˘a rutine software care sunt stocate la nivelul memoriei ROM.
Acestea con¸ tin instruc¸ tiuni pentru executarea func¸ tiilor de baz ˘a ale sistemului UAV. În cazul în
care un utilizator dore¸ ste s ˘a modifice acest set de rutine, pachetul de dezvoltare Crazyflie pune
la dispozi¸ tie func¸ tii în cadrul clientului Python care s ˘a asigure actualizarea firmware-ului.
5.3.1 FreeRTOS
Un sistem de operare în timp real este caracterizat de o interac¸ tiune continu ˘a cu mediul încon-
jur˘ator, func¸ tionarea corect ˘a a acestuia fiind validat ˘a de corectitudinea rezultatelor produse ¸ si
de momentul de timp în care sunt generate rezultatele (Dragoicea 2009). Momentul în care se
presupune c ˘a sistemul trebuie s ˘a livreze un r ˘aspuns se nume¸ ste deadline . Sistemele în timp real
se pot clasifica dup ˘a tipul de deadline, dup ˘a cun urmeaz ˘a (Dragoicea 2009):
•sistem în timp real de tip soft
Utilitatea r ˘aspunsului oferit de sistem descre¸ ste odat ˘a cu trecerea timpului de la expirarea
deadline-ului. Dep ˘a¸ sirea deadline-ului nu are consecin¸ te grave asupra func¸ tion ˘arii viitoare
a sistemului
•sistem în timp real de tip ferm Utilitatea r ˘aspunsului oferit de sistem începe s ˘a se
piard˘a liniar, odat ˘a cu expirarea deadline-ului. Consecin¸ tele acestui fapt nu sunt grave.
•sistem în timp real de tip hard Dac˘a deadline-ul este dep ˘a¸ sit pentru acest tip de
33

Capitolul 5. Sistemul Crazyflie
sisteme în timp real, consecintele în ceea ce prive¸ ste func¸ tionarea ¸ si integritatea sistemului
s˘a fie extrem de grave.
¸ Tinând cont de aceast ˘a catalogare, sistemul UAV Crazyflie poate fi considerat drept un
sistem în timp real de tip soft. Constrângerile legate de timpul de procesare al opera¸ tiilor
trebuiesc îndeplinite, dar în caz c ˘a acest lucru nu se întâmpl ˘a, consecin¸ tele nu sunt fatale. Drept
urmare, proiectarea sistemului este mai pu¸ tin riguroas ˘a.
Caracteristicile de sistem în timp real (precum programarea paralel ˘a) sunt asigurate pentru
sistemul Crazyflie prin intermediul sistemului de operare în timp real FreeRTOS ( FreeRTOS ).
Acesta are rolul de a oferi facilit ˘a¸ ti de execu¸ tie concurent ˘a a mai multor taskuri precum ¸ si
plasarea acestora în cozi de execu¸ tie în func¸ tie de prioritate. Un task reprezint ˘a o succesiune de
instruc¸ tiuni care se realizeaz ˘a secven¸ tial.
Din punct de vedere al predictibilit ˘a¸ tii modului de execu¸ tie al ac¸ tiunilor, FreeRTOS ga-
ranteaz ˘a îndeplinirea taskurilor în mod probabilistic.
5.3.2 Rutine
Sec¸ tiunea de fa¸ t ˘a va prezenta cele mai importante rutine implementate la nivel firmware. Acestea
reprezint ˘a metode stocate la nivelul memoriei ROM, prin care se asigur ˘a func¸ tionalitatea de baz ˘a
a sistemului în ceea ce prive¸ ste:
• ini¸ tializarea sistemului
• module pentru algoritmi de control
• opera¸ tiuni auxiliare (gestionare drivere pentru comanda motoarelor, acces la memoria
EEPROM, conversie A/D etc.)
Ini¸ tializarea sistemului
Ini¸ tializarea sistemului este realizat ˘a în cadrul fi¸ sierului main.c din folderul init. Acesta con¸ tine
func¸ tia principal ˘amain() , în care se apeleaz ˘a func¸ tiile platformInit(), systemLaunch(),
vTaskStartScheduler() .
Func¸ tia platformInit() realizeaz ˘a ini¸ tializarea platformei hardware. De asemenea, func¸ tia
systemLaunch() lanseaz ˘a task-ul de sistem care va realiza opera¸ tiunea de ini¸ tializare. Nu în
ultimul rând, vTaskStartScheduler() va ini¸ tializa programatorul de taskuri asociat sistemului
de operare FreeRTOS.
Opera¸ tiuni auxiliare
Procedurile care vizeaz ˘a conversia între analogic ¸ si digital se face pornind de la nivelul firmware.
34

Capitolul 5. Sistemul Crazyflie
Module pentru algoritmi de control
Firmware-ul dispozitivului pune la dispozitie algoritmi care permit controlul altitudinii la care
quadcopterul poate zbura. La acest nivel, în cadrul fi¸ sierului pid.c este implementat un regulator
PID care contribuie la men¸ tinerea altitudinii la o valoare de referin¸ t ˘a.
Prin intermediul secven¸ telor de cod prezente în fi¸ sierul sensfusion6.c se realizaz ˘a pro-
cedeul de combinare a datelor achizi¸ tionate de la senzorii sistemului, chiar dac ˘a ace¸ stia sunt
de o natur ˘a diferit ˘a. Combinarea datelor este util ˘a pentru c ˘a permite o cre¸ stere a acurat ˘a¸ tii
calculelor.
35

Bibliografie
Dragoicea, M. Proiectarea Aplicatiilor în Timp Real. Teorie ¸ si practic˘ a . Editura Universi-
tar˘a,Bucure¸ sti.
Fliess ¸ si al¸ tii. Flatness and defect of nonlinear systems introductory theory and examples .
CAS international report A-284, pags. 1–43.
FreeRTOS .http://www.freertos.org/ . Accessed: 2015-06-22.
Maris, Simina ¸ si Braescu, Liliana. Metode Numerice – Probleme de seminar . Universitatea
de Vest din Timi¸ soara, Timi¸ soara.
Slabaugh, G. Computing Euler angles from a rotation matrix , pags. 1–2.
Suryawan, F. Constrained Trajectory Generation and Fault Tolerant Control Based on
Differential Flatness and B-splines . The University of Newcastle,Australia.
Who first defined the so-called Bezier curves? http://www.researchgate.net/post/
Who_first_defined_the_so-called_Bezier_curves . Accessed: 2015-06-22.
36

Similar Posts