Sei sulla pagina 1di 22

Mecnica Computacional Vol XXXIII, pgs.

2303-2324 (artculo completo)


Graciela Bertolino, Mariano Cantero, Mario Storti y Federico Teruel (Eds.)
San Carlos de Bariloche, 23-26 Setiembre 2014

REPRESENTACIONES CINEMTICAS DE ORIENTACIN Y


ECUACIONES DE ESTIMACIN

Martn A. Puchetaa,b , Claudio J. Paza y Maira E. Pereyraa


a Centrode Investigacin en Informtica para la Ingeniera (CIII), Facultad Regional Crdoba de la
Universidad Tecnolgica Nacional, Maestro Lpez esq. Cruz Roja Argentina, X5016ZAA Crdoba,
Argentina, {mpucheta,cpaz}@scdt.frc.utn.edu.ar, http:// ciii.frc.utn.edu.ar
b Consejo Nacional de Investigaciones Cientficas y Tcnicas (CONICET)

Palabras Clave: Representaciones cinemticas, Singularidad de orientacin, Vehculos areos,


Estimacin de actitud.

Resumen. La representacin cinemtica de orientacin ha sido motivo de investigacin en diversas


reas, cronolgicamente, en astronoma y fsica, en navegacin y control de vehculos areos, en mecni-
ca computacional de slidos y mecanismos flexibles, en animacin computada y realidad virtual, entre
otras. Las diferentes representaciones de orientacin conducen a conjuntos mnimos o redundantes, a
diferentes situaciones para corregir singularidades o mltiples soluciones, a ventajas en el lgebra y a
ventajas en la integracin de las ecuaciones diferenciales del movimiento en las cuales participan. En
este trabajo, se revisan las representaciones con el objetivo de determinar cul es la ms adecuada para
ser utilizada en ecuaciones de estimacin de orientacin, con aplicacin a un vehculo areo no trip-
ulado en cuyo sistema de control se fusionan seales de diversa naturaleza (girscopo, acelermetro y
procesamiento de imgenes) para obtener una estimacin mejor que las estimaciones individuales. Como
resultado del estudio, se elige la representacin de cuaternin unitario como la ms conveniente, bajo el
criterio de simplicidad del lgebra y de la eficiencia computacional. A futuro, se revisarn representa-
ciones en el grupo de desplazamientos en SE(3) para estimar simultneamente posicin y orientacin.

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


2304 M. PUCHETA, C.J. PAZ, M.E. PEREYRA

