Cuaterniones y rotación espacial - Quaternions and spatial rotation

Los cuaterniones unitarios , conocidos como versores , proporcionan una notación matemática conveniente para representar orientaciones espaciales y rotaciones de elementos en un espacio tridimensional. Específicamente, codifican información sobre una rotación de ángulo de eje alrededor de un eje arbitrario. Los cuaterniones de rotación y orientación tienen aplicaciones en gráficos por computadora , visión por computadora , robótica , navegación , dinámica molecular , dinámica de vuelo , mecánica orbital de satélites y análisis de texturas cristalográficas .

Cuando se utilizan para representar la rotación, los cuaterniones unitarios también se denominan cuaterniones de rotación, ya que representan el grupo de rotación 3D . Cuando se utilizan para representar una orientación (rotación relativa a un sistema de coordenadas de referencia), se denominan cuaterniones de orientación o cuaterniones de actitud . Una rotación espacial alrededor de un punto fijo de radianes alrededor de un eje unitario que denota el eje de Euler viene dada por el cuaternión , donde y .

En comparación con las matrices de rotación , los cuaterniones son más compactos, eficientes y numéricamente estables . En comparación con los ángulos de Euler , son más simples de componer y evitan el problema del bloqueo del cardán . Sin embargo, no son tan intuitivos y fáciles de entender como los ángulos de Euler. Y, debido a la naturaleza periódica del seno y el coseno, los ángulos de rotación que difieran precisamente por el período natural se codificarán en cuaterniones idénticos y los ángulos recuperados se limitarán a (en radianes ).

Usando cuaterniones como rotaciones

Visualización 3D de una esfera y una rotación alrededor de un eje de Euler ( ) en un ángulo de

En el espacio tridimensional, de acuerdo con el teorema de rotación de Euler , cualquier rotación o secuencia de rotaciones de un cuerpo rígido o sistema de coordenadas alrededor de un punto fijo es equivalente a una sola rotación por un ángulo dado alrededor de un eje fijo (llamado eje de Euler ) que pasa por el punto fijo. El eje de Euler está típicamente representado por un vector unitario u ( en la imagen). Por lo tanto, cualquier rotación en tres dimensiones se puede representar como una combinación de un vector u y un escalar .   

Los cuaterniones proporcionan una forma sencilla de codificar esta representación eje-ángulo en cuatro números, y se pueden utilizar para aplicar la rotación correspondiente a un vector de posición , que representa un punto relativo al origen en R 3 . Los vectores euclidianos como (2, 3, 4) o ( a x ,  a y ,  a z ) se pueden reescribir como 2  i + 3  j + 4  k o a x i + a y j + a z k , donde i , j , k son vectores unitarios que representan los tres ejes cartesianos (tradicionalmente x , y , z ), y también obedecen las reglas de multiplicación de las unidades fundamentales del cuaternión.

Por lo tanto, una rotación de ángulo alrededor del eje definido por el vector unitario

se puede representar mediante un cuaternión. Esto se puede hacer usando una extensión de la fórmula de Euler :

Se puede demostrar que la rotación deseada se puede aplicar a un vector ordinario en un espacio tridimensional, considerado como un cuaternión con una coordenada real igual a cero, evaluando la conjugación de  p por  q :

usando el producto de Hamilton , donde p ′ = ( p x ′,  p y ′,  p z ′) es el nuevo vector de posición del punto después de la rotación. En una implementación programática, la conjugación se logra construyendo un cuaternión cuya parte vectorial es py la parte real es igual a cero, y luego realizando la multiplicación del cuaternión. La parte del vector del cuaternión resultante es el vector deseado p ' .

Matemáticamente, esta operación lleva el conjunto de todos los cuaterniones "puros" p (aquellos con parte real igual a cero) —que constituyen un espacio tridimensional entre los cuaterniones— en sí misma, por la rotación deseada alrededor del eje u , por el ángulo θ. (Cada cuaternión real se lleva a sí mismo mediante esta operación. Pero a los efectos de las rotaciones en el espacio tridimensional, ignoramos los cuaterniones reales).

La rotación es en el sentido de las agujas del reloj si nuestra línea de visión apunta en la misma dirección que u .

