Está en la página 1de 18

Rotaciones, secuencia aeroespacial y cuaterniones.

Una revi-
sión de las relaciones fundamentales
Eduardo Serrano1, Ricardo Oscar Sirne2 y Guillermo La Mura3

Resumen

En este trabajo se presenta un esquema que justifica e interpreta geométricamente


las formulas fundamentales que permiten relacionar los ángulos de Euler, con la
matriz de rotación y el cuaternión para describir la rotación de un cuerpo en el
espacio tridimensional (3D).
Esta revisión de fórmulas logra un nivel de simplicidad y detalle que posibilita
una eficiente implementación computacional a nivel de software o de hardware
programable.
La fundamentación se realiza adoptando los denominados ángulos de Euler para
la secuencia aeroespacial. Con similar razonamiento se la puede desarrollar para
otras secuencias de interés.
Las expresiones son de aplicación en sistemas de posicionamiento y control
automático que utilizan mediciones continuas desde dispositivos tales como
giróscopos, acelerómetros y magnetómetros 3D.

Palabras clave: Ángulos de Euler, secuencia aeroespacial, cuaternión.

1 UNSAM, Escuala Superior Técnica - IUE


2 UBA - Facultad de Ingeniería
3 ECyT UNSAM

Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870 11


E. Serrano, R. O. Sirne y G. La Mura Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...

Abstract

In this paper we propose a methodology for prove and make a geometric


interpretation of the main formulas to relate the Euler’s angles with the rotation
matrix and the corresponding quaternion, to describe the rotation movement of a
body in space of three dimensions (3D).
This review of the formulas includes the simplicity and detail levels to allow efficient
computational design to implementation via software or programmable hardware.
Development is done by adopting the so-called Euler angles for the aerospace
sequence. With similar reasoning it can be prove the corresponding relationships
to other sequences of interest.
The expressions are applicable to positioning systems and automatic
control which use continuous measurements from devices such as gyroscopes,
accelerometers and magnetometers 3D.

Key words: Euler’s angles, aerospace sequence, quaternion.

12 Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870


E. Serrano, R. O. Sirne y G. La Mura Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...

I. Introducción

La estimación de la posición de un objeto rígido que se mueve en el espacio


tridimensional constituye un problema frecuente y de fundamental importancia de
la ingeniería y la tecnología en general. Por ejemplo aeronaves, vehículos terrestres,
antenas y sistemas de posicionamiento incluyendo brazos de robot.
Esta estimación en general se hace a partir de datos medidos por distintos dispositivos
que permiten sensar la posición y el movimiento del cuerpo (Systron, 2011).
Dichos datos, obtenidos desde giróscopos, acelerómetros y magnetómetros 3D
(Kemp et al., 1998; Madgwick, 2010) se deben traducir en una precisa descripción
de la rotación espacial del cuerpo durante su desplazamiento (Sabatini, 2005;
Waldron & Schmiedeler, 2008).
Esta descripción normalmente se realiza mediante la información temporal
expresada en términos de los ángulos de Euler, mediante cuaterniones o matrices
de rotación (Chou,1992; Eberly, 2010; Marins et al., 2009; Kirtley, 2001).
Si bien las fórmulas que relacionan estos elementos son clásicas, su justificación
e interpretación geométrica no es evidente lo cual dificulta su implementación.
Particularmente se dificulta el diseño de algoritmos para la implementación
computacional, combinándola con técnicas matemáticas de filtrado y procesamiento
de los datos en tiempo real (Marins et al., 2009; Sabatini, 2006).
Esto motiva el presente trabajo que apunta a sintetizar, justificar e interpretar
geométricamente las relaciones entre los ángulos de Euler, la matriz de rotación y
el cuaternión asociado a cada rotación.
Los presentes desarrollos se basan en la bibliografía existente, parte de la cual
se detalla en las referencias.
El trabajo está organizado comenzando, en la siguiente sección, por analizar
la rotación relativa de un vector alrededor de otro y justificando la denominada
fórmula de Rodrigues.
En la próxima sección se definen los cuaterniones en forma matricial y se
detallan varias propiedades aritméticas de interés.
A continuación se establecen las relaciones entre cuaterniones y rotaciones,
para culminar en la quinta sección justificando las relaciones entre los ángulos de
Euler, la matriz de rotación y el cuaternión de cada rotación.

Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870 13


Rodrigues.
En la próxima sección se definen los cuaterniones en forma matricial y se detallan
varias propiedades aritméticas de interés.
A continuación se establecen las relaciones entre cuaterniones y rotaciones, para
E. Serrano, R. O. Sirne y G. La Mura Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...
culminar en la quinta sección justificando las relaciones entre los ángulos de Euler, la
matriz de rotación y el cuaternión de cada rotación.

II. Rotación de un vector – fórmula de Rodrigues