1. INTRODUCCIN
La representacin cinemtica de orientacin ha sido motivo de investigacin en diversas
reas de la ciencia e ingeniera, cronolgicamente, se puede mencionar sus inicios en astronoma
y fsica con aportes notables entre los siglos XVI y XIX (G. Cardano, L. Euler, W.R. Hamilton,
W.K. Clifford, M.Chasles, A. Cayley, M. O. Rodrigues y C.F. Gauss (Altmann, 1986; Corke,
2011), y ms tarde se aplicaron en navegacin y control de vehculos areos (Stevens y Lewis,
1992; Sidi, 1997; Phillips y Hailey, 2001), en cinemtica terica (Bottema y Roth, 1979; Mc-
Carthy, 1990), en mecnica computacional de slidos y mecanismos flexibles (Geradin y Car-
dona, 2001), en visin, animacin computada y realidad virtual (Kuipers, 1994; Ma et al., 2010),
en robtica (Murray et al., 1994), y en control de vehculos no tripulados (Corke, 2011), entre
otras aplicaciones.
Las diferentes representaciones de orientacin conducen a conjuntos mnimos o redundantes
(con el apropiado nmero de restricciones), a diferentes situaciones para corregir singularidades
o mltiples soluciones de inversin, a ventajas en el lgebra y a ventajas computacionales en la
integracin de las ecuaciones diferenciales del movimiento en las cuales participan.
En este trabajo, se revisan las representaciones con el objetivo de determinar cul es la ms
adecuada para ser utilizada en ecuaciones de estimacin de orientacin, con aplicacin a un
vehculo areo no tripulado en cuyo sistema de control se desea fusionar seales obtenidas de
orgenes diversos (girscopo, acelermetro, magnetmetro y procesamiento de imgenes) para
obtener una estimacin mejor que las estimaciones individuales (Aragus et al., 2013; Paz et al.,
2013, 2014). Como resultado del estudio, se elige la representacin de cuaternin unitario como
la ms conveniente, bajo el criterio de simplicidad del lgebra y de la eficiencia computacional.
El trabajo se estructura como sigue: en la Seccin 2 se describen operadores de rotacin y
diferentes parametrizaciones, cuyas singularidades se resmen en la Subseccin 2.3.6, y poste-
riormente, se introducen a los cuaterniones unitarios en la Subseccin 2.4. En la Seccin 3, se
describen las ecuaciones de velocidad en las diferentes representaciones. La teora anterior se
aplica en la Seccin 4, para escribir las ecuaciones de filtros Bayersianos de estimaciones de
actitud. En la Seccin 6 se describen las principales aportes y trabajos a futuro.

2. REVISION DE OPERADORES DE ROTACION Y PARAMETRIZACIONES


En este trabajo se muestran las derivaciones de operadores de rotacin utilizados para des-
cribir el movimiento esfrico de un cuerpo rgido, teniendo en cuenta que existe una diferencia
con el cambio de coordenadas. Si bien, la diferencia es sutil, es de gran importancia. Cuando
el inters es describir la orientacin de un cuerpo rgido en el marco inercial, se utilizar el
operador de rotacin, esto es lo ms comn en sistemas multicuerpos, mecnica de slidos y
mecanismos para describir matricialmente el movimiento esfrico.
En esta seccin se muestran las formas de obtener las matrices de operadores de rotacin
disponibles en la literatura: Bottema y Roth (1979), McCarthy (1990), Geradin y Cardona
(2001, Caps. 3 y 4) y Trainelli (2002). Por otro lado, en aplicaciones aeronuticas, espaciales
y, en general, en Sistemas de Navegacin Inercial (SNI), es muy comn tener informacin
(adquirida con acelermetros, girscopos, magnetmetros, etc.) medida en terna del vehculo
que se debe llevar al sistema fijo mediante un cambio de coordenadas, esta diferencia se aclarar
al finalizar esta seccin.
Para describir el movimiento esfrico de un cuerpo rgido se considera una terna fija al mis-
mo (denominada terna mvil, de cuerpo, material o no inercial), y otra terna fija de referen-
cia denominada absoluta, inercial, o espacial. Aunque el cuerpo rgido puede rotar y adems

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


Mecnica Computacional Vol XXXIII, pgs. 2303-2324 (2014) 2305

trasladarse, para el anlisis de las rotaciones se suponen a los orgenes de las ternas super-
puestos.
Para producir el cambio de una terna a otra se recurre matemticamente a una operacin
matricial que se demuestra que debe ser la multiplicacin de cada vector base de la terna por
una matriz ortogonal. Siguiendo a Geradin y Cardona (2001, Caps. 3 y 4), los vectores base
de la terna fija se denotan como E1 , E2 , E3 y los de la terna mvil como e1 , e2 , e3 . Un vector
posicin en terna fija X rota a uno x mediante la transformacin

x = RX (1)

La matriz ortogonal multiplicada por un vector produce la rotacin de un vector. Estas ma-
trices tienen un elemento inverso, un elemento identidad y la multiplicacin de dos matrices
ortogonales es una matriz ortogonal, pero en general el producto no es conmutativo. Con es-
tas propiedades las matrices ortogonales forman el grupo Especial de Orientacin SO(3) (del
ingls, Special Orthogonal Group) y el lgebra no conmutativa asociada es denotada so(3).
El tensor ortogonal en el espacio Euclideano se puede representar por una matriz de nueve
componentes para operar con el lgebra matricial. Los vectores de las columnas de la matriz
de rotacin son las coordenadas de los vectores de la terna mvil expresados en la terna fija, o
bien, son los vectores base de la terna fija luego de la transformacin de rotacin, ver Fig. (1).
La aplicacin de un tensor ortogonal a un vector posicin, preserva la longitud de un vector y
E3 e3

f n
r3
r1 E2
e1 r2
e2
E1
Figura 1: Interpretacin del significado de las columnas de la matriz de rotacin (adaptado de Ma et al. (2010))

para dos direcciones fijas al cuerpo, el ngulo entre las mismas tambin se preserva luego de la
transformacin. De aqu se deriva el requerimiento que debe cumplir una matriz ortogonal

xT x = (RX)T (RX) = X T (RT R)X = X T X RT R = I RT = R1 (2)

Los vectores base de la terna espacial, E1 , E2 , E3 , forman un conjunto ortogonal derecho


cuyo producto mixto es 1. La aplicacin de la matriz de rotacin debe preservar ortogonalidad y
ser derecho tambin. Esto implica que la matriz de rotacin tiene determinante 1 y es ortogonal
propia. Esto se muestra considerando que la terna espacial, y respectivamente, la terna mvil
satisfacen,
Ei Ej = ij E3 = E1 E2 (E1 E2 ) E3 = 1
(3)
ei ej = ij e3 = e1 e2 (e1 e2 ) e3 = 1
es decir, que arreglando a los vectores base de la terna fija y de la mvil como columnas de las
matrices B y A respectivamente, por las Ecs. (3), tendrn determinante 1, luego la matriz de

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


2306 M. PUCHETA, C.J. PAZ, M.E. PEREYRA

rotacin de la Ec. (1) es ortogonal propia,

det(A) = 1 det(B) = 1
(4)
A = RB 1 = det(A) = det(R) det(B) = 1 det(R) = 1,

Ntese que tomando determinante a la definicin RT R = I obtendramos det(RT ) det(R) =


det(I) = 1 que nos indica que det(RT ) = 1, en donde las matrices ortogonales con determi-
nante 1 son reflexiones.
Para representar tres grados de libertad de rotacin, en las nueve componentes de la matriz
de rotacin existen seis restricciones complementarias. Adems, es fcil probar que la matriz
de rotacin est compuesta por los cosenos directores de los vectores base de las ternas que
transforma,

E1 e1 E1 e2 E1 e3 cos(11 ) cos(12 ) cos(13 )
R = E2 e1 E2 e2 E2 e3 = cos(21 ) cos(22 ) cos(23 )
E3 e1 E3 e2 E3 e3 cos(31 ) cos(32 ) cos(33 )
(5)
r11 r12 r13
= r21 r22 r23 .
r31 r32 r33

Las seis restricciones complementarias, consisten de que los vectores columna son unitarios y
las proyecciones entre ellos son nulas,

R = [r1 r2 r3 ] ri rj = ij i, j = 1, 2, 3 i j. (6)

Euler demostr que existe un eje que se preserva fijo en la rotacin. Utilizando lgebra
lineal y la descomposicin espectral de la matriz de rotacin se puede demostrar que el tensor
ortogonal tiene un solo autovalor real de valor unitario 1 = 1 y su autovector real asociado n
define el eje de rotacin, de modo que

Rn = 1 n = n. (7)

Los otros dos autovalores (2 y 3 ) son complejos y sus respectivos autovectores complejos (w
y w ) definen un plano ortogonal al eje de n.

Rw = R(u + iv) = 2 (u + iv) = exp(i)(u + iv)


= (u cos v sin ) + i(u sin v cos ),
(8)
Rw = R(u iv) = 3 (u iv) = exp(i)(u iv)
= (u cos v sin ) i(u sin + v cos ).

A partir de los autovectores complejos se pueden construir dos vectores reales ortogonales

c1 = (w + w )/2
(9)
c2 = i(w w )/2.

que ante la rotacin, permanecen sobre el plano mencionado barriendo un ngulo ,

C1 = Rc1 = c1 cos c2 sin


(10)
C1 = Rc2 = c1 sin + c2 cos .

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


Mecnica Computacional Vol XXXIII, pgs. 2303-2324 (2014) 2307

X f

x
n

Figura 2: Eje n y ngulo de rotacin del movimiento esfrico

El eje y el ngulo rotado forman un par de invariantes de la rotacin (n, ) muy intuitivos
(ver Fig. 2) y permiten construir la matriz de rotacin mediante una gran variedad de expre-
siones. Por otro lado, no configuran un conjunto mnimo, son un sistema de cuatro componentes
ligadas por la condicin de normalidad knk = 1 (de modo que dadas dos componentes n1 y n2
del vector n la tercera queda determinada n3 = (1 n21 n22 )0,5 ).
Utilizando el Teorema de Euler, es oportuno remarcar la relacin entre el operador de rotacin
R y un cambio de coordenadas expresado por la matriz de cambio de base C. Como se ha
mencionado, el operador R(n, ) permite rotar vectores manteniendo fijo el sistema de coor-
denadas; a esta rotacin se la llama rotacin activa (Goldstein et al., 2001). Si dado un vector
expresado en coordenadas en un sistema se requiere convertirlo a otro, el problema es un cam-
bio de coordenadas. En la prctica, se necesita expresar un vector fsico en coordenadas de
ternas diferentes, por ejemplo, en una terna inercial I y en una terna de cuerpo B, o en ms
ternas segn convenga, manteniendo el vector invariante. La rotacin del marco coordenado se
la considera una rotacin pasiva. La relacin entre el operador de rotacin es tal que la matriz
R(n, ) al multiplicar por izquierda a un vector, lo gira en un ngulo alrededor del eje n,
y esta matriz tiene las mismas componentes que la matriz de cambio de coordenadas que est
girada un ngulo con respecto a la terna de origen, es decir, existe la correspondencia

R(n, ) = C(n, )B I B T
I = C(n, )B = [C(n, )I ] . (11)

Por ejemplo, un vehculo areo tiene una actitud dada por un conjunto de ngulos de Euler
equivalentes a rotar el vehculo desde la orientacin alineada con la terna inercial a aquella ac-
tual, mediante el operador R(n, ). Luego, el vector de empuje tB = [T 0 0]T expresado en
coordenadas de terna del vehculo B puede expresarse en terna inercial como tI = C(n, )IB tB ,
, utilizando su actitud, como tI = R(n, )tB .
A continuacin se repasan mtodos alternativos a la matriz de cosenos directores Ec. ( 5)
para generar la matrices correspondientes a distintos operadores de rotacin.

2.1. Secuencia de tres rotaciones sucesivas


La matriz de rotacin se puede expresar en trminos de tres ngulos independientes, que son
los ngulos de rotacin alrededor de tres ejes ortogonales, en una secuencia de rotaciones suce-
sivas con la restriccin de que no haya repeticin consecutiva del mismo eje. Esta restriccin
conduce a 12 combinaciones de secuencias de rotaciones, y se debe adoptar una convencin.
Por ejemplo, la secuencia x y z es utilizada en aeronutica, y la secuencia con repeticin de

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


2308 M. PUCHETA, C.J. PAZ, M.E. PEREYRA

ejes del tipo z xz es usada en fsica y en mecnica orbital. Con la secuencia de rotaciones se
obtienen las expresiones para las matrices ortogonales 3 3 que multiplicadas permiten obtener
la matriz de rotacin. El conjunto de parmetros es mnimo ya que coincide con el nmero de
grados de libertad a representar.
Una terna en posicin de referencia es girada un ngulo alrededor del eje x, un ngulo
alrededor del eje y 0 y finalmente un ngulo alrededor del eje z 00 , se expresa como el producto
de matrices ortogonales

R(, , ) = Rz00 ()Ry0 ()Rx () = C(, , )IB



cos sin 0 cos 0 sin 1 0 0
= sin cos 0
0 1 0 0 cos sin
0 0 1 sin 0 cos 0 sin cos

cos cos cos sin sin cos sin
sin sin + cos cos sin
cos sin sin cos sin .
= cos sin cos cos + sin sin sin
sin cos sin cos cos
(12)
De modo que un punto del cuerpo representado por el vector X en la terna de referencia, es
transformado a su posicin actual como

x = R(, , )X = Rz00 ()Ry0 ()Rx ()X (13)

Esta secuencia es tambin conocida como la secuencia de ngulos de Tait-Bryan, o de rolido,


cabeceo y guiada o rumbo (en ingls, roll, pitch y yaw).
En la transformacin inversa, se rota a un vector de su posicin actual a la de referencia, o en
trminos de cambio de coordenadas, se expresa un vector en coordenadas de terna de inercial
en trminos de la terna de cuerpo como

X = R(, , )T x = RX 00 ()T RY 0 ()T RZ ()T x (14)

donde la matriz de rotacin se obtiene como


R(, , )T = RX 00 ()T RY 0 ()T RZ ()T = C(, , )B
I

1 0 0 cos 0 sin cos sin 0
= 0 cos sin
0 1 0 sin cos 0
0 sin cos sin 0 cos 0 0 1

cos cos cos sin sin
= cos sin sin cos sin cos cos + sin sin sin cos sin .
sin sin + cos cos sin cos sin sin cos sin cos cos
(15)
en donde debe tenerse cuidado en la convencin adoptada ya que los ngulos reciben igual
nombre pero las transformaciones son secuencias de giros izquierdos de alrededor del eje Z,
de alrededor del eje Y 0 y de alrededor del eje X 00 , resultando en la matriz de la Ec. (15) que
es la transpuesta de la Ec. (12).
La secuencia de un segundo grupo es la que repite eje de rotacin, y los ngulos son los
denominados ngulos de Euler, ver Fig. (3) y transforman a un vector como

x = R(, , )X = Rz00 ()Rx0 ()Rz ()X. (16)

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


Mecnica Computacional Vol XXXIII, pgs. 2303-2324 (2014) 2309

z=z'
q y''
Y
Z=z''

y
y'
f y
x
x'=x''

Figura 3: Ejemplo de rotacin de una terna en sus ngulos de Euler

La terna de coincidente con la inercial es girada alrededor un ngulo alrededor del eje z,
un ngulo alrededor del eje x0 y finalmente un ngulo alrededor del eje z 00 , se expresa como
el producto de matrices ortogonales

R(, , ) = Rz00 ()Rx0 ()Rz () = C(, , )IB



cos sin 0 1 0 0 cos sin 0
= sin cos 0 0 cos sin sin cos 0
0 0 1 0 sin cos 0 0 1

cos cos cos sin sin cos sin cos cos sin sin sin
= cos sin + cos cos sin cos cos cos sin sin cos sin ,
sin sin cos sin cos
(17)
I
de modo que esta matriz expresa tambin el cambio de coordenadas C(, , )B de la terna de
cuerpo a terna inercial (Goldstein et al., 2001).

2.2. Otros operadores de rotacin en forma de matrices 3 3


Los vectores posicin antes de la rotacin X y despus de la rotacin x mostrados en la
Fig. (4) se pueden descomponer en la direccin del eje de rotacin n y en sus proyecciones
Y = Pn X e y = Pn x sobre el plano ortogonal a n (donde el operador de proyeccin es
Pn = I n n, y el smbolo indica el producto tensorial o externo),

X = (I Pn )X + Y
(18)
x = (I Pn )x + y

Luego, se utiliza el hecho de que las proyecciones sobre n son invariantes lineales ante la
rotacin
(I Pn )X = (I Pn )x (19)
y que las proyecciones sobre el plano normal (ver Fig. 4) preservan longitud y satisfacen si-

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


2310 M. PUCHETA, C.J. PAZ, M.E. PEREYRA

Y
X f y

X
Pn )
x