En este caso, q es un cuaternión unitario y

De ello se desprende que la conjugación por el producto de dos cuaterniones es la composición de conjugaciones por estos cuaterniones: Si p y q son quaternions de la unidad, entonces la rotación (conjugación) por  pq es

,

que es lo mismo que rotar (conjugar) por  q y luego por  p . El componente escalar del resultado es necesariamente cero.

El cuaternión inverso de una rotación es la rotación opuesta, ya que . El cuadrado de una rotación de cuaternión es una rotación del doble del ángulo alrededor del mismo eje. De manera más general, q n es una rotación  n veces el ángulo alrededor del mismo eje que q . Esto puede extenderse a n real arbitrario , lo que permite una interpolación suave entre orientaciones espaciales; ver Slerp .

Se pueden combinar dos cuaterniones de rotación en un cuaternión equivalente mediante la relación:

en el que q corresponde a la rotación q 1 seguida de la rotación q 2 . (Tenga en cuenta que la multiplicación de cuaterniones no es conmutativa ). Por lo tanto, se puede componer un número arbitrario de rotaciones juntas y luego aplicarlas como una sola rotación.

Ejemplo de operación de conjugación

Una rotación de 120 ° alrededor de la primera diagonal permuta i , j y k cíclicamente

La conjugación de p con q se refiere a la operación pqpq −1 .

Considere la rotación f alrededor del eje , con un ángulo de rotación de 120 °, o2 π/3 radianes .

pq p para q =1 + yo + j + k/2en la unidad de 3 esferas . Tenga en cuenta que esta multiplicación unilateral (es decir, izquierda ) produce una rotación de 60 ° de cuaterniones

La longitud de v es 3 , la mitad del ángulo esπ/3(60 °) con coseno 1/2, ( cos 60 ° = 0,5 ) y seno 3/2, ( sen 60 ° ≈ 0,866 ). Por lo tanto, estamos tratando con una conjugación por la unidad cuaternión

Si f es la función de rotación,

Se puede demostrar que la inversa de un cuaternión unitario se obtiene simplemente cambiando el signo de sus componentes imaginarios. Como consecuencia,

y

Esto se puede simplificar, utilizando las reglas ordinarias para la aritmética de cuaterniones, para

Como era de esperar, la rotación corresponde a mantener un cubo fijo en un punto y rotarlo 120 ° sobre la diagonal larga a través del punto fijo (observe cómo los tres ejes se permutan cíclicamente ).

Matriz de rotación derivada de cuaterniones

Una rotación de cuaternión (con ) se puede manipular algebraicamente en una rotación de matriz , donde es la matriz de rotación dada por:

Aquí y si q es un cuaternión unitario, .

Esto se puede obtener usando cálculo vectorial y álgebra lineal si expresamos y como partes escalares y vectoriales y usamos la fórmula para la operación de multiplicación en la ecuación . Si escribimos como , como y como , donde , nuestra ecuación se convierte en . Al usar la fórmula para la multiplicación de dos cuaterniones que se expresan como partes escalares y vectoriales,

esta ecuación se puede reescribir como

donde denota el producto externo , es la matriz de identidad y es la matriz de transformación que cuando se multiplica por la derecha con un vector da el producto cruzado .

Ya que , podemos identificar como , que al expandirse debería resultar en la expresión escrita en forma de matriz arriba.

Recuperar la representación eje-ángulo

La expresión rota cualquier cuaternión vectorial alrededor de un eje dado por el vector por el ángulo , donde y depende del cuaternión .

y se puede encontrar a partir de las siguientes ecuaciones:

donde es el arcotangente de dos argumentos .

Se debe tener cuidado cuando el cuaternión se acerca a un escalar , ya que debido a la degeneración, el eje de una rotación de identidad no está bien definido.

La composición de rotaciones espaciales.

Un beneficio de la formulación de cuaternión de la composición de dos rotaciones R B y R A es que produce directamente el eje de rotación y el ángulo de la rotación compuesto R C = R B R A .

Supongamos que el cuaternión asociado con una rotación espacial R se construya a partir de su eje de rotación S con el ángulo de rotación alrededor de este eje. El cuaternión asociado viene dado por

