Conversión entre quaternions y ángulos de Euler

Las rotaciones espaciales en tres dimensiones pueden ser parametrized que usa tanto ángulos de Euler como unidad quaternions. Este artículo explica cómo convertirse entre las dos representaciones. Realmente este uso simple de "quaternions" fue presentado primero por Euler aproximadamente setenta años antes que Hamilton para solucionar el problema de cuadrados mágicos. Por esta razón la comunidad de dinámica comúnmente se refiere a quaternions en esta aplicación como "parámetros de Euler".

Definición

Una unidad quaternion se puede describir como:

:

:

Podemos asociar un quaternion con una rotación sobre un eje según la expresión siguiente

:

:

:

:

donde α es un ángulo de rotación simple (el valor en radians del ángulo de rotación) y porque (β), porque (β) y porque (β) son los "cosenos de la dirección" localización del eje de rotación (el Teorema de Euler).

Rotación matrices

La matriz ortogonal (postmultiplicación de un vector de la columna) correspondiente a una rotación en el sentido de las agujas del reloj/zurda por la unidad quaternion da la expresión no homogénea

:

1 - 2 (q_2^2 + q_3^2) & 2 (q_1 q_2 - q_0 q_3) & 2 (q_0 q_2 + q_1 q_3) \\

2 (q_1 q_2 + q_0 q_3) & 1 - 2 (q_1^2 + q_3^2) & 2 (q_2 q_3 - q_0 q_1) \\

2 (q_1 q_3 - q_0 q_2) & 2 (q_0 q_1 + q_2 q_3) & 1 - 2 (q_1^2 + q_2^2)

\end {bmatrix} </matemáticas>

o equivalentemente, según la expresión homogénea

:

q_0^2 + q_1^2 - q_2^2 - q_3^2 & 2 (q_1 q_2 - q_0 q_3) & 2 (q_0 q_2 + q_1 q_3) \\

2 (q_1 q_2 + q_0 q_3) & q_0^2 - q_1^2 + q_2^2 - q_3^2 & 2 (q_2 q_3 - q_0 q_1) \\

2 (q_1 q_3 - q_0 q_2) & 2 (q_0 q_1 + q_2 q_3) & q_0^2 - q_1^2 - q_2^2 + q_3^2

\end {bmatrix} </matemáticas>

Si no es una unidad quaternion entonces la forma homogénea todavía es un múltiplo escalar de una matriz de rotación, mientras la forma no homogénea en general ya no es una matriz ortogonal. Esto es por qué con el trabajo numérico la forma homogénea se debe preferir si la deformación se debe evitar.

La matriz ortogonal (postmultiplicación de un vector de la columna) correspondiente a una rotación en el sentido de las agujas del reloj/zurda con Euler sesga φ, θ, dan por ψ, con la convención x-y-z:

:

\cos\theta \cos\psi &-\cos\phi \sin\psi + \sin\phi \sin\theta \cos\psi & \sin\phi \sin\psi + \cos\phi \sin\theta \cos\psi \\

\cos\theta \sin\psi & \cos\phi \cos\psi + \sin\phi \sin\theta \sin\psi &-\sin\phi \cos\psi + \cos\phi \sin\theta \sin\psi \\

- \sin\theta & \sin\phi \cos\theta & \cos\phi \cos\theta \\

\end {bmatrix} </matemáticas>

Conversión

Combinando las representaciones quaternion de las rotaciones de Euler conseguimos

:

</matemáticas>

:

\cos (\phi/2) \cos (\theta/2) \cos (\psi/2) + \sin (\phi/2) \sin (\theta/2) \sin (\psi/2) \\

\sin (\phi/2) \cos (\theta/2) \cos (\psi/2) - \cos (\phi/2) \sin (\theta/2) \sin (\psi/2) \\

\cos (\phi/2) \sin (\theta/2) \cos (\psi/2) + \sin (\phi/2) \cos (\theta/2) \sin (\psi/2) \\

\cos (\phi/2) \cos (\theta/2) \sin (\psi/2) - \sin (\phi/2) \sin (\theta/2) \cos (\psi/2) \\

\end {bmatrix} </matemáticas>

Ya que Euler se desvía nos ponemos:

:

\phi \\\theta \\\psi

\end {bmatrix} =

\begin {bmatrix }\

\mbox {arctan} \frac {2 (q_0 q_1 + q_2 q_3)} {1 - 2 (q_1^2 + q_2^2)} \\

\mbox {arcsin} (2 (q_0 q_2 - q_3 q_1)) \\

\mbox {arctan} \frac {2 (q_0 q_3 + q_1 q_2)} {1 - 2 (q_2^2 + q_3^2) }\

\end {bmatrix} </matemáticas>

el arctan y arcsin tienen un resultado entre − π/2 y π/2. Con tres rotaciones entre − π/2 y π/2 no puede tener todas las orientaciones posibles. Tiene que sustituir el arctan por atan2 para generar todas las orientaciones.

:

\phi \\\theta \\\psi

\end {bmatrix} =

\begin {bmatrix }\

\mbox {atan2} (2 (q_0 q_1 + q_2 q_3), 1 - 2 (q_1^2 + q_2^2)) \\

\mbox {arcsin} (2 (q_0 q_2 - q_3 q_1)) \\

\mbox {atan2} (2 (q_0 q_3 + q_1 q_2), 1 - 2 (q_2^2 + q_3^2))

\end {bmatrix} </matemáticas>

Relación con ángulos de Tait-Bryan

De manera similar para ángulos de Euler, usamos los ángulos de Tait-Bryan (en términos de dinámica de vuelo):

donde el Eje X señala adelante, Eje Y a la derecha y Eje Z hacia abajo y en el ejemplo para seguir la rotación ocurren en la guiñada de pedido, tono, rollo (sobre hachas fijadas en el cuerpo).

Singularidades

Hay que ser consciente de singularidades en parametrization del ángulo de Euler cuando el tono se acerca a ±90 ° (al norte/polo sur). Estos casos se deben manejar especialmente. El nombre común para esta situación es la cerradura del cardán.

El código para manejar las singularidades se saca en este sitio: www.euclideanspace.com

Véase también

Enlaces externos



Buscar