(I-
n

Figura 4: Descomposicin de los vectores actual X y rotado x como suma de vectores en la direccin del eje
rotacin y vectores proyectados sobre el plano perpendicular al eje de rotacin

multneamente
Y y = kY kkykn sin = kY k2 n sin
(20)
Y y = kY kkyk cos = kY k2 cos ,
para demostrar (Geradin y Cardona, 2001) que el operador de rotacin toma la forma denomi-
nada Frmula de rotacin de Rodrigues,
R = I33 cos() + (1 cos )n n + n sin (21)
donde n = spin(n) es la matriz antisimtrica que transforma linealmente a un vector obte-
niendo el mismo resultado que con el producto vectorial na = n a, y la operacin de
transformacin que toma el vector axial de una matriz es n = vect(n).
La frmula de Rodrigues (21) combinada con la descomposicin espectral y propiedades del
lgebra tensorial, permiten obtener fcilmente los invariantes lineales
tr(R) = 1 + 2 + 3 = 1 + 2 cos
(22)
vect(R) = n sin
Derivando a la Ec.(1) miembro a miembro con respecto a , y usando la Ec.(21), se puede
plantear la ecuacin diferencial:
dx
nx = 0 con x(0) = X (23)
d
cuya solucin es
x = exp(n)X (24)
donde
R = exp(n) (25)
otorgando al operador de rotacin su forma ms compacta posible en funcin de sus invariantes.

2.3. Parametrizaciones
2.3.1. Vector de rotacin cartesiano
Deriva de considerar un vector con direccin coincidente con el eje de Euler y de magnitud
igual al ngulo rotado , y la matriz de rotacin puede obtenerse del mapeo exponencial de la
Ec. (25),
= n R = exp( ), (26)

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


Mecnica Computacional Vol XXXIII, pgs. 2303-2324 (2014) 2311

o en su forma trigonomtrica
sin 1 cos
R=I+ + . (27)
2

2.3.2. Parametrizacin de Rodrigues


Deriva de considerar un vector b con direccin coincidente con el eje de Euler y de magnitud
tan(/2).
b = tan(/2)n. (28)
La demostracin proviene de utilizar la frmula de Cayley de la matriz ortogonal y geomtri-
camente de las propiedades de ortogonalidad que tienen las diagonales f y g del romboide que
tiene por lados el vector antes X y despus de la transformacin x; ver Fig. (5).

X
x-X x+
X

X*
f/2
f* x*
g*

Figura 5: Construccin geomtrica utilizada para derivar la Frmula de Cayley correspondiente a la rotacin ilustra-
da previamente en las Figs. (2) y (4)

La condicin de preservacin de distancia ante la transformacin es que resulte nula la di-


ferencia de cuadrados de estos dos vectores, y esto equivale tambin a la proyeccin nula (u
ortogonalidad) de las diagonales
x x X X = (x X) (x + X) = f g = 0. (29)
De la diagonal mayor g = x + X = (R + I)X se puede despejar el X = (R + I)1 g y
sustituir en la expresin homloga de la diagonal menor f = x X = (R I)X, obteniendo
la relacin entre las diagonales
g = (R + I)1 (R I)f . (30)
Sustituyendo g de la Ec. (30) en g de la Ec. (29) se obtiene
f g = f ((R + I)1 (R I) f ) = f (B f ) = 0, (31)
y para que esta forma cuadrtica se anule, necesariamente B = (R + I)1 (R I) debe ser
antisimtrica.

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


2312 M. PUCHETA, C.J. PAZ, M.E. PEREYRA

La matriz de rotacin puede expresarse en funcin de esta matriz antisimtrica por medio de
la llamada Frmula de Cayley
R = (I B)1 (I B) (32)
El vector asociado a la matriz B = b es el Vector de Rodrigues. Su magnitud se puede obtener
de la relacin entre las proyecciones del romboide y sus diagonales sobre el plano normal al eje
de rotacin. En la Fig. (5), se muestra que f y g son las diagonales proyectadas, se cumple
que f = Bg = b g , luego, las magnitudes de este producto satisfacen
kf k = kbkkg k, (33)
adems, del tringulo rectngulo formado por las semidiagonales f /2 y g /2 se obtiene
tan(/2) = kg k/kf k, (34)
que reemplazada en la anterior permite obtener la magnitud del Vector de Rodrigues
kbk = tan(/2). (35)
La matriz de rotacin puede expresarse por la frmula de Cayley (32) o bien reducirse a
2
R=I+ (b + bb)
1 + kbk2

1 + b21 b22 b23 2(b1 b2 b3 ) 2(b1 b3 + b2 ) (36)
1
= 2(b1 b2 + b3 ) 1 b21 + b22 b23 2(b2 b3 b1 )
1 + b1 + b22 + b23
2
2(b1 b3 b2 ) 2(b2 b3 + b1 ) 1 b21 b22 + b23

2.3.3. Parmetros de Euler


Deriva de considerar un parmetro e0 = cos(/2) y tres parmetros formando un vector e
con direccin coincidente con el eje de Euler y de magnitud sin(/2).
[e0 e] = [e0 e1 e2 e3 ] = [cos(/2) sin(/2)nx sin(/2)ny sin(/2)nz ] (37)
los parmetros tienen dominio 1 ei 1 y estn sujetos a la restriccin

e20 + e21 + e22 + e23 = 1 (38)


La forma del operador de rotacin es una expresin cuadrtica
R = (2e20 1)I + 2e e + 2e0 e (39)
o bien, puede obtenerse del producto de dos matrices 4 3
H = [e e0 I + e]
(40)
G = [e e0 I e]
que son expresiones lineales de los parmetros de Euler
R = HGT = [e e0 I + e][e e0 I e]T . (41)
Estos parmetros estn relacionados al vector de Rodrigues por
1
b= e (42)
e0
y adems estn relacionados al cuaternin unitario, por eso al cuaternin unitario se lo denomina
tambin Formulacin de cuaterniones de Euler-Rodrigues.

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


Mecnica Computacional Vol XXXIII, pgs. 2303-2324 (2014) 2313

2.3.4. Parmetros del Vector de Rotacin Conforme (VRC)


Se obtiene a travs de una transformacin conforme aplicada a los parmetros de Euler.
4ei 1
ci = (i = 0, 1, 2, 3) c = 4n c0 = [16 kck2 ] (43)
1 + e0 4 8
El operador de rotacin resulta en
1
R= [(c2 + 8c0 16)I + 2c c + 2c0 c] = F 2 (44)
(4 c0 )2 0

donde F se obtiene reemplazando en la Frmula de Rodrigues Ec. (21) a b = 14 c y separa a la


rotacin en dos rotaciones iguales de amplitud /2.

2.3.5. Parmetros lineales


Se definen en forma similar a los parmetros de Euler pero consideran el giro completo, hay
un parmetro s0 = cos() y tres parmetros formando un vector s con direccin coincidente
con el eje de Euler y de magnitud sin(),

[s0 s] = [s0 s1 s2 s3 ] = [cos() sin()nx sin()ny sin()nz ], (45)

donde los parmetros tienen dominio 1 si 1 y estn sujetos a la restriccin

s20 + ksk2 = 1. (46)

La matriz de rotacin se expresa como


1
R = s0 I + s s + s = F 2 , (47)
(1 + s0 )

que si bien es ms simple que las vistas anteriormente, posee un clara singularidad cuando
= .
Para una completa generacin y clasificacin de las parametrizaciones vectoriales mostradas
arriba mediante el empleo de funciones generadoras, referimos al lector al trabajo de Trainelli
(2002).

2.3.6. Resumen de singularidades


Utilizar la forma de ngulos de Tait-Bryan para representar la orientacin de un vehculo
areo, por ejemplo de un cuadricptero tiene principalmente dos inconvenientes: el primero es
el elevado nmero de productos y sumas de funciones trigonomtricas que se emplean slo para
formar la matriz de rotacin de Ec. (16 productos, 4 sumas, 3 cosenos y 3 senos). El segundo
y ms importante, es el efecto conocido como gimbal lock. Este fenmeno aparece si se rota
alrededor del eje y 0 un ngulo = /2, es decir, que el vehculo est en posicin vertical con
la nariz hacia arriba. En este caso, los planos de rotacin alrededor del eje z y el eje x00 son
coincidentes y cualquier cambio en podra ser anulado con una variacin de lo que hace
imposible su compensacin.

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


2314 M. PUCHETA, C.J. PAZ, M.E. PEREYRA

Formalmente, si en la Ec.(12) se hace = /2 resultar que cos = 0 y sin = 1 quedando



0 cos sin cos sin sin sin + cos cos

R(, , ) = 0 cos cos + sin sin cos sin cos sin . (48)
2
1 0 0

Usando algunas identidades trigonomtricas se puede simplificar la ecuacin (48) an ms


para lograr

0 sen( ) cos( )

R(, , ) = 0 cos( ) sen( ) , (49)
2
1 0 0

en donde se evidencia la prdida de un grado de libertad, causando que existan distintas combi-
naciones de y para obtener la misma rotacin c, es decir, = c. Lo mismo ocurre para
los ngulos de Euler, evaluando la expresin de la Ec. (17) con = 0 ya que existirn multiples
soluciones para + = c. En cualquier forma de los ngulos de Euler es imposible evitar
tener una singularidad, esto se debe a que son una parametrizacin local del SO(3) ya que son
adecuados solamente dentro de una porcin del espacio.
Con respecto a las parametrizaciones, el vector de rotacin Cartesiano tiene una fcil in-
terpretacin geomtrica y no posee singularidades matemticas, el costo computacional de la
evaluacin de funciones trascendentes en la forma exponencial o trigonomtrica puede reducirse
si usa la expansin en series truncada, muy til para realizar linealizaciones y emplear ngu-
los pequeos. En la representacin con parmetros de Rodrigues, la obtencin de la matriz de
rotacin requiere de una evaluacin de funcin trigonomtrica para obtener b y luego la obten-
cin del operador de rotacin es algebraica. Sin embargo, en la inversin para obtener b desde
R existe una singularidad cuando = . Cuando el ngulo rotado es cero, existen mltiples
direcciones posibles para n en la definicin de b, pero esta singularidad aparente se salva
considerando que
lm R(n) = lm R(tan(/2)n) = I. (50)
0 0

Tanto en la parametrizacin con el vector de rotacin Cartesiano como en la de Rodrigues, se


interpreta claramente que hay tres parmetros independientes. En cambio, en la representacin
en parmetros de Euler los cuatro parmetros tienen un rol similar, son cantidades algebraicas
puras vinculadas por la restriccin (38). Su inversin desde R (que tiene la ventaja de ser
cuadrtica en los parmetros) no posee singularidades, requiere una simple bsqueda del par-
metro mayor para luego obtener los otros en funcin de ste mediante ecuaciones algebraicas
de equivalencia. Como veremos en la prxima seccin la representacin en parmetros de Euler
es homeomrfica con la representacin en cuaterniones unitarios.
El Vector de Rotacin Conforme no produce singularidades en la inversin como lo hacen
los parmetros de Rodrigues, agregando pocos trminos a la frmula de obtencin de R y son
numricamente convenientes para integracin con la regla del punto medio (Geradin y Cardona,
2001). Los Parmetros Lineales tambin admiten la descomposicin R = F 2 , ms simple an
que el VRC, pero deben usarse cuidadosamente en el rango no singular del ngulo de rotacin.

2.4. Cuaterniones y matrices 4 4


Los nmeros complejos permiten realizar rotaciones en el plano. Los cuaterniones son n-
meros hipercomplejos que con la restricin de ser unitarios permiten, de manera totalmente

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


Mecnica Computacional Vol XXXIII, pgs. 2303-2324 (2014) 2315

diferente, conducir al mismo concepto de los parmetros de Euler para producir la rotacin
(McCarthy, 1990; Geradin y Cardona, 2001). Un cuaternin se define como el nmero comple-
jo de 4 dimensiones
q = q0 + q1 i + q2 j + q3 k (51)
donde q0 es la parte escalar real, q = q1 i + q2 j + q3 k es la parte vectorial compleja, y los
nmeros imaginarios i,j, y k satisfacen las siguientes reglas de multiplicacin
i2 = j 2 = k 2 = ijk = 1
jk = kj = i
ki = ik = j (52)
ij = ji = k.

Con estas reglas, el producto de cuaterniones obedece a


r = pq = p0 q0 p q + p0 q + q0 p + p q. (53)
el cual es no conmutativo debido a la presencia del producto vectorial en el ltimo trmino.
El cuaternin conjugado tiene invertido el signo de la parte vectorial
q = q0 q1 i q2 j q3 k = q0 q (54)
y permite obtener mediante el producto con el cuaternin original, el cuadrado de la norma, que
se calcula como
kqk2 = q q = q02 + q q (55)
Para representar rotaciones finitas se emplean cuaterniones unitarios definidos como
e = e0 + e / kek = 1 (56)
y cuaterniones vectoriales o puros (con parte escalar nula) para representar puntos, por ejemplo,
de coordenada v
v = 0 + v verificando v + v = 0 (57)
De este modo, dado el cuaternin unitario e, la rotacin de un punto X en el espacio tridimen-
sional a su nueva posicin x est dada por la secuencia de productos
x = eX e (58)
y la inversa de la rotacin por
X = e xe (59)
La composicin de dos rotaciones sucesivas e1 y e2
x1 = e1 X e1
x2 = e2 (e1 X e1 )e2
(60)
x2 = (e2 e1 )X(e1 e2 )
x = eX e / e = e2 e1

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


2316 M. PUCHETA, C.J. PAZ, M.E. PEREYRA

La equivalencia con los parmetros de Euler se obtiene de poner al cuaternin unitario en la


forma

e = cos + n sin / knk = 1, (61)

con < (Kuipers, 1994, Cap. 5).


Luego la rotacin queda expresada como

x = 0 + (cos(2)I + (1 cos(2))n n + sin(2)n)X (62)

que claramente es la aplicacin de la frmula de Rodrigues (21) tomando = /2, por lo que
la matriz de rotacin es
2
e0 + e21 e22 e23 2(e1 e2 + e3 e0 ) 2(e1 e3 e2 e0 )
R = 2(e1 e2 e3 e0 ) e20 e21 + e22 e23 2(e2 e3 + e1 e0 ) (63)
2(e1 e3 + e2 e0 ) 2(e2 e3 e1 e0 ) e20 e21 e22 + e23
Esta equivalencia se deduce con mayor claridad utilizando la forma matricial del producto
de cuaterniones, en forma de matrices 4 4 y poniendo al cuaternin como vector el columna
q = [q0 q1 q2 q3 ]T .

a = pq a = Ap q = Bq p (64)

donde las matrices ortogonales 4 4 tienen la forma


   
p0 pT q0 q T
Ap = y Bq = . (65)
p p0 I + p q q0 I + q
donde de las partes vectoriales de los cuaterniones se obtienen las matrices antisimtricas p =
spin(p) y q = spin(q).
Con estas definiciones, la expresin matricial equivalente de la rotacin es

x = eX e x = Ae BeT X (66)

donde
 
1 T
Ae BeT = con R33 = (2e20 1)I + 2(e e + e0 e) (67)
R
que se expande en componentes de cuaternin orientacin como la Ec.(63).
Cabe destacar que la composicin de dos rotaciones como producto de dos matrices del tipo
R33 requiere de 27 multiplicaciones y 18 sumas, mientras que en forma de cuaterniones, la
Ec. (60) en la forma matricial de la Ec. (64), requiere 16 multiplicaciones y 12 sumas.

3. EXPRESIONES DE LA VELOCIDAD DE ROTACIN


Asumiendo la rotacin de los puntos de un cuerpo rgido alrededor de un punto fijo gober-
nada por la ley que transforma a cada punto P como

x(t)P = R(t)X(t)P . (68)

La derivada miembro a miembro de la propiedad de la matriz ortogonal RRT = I resulta en


d
(RRT ) = RRT + RRT = RRT + (RRT )T = RRT = (RRT )T (69)
dt

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


Mecnica Computacional Vol XXXIII, pgs. 2303-2324 (2014) 2317

y expresa que la matriz RRT es antisimtrica, y se la define como

= RRT donde = vect(RRT ) (70)

La velocidad de un punto P se obtiene derivando la Ec. (68), reemplazando a XP que es inva-


riante en el tiempo por RT xP , y considerando la definicin (70)

vP = xP = RXP = R(RT xP ) = xP = xP . (71)

Para obtener la velocidad material del punto P se procede de igual modo, realizando la
derivada dtd (RT R) = 0, en donde se define

= RRT con = vect(RRT ) (72)

Con esta definicin, la velocidad material de traslacin se expresa mediante la transformacin


de la velocidad espacial a coordenadas materiales

VP = RT vP = RT (RXP ) = XP = XP (73)

Despejando a R de la Ec. (72) se obtienen las denominadas ecuaciones cinemticas de


Poisson
R = R (74)
tambin conocida como ecuacin diferencial strap-down de navegacin ya que los elementos de
las matrices y R se obtienen por integracin de mediciones atrapadas en el vehculo (acele-
rmetros y girscopos), y se bajan a tierra para determinar la velocidad de rotacin espacial R,
es decir, la tasa de cambio temporal de la matriz de cosenos directores. Esta expresin consiste
de nueve ecuaciones diferenciales sujeta a seis restricciones y se conoce que trabajar con estas
ecuaciones produce prdida de ortogonalidad de la matriz de rotacin (Phillips y Hailey, 2001).

3.1. Velocidad angular en ngulos de Euler


El conjunto mnimo de ecuaciones diferenciales se obtiene en trminos de ngulos de Euler,
que no pueden considerarse vectores. Sin embargo, sus derivadas pueden arreglarse en forma
vectorial para facilitar su integracin. Las derivadas de los ngulos de Euler toman la expresin

sin / sin cos / sin 0 p
= cos sin 0 q (75)
cos sin / sin cos cos / sin 1 r
y los de Bryan la expresin

1 sin sin / cos (cos sin )/ cos p
= 0 cos sin q (76)
0 sin / cos cos / cos r

donde B = pe1 + qe2 + re3 es el vector de velocidad angular expresado en terna de cuerpo.
Pero se puede notar que las matrices tienen denominadores que hacen singulares entradas en la
primer y ltima fila, en casos en que sin = 0 para ngulos de Euler y cuando cos = 0 en los
de Bryan. Esto complica a la integracin y, en general, se evita emplearlas.

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


2318 M. PUCHETA, C.J. PAZ, M.E. PEREYRA

3.2. Velocidad angular en diferentes parametrizaciones


En otras representaciones, conviene representar a la velocidad en trminos del operador tan-
gente que adquiere formas diversas. Como procedimiento (Geradin y Cardona, 2001), se tiene
como punto de referencia a las expresiones de velocidad angular, espacial y material, en trmi-
nos de los invariantes, el eje de Euler n y el ngulo de rotacin , y sus derivadas

= M T n + n
(77)
= M n + n donde M = sin I (1 cos )n

Luego, por cada parametrizacin a, se obtienen las expresiones de n(a, a) y (a, a), se reem-
plazan en las Ecs.(77) para identificar al operador tangente T (a).
Se resumen a continuacin las expresiones de algunos operadores

1. Vector de rotacin Cartesiano:


   
cos 1 sin
T ( ) = I + + 1
2 2 (78)
( ) = T T ( ) y ( ) = T ( )

Debe salvarse la singularidad aparente cuando el ngulo de rotacin es nulo, es decir,


debe utilizarse lmk k0 T ( ) = I.

2. Parmetros de Rodrgues:
2
T (b) = (I + b)
1 + kbk2 (79)
T
(b) = T (b)b y (b) = T (b)b

Ntese que el operador tangente es ms simple que el anterior.

3. Parmetros de Euler: Denominando al conjunto de parmetros como p = [e0 e], sus


derivadas se pueden desacoplar en forma lineal utilizando las matrices 4 3, H y G,
presentadas en las Ecs. (40), de modo que las velocidades adquieren las expresiones

= 2H(p)p
(80)
= 2G(p)p

que coinciden con la regla de multiplicacin del cuaternin que se ver en la siguiente
subseccin.

4. Parmetros lineales: Tiene una de las expresiones ms simples


 
1 ss
T (s) = I + + s
1 + s0 s0 (81)
(s) = T T (s)s y (s) = T (s)s

aunque pierde su atractivo por sus singularidades en el operador de rotacin.

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


Mecnica Computacional Vol XXXIII, pgs. 2303-2324 (2014) 2319

3.3. Expresin strap-down de la velocidad en cuaterniones


Asumiendo X constante, derivando con respecto al tiempo la expresin x = eX e , susti-
tuyendo a X en la derivada, y utilizando la norma de e se obtiene

x = e X e + eX e
x e)e + e(e xe)e
= e(e
|{z} |{z} (82)
1 1
x + xee
= ee

Derivando con respecto al tiempo la expresin kek = ee = 1 se obtiene


+ ee = ee
ee + (ee
) = 0 (83)

tiene parte escalar nula y es un cuaternin vectorial puro


que indica que el vector ee

= 0 +
ee (84)
2 2
que se reemplaza en la Ec. (82) para obtener
1 1
x = (x + x ) = (x x)
2 2 (85)
1
0 + ( x x ) x = v = x
2
donde el vector de velocidad angular espacial se obtiene de realizar el producto del lado izquier-
do de la Ec. (84) resultando en la expresin

= 2(e0 e e0 e + e e) (86)

Con un procedimiento idntico, se define


e e = 0+ (87)
2 2
y la velocidad material de traslacin se puede expresar como V = X y la velocidad
material angular como

= 2(e0 e e0 e e e). (88)

Las expresiones matriciales de (84) y (87) se escriben como

= Ae e = AT e = 2AT e
ee e e
2
(89)

e e = Be e = BeT e = 2BeT e
2
La parte vectorial de estas expresiones forman los vectores de velocidad angular

= 2H e con H = [e e0 I + e]
(90)
= 2Ge con G = [e e0 I e]

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


2320 M. PUCHETA, C.J. PAZ, M.E. PEREYRA

De estas expresiones (89) se pueden despejar la ecuacin de velocidad del cuaternin en


forma espacial
1 1
e = e e = A e (91)
2 2
y material
1 1
e = e e = B e (92)
2 2
Ntese que las matrices intervinientes tienen formas algebraicas muy simples.

4. ESTIMACIN EFICIENTE DE LA ORIENTACIN


La estimacin de orientacin es fundamental para el vuelo controlado de cualquier tipo de
vehculo areo, ya sea para poder ir de un punto a otro, realizar maniobras de evasin o simple-
mente mantenerse en una trayectoria estable. En particular, para el vuelo de los cuadricpteros
(Aragus et al., 2013), los cuales pueden mantenerse en vuelo estacionario en un lugar deter-
minado o realizar maniobras agresivas, se necesita una estimacin no slo precisa sino tambin
de gran velocidad. Estos requerimientos se vuelven ms crticos cuando los algoritmos para
la determinacin de la orientacin se deben implementar en los procesadores a bordo de los
cuadricpteros, los que en general son de pocos recursos computacionales. Por otro lado, los
sensores disponibles para realizar esta tarea son generalmente girscopos, acelermetros y, en
ocasiones, magnetmetros o cmaras, todos rgidamente acoplados al cuadricptero.
Los girscopos son sensores capaces de medir la velocidad angular del cuerpo al que estn
sujetos. Adems, los girscopos tienen la ventaja de tener bajos niveles de ruido Gaussiano,
sin embargo, se caracterizan por tener una importante tendencia a diverger (en adelante, bias),
lo que provoca que en el proceso de integracin para obtener el ngulo, este ltimo crezca sin
lmites. Por el contrario, los acelermetros tienen valores mucho menores de bias pero niveles
ms elevados de ruido Gaussiano. La determinacin de la orientacin del vehculo en vue-
lo estacionario (o con velocidad constante) puede realizarse mediante los datos provistos por
los acelermetros con un simple anlisis trigonomtrico de los valores de sus componentes,
ya que en estas condiciones slo se detecta el efecto de la gravedad. Esto ltimo tiene como
consecuencia el hecho de necesitar otro sensor para poder estimar el ngulo de guiada. Los
magnetmetros son sensores capaces de determinar la direccin del norte magntico aunque
tienen como defecto su baja tasa de muestreo y gran ruido Gaussiano. En estas condiciones,
surge la necesidad de fusionar estas lecturas con el fin de aprovechar la complementariedad de
estos sensores.
Esta fusin se puede realizar con algoritmos iterativos llamados filtros Bayesianos (Chen,
2003; Paz et al., 2013) los cuales son mtodos probabilsticos que permiten estimar el valor del
estado de un sistema basndose en las ecuaciones que lo modelan
xk = fk (xk1 , wk1 ) (93)
yk = hk (xk , vk ) (94)
donde xk es el vector de estado y donde yk es el vector de observacin, ambos al tiempo
discreto k, wk1 y vk son ruidos Gaussianos con media cero. En la Ec. (93), fk () es la funcin
de transicin del estado, la cual vincula el estado actual del sistema teniendo en cuenta el estado
anterior. En la Ec. (94), hk es la funcin de medicin que relaciona el vector de estado xk con
la observacin yk .

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


Mecnica Computacional Vol XXXIII, pgs. 2303-2324 (2014) 2321

En particular, el filtro extendido de Kalman (Munguia y Grau, 2011) es un algoritmo iterativo


til para estimar estados no observables cuando el modelo que se utiliza es no lineal (Daum,
2005). El algoritmo consiste de dos etapas llamadas prediccin y actualizacin de la medicin.
En la prediccin se obtiene una estimacin a priori del estado xk y su covarianza Pk usando la
media y la covarianza del paso anterior, mediante la ecuacin de proceso del sistema Fk
x
k = Fk xk1 (95)
Pk = Fk Pk1 FkT + Qk1 (96)

donde con sombrero se simboliza con () al valor estimado y con superndice menos () al
valor predicho.
Luego, en la etapa llamada actualizacin de la medicin, con el estado estimado a priori

xk , se realiza una prediccin de la medicin y se compara con la observacin del sistema para
formar la innovacin
yk = Hk x
k (97)
zk = yk yk (98)
Finalmente, se utiliza la matriz de ganancia de Kalman Kk para actualizar el estado predicho
con la innovacin
Kk = Pk HkT (Hk Pk HkT + Rk )1 (99)
xk = x
k + K k zk (100)
Pk = Pk Kk Hk Pk (101)
obtenindose as la funcin densidad de probabilidad del estado buscada con media xk y cova-
rianza Pk .
Para este trabajo, teniendo en cuenta la aplicacin de estos algoritmos en cuadricpteros,
se implement un filtro extendido de Kalman considerando como estado del sistema xk a su
orientacin, se puede utilizar como modelo de transicin de estado a las ecuaciones cinem-
ticas de un cuerpo expresadas con cuaterniones (Kim y Golnaraghi, 2004) o con ngulos de
Euler (Kang y Park, 2011), por lo que con cada lectura de los girscopos se ejecuta la etapa de
prediccin y usando el modelo cinemtico se predice el desplazamiento del estado. Luego, con
cada lectura de los acelermetros se ejecuta la etapa de actualizacin de la medicin en donde
se corrige el valor estimado de la orientacin basndose en la prediccin del vector gravedad.
Esto se realiza cambiando de coordenadas al vector de gravedad g = [0, 0, g]T a la terna del
cuerpo usando (17) si se usan ngulos de Euler en el estado o (63) si el estado del sistema esta
formado por el cuaternin unitario. De la misma forma, cuando las lecturas del magnetmetro
estn disponibles se puede actualizar la orientacin segn el ngulo de guiada rotando esta vez
al vector correspondiente al Norte magntico m = [N, 0, 0]T .
Por ltimo, cabe remarcar que es posible trabajar con funciones no lineales en las ecuaciones
de proceso u observacin, debido a que las funciones son linealizadas alrededor del estado esti-
mado utilizando los Jacobianos de la funcin. Dadas las Ecs. (93) y (94) con fk y hk funciones
no lineales, los Jacobianos

fk
Fk = (102)
x xk1

hk
Hk = . (103)
x xk1

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


2322 M. PUCHETA, C.J. PAZ, M.E. PEREYRA

resultan ser expresiones algebraicas muy simples, por lo cual nuevamente, se demuestra la con-
veniencia del empleo de cuaterniones unitarios para representar la actitud.

5. RESULTADOS
Las implementaciones de los filtros fueron codificadas en lenguaje de programacin C y
se ejecutaron en un procesador Cortex-M3 para evaluar el tiempo de procesamiento de cada
funcin, ver ms detalles de implementacin en el trabajo de Paz et al. (2014). Para cuantificar el
tiempo demandado cada vez que se ingresa a las funciones, stas ponen en un pin determinado
un valor de tensin representando un 1 lgico, luego, al finalizar la funcin el mismo pin es
puesto a un valor representando un 0 lgico. Una vez que el procesador est en funcionamiento,
por medio de un osciloscopio se puede observar el ancho del pulso generado por cada funcin,
y de esta manera cuantificar el tiempo demandado por el algoritmo.
Dado que las pruebas se realizaron utilizando sensores inerciales en reposo, con valores
alejados de los posibles puntos de indeterminacin (para el caso de ngulos de Euler) y ya que
las ecuaciones aqu planteadas son equivalentes, ambos filtros mostraron idnticos resultados
en cuanto a la precisin de la estimacin.
En lo referido a velocidad de clculo para esta plataforma, se implementaron las funciones de
rotacin (17) y (63) utilizadas en la prediccin de la gravedad para ambos tipos de representa-
ciones. En el laboratorio se observ que la funcin implementada con cuaterniones logra medias
de 172s mientras que la implementada con ngulos de Euler logr una media de 1,632ms. De
esta forma, slo el cambio de representacin a cuaterniones significa un incremento en la ve-
locidad de cmputo de la funcin de prediccin de la gravedad de 10 veces. Esta gran diferencia
se debe a que para determinar el seno o coseno de un ngulo las funciones matemticas imple-
mentadas para sistemas embebidos buscan los valores ms prximos de ngulos en tablas y
luego realizan una aproximacin recursiva para determinar el valor final. Por el contrario, la
representacin de orientacin con cuaterniones slo tiene productos y sumas en su operador de
rotacin, las cuales son operaciones naturales a los procesadores.

6. CONCLUSIONES
En este trabajo se realiz una revisin de las representaciones ms usuales de orientacin
disponibles en literatura moderna y se describieron sus ventajas y desventajas en la cinemtica
de posicin y velocidad. Principalmente, se destac la representacin en parmetros de Euler y
los cuaterniones unitarios como libre de singularidades y computacionalmente conveniente.
Experimentalmente, se observ que la utilizacin de cuaterniones unitarios en estimaciones
con filtros Bayesianos permite grandes incrementos en la velocidad del procesamiento en com-
paracin con los ngulos de Euler (en el rango de ausencia de indeterminaciones). En referen-
cia a la implementacin en un sistema embebido en un UAV, para la estimacin del vector de
gravedad, los tiempos de cmputo se redujeron en aproximadamente 10 veces.
A futuro, se pretende avanzar en las lneas de investigacin desarrolladas en el CIII, con
el estudio de representaciones en el grupo de desplazamientos en SE(3) para: (i) estimar si-
multneamente posicin y orientacin para su empleo en sistemas de navegacin inercial, ya
sea con cuaterniones duales (Wu et al., 2005) o con lgebra Geomtrica (Wu y Wang, 2012);
(ii) incluir conceptos dinmicos del objeto en donde se realizan las mediciones para mejorar
la estimacin (Leishman et al., 2014); (iii) modelar eficientemente el movimiento de cmaras
para localizacin y mapeo (Ma et al., 2010); desarrollar algoritmos de integracin temporal de
mecanismos (Geradin y Cardona, 2001).

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


Mecnica Computacional Vol XXXIII, pgs. 2303-2324 (2014) 2323

AGRADECIMIENTOS
El primer autor agradece el financiamiento del CONICET y ANPCyT (PICT-2013-2894
Modelado Computacional de Sistemas Mecnicos Complejos). Los segundos autores agrade-
cen el financiamiento del programa de becas de investigacin de alumno (M. Pereyra) y doc-
toral (C. Paz) de la Universidad Tecnolgica Nacional y de la ANPCyT (PICT-PRH-2009-0136
Guiado de Vehculos Autnomos usando Fusin de Seales de GPS de Bajo Costo y otros Sen-
sores). Se agradece especialmente la participacin del Dr. G. Aragus y los Ings. D. Gaydou
y G. Prez Paina en el desarrollo colaborativo de filtros en cuaterniones y la construccin del
cuadricptero.

REFERENCIAS
Altmann S.L. Rotations, quaternions, and double groups. Oxford University Press, New York,
1986.
Aragus G., Paz C., Gaydou D., y Prez Paina G. Orientation-estimation fusing a downward-
looking camera and inertial sensors for a hovering UAV. En Proc. 16th International Con-
ference on Advanced Robotics - ICAR2013. 2013. Montevideo, Uruguay.
Bottema O. y Roth B. Theoretical Kinematics. North-Holland Publishing Co., Amsterdam,
1979.
Chen Z. Bayesian filtering: From kalman filters to particle filters, and beyond. Statistics, pginas
169, 2003.
Corke P. Robotics, Vision and Control: Fundamental Algorithms in MATLAB. Springer Tracts
in Advanced Robotics, Volume 73. Springer, Berlin, Germany, 2011.
Daum F. Nonlinear filters: beyond the kalman filter. Aerospace and Electronic Systems Maga-
zine, IEEE, 20(8):5769, 2005.
Geradin M. y Cardona A. Flexible Multibody Dynamics: A Finite Element Approach. John
Wiley & Sons, New York, USA, 2001.
Goldstein H., Poole Jr. C., y Safko J. Classical Mechanics. Addison Wesley, New York, 3
edicin, 2001.
Kang C.W. y Park C.G. Euler angle based attitude estimation avoiding the singularity problem.
Proceedings of the 18th IFAC World Congress, 2011.
Kim A. y Golnaraghi M. A quaternion-based orientation estimation algorithm using an inertial
measurement unit. En Position Location and Navigation Symposium, 2004. PLANS 2004,
pginas 268272. 2004.
Kuipers J.B. Quaternions and rotation sequences: a primer with applications to orbits,
aerospace, and virtual reality. Princeton University Press, Princeton, New Jersey, 1994.
Leishman R., Macdonald J., Beard R., y McLain T. Quadrotors and accelerometers: State
estimation with an improved dynamic model. IEEE Control Systems Magazine, 34(1):2841,
2014.
Ma Y., Soatto S., Koseck J., y Sastry S.S. An Invitation to 3-D Vision: From Images to Geo-
metric Models. Springer, Berlin, 2010.
McCarthy J.M. Introduction to Theoretical Kinematics. The MIT Press, Cambridge, MA, 1990.
Munguia R. y Grau A. Attitude and heading system based on EKF total state configuration.
IEEE International Symposium on Industrial Electronics - ISIE 2011, pginas 21472152,
2011.
Murray R.M., Li Z., y Sastry S.S. A Mathematical Introduction to Robotic Manipulation. CRC
Press, Boca Raton, Florida, 1994.

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar


2324 M. PUCHETA, C.J. PAZ, M.E. PEREYRA

Paz C., Infante G., Bez Carballo J., Daz Bez F., y Cavenio C.D. Implementacin de un filtro
extendido de kalman para la estimacin de la orientacin de un UAV utilizando el estndar
CMSIS. En Proc. V Congreso de Microelectrnica Aplicada - UEA2014. 2014. Instituto
Universitario Aeronutico, Crdoba, Argentina.
Paz C.J., Prez Paina G.F., y Toloza J.H. A comparison of bayesian filters for orientation
estimation. En Proc. XV Reunin de Trabajo en Procesamiento de la Informacin y Control
- RPIC2013. 2013. Univ. Nac. Ro Negro, San Carlos de Bariloche, Ro Negro, Argentina.
Phillips W. y Hailey C. Review of attitude representations used for aircraft kinematics. Journal
of Aircraft, 38(4):718737, 2001.
Sidi M.J. Spacecraft Dynamics and Control, A Practical Engineering Approach. Cambridge
University Press, New York, USA, 1997.
Stevens B.L. y Lewis F.L. Aircraft Control and Simulation. John Wiley & Sons, New York,
USA, 1992.
Trainelli L. The vectorial parameterization of rotation and motion. Informe Tcnico, Politecnico
di Milano, 2002. Report DIA-SR 02-18.
Wu D. y Wang Z. Strapdown inertial navigation system algorithms based on geometric algebra.
Advances in Applied Clifford Algebras, 22(4):11511167, 2012.
Wu Y., Hu X., Hu D., Li T., y Lian J. Strapdown inertial navigation system algorithms based on
dual quaternions. IEEE Trans. on Aerospace and Electronic Systems Magazine, 41(1):110
132, 2005.

Copyright 2014 Asociacin Argentina de Mecnica Computacional http://www.amcaonline.org.ar

Potrebbero piacerti anche