Entonces, la composición de la rotación R B con R A es la rotación R C = R B R A con eje de rotación y ángulo definido por el producto de los cuaterniones

es decir

Expanda este producto para obtener

Divida ambos lados de esta ecuación por la identidad, que es la ley de los cosenos en una esfera ,

y calcular

Esta es la fórmula de Rodrigues para el eje de una rotación compuesta definida en términos de los ejes de las dos rotaciones. Derivó esta fórmula en 1840 (véase la página 408).

Los tres ejes de rotación A , B y C forman un triángulo esférico y los ángulos diedros entre los planos formados por los lados de este triángulo están definidos por los ángulos de rotación. Hamilton presentó la forma componente de estas ecuaciones mostrando que el producto del cuaternión calcula el tercer vértice de un triángulo esférico a partir de dos vértices dados y sus longitudes de arco asociadas, que también define un álgebra para puntos en geometría elíptica .

Composición del ángulo del eje

El eje de rotación normalizado, quitando el del producto expandido, deja el vector que es el eje de rotación, multiplicado por algunos constantes. Se debe tener cuidado al normalizar el vector del eje cuando está o donde el vector está cerca ; que es identidad, o rotación 0 alrededor de cualquier eje.

O con sustituciones trigonométricas de suma de ángulos ...

finalmente normalizando el eje de rotación: o .

Diferenciación con respecto al cuaternión de rotación

El cuaternión rotado p '= q p q −1 debe diferenciarse con respecto al cuaternión rotativo q , cuando la rotación se estima a partir de la optimización numérica. La estimación del ángulo de rotación es un procedimiento esencial en el registro de objetos 3D o la calibración de la cámara. Para q unitario y p imaginario puro , es decir, para una rotación en el espacio 3D, las derivadas del cuaternión rotado se pueden representar utilizando la notación de cálculo matricial como

Se puede encontrar una derivación en.

Fondo

Cuaterniones

Los números complejos se pueden definir introduciendo un símbolo abstracto i que satisfaga las reglas habituales del álgebra y además la regla i 2 = −1 . Esto es suficiente para reproducir todas las reglas de la aritmética de números complejos: por ejemplo:

De la misma manera, los cuaterniones pueden definirse introduciendo símbolos abstractos i , j , k que satisfagan las reglas i 2 = j 2 = k 2 = i j k = −1 y las reglas algebraicas habituales, excepto la ley conmutativa de la multiplicación (un ejemplo familiar de tal multiplicación no conmutativa es la multiplicación de matrices ). De esto se siguen todas las reglas de la aritmética de cuaterniones, como las reglas sobre la multiplicación de elementos básicos de cuaterniones . Usando estas reglas, uno puede demostrar que:

La parte imaginaria de un cuaternión se comporta como un vector en tres dimensiones de espacio vectorial , y la parte real de un comporta como un escalar en R . Cuando se utilizan cuaterniones en geometría, es más conveniente definirlos como un escalar más un vector :

A algunos les puede resultar extraño agregar un número a un vector , ya que son objetos de naturaleza muy diferente, o multiplicar dos vectores juntos, ya que esta operación generalmente no está definida. Sin embargo, si uno recuerda que es una mera notación para las partes real e imaginaria de un cuaternión, se vuelve más legítimo. En otras palabras, el razonamiento correcto es la suma de dos cuaterniones, uno con parte vectorial / imaginaria cero y otro con parte escalar / real cero:

Podemos expresar la multiplicación de cuaterniones en el lenguaje moderno de los productos de puntos y cruces vectoriales (que en realidad se inspiraron en los cuaterniones en primer lugar). Al multiplicar las partes vectoriales / imaginarias, en lugar de las reglas i 2 = j 2 = k 2 = ijk = −1 tenemos la regla de multiplicación de cuaterniones:

dónde:

  • es el cuaternión resultante,
  • es el producto cruzado vectorial (un vector),
  • es un producto escalar vectorial (un escalar).

La multiplicación de cuaterniones no es conmutativa (debido al producto cruzado, que es anti-conmutador ), mientras que las multiplicaciones escalar-escalar y escalar-vector conmuta. De estas reglas se deduce inmediatamente que ( ver detalles ):

