Desenvolvimento de um VeÃculo Aéreo Não-Tripulado - LARA ...
Desenvolvimento de um VeÃculo Aéreo Não-Tripulado - LARA ...
Desenvolvimento de um VeÃculo Aéreo Não-Tripulado - LARA ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
A escolha das matrizes R <strong>de</strong> covariância das medidas é feita <strong>de</strong> acordo com a característica<br />
dos sensores. Um caso especial é para o algoritmo TRIAD, on<strong>de</strong> a covariância po<strong>de</strong> ser calculada<br />
com base na transformada Unscented a partir da incerteza das medidas do acelerômetro e<br />
magnetômetro. Outra forma é sobrestimar o valor <strong>de</strong> R. O implementado código visa propagar a<br />
incerteza utilizando <strong>um</strong>a linearização n<strong>um</strong>érica em torno <strong>de</strong> ponto <strong>de</strong> operação [5].<br />
Um <strong>de</strong>talhe importante é a restrição: a norma do quaternion <strong>de</strong>ve ser igual a 1 para representar<br />
<strong>um</strong>a rotação, ou seja, esse norma <strong>de</strong>ve ser mantida para garantir a estabilida<strong>de</strong> do algoritmo <strong>de</strong><br />
localização. Essa restrição é incorporada diretamente no filtro utilizando <strong>um</strong>a pseudo-medida:<br />
∣<br />
e pseudo(k) = 1 − ∣ ∣∣ (5.59)<br />
∣q b n(k)<br />
A principal diferença <strong>de</strong>ssa implementação é levar em conta que as medidas do acelerômetro são<br />
utilizadas na etapa <strong>de</strong> correção e predição, o que leva a <strong>um</strong>a implementação correlata. Na prática,<br />
isso significa utilizar <strong>um</strong> conjunto <strong>de</strong> equações <strong>um</strong> pouco diferente da abordagem tradicional.<br />
A seguir, estão as equações e o algoritmo da implementação do CEKF, adaptadas <strong>de</strong> [5], e<br />
verificadas <strong>de</strong> acordo com [75, 76].<br />
⎡<br />
−<br />
−<br />
f(x (k−1) , u (k) ) =<br />
⎢<br />
⎣<br />
Mo<strong>de</strong>lo não-linear<br />
cos(d/2)q 0 − δ x<br />
sen(d/2)<br />
d<br />
q 1 − δ y<br />
sen(d/2)<br />
d<br />
q 2 − δ z<br />
sen(d/2)<br />
d<br />
q 3<br />
δ x<br />
sen(d/2)<br />
d<br />
q 0 + cos(d/2)q 1 + δ z<br />
sen(d/2)<br />
d<br />
q 2 − δ y<br />
sen(d/2)<br />
d<br />
q 3<br />
δ y<br />
sen(d/2)<br />
d<br />
q 0 + δ z<br />
sen(d/2)<br />
d<br />
q 1 + cos(d/2)q 2 − δ x<br />
sen(d/2)<br />
d<br />
q 3<br />
δ z<br />
sen(d/2)<br />
d<br />
q 0 − δ y<br />
sen(d/2)<br />
d<br />
q 1 + δ x<br />
sen(d/2)<br />
d<br />
q 2 + cos(d/2)q 3<br />
v x + (c x + g x )∆T<br />
v y + (c x + g y )∆T<br />
v z + (c z + g z )∆T<br />
r x + v x ∆T + (c x + g x ) ∆T 2<br />
2<br />
r y + v y ∆T + (c y + g y ) ∆T 2<br />
2<br />
r z + v z ∆T + (c z + g z ) ∆T 2<br />
2<br />
b fx<br />
b fy<br />
b fz<br />
⎤<br />
⎥<br />
⎦<br />
(5.60)<br />
[<br />
h(x (k) ) =<br />
∣<br />
q 0 q 1 q 2 q 3 v x v y v z r x r y r z 1 − ∣<br />
∣qn<br />
b ∣<br />
∣<br />
∣<br />
] T<br />
(5.61)<br />
c x = (q 2 0 + q 2 1 − q 2 2 − q 2 3)f x + (2q 1 q 2 − 2q 0 q 3 )f y + (2q 1 q 3 + 2q 0 q 2 )f z<br />
c y = (2q 1 q 2 + 2q 0 q 3 )f x + (q 2 0 − q 2 1 + q 2 2 − q 2 3)f y + (2q 2 q 3 − 2q 0 q 1 )f z<br />
c z = (2q 1 q 3 − 2q 0 q 2 )f x + (2q 2 q 3 + 2q 0 q 1 )f y + (q 2 0 − q 2 1 − q 2 2 + q 2 3)f z<br />
(5.62a)<br />
(5.62b)<br />
(5.62c)<br />
108