2. Rotación de un vector – fórmula de Rodrigues
(
Se plantea en ℜ3 el giro de un vector u ≠ 0 alrededor de un versor v , en un ángulo θ y
en sentido positivo.
(
En la Fig. 1a se representan los vectores u y v que generan un plano sombreado π o que
(
contiene al punto a y tiene a c2 como versor normal; se supone que el producto
( (
vectorial v ∧ u ≠ 0 , siendo ϕ ∈ (0, π ) el ángulo entre u y v .
El espacio de referencia es x1 x2 x3 con origen (0,0,0) y versores canónicos:
( ( (
e1 = (1,0,0) , e2 = (0,1,0) y e3 = (0,0,1)
Considérese ahora otro sistema con origen en a = (a1 , a2 , a3 ) y versores canónicos:
( ( (
c1 , c2 y c3 ≡ v
Dado el orden cíclico del producto vectorial:
( ( ( ( ( ( ( ( (
c1 ∧ c2 = v , c2 ∧ v = c1 y v ∧ c1 = c2 (1)

( (
Estando u en el plano generado por c1 y v , se lo puede expresar como:
( (
u = sen (ϕ ) | u | c1 + cos(ϕ ) | u | v (2)
142 4 43 4 14243
u1 u3
( (
Por otra parte, siendo v ∧ u = | u | sen (ϕ ) c2 , se tiene que:
( ( ( ( (
(v ∧ u ) ∧ v = | u | sen (ϕ ) c2 ∧ v = | u | sen (ϕ ) c1 = u1 (3)
(
Así, reemplazando (3) en (2) y teniendo en cuenta que u ⋅ v = | u | cos(ϕ ) , resulta:
( ( ((
u = (v ∧ u ) ∧ v + u ⋅ v v (4)
14243 123
u1 u3
Para facilitar la interpretación geométrica, en la Fig. 1b se muestra una representación
local alrededor de a .
( (
v = c3
x3 ( (
u ϕ v = c3 u3

c1 a
( ( π urot
c2 o u
(
c2
x2
u θ urotπ
( 1
c1 πo
x1
(a) (b)
Fig. 1 (a) posición relativa de las ternas, (b) representación local alrededor de a .
(
El vector que se busca es urot , que surge de rotar u alrededor de v un ángulo θ en
sentido positivo; como puede observarse:
urot = urot π + u3 (5)
siendo | urot π | = | u1 | .
(
La componente u3 no cambia pues el giro es alrededor de v , entonces:
14 ( (
urotπ = cos(θ ) | u1Ciencia
| c +y sen
Tecnología, 14, 2014,
(θ ) | u1 | c2 pp. 11-28 ISSN 1850-0870
(6)
1231 1 ( 2 3
u v ∧u
(
El vector que se busca es urot , que surge de rotar u alrededor de v un ángulo θ en
sentido positivo; como puede observarse:
E. Serrano, R. O. Sirne y G. La Mura Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...
urot = urot π + u3 (5)
siendo | urot π | = | u1 | .
(
La componente u3 no cambia pues el giro es alrededor de v , entonces:
( (
urotπ = cos(θ ) | u1 | c1 + sen (θ ) | u1 | c2 (6)
123 1 ( 2 3
u1 v ∧ u1
( ( ( ( ( ( v
ya que, por (1), | u1 | c2 = | u1 | v ∧ c1 = v ∧ u1 .

Reemplazando (6) en (5) resulta:


(
urot = cos(θ ) u1 + sen (θ ) v ∧ u1 + u3
con lo cual, expresando u1 , u3 según (4) queda:
( ( ( ( ( ( (
urot = cos(θ ) (v ∧ u ) ∧ v + sen (θ ) v ∧ [(v ∧ u ) ∧ v ] + u ⋅ v v (7)
( ( ( ( (( ((
Por último, como (v ∧ u ) ∧ v = v ⋅ v u − u ⋅ v v = u − u ⋅ v v , de (7) se obtiene:
(( ( (( ((
urot = cos(θ ) [ u − u ⋅ v v ] + sen (θ ) v ∧ [ u − u ⋅ v v ] + u ⋅ v v (8)
( (( ( (( ( ( ( (
y ya que v ∧ [ u − u ⋅ v v ] = v ∧ u − u ⋅ v v ∧ v = v ∧ u , pues v ∧ v = 0 , resulta:
( ( (
urot = cos(θ ) u + sen (θ ) v ∧ u + [1 − cos(θ )] u ⋅ v v (9)
que es la denominada fórmula de Rodrigues (Olinde Rodrigues, 1795-1851, matemático
francés).
Interesa representar esta última expresión en forma matricial, para ello puede observarse
( (
que siendo v = (v1 , v2 , v3 ) y u = (u1 , u2 , u3 ) , su producto vectorial v ∧ u , resulta:
(
v ∧ u = ( v2 u3 − v3 u2 , v3 u1 − v1 u3 , v1 u2 − v2 u1 )

Si se denota (• ) la matriz correspondiente al vector • , queda:


 0 − v3 v2   u1 
(   
(v ∧ u ) =  v3 0 − v1   u2  (10)
− v v 0  u 
142421443 { 3

(w) (u )
Por otra parte, dado que:
 v1   v12 v1 v2 v1 v3 
( (T    
(v )(v ) =  v2  (v1 v2 v3 ) =  v1 v2 v22 v2 v3  (11)
v   
 3  v1 v3 v2 v3 v32 

resulta:
 u v2 + u v v + u v v   v   u1 
 1 1 2 1 2 3 1 3
 1  
(( 
(u ⋅ v v ) = u1v1v2 + u2 v2 + u3v2v3  =  v2  (1
2
v1 v2 v3 )  u2 
424 3
(12)
 
 u1v1v3 + u2v2v3 + u3 v32   v3  (v( )T  u3 
  { ( {
(v ) (u )
Con (10) y (12), siendo I ∈ ℜ3×3 la matriz identidad, la fórmula (9) puede expresarse:
(urot ) = cos(θ ) I (u ) + sen (θ ) (w)(u ) + [1 − cos(θ )] (v( )(v( )T (u )
resultando:

( (
(urot ) = [cos(θ ) I + sen (θ ) (w) + [1 − cos(θ )] (v )(v )T ] (u ) = Rθ (u )
1444444442444444443
(13)

Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870 15
que es la fórmula de Rodrigues en forma matricial, donde Rθ es la matriz de rotación.
(u ⋅ v v ) =  u1v1v2 + u2 v22 + u3v2v3  =  v2  (1
v1 v2 v3 )  u2 
424 3
(12)
  v  u 
 u1v1v3 + u2v2v3 + u3 v32  {3
(
(v )T { 3
  (
(v ) (u )
E. Serrano, R. O. Sirne y G. La Mura Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...
Con (10) y (12), siendo I ∈ ℜ3×3 la matriz identidad, la fórmula (9) puede expresarse:
(urot ) = cos(θ ) I (u ) + sen (θ ) (w)(u ) + [1 − cos(θ )] (v( )(v( )T (u )
resultando:

( (
(urot ) =
[cos(θ ) I + sen (θ ) (w) + [1 − cos(θ )] (v )(v )T ] (u ) = Rθ (u )
1444444442444444443
(13)

que es la fórmula de Rodrigues en forma matricial, donde Rθ es la matriz de rotación.

Por último, desarrollando la expresión de Rθ se obtiene:


1 0 0  0 − v3 v2   v12 v1 v2 v1 v3 
     
2
Rθ = cos(θ )  0 1 0  + sen (θ )  v3 0 − v1  + [1 − cos(θ )]  v1 v2 v2 v2 v3 
0 0 1 − v  
   2 v1 0   v1 v3 v2 v3 v32 
es decir:

 [1 − cos(θ )] v12 + cos(θ ) [1 − cos(θ )] v1 v2 − sen (θ ) v3 [1 − cos(θ )] v1 v3 + sen (θ ) v2 


 
Rθ =  [1 − cos(θ )] v1 v2 + sen (θ ) v3 [1 − cos(θ )] v22 + cos(θ ) [1 − cos(θ )] v2 v3 − sen (θ ) v1  (14)
 [1 − cos(θ )] v1 v3 − sen (θ ) v2 [1 − cos(θ )] v2 v3 + sen (θ ) v1 [1 − cos(θ )] v32 + cos(θ ) 
 

(
donde v12 + v22 + v32 = 1 pues v es un versor. La traza de Rθ es tr ( Rθ ) = 1 + 2 cos(θ ) .

III. Cuaterniones
3. Cuaterniones
Definido en forma matricial, un cuaternión q se representa mediante:
 a −b d −c
 
 b a −c −d
q=  =
− d c a −b
 
 c d b a 
 
 1 0 0 0 0 −1 0 0   0 0 0 − 1 0 0 1 0 (15)
       
 0 1 0 0   1 0 0 0   0 0 − 1 0   0 0 0 − 1
=a +b +c +d 
0 0 1 0 0 0 0 − 1 0 1 0 0 −1 0 0 0 
       
0 0 0 1 0 0 1 0  1 0 0 0  0 1 0 0
14243 14 4244 3 
14 4244 3  
14 4244 3
I i j k
donde a, b, c, d ∈ ℜ , los elementos I , i , j y k también son cuaterniones y forman la base
BQ del espacio de cuaterniones, siendo q combinación lineal de los elementos de BQ .

En forma equivalente se puede denotar:


q = a I + b i + c j + d k = ( a , b, c , d ) (16)
Se definen:
Conjugado de q : q* = (a, − b, − c, − d ) = 2 a I − q (17)
Norma de q : | q | = a 2 + b 2 + c 2 + d 2 (18)

16
Es claro que (q*)* = q ; por otra parte, matricialmente: q* ≡14,qT2014,
Ciencia y Tecnología, y |pp. = 4 det(
q |11-28 q)1850-0870
ISSN .
Siendo I = (1,0,0,0) , i = (0,1,0,0) , j = (0,0,1,0) , k = (0,0,0,1) : | I | = | i | = | j | = | k | = 1 .
Se definen:
Conjugado de q : q* = (a, − b, − c, − d ) = 2 a I − q (17)
E. Serrano, R. O. Sirne y G. La Mura Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...
Norma de q : | q | = a 2 + b 2 + c 2 + d 2 (18)

Es claro que (q*)* = q ; por otra parte, matricialmente: q* ≡ qT y | q | = 4 det(q) .


Siendo I = (1,0,0,0) , i = (0,1,0,0) , j = (0,0,1,0) , k = (0,0,0,1) : | I | = | i | = | j | = | k | = 1 .

Por simple cálculo matricial se pueden verificar las siguientes propiedades:


P1) Propiedad cíclica del producto entre i, j , k : i j = k , j k = i , k i = j .
Cumpliéndose también que j i = − k , k j = − i , i k = − j .
 i j k = i ( j k ) = i 2
P2) i 2 = j 2 = k 2 = − I , además: i j k = − I pues  .
i j k = (i j ) k = k 2

P3) Si q = (a, b, c, d ) y q′ = (a′, b′, c′, d ′) son cuaterniones:


La suma es asociativa y conmutativa: q + q′ = (a + a′, b + b′, c + c′, d + d ′) = q′ + q .

El producto es asociativo pero no conmutativo, puede obtenerse por producto matricial,


siendo: q q′ = (a, b, c, d ) (a′, b′, c′, d ′) = (a′′, b′′, c′′, d ′′) , con a′′ = a a′ − b b′ − c c′ − d d ′ ,
b′′ = a′ b + a b′ + c d ′ − d c′ , c′′ = c a′ + a c′ − b d ′ + b′ d y d ′′ = d a′ + a d ′ + b c′ − b′ c .
En particular, siendo q * el conjugado de q , q q* = (a 2 + b 2 + c 2 + d 2 , 0 , 0 , 0 ) = | q |2 I ;
de donde, la norma de q puede expresarse como | q | = | q q* | .Observándose también
que: I I * = i i* = j j* = k k * = I .
El producto de un cuaternión por un escalar k es: k q = k (a, b, c, d ) =& ( k a, k b, k c, k d ) ,
de donde: | k q | = | k | | q | ; aquí | k | es el valor absoluto de k ∈ ℜ .

P4) Si q = (a, b, c, d ) y q′ = (a′, b′, c′, d ′) son cuaterniones: (q q′)* = q′ * q * , mientras


que | p q | = | p | | q | .

P5) Siendo el cuatrenión q ≠ (0,0,0,0) , el cuaternión q −1 tal que q q −1 = I es el inverso


multiplicativo de q ; en forma matricial es la matriz inversa de q . Se verifica que:
q*
q −1 =& (19)
| q |2
pues q q −1 = q q * / | q |2 = (a 2 + b 2 + c 2 + d 2 , 0 , 0 , 0 ) /(a 2 + b 2 + c 2 + d 2 ) = (1,0,0,0) = I .

En particular: (q q′) −1 = q′−1 q −1 , donde q −1 y q′−1 son los inversos multiplicativos de los
cuaterniones q y q′ respectivamente.
También se cumple que: (q −1 ) −1 = q y | q −1 | = 1 / | q | .
(
P6) Todo cuaternión q = (a, b, c, d ) con | q | ≠ 0 tiene asociado un cuaternión unitario q ,
(
tal que su norma | q | = 1 . La expresión correspondiente es:
( q
q =& (20)
|q|
(
que por lo visto en “P3)” tiene | q | = 1 .
Los elementos de BQ = {I , i, j , k} son cuaterniones unitarios.
Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870 17
(
En particular, aplicando (19), el inverso multiplicativo de un cuaternión unitario q es:
También se cumple que: (q ) = q y | q | = 1 / | q | .
(
P6) Todo cuaternión q = (a, b, c, d ) con | q | ≠ 0 tiene asociado un cuaternión unitario q ,
(
talSerrano,
E. que su norma
R. O. | qLa| Mura
Sirne y G. = 1 . LaRotaciones,
expresión correspondiente
secuencia es:
aeroespacial y cuaterniones Una revisión de las relaciones...
( q
q =& (20)
|q|
(
que por lo visto en “P3)” tiene | q | = 1 .
Los elementos de BQ = {I , i, j , k} son cuaterniones unitarios.
(
En particular, aplicando (19), el inverso multiplicativo de un cuaternión unitario q es:
( ( ( ( (
q −1 = q * / | q |2 = q* ≡ q T (21)
(
pues | q | = 1 .

P7) Un cuaternión q admite las siguientes representaciones:


q = (a, b, c, d ) = a I + b i + c j + d k = a + v (22)
1424 3 144 42444 3 14243
4 3
punto ∈ℜ formato matricial (b,c, d )∈ℜ

Utilizando el último formato, el producto de q1 = a1 + v1 por q2 = a2 + v2 se puede


calcular usando la fórmula (Eberly, 2010; Rodríguez Padilla, tesis digital):
q1 q2 = a1 a2 − v1 ⋅ v2 + a2 v1 + a1 v2 + v1 ∧ v2 (23)
142 4 43 4 144424443
a v
donde “ ⋅ ” representa producto escalar y “ ∧ ” producto vectorial entre v1, v2 ∈ ℜ3 ;
trabajando en forma matricial la verificación de (23) es inmediata.
(
P8) Dado el versor v = (v1 , v2 , v3 ) y el ángulo λ , el cuaternión:
( (
q = cos(λ ) + sen (λ ) v = (cos(λ ) , sen (λ ) v1 , sen (λ ) v2 , sen (λ ) v3 ) (24)
(
es unitario pues | v |2 = v12 + v22 + v32 = 1 y | q | = cos 2 (λ ) + sen 2 (λ ) (v12 + v22 + v32 ) = 1 .
(
Recíprocamente, todo cuaternión unitario q puede expresarse según (24). Para ello,
dado el cuaternión q = a + v = (a, b, c, d ) ≠ (a,0,0,0) , aplicando (20), tiene asociado el
( |v | v |v |(
cuaternión unitario q = q / | q | = a + v = a + = a + v , donde definiendo el
| |q q q v q
| | | | | | | | | | q
cos(λ ) = = a a
 |q| a2 + b2 + c2 + d 2
ángulo λ ∈ (0, π ) tal que:  w se obtiene la forma (24).
|v | 2 2 2
 sen (λ ) = |q| = 2 b +2 c +2 d 2
 a +b +c +d
(
Cuando q = a + 0 = (a,0,0,0) con a ≠ 0 , q = a / | a | + 0 = cos( k π ) + sen (k π ) 0 donde
corresponden: k = 0 y λ = 0 si a > 0 , k = 1 y λ = π si a < 0 .

(
P9) Partiendo de (24) donde v ∈ ℜ3 es un versor, un cuaternión unitario también puede
expresarse mediante (Eberly, 2010):
( ( (
q = cos( λ ) + sen (λ ) v = Exp (λ v ) (25)
que es la generalización de la identidad de Euler.
Es posible definir el logaritmo natural de un cuaternión unitario como:
( ( (
ln(q ) = ln(Exp(λ v )) = λ v (26)
y también la potencia de un cuaternión unitario como:
( ( ( (
18 q n = (cos(λ ) + sen (λ ) v ) n = Exp (nλyvTecnología,
Ciencia nλ2014,
) = cos(14, ) + sen nλ ) v
pp.(11-28 (27)
ISSN 1850-0870
( ( (
q = cos( λ ) + sen (λ ) v = Exp (λ v ) (25)
que es la generalización de la identidad de Euler.
Es posible
E. Serrano, R. O.definir
Sirne y G.elLalogaritmo
Mura naturalsecuencia
Rotaciones, de un cuaternión unitario como:
aeroespacial y cuaterniones Una revisión de las relaciones...
( ( (
ln(q ) = ln(Exp(λ v )) = λ v (26)
y también la potencia de un cuaternión unitario como:
( ( ( (
q n = (cos(λ ) + sen (λ ) v ) n = Exp(nλ v ) = cos( nλ ) + sen (nλ ) v (27)

En cambio, dado que el producto de cuaterniones es no conmutativo, no es posible


aplicar las identidades típicas de las funciones logaritmo y exponencial. Es decir:
(( ( (
ln( p q ) puede resultar distinto de ln( p ) + ln(q )
y
( ( ( (
Exp( p + q ) puede resultar distinto de Exp( p ) Exp(q )

IV. Relación
4. entre
Relación entre cuaterniones
cuaterniones y rotaciones
y rotaciones
(
La rotación de un vector u ∈ ℜ alrededor de un eje orientado por v en un ángulo θ ,
3

( (
puede representarse mediante un cuaternion unitario q = cos(θ / 2) + sen (θ / 2) v .

Considérese la mencionada fórmula (9) de Rodrigues para el vector rotado, que se repite
aquí para facilitar la lectura:
( ( (
urot = cos(θ ) u + sen (θ ) v ∧ u + [1 − cos(θ )] u ⋅ v v (9)
y el formato (23) del producto de cuaterniones, que también se reitera:
q1 q2 = a1 a2 − v1 ⋅ v2 + a2 v1 + a1 v2 + v1 ∧ v2 (23)
142 4 43 4 144424443
a v
Dado que al vector u = (u1 , u2 , u3 ) ∈ ℜ3 le corresponde el cuaternión u = (0, u1 , u2 , u3 ) ,
( ( (
aplicando (23) para calcular el producto u q * , donde q* = cos(θ / 2) − sen (θ / 2) v ,
resulta:
( ( (
u q * = sen (θ / 2) u ⋅ v + cos(θ / 2) u − sen (θ / 2) u ∧ v (28)
144244 3 14444 4244444 3
a r
(
Si ahora se pre-multiplica esta última por q , usando también (23), se obtiene:
( ( ( ( (
q u q * = cos(θ / 2) sen (θ / 2) u ⋅ v − cos(θ / 2) sen (θ / 2) u ⋅ v − sen 2 (θ / 2) v ⋅ u ∧ v +
14444444442444444444 3 1424 3
=0 0
1444444444 44442444444444444=4 3
0∈ℜ
( ( (
+ sen 2 (θ / 2) u ⋅ v v + cos(θ / 2) r + sen (θ / 2) v ∧ r
144444444 42444444444 3
k
Es decir:
(( (
q u q* = 0 + k con k = sen 2 (θ / 2) u ⋅ v v + cos(θ / 2) r + sen (θ / 2) v ∧ r (29)

Reemplazando la expresión de r según (28), resulta:


(
sen (θ ) v ∧u
( ( 6 4 4 4 4 4 4 4 4 4 4 7
( 4 44444444 (4
8
k = sen 2 (θ / 2) u ⋅ v v + cos 2 (θ / 2) u − sen (θ / 2) cos(θ / 2) u ∧ v + sen (θ / 2) cos(θ / 2) v ∧ u −
( (
− sen 2 (θ / 2) v ∧ (u ∧ v )
( ( ( ( (
es decir, k = sen 2 (θ / 2) u ⋅ v v + cos 2 (θ / 2) u − sen 2 (θ / 2) v ∧ (u ∧ v ) + sen (θ ) v ∧ u .
( ( ( ( (( ((
Reemplazando ahora (v ∧ u ) ∧ v = v ⋅ v u − u ⋅ v v = u − u ⋅ v v , queda:
Ciencia y Tecnología, ( 11-28
14, 2014, pp. ( ISSN 1850-0870 ( ( ( 19
k = sen 2 (θ / 2) u ⋅ v v + cos 2 (θ / 2) u − sen 2 (θ / 2) [u − u ⋅ v v ] + sen (θ ) v ∧ u =
2 ( ( 2 2 (
(
sen (θ ) v ∧u
( ( 6 4 4 4 4 4 4 4 4 4 4 7
( 4 44444444 (4 8
k = sen 2 (θ / 2) u ⋅ v v + cos 2 (θ / 2) u − sen (θ / 2) cos(θ / 2) u ∧ v + sen (θ / 2) cos(θ / 2) v ∧ u −
( (
− senR.2O.(θSirne
E. Serrano, / 2)y vG.∧La(Mura
u ∧ v ) Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...
( ( ( ( (
es decir, k = sen 2 (θ / 2) u ⋅ v v + cos 2 (θ / 2) u − sen 2 (θ / 2) v ∧ (u ∧ v ) + sen (θ ) v ∧ u .
( ( ( ( (( ((
Reemplazando ahora (v ∧ u ) ∧ v = v ⋅ v u − u ⋅ v v = u − u ⋅ v v , queda:
( ( ( ( (
k = sen 2 (θ / 2) u ⋅ v v + cos 2 (θ / 2) u − sen 2 (θ / 2) [u − u ⋅ v v ] + sen (θ ) v ∧ u =
( ( (
= 2 sen 2 (θ / 2) u ⋅ v v + [cos 2 (θ / 2) − sen 2 (θ / 2)] u + sen (θ ) v ∧ u
Por último, dado que 2 sen 2 (θ / 2) = 1 − cos(θ ) y cos 2 (θ / 2) − sen 2 (θ / 2) = cos[θ ] , resulta:
( ( (
k = [1 − cos(θ )] u ⋅ v v + cos[θ ] u + sen (θ ) v ∧ u (30)
que coincide con la expresión de urot según (9).

Así queda demostrado que dado u ∈ ℜ3 , si se definen los cuaterniones u = 0 + u y


( (
q = cos(θ / 2) + sen (θ / 2) v , el producto:
q u q* = 0 + k con k = urot (31)
(
donde urot es el vector resultante de rotar u un ángulo θ alrededor de v en sentido
(
positivo. Adoptando para q el ángulo θ / 2 ∈ [0, π ] , se tendrá θ ∈ [0, 2 π ] .

Puesto en forma matricial según (13):


(k ) = (urot ) = Rθ (u ) (32)
donde tr ( Rθ ) = 1 + 2 cos(θ ) , ver texto asociado a (14).

( (
Denotando q = cos(θ / 2) + sen (θ / 2) v = (a, b, c, d ) con a 2 + b 2 + c 2 + d 2 = 1 , por ser un
cuaternión unitario, al desarrollar el producto de cuaterniones de (31) y reconocer k se
obtiene:
 a 2 + b2 − c 2 − d 2 2 (b c − a d ) 2 (a c + b d ) 
 
 
k
 
=  2 (b c + a d ) a 2
− b 2
+ c 2
− d 2
2 ( − a b + c d )  (u ) (33)
 2

 2 (−a c + b d ) 2 (a b + c d ) a −b −c +d 
2 2 2

(
lo cual permite, comparando con (32) relacionar el cuaternión q con la matriz de
rotación, obteniéndose:
 a 2 + b2 − c2 − d 2 2 (b c − a d ) 2 (a c + b d ) 
 
Rθ =  2 (b c + a d ) a −b +c −d
2 2 2 2
2 (− a b + c d )  (34)
 2

 2 (−a c + b d ) 2 (a b + c d ) a −b −c +d 
2 2 2

Esta última, teniendo en cuenta que a + b + c + d = 1 puede escribirse en la forma:


2 2 2 2

 2 a 2 + 2 b 2 − 1 2 (b c − a d ) 2 (a c + b d ) 
 
Rθ =  2 (b c + a d ) 2 a + 2 c − 1 2 (− a b + c d ) 
2 2
(35)
 
 2 ( − a c + b d ) 2 ( a b + c d ) 2 a 2
+ 2 d 2
− 1 
que comparada con lo indicado por Madgwick (Madgwick, 2010) en su expresión (6)
resulta BA R = RθT = Rθ−1 , pues Rθ = ABR .

De (34) se obtiene que tr ( Rθ ) = 3 a 2 − b 2 − c 2 − d 2 = 4 a 2 − 1 , donde a = cos(θ / 2) ; por


lo cual se cumple que tr ( Rθ ) = 1 + 2 cos(θ ) .
Por otra parte, según (24) y texto relacionado, para λ = θ / 2 dado que el cuaternión de
( (
interés es q = cos(θ / 2) + sen (θ / 2) v = (a, b, c, d ) , corresponde:
20 Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870
(
arccos(a) con 12 θ ∈ (0, π ) si q ≠ (1,0,0,0)
1  (
que comparada con lo indicado por Madgwick (Madgwick, 2010) en su expresión (6)
resulta BA R = RθT = Rθ−1 , pues Rθ = ABR .
E. Serrano,
(34) R.seO.obtiene
Sirne y G. La Muratr ( RRotaciones,2secuencia aeroespacial y cuaterniones Una revisión de las relaciones...
De que θ ) = 3 a − b − c − d = 4 a − 1 , donde a = cos(θ / 2) ; por
2 2 2 2

lo cual se cumple que tr ( Rθ ) = 1 + 2 cos(θ ) .


Por otra parte, según (24) y texto relacionado, para λ = θ / 2 dado que el cuaternión de
( (
interés es q = cos(θ / 2) + sen (θ / 2) v = (a, b, c, d ) , corresponde:
(
arccos(a) con 12 θ ∈ (0, π ) si q ≠ (1,0,0,0)
 (
1
2
θ = 0 si q = (1,0,0,0) (36)
 π
(
si q = (−1,0,0,0)

con lo cual, conociendo a , queda identificado unívocamente el ángulo θ .
(
Así, dado q se pueden obtener θ y Rθ . Además con (32) se calcula (u rot ) = Rθ (u ) o
también (u ) = Rθ−1 (urot ) con Rθ−1 = RθT .

V. Secuencia
5. aeroespacial
Secuencia aeroespacial - ángulos
– ángulos de Euler
de Euler
La secuencia aeroespacial contempla el movimiento de rotación en el espacio según tres
ejes, los dos primeros giros se representan en la Fig. 2.
ŷ yˆ = ~
y

~
x
θ ≡β
x
x̂ ψ ≡α x x̂
y y ~
z z = zˆ z ẑ
Posición de referencia 1º giro: alrededor de z = zˆ 2º giro: alrededor de yˆ = ~
y
Fig. 2 Secuencia aeroespacial, los dos primeros giros.

El 1º giro, ángulo ψ ≡ α en sentido positivo alrededor del eje z = zˆ (eje de yaw


o guiñada), tiene asociado el cuaternión g1 = (cos(α / 2), 0 , 0 , sen (α / 2) ) respecto del
sistema xyz de referencia.
El 2º giro, ángulo θ ≡ β en sentido positivo alrededor del eje yˆ = ~ y (eje de
pitch o cabeceo), tiene asociado el cuaternión g 2 = (cos(β / 2), 0 , sen ( β / 2), 0 ) respecto
del sistema xˆyˆ zˆ de referencia (el avión levanta la nariz girando sobre el eje de sus alas,
ver Fig. 2).
El 3º giro, ángulo φ ≡ γ en sentido positivo alrededor del eje ~ x = x′ (eje roll o
balanceo o alabeo), tiene asociado el cuaternión g 3 = (cos(γ / 2), sen (γ / 2), 0, 0 ) respecto
del sistema ~x~
y~ z de referencia (el avión gira sobre su eje “cola → nariz”).

En la Fig. 3 se muestra el sentido positivo de y β > 0 : pitch


los tres giros mencionados, donde α , β y γ
son los denominados ángulos de Euler para la
secuencia aeroespacial.
γ > 0 : roll
A continuación se identificará el cuaternión
α > 0 : yaw
asociado a cada giro y, mediante la expresión x
z
(34), la matriz de rotación correspondiente. Fig. 3 Secuencia aeroespacial.

Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870 21


Para lograrlo se deben tener en cuenta las relaciones básicas
que surgen de un análisis bidimensional, ver Fig. 4, donde se x2 P
secuencia aeroespacial.
γ > 0 : roll
A continuación se identificará el cuaternión
α > 0 : yaw
asociado a cada giro y, mediante la expresión x
z
(34), la matriz
E. Serrano, R. O. Sirnede rotación
y G. La Mura correspondiente.
Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...
Fig. 3 Secuencia aeroespacial.

Para lograrlo se deben tener en cuenta las relaciones básicas


que surgen de un análisis bidimensional, ver Fig. 4, donde se x2 P
considera una rotación ω en sentido antihorario del sistema
x′2 ϕ
de puntos ( x1′ , x 2′ ) respecto de ( x1 , x2 ) . x1′
ω
Siendo r la distancia del punto P al origen común y x1
aplicando las fórmulas de transformación de coordenadas
polares se obtiene: Fig. 4 Rotación en ℜ 2 .
x′ x′
4714
6 8 64724 8
 x1 = r cos(ϕ + ω ) = r cos(ϕ ) cos(ω ) − r sen (ϕ ) sen (ω )

 x2 = r sen (ϕ + ω ) = r1sen (ϕ ) cos(ω ) + r cos(ϕ ) sen (ω )
424 3 1424 3
x2′ x1′
 x1   cos(ω ) − sen (ω )   x1′ 
de donde, en forma matricial, resulta   =     o bien:
 x2   sen (ω ) cos(ω )   x2′ 
 x1′   cos(ω ) sen (ω )   x1 
  =     (37)
 x2′   − sen (ω ) cos(ω )   x2 

Retomando ahora los mencionados ángulos de Euler para la secuencia aeroespacial y


suponiendo que se parte de un sistema original xyz , se considerarán los tres giros de
yaw (ψ ≡ α ), pitch ( θ ≡ β ) y roll ( φ ≡ γ ), en ese orden y en sentido positivo.

1º giro: En la Fig. 5 se muestra la rotación α alrededor del


eje z , ángulo medido en sentido antihorario de x̂ respecto z ≡ zˆ
de x en el plano xy .
Dado que z = zˆ , teniendo en cuenta (37) para relacionar las ŷ
restantes variables, resulta: y
 xˆ   cos(α ) sen (α ) 0   x 
α
x x̂
    
 yˆ  =  − sen (α ) cos(α ) 0   y  Fig. 5 Eje de giro z ≡ zˆ
 zˆ   1   z 
  14044240443
q1

Por lo expuesto en la sección anterior, g1 = ( cos(α / 2) , 0 , 0 , sen (α / 2) ) es el cuaternión


asociado a este giro y por (34) su correspondiente matriz de rotación es:
 cos(α ) − sen (α ) 0 
 
Rα =  sen (α ) cos(α ) 0 
 0 0 1 

por lo tanto, observando q1 resulta:
 xˆ   x
  −1  
 yˆ  = Rα  y  (38)
 zˆ  z
   
donde Rα−1 es la matriz de rotación asociada a g1∗ , el cuaternión conjugado de g1 .
22 Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870
2º giro: Rotación positiva alrededor de ŷ , con ángulo β ẑ
de ~z respecto de ẑ , ver Fig. 6. Siendo yˆ ≡ ~
y , la expresión
 0 0 1
por lo tanto, observando q1 resulta:
 xˆ   x
E. Serrano, R. O. Sirne y G. La Mura  secuencia
Rotaciones,  1 
−aeroespacial y cuaterniones Una revisión de las relaciones...
 yˆ  = Rα  y (38)
 zˆ  z
   
donde Rα−1 es la matriz de rotación asociada a g1∗ , el cuaternión conjugado de g1 .

2º giro: Rotación positiva alrededor de ŷ , con ángulo β ẑ


de ~z respecto de ẑ , ver Fig. 6. Siendo yˆ ≡ ~ y , la expresión
~ β
(37) establece la relación entre las otras variables, resulta: z
~ x   cos( β ) 0 − sen ( β )   xˆ  yˆ = ~
y
 ~   
y =  0 1 0   yˆ  x̂ ~
x
 ~z   sen ( β ) 0 cos( β )   zˆ 
  144424443  
Fig. 6 Eje de giro yˆ ≡ ~ y
q2
En este caso el cuaternión asociado es g 2 = ( cos( β / 2) , 0 , sen ( β / 2) , 0 ) , para el cual
aplicando (34) corresponde la matriz de rotación:
 cos( β ) 0 sen ( β ) 
 
Rβ =  0 1 0 
 − sen ( β ) 0 cos( β ) 
 
de donde, comparando con q2 se obtiene:
~x  xˆ 
 ~  
 y  = Rβ  yˆ 
−1
(39)
~   
z  zˆ 
Siendo Rβ−1 la matriz de rotación asociada a g 2∗ .

Por último, el 3º giro es en sentido positivo en un ángulo γ alrededor de x̂ , la terna


w
cambia de ~x~
y~
z a la definitiva x′y′z′ . En este caso, dado que x′ = x , se tiene:
 x′   1 0 0  ~ x
     ~
 y′  =  0 cos(γ ) sen (γ )   y 
 z ′   0 − sen (γ ) cos(γ )   ~z 
  144424443  
q3
concuaternión g 3 = ( cos(γ / 2) , sen (γ / 2) , 0 , 0 ) y matriz de rotación:
1 0 0 
 
Rγ =  0 cos(γ ) − sen (γ ) 
 
 0 sen (γ ) cos(γ ) 
Entonces, comparando con q3 resulta:
 x′  ~ x
   
−1 ~

 y  = Rγ  y  (40)
 z′   ~z 
   
siendo Rγ−1 la matriz de rotación asociada a g 3∗ .

Dadas (38), (39) y (40), la composición de los tres giros tiene asociada la matriz de
rotación M tal que:
Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870 23
 x′  ~
x  xˆ   x
   
−1 ~ −1 −1
  −1 −1 −1  
 x′  ~ x
   
−1 ~
 y′  = Rγ  y  (40)
 z′   ~z 
E. Serrano, R. O. Sirne y G. La Mura
   
Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...
siendo Rγ−1 la matriz de rotación asociada a g 3∗ .

Dadas (38), (39) y (40), la composición de los tres giros tiene asociada la matriz de
rotación M tal que:

 x′  ~x  xˆ   x
   
−1 ~
  −1 −1 −1
 
′ −1 −1
ˆ
 y  = Rγ  y  = Rγ Rβ  y  = Rγ Rβ Rα  y  (41)
 z′  ~   zˆ  1 42 43 z
  z   M  

Se verifica que esta matriz M = Rγ−1 Rβ−1 Rα−1 = ( Rα Rβ Rγ ) −1 es la matriz de rotación


asociada al cuaternión que se obtiene como producto de los cuaterniones conjugados
correspondientes a cada giro parcial. Es decir, M es la matriz de rotación de:
g ∗ = g 3∗ g 2∗ g1∗ = ( g1 g 2 g 3 )∗ (42)

Operando en forma matricial se obtiene:


 Cα Cβ Sα Cβ − Sβ 
 
M =  − Sα Cγ + Cα S β Sγ Cα Cγ + Sα S β Sγ Cβ Sγ  (43)
 
 Cα S β Cγ + Sα Sγ Sα S β Cγ − Cα Sγ Cβ Cγ 

donde Cω = cos(ω ) y Sω = sen (ω ) .

Siendo Rθ de (35) la matriz de rotación de g = (a, b, c, d ) , para el cuaternión conjugado


g * = (a,−b,−c,− d ) corresponde Rθ−1 = M .
Entonces:
 2 a 2 + 2 b 2 − 1 2 (b c + a d ) 2 (− a c + b d )   M 11 M 12 M 13 
   
Rθ−1 =  2 (b c − a d ) 2 a 2 + 2 c 2 − 1 2 (a b + c d )  =&  M 21 M 22 M 23  (44)
 
 2 (a c + b d ) 2 (−a b + c d ) 2 a 2 + 2 d 2 − 1  M 31 M 32 M 33 
  144424443
M
Por simple inspección, de (43) y (44) resultan:

 < 1 > − 2 a c + 2 b d = M 13 = − sen ( β )


 <2> 2 a b + 2 c d = M 23 = cos( β ) sen (γ )

 < 3 > 2 a 2
+ 2 d 2 − 1 = M 33 = cos( β ) cos(γ ) (45)
 < 4 > 2 b c + 2 a d = M 12 = sen (α ) cos( β )

 < 5 > 2 a 2 + 2 b 2 − 1 = M 11 = cos(α ) cos( β )
Siendo g = g1 g 2 g 3 = (a, b, c, d ) , desarrollando el producto se obtienen:

 a = cos(α / 2) cos( β / 2) cos(γ / 2) + sen (α / 2) sen ( β / 2) sen (γ / 2)


 b = − sen (α / 2) sen ( β / 2) cos(γ / 2) + cos(α / 2) cos( β / 2) sen (γ / 2)

 (46)
 c = cos(α / 2) sen ( β / 2) cos(γ / 2) + sen (α / 2) cos( β / 2) sen (γ / 2)
 d = sen (α / 2) cos( β / 2) cos(γ / 2) − cos(α / 2) sen ( β / 2) sen (γ / 2)
Desde
24 las relaciones numeradas <1> a <5> Cienciaen (45), suponiendo
y Tecnología, denominadores
14, 2014, pp. 11-28 no
ISSN 1850-0870
nulos, se tiene:
< 1 > : M 13 = − sen ( β ) ⇒ β = arcsen(− M 13) (47)
 a = cos(α / 2) cos( β / 2) cos(γ / 2) + sen (α / 2) sen ( β / 2) sen (γ / 2)
 b = − sen (α / 2) sen ( β / 2) cos(γ / 2) + cos(α / 2) cos( β / 2) sen (γ / 2)

E. Serrano, R.O. Sirne y G. La Mura (46)
Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...
 c = cos(α / 2) sen ( β / 2) cos(γ / 2) + sen (α / 2) cos( β / 2) sen (γ / 2)
 d = sen (α / 2) cos( β / 2) cos(γ / 2) − cos(α / 2) sen ( β / 2) sen (γ / 2)

Desde las relaciones numeradas <1> a <5> en (45), suponiendo denominadores no


nulos, se tiene:
< 1 > : M 13 = − sen ( β ) ⇒ β = arcsen(− M 13) (47)
con lo cual no queda unívocamente definido β salvo que se imponga, por ejemplo,
β ∈ [− π2 , π2 ] . Por otra parte:
 atan2( M 23 , M 33) si β ∈ (− π , π )
< 2 > = M 23 = sen (γ ) cos( β ) ⇒ γ =  2 2 (48)
< 3> M 33 cos(γ ) cos( β )  π ,π )
atan2 ( − M 23 , − M 33) si β ∉ ( −
2 2

 atan2( M 12 , M 11) si β ∈ (− π , π )
< 4 > = M 12 = sen (α ) cos( β ) ⇒ α =  2 2 (49)
<5 > M 11 cos(α ) cos( β )  π ,π )
atan2( − M 12 , − M 11) si β ∉ ( −
2 2

donde, por definición, atan 2( y, x) = tan −1 ( y / x) si x ≠ 0 , atan 2( y, 0) = π / 2 si y > 0 ,


atan 2( y, 0) = − π / 2 si y < 0 .
Para aquellas aplicaciones donde se cumple que − π / 2 < β < π / 2 , los tres ángulos
queden unívocamente determinados, resultando:
 Yaw (ψ ≡α ) : α = atan2( M 12 , M 11)

 Pitch (θ ≡ β ) : β = arcsen(− M 13) con β ∈ (−π / 2, π / 2) (50)
 Roll (φ ≡ γ ) : γ = atan2( M 23, M 33)

similares a las fórmulas de conversión de MicroStrain Inc. (MicroStrain, 2003).

Desde (44) y teniendo en cuenta que a 2 + b 2 + c 2 + d 2 = 1 , surge que tr ( Rθ−1 ) = tr ( M ) , es


decir:
4 a 2 − 1 = M 11 + M 22 + M 33
por lo tanto:
| a | = 1 + M 11 + M 22 + M 33 / 2
pero, por otra parte, los cuaterniones (a, b, c, d ) y (− a,−b,−c,− d ) generan la misma
matriz M . En consecuencia, partiendo de M no es posible determinar el signo de a .

Así, si se adopta por ejemplo a > 0 , por simple comparación de las dos matrices que
figuran en (44) surgen las siguientes expresiones que permiten obtener el cuaternión a
partir de la matriz M .
 a = 1 + M 11 + M 22 + M 33 / 2

 b = ( M 23 − M 32) /(4 a )
 (51)
 c = ( M 31 − M 13) /(4 a)
 d = ( M 12 − M 21) /(4 a)

Expresiones que son equivalentes a la primera forma de cálculo ( if max = test1 ) de
MicroStrain Inc. (MicroStrain, 2003).

6. Comentarios
Ciencia y Tecnología, 14,Finales
2014, pp. 11-28 ISSN 1850-0870 25
Se ha realizado una exposición detallada, que incluye interpretaciones geométricas y
justificaciones de las relaciones fundamentales entre ángulos de Euler, matriz de
E. Serrano, R. O. Sirne y G. La Mura Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...

VI. Comentarios Finales

Se ha realizado una exposición detallada, que incluye interpretaciones


geométricas y justificaciones de las relaciones fundamentales entre ángulos de
Euler, matriz de rotación y cuaternión correspondiente a la rotación de un cuerpo
en el espacio 3D.
Es de particular interés la interpretación y uso de las relaciones mencionadas
pues, en combinación con algoritmos de filtrado y procesamiento digital de señales
en tiempo real, se utilizan en el diseño de sistemas automáticos de posicionamiento,
seguimiento y control para diferentes aplicaciones tecnológicas.
Si bien se adoptaron los ángulos de Euler para la denominada secuencia aeroespacial,
con similar razonamiento se pueden obtener las relaciones correspondientes a otras
secuencias típicas, según las necesidades de cada aplicación.

Reconocimientos: El presente trabajo se ha realizado con aporte parcial del


proyecto PIDDEF 26/12.

26 Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870


E. Serrano, R. O. Sirne y G. La Mura Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...

Referencias

Chou J.C.K. (1992) “Quaternion kinematic and dynamic differential equations,”


IEEE Trans. Robot. Autom., vol. 8, no. 1, pp. 53–64.
Eberly D. (2010). “Quaternion Algebra and Calculus, Geometric Tools”, disponible
en: http://www.geometrictools.com/Documentation/Quaternions.pdf
Madgwick S.O.H. (2010), “An efficient orientation filter for inertial and inertial
/ magnetic sensor arrays”, x-io Technologies Limited, Open source IMU
and AHRS algorithms (http://www.x-io.co.uk/open-source-imu-and-ahrs-
algorithms) reporte interno original disponible en: http://www.x-io.co.uk/res/
doc/madgwick_internal_report.pdf
Marins J.L., Yun X., Bachmann E.R., McGhee R.B. and Zyda M.J. (2009) “An
extended Kalman filter for quaternion-based orientation estimation using
MARG sensors”, Proc. IEEE/RSJ Int. Conf. Intelligent Robots and Systems,
Mani, HI, pp. 2003–2011.
MicroStrain Inc. (2003) “Orientation Quantity Conversion Formulas”,
reporte interno, disponible en: http://files.microstrain.com/Orientation%20
Conversion%20formulas.pdf
Kemp. B., Janssen A.J.M.W. and van der Kamp B. (1998) “Body position can
be monitored in 3D using accelerometers and earth-magnetic field sensors,”
Electroencephalogr. Clin.Neurophysiol., vol. 109, pp. 484–488.
Kirtley C. (2001) “Summary: Quaternions vs. Euler angles,” BIOMCH-L Discussion
Disponible: http://isb.ri.ccf.org/biomch-l/archives/biomch-l-2001-05.
Rodríguez Padilla J.J. “Capítulo 4 – Rotaciones y Cuaternios” de la tesis: “El
Algebra y la geometría de los cuaternios y algunas de sus aplicaciones”,
Universidad de Sonora, México; disponible como tesis digital en: http://
bibliotecadigital.uson.mx/bdg_tesisIndice.aspx?tesis=21070
Sabatini A.M. (2005) “Quaternion based strap-down integration method for
applications of inertial sensing to gait analysis,” Med. Biol. Eng. Comput., vol.
42, pp. 97–105.
Sabatini A.M. (2006) “Quaternion-Based Extended Kalman Filter for Determining
Orientation by Inertial and Magnetic Sensing”, IEEE Transactions On
Biomedical Engineering, Vol. 53, Nº. 7.

Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870 27


E. Serrano, R. O. Sirne y G. La Mura Rotaciones, secuencia aeroespacial y cuaterniones Una revisión de las relaciones...

Systron Donner Inertial (2011), “MMQ-G User’s Guide”, disponible en: http://
www.systron.com/sites/default/files/964856_e_mmq-g_user_s_guide_1_.pdf
Waldron, Kenneth, Schmiedeler, James (2008) “Kinematics”, Springer Handbook
of Robotics.

28 Ciencia y Tecnología, 14, 2014, pp. 11-28 ISSN 1850-0870

También podría gustarte