El inverso o recíproco multiplicativo (izquierdo y derecho) de un cuaternión distinto de cero viene dado por la relación de conjugado a norma ( ver detalles ):

como se puede verificar mediante cálculo directo (observe la similitud con el inverso multiplicativo de los números complejos ).

Identidad de rotación

Sea un vector unitario (el eje de rotación) y sea . Nuestro objetivo es demostrar que

da como resultado el vector girado en un ángulo alrededor del eje . Expandiéndonos (y teniendo en cuenta eso ), tenemos

Usando identidades trigonométricas :

donde y son los componentes de v (perpendicular y paralelo a u respectivamente). Esta es la fórmula de una rotación por alrededor de la T eje.

Operaciones de rotación de cuaterniones

Altman ofrece una explicación muy formal de las propiedades utilizadas en esta sección.

La hiperesfera de rotaciones

Visualizando el espacio de rotaciones

Los cuaterniones unitarios representan el grupo de rotaciones euclidianas en tres dimensiones de una manera muy sencilla. La correspondencia entre rotaciones y cuaterniones puede entenderse visualizando primero el propio espacio de rotaciones.

Dos rotaciones separadas, que difieren tanto en ángulo como en eje, en el espacio de rotaciones. Aquí, la longitud de cada vector de eje es relativa a la magnitud respectiva de la rotación alrededor de ese eje.

Para visualizar el espacio de rotaciones, ayuda considerar un caso más simple. Cualquier rotación en tres dimensiones puede describirse mediante una rotación en algún ángulo alrededor de algún eje ; para nuestros propósitos, usaremos un vector de eje para establecer la lateralidad de nuestro ángulo. Considere el caso especial en el que el eje de rotación se encuentra en el plano xy . Luego podemos especificar el eje de una de estas rotaciones por un punto en un círculo a través del cual se cruza el vector, y podemos seleccionar el radio del círculo para denotar el ángulo de rotación .

De manera similar, una rotación cuyo eje de rotación se encuentra en el plano xy puede describirse como un punto en una esfera de radio fijo en tres dimensiones. Comenzando en el polo norte de una esfera en un espacio tridimensional, especificamos que el punto en el polo norte es la rotación de identidad (una rotación de ángulo cero). Al igual que en el caso de la rotación de identidad, no se define ningún eje de rotación y el ángulo de rotación (cero) es irrelevante. Una rotación que tenga un ángulo de rotación muy pequeño se puede especificar mediante un corte a través de la esfera paralela al plano xy y muy cerca del polo norte. El círculo definido por este corte será muy pequeño, correspondiente al pequeño ángulo de rotación. A medida que los ángulos de rotación se hacen más grandes, el corte se mueve en la dirección z negativa y los círculos se hacen más grandes hasta que se alcanza el ecuador de la esfera, que corresponderá a un ángulo de rotación de 180 grados. Continuando hacia el sur, los radios de los círculos ahora se vuelven más pequeños (correspondiente al valor absoluto del ángulo de rotación considerado como un número negativo). Finalmente, a medida que se alcanza el polo sur, los círculos se encogen una vez más hasta la rotación de identidad, que también se especifica como el punto en el polo sur.

Observe que esta visualización puede ver una serie de características de tales rotaciones y sus representaciones. El espacio de rotaciones es continuo, cada rotación tiene una vecindad de rotaciones que son casi iguales, y esta vecindad se vuelve plana a medida que la vecindad se contrae. Además, cada rotación está representada en realidad por dos puntos antípodas en la esfera, que están en los extremos opuestos de una línea que pasa por el centro de la esfera. Esto refleja el hecho de que cada rotación puede representarse como una rotación alrededor de algún eje o, de manera equivalente, como una rotación negativa alrededor de un eje que apunta en la dirección opuesta (la denominada doble cobertura ). La "latitud" de un círculo que representa un ángulo de rotación particular será la mitad del ángulo representado por esa rotación, ya que a medida que el punto se mueve del polo norte al sur, la latitud varía de cero a 180 grados, mientras que el ángulo de rotación varía de 0 a 360 grados. (la "longitud" de un punto entonces representa un eje de rotación particular.) Tenga en cuenta, sin embargo, que este conjunto de rotaciones no está cerrado por composición. Dos rotaciones sucesivas con ejes en el plano xy no necesariamente darán una rotación cuyo eje se encuentra en el plano xy y, por lo tanto, no puede representarse como un punto en la esfera. Este no será el caso con una rotación general en 3 espacios, en la que las rotaciones forman un conjunto cerrado bajo composición.

La esfera de rotaciones para las rotaciones que tienen un eje "horizontal" (en el plano xy ).

Esta visualización se puede extender a una rotación general en un espacio tridimensional. La rotación de identidad es un punto, y un pequeño ángulo de rotación alrededor de algún eje se puede representar como un punto en una esfera con un pequeño radio. A medida que crece el ángulo de rotación, la esfera crece, hasta que el ángulo de rotación alcanza los 180 grados, momento en el que la esfera comienza a encogerse, convirtiéndose en un punto cuando el ángulo se acerca a los 360 grados (o cero grados desde la dirección negativa). Este conjunto de esferas en expansión y contracción representa una hiperesfera en un espacio de cuatro dimensiones (una esfera tridimensional ). Al igual que en el ejemplo más simple anterior, cada rotación representada como un punto en la hiperesfera se corresponde con su punto antípoda en esa hiperesfera. La "latitud" en la hiperesfera será la mitad del ángulo de rotación correspondiente, y la vecindad de cualquier punto se volverá "más plana" (es decir, estará representada por un espacio euclidiano de puntos en 3D) a medida que la vecindad se contraiga. Este comportamiento se corresponde con el conjunto de cuaterniones unitarios: un cuaternión general representa un punto en un espacio de cuatro dimensiones, pero restringirlo para que tenga una magnitud unitaria produce un espacio tridimensional equivalente a la superficie de una hiperesfera. La magnitud del cuaternión unitario será la unidad, correspondiente a una hiperesfera de radio unitario. La parte vectorial de un cuaternión unitario representa el radio de la 2-esfera correspondiente al eje de rotación, y su magnitud es el coseno de la mitad del ángulo de rotación. Cada rotación está representada por dos cuaterniones unitarios de signo opuesto y, como en el espacio de rotaciones en tres dimensiones, el producto del cuaternión de dos cuaterniones unitarios producirá un cuaternión unitario. Además, el espacio de los cuaterniones unitarios es "plano" en cualquier vecindad infinitesimal de un cuaternión unitario dado.

Parametrizar el espacio de rotaciones

Podemos parametrizar la superficie de una esfera con dos coordenadas, como latitud y longitud. Pero la latitud y la longitud se comportan mal ( degeneran ) en los polos norte y sur, aunque los polos no son intrínsecamente diferentes de cualquier otro punto de la esfera. En los polos (latitudes + 90 ° y −90 °), la longitud pierde sentido.

Se puede demostrar que ningún sistema de coordenadas de dos parámetros puede evitar tal degeneración. Podemos evitar tales problemas al incrustar la esfera en un espacio tridimensional y parametrizarla con tres coordenadas cartesianas ( w ,  x ,  y ) , colocando el polo norte en ( w ,  x ,  y ) = (1, 0, 0) , el polo sur en ( w ,  x ,  y ) = (−1, 0, 0) y el ecuador en w = 0 , x 2 + y 2 = 1 . Los puntos en la esfera satisfacen la restricción w 2 + x 2 + y 2 = 1 , por lo que todavía tenemos solo dos grados de libertad aunque hay tres coordenadas. Un punto ( w ,  x ,  y ) en la esfera representa una rotación en el espacio ordinario alrededor del eje horizontal dirigido por el vector ( x ,  y , 0) por un ángulo .

De la misma manera, el espacio hiperesférico de las rotaciones 3D se puede parametrizar mediante tres ángulos (ángulos de Euler ), pero dicha parametrización se degenera en algunos puntos de la hiperesfera, lo que lleva al problema del bloqueo del cardán . Podemos evitar esto usando cuatro coordenadas euclidianas w ,  x ,  y ,  z , con w 2 + x 2 + y 2 + z 2 = 1 . El punto ( w ,  x ,  y ,  z ) representa una rotación alrededor del eje dirigido por el vector ( x ,  y ,  z ) por un ángulo

Explicando las propiedades de los cuaterniones con rotaciones

No conmutatividad

La multiplicación de cuaterniones no es conmutativa . Este hecho explica cómo la fórmula pq p q −1 puede funcionar en absoluto, teniendo q q −1 = 1 por definición. Dado que la multiplicación de cuaterniones unitarios corresponde a la composición de rotaciones tridimensionales, esta propiedad puede hacerse intuitiva mostrando que las rotaciones tridimensionales no son conmutativas en general.

Coloque dos libros uno al lado del otro. Gire uno de ellos 90 grados en el sentido de las agujas del reloj alrededor del eje z , luego gírelo 180 grados alrededor del eje x . Tome el otro libro, gírelo 180 ° alrededor del eje x primero y 90 ° en el sentido de las agujas del reloj alrededor de z después. Los dos libros no terminan siendo paralelos. Esto muestra que, en general, la composición de dos rotaciones diferentes alrededor de dos ejes espaciales distintos no conmutará.

Orientación

El producto vectorial cruzado , utilizado para definir la representación eje-ángulo, confiere una orientación ("lateralidad") al espacio: en un espacio vectorial tridimensional, los tres vectores en la ecuación a  ×  b = c siempre formarán una derecha. - conjunto para zurdos (o un conjunto para zurdos, según se defina el producto cruzado), fijando así una orientación en el espacio vectorial. Alternativamente, la dependencia de la orientación se expresa refiriéndose a tal u que especifica una rotación en cuanto a vectores axiales . En el formalismo cuaterniónico, la elección de una orientación del espacio corresponde al orden de multiplicación: ij = k pero ji = - k . Si se invierte la orientación, entonces la fórmula anterior se convierte en pq −1 p q , es decir, una unidad q se reemplaza con el cuaternión conjugado, el mismo comportamiento que los vectores axiales.

Convenciones alternativas

Se informa que la existencia y el uso continuo de una convención de cuaternión alternativa en la comunidad aeroespacial y, en menor medida, en la robótica está incurriendo en un costo significativo y continuo [ sic ]. Esta convención alternativa es propuesta por Shuster MD en y se aparta de la tradición al revertir la definición de multiplicar elementos de base de cuaternión tal que bajo la convención de Shuster, mientras que la definición de Hamilton es .

Según la convención de Shuster, la fórmula para multiplicar dos cuaterniones se modifica de modo que

La fórmula para rotar un vector por un cuaternión se modifica para ser

Para identificar los cambios bajo la convención de Shuster, vea que el signo antes del producto cruzado esté volteado de más a menos.

Finalmente, la fórmula para convertir un cuaternión en una matriz de rotación se modifica para ser

que es exactamente la transposición de la matriz de rotación convertida según la convención tradicional.

La siguiente tabla agrupa las aplicaciones por su adherencia a cualquiera de las convenciones de cuaterniones.

Aplicaciones de software por convención utilizadas

Convención de multiplicación de Hamilton Convención de multiplicación de Shuster
  • Wolfram Mathematica
  • Caja de herramientas del sistema de robótica MATLAB
  • Caja de herramientas aeroespacial de MATLAB
  • ROS
  • Eigen
  • Impulsar los cuaterniones
  • Quaternion.js
  • Ceres Solver
* Biblioteca de matemáticas de Microsoft DirectX

Si bien el uso de cualquiera de las convenciones no afecta la capacidad o la corrección de las aplicaciones así creadas, los autores de argumentaron que la convención de Shuster debería abandonarse porque se aparta de la convención de multiplicación de cuaterniones mucho más antigua de Hamilton y puede que nunca sea adoptada por los matemáticos o teóricos. áreas de física.

Comparación con otras representaciones de rotaciones

Ventajas de los cuaterniones

La representación de una rotación como un cuaternión (4 números) es más compacta que la representación como una matriz ortogonal (9 números). Además, para un eje y ángulo dados, se puede construir fácilmente el cuaternión correspondiente y, a la inversa, para un cuaternión dado se puede leer fácilmente el eje y el ángulo. Ambos son mucho más difíciles con matrices o ángulos de Euler .

En los videojuegos y otras aplicaciones, a menudo uno está interesado en "rotaciones suaves", lo que significa que la escena debe girar lentamente y no en un solo paso. Esto se puede lograr eligiendo una curva como la interpolación lineal esférica en los cuaterniones, siendo un punto final la transformación de identidad 1 (o alguna otra rotación inicial) y el otro la rotación final prevista. Esto es más problemático con otras representaciones de rotaciones.

Al componer varias rotaciones en una computadora, los errores de redondeo necesariamente se acumulan. Un cuaternión que está ligeramente desviado todavía representa una rotación después de ser normalizado: una matriz que está un poco desviada puede dejar de ser ortogonal y es más difícil de convertir de nuevo a una matriz ortogonal adecuada.

Los cuaterniones también evitan un fenómeno llamado bloqueo del cardán que puede ocurrir cuando, por ejemplo, en los sistemas de rotación de cabeceo / guiñada / balanceo , el cabeceo se gira 90 ° hacia arriba o hacia abajo, de modo que el guiñada y el balanceo correspondan al mismo movimiento, y un grado de se pierde la libertad de rotación. En un sistema de navegación inercial aeroespacial basado en cardán , por ejemplo, esto podría tener resultados desastrosos si la aeronave se encuentra en una pendiente pronunciada o en un ascenso.

Conversión ay desde la representación matricial

De un cuaternión a una matriz ortogonal

La matriz ortogonal correspondiente a una rotación por el cuaternión unitario z = a + b i + c j + d k (con | z | = 1 ) cuando se multiplica después con un vector columna está dada por

Esta matriz de rotación se utiliza en el vector w as . La representación de cuaterniones de esta rotación viene dada por:

donde es el conjugado del cuaternión , dado por

Además, la multiplicación de cuaternión se define como (asumiendo un y b son los cuaterniones, como z arriba):

donde el orden a , b es importante ya que el producto cruzado de dos vectores no es conmutativo.

De una matriz ortogonal a un cuaternión

Se debe tener cuidado al convertir una matriz de rotación en un cuaternión, ya que varios métodos sencillos tienden a ser inestables cuando la traza (suma de los elementos diagonales) de la matriz de rotación es cero o muy pequeña. Para obtener un método estable de convertir una matriz ortogonal en un cuaternión, consulte la subsección Cuaternión del artículo Matriz de rotación .

Colocación de cuaterniones

La sección anterior describe cómo recuperar un cuaternión q de una matriz de rotación Q de 3 × 3 . Supongamos, sin embargo, que tenemos alguna matriz Q que no es una rotación pura (debido a errores de redondeo , por ejemplo) y deseamos encontrar el cuaternión q que representa Q con mayor precisión . En ese caso, construimos una matriz simétrica de 4 × 4

y encuentre el vector propio ( x ,  y ,  z ,  w ) correspondiente al valor propio más grande (ese valor será 1 si y solo si Q es una rotación pura). El cuaternión así obtenido corresponderá a la rotación más cercana a la matriz Q original .

Comparaciones de desempeño

Esta sección analiza las implicaciones de rendimiento del uso de cuaterniones frente a otros métodos (eje / ángulo o matrices de rotación) para realizar rotaciones en 3D.

Resultados

Requisitos de almacenamiento
Método Almacenamiento
Matriz de rotación 9
Cuaternio 3 o 4 (ver más abajo)
Ángulo / eje 3 o 4 (ver más abajo)

Solo tres de los componentes del cuaternión son independientes, ya que una rotación está representada por un cuaternión unitario. Para un cálculo adicional, generalmente se necesitan los cuatro elementos, por lo que todos los cálculos sufrirían un gasto adicional por recuperar el cuarto componente. Del mismo modo, el ángulo / eje se puede almacenar en un vector de tres componentes multiplicando la dirección de la unidad por el ángulo (o una función del mismo), pero esto tiene un costo computacional adicional cuando se usa para los cálculos.

Comparación del rendimiento de las operaciones de encadenamiento de rotación
Método # multiplica # suma / resta operaciones totales
Matrices de rotacion 27 18 45
Cuaterniones dieciséis 12 28
Comparación de rendimiento de operaciones de rotación de vectores
Método # multiplica # suma / resta # pecado / cos operaciones totales
Matriz de rotación 9 6 0 15
Cuaterniones * Sin matriz intermedia 15 15 0 30
Cuaterniones * Con matriz intermedia 21 18 0 39
Ángulo / eje Sin matriz intermedia 18 13 2 30 + 3
Ángulo / eje Con matriz intermedia 21 dieciséis 2 37 + 2

* Nota: Los cuaterniones se pueden convertir implícitamente a una matriz similar a la rotación (12 multiplicaciones y 12 sumas / restas), que nivela el costo de rotación de los siguientes vectores con el método de matriz de rotación.

Métodos usados

Hay tres enfoques básicos para rotar un vector v :

  1. Calcule el producto matricial de una matriz de rotación de 3 × 3 R y la matriz de columna original de 3 × 1 que representa v . Esto requiere 3 × (3 multiplicaciones + 2 sumas) = ​​9 multiplicaciones y 6 sumas, el método más eficiente para rotar un vector.
  2. Una rotación se puede representar por un cuaternión de longitud unitaria q = ( w ,  r ) con una parte escalar (real) w y una parte vectorial (imaginaria) r . La rotación se puede aplicar a un vector 3D v mediante la fórmula . Esto requiere solo 15 multiplicaciones y 15 sumas para evaluar (o 18 multiplicaciones y 12 sumas si el factor de 2 se hace mediante multiplicación). Esta fórmula, originalmente pensada para usarse con la notación de eje / ángulo (fórmula de Rodrigues), también puede ser aplicado a la notación de cuaternión. Esto produce el mismo resultado que la fórmula menos eficiente pero más compacta de multiplicación de cuaterniones .
  3. Use la fórmula de ángulo / eje para convertir un ángulo / eje en una matriz de rotación R y luego multiplique con un vector o, de manera similar, use una fórmula para convertir la notación de cuaterniones en una matriz de rotación y luego multiplique con un vector. Convertir el ángulo / eje a R cuesta 12 multiplicaciones, 2 llamadas de función (sin, cos) y 10 sumas / restas; del elemento 1, al rotar con R se agregan 9 multiplicaciones y 6 sumas adicionales para un total de 21 multiplicaciones, 16 sumas / restas y 2 llamadas de función (sin, cos). Convertir un cuaternión en R cuesta 12 multiplicaciones y 12 sumas / restas; del ítem 1, rotar usando R agrega 9 multiplicaciones y 6 sumas adicionales para un total de 21 multiplicaciones y 18 sumas / restas.
Comparación de rendimiento de n operaciones de rotación de vectores
Método # multiplica # suma / resta # pecado / cos operaciones totales
Matriz de rotación 9 n 6 n 0 15 n
Cuaterniones * Sin matriz intermedia 15 n 15 n 0 30 n
Cuaterniones * Con matriz intermedia 9 n + 12 6 n + 12 0 15 n + 24
Ángulo / eje Sin matriz intermedia 18 n 12 n + 1 2 30 n + 3
Ángulo / eje Con matriz intermedia 9 n + 12 6 n + 10 2 15 n + 24

Pares de cuaterniones unitarios como rotaciones en el espacio 4D

Un par de cuaterniones unitarios z l y z r pueden representar cualquier rotación en el espacio 4D . Dado un vector de cuatro dimensiones v , y asumiendo que es un cuaternión, podemos rotar el vector v así:

El par de matrices representa una rotación de ℝ 4 . Tenga en cuenta que , dado que , las dos matrices deben conmutar. Por lo tanto, hay dos subgrupos de conmutación del grupo de rotaciones de cuatro dimensiones. Las rotaciones arbitrarias en cuatro dimensiones tienen 6 grados de libertad; cada matriz representa 3 de esos 6 grados de libertad.

Dado que los generadores de las rotaciones de cuatro dimensiones se pueden representar mediante pares de cuaterniones (como sigue), también se pueden representar todas las rotaciones de cuatro dimensiones.

Ver también

Referencias

Otras lecturas

Recursos y enlaces externos