stringtranslate.com

Cuaterniones y rotación espacial.

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 eje-ángulo alrededor de un eje arbitrario. Los cuaterniones de rotación y orientación tienen aplicaciones en gráficos por computadora , [1] visión por computadora , robótica , [2] navegación , dinámica molecular , dinámica de vuelo , [3] mecánica orbital de satélites , [4] y análisis de textura cristalográfica . [5]

Cuando se usan 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 sencillos de componer . Sin embargo, no son tan intuitivos ni fáciles de entender y, debido a la naturaleza periódica del seno y el coseno, los ángulos de rotación que difieren precisamente por el período natural se codificarán en cuaterniones idénticos y los ángulos recuperados en radianes se limitarán a .

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, según 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 de un ángulo dado alrededor de un eje fijo (llamado eje de Euler ) que pasa por el punto fijo. [6] El eje de Euler normalmente se representa mediante un vector unitario ( en la imagen). Por lo tanto, cualquier rotación en tres dimensiones se puede representar mediante un vector y un ángulo .  

Los cuaterniones brindan una forma sencilla de codificar esta representación de eje-ángulo [7] usando cuatro números reales, y pueden usarse para aplicar (calcular) la rotación correspondiente a un vector de posición (x,y,z) , 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 al interpretar el vector euclidiano ( a x ,  a y ,  az ) como la parte del vector . del cuaternión puro (0, a x ,  a y ,  a z ) .

Una rotación de ángulo alrededor del eje definido por el vector unitario.

se puede representar mediante conjugación por un cuaternión unitario q . Dado que el producto del cuaternión da 1, usando la serie de Taylor de la función exponencial, resulta la extensión de la fórmula de Euler :

Se puede demostrar [8] que la rotación deseada se puede aplicar a un vector ordinario en el espacio tridimensional, considerado como la parte vectorial del cuaternión puro , evaluando la conjugación de  p por  q , dada por:

usando el producto de Hamilton , donde la parte vectorial del cuaternión puro L( p ′) = (0, r x ,  r y ,  r 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 puro cuya parte vectorial es p y luego realizando la conjugación del cuaternión. La parte vectorial del cuaternión puro resultante es el vector deseado r . Claramente, proporciona una transformación lineal del espacio del cuaternión hacia sí mismo; [9] además, al ser unitaria, la transformación es una isometría. Además, deja vectores paralelos a invariantes. Entonces, al descomponerlo como un vector paralelo a la parte del vector de y un vector normal a la parte del vector de y mostrar que la aplicación de a la componente normal de lo gira, se muestra la afirmación. Entonces, sea la componente de ortogonal a la parte vectorial de y sea . Resulta que la parte vectorial de está dada por

.

La conjugación de   p por   q se puede expresar con menos operaciones aritméticas como:

Un hecho geométrico independiente de los cuaterniones es la existencia de un mapeo de dos a uno desde rotaciones físicas hasta matrices de transformación rotacional. Si 0 ⩽ ⩽ , una rotación física alrededor de by y una rotación física alrededor de by logran la misma orientación final mediante caminos disjuntos a través de orientaciones intermedias. Al insertar esos vectores y ángulos en la fórmula para q anterior , se encuentra que si q representa la primera rotación, q representa la segunda rotación. Esta es una prueba geométrica de que la conjugación por q y por q debe producir la misma matriz de transformación rotacional. Ese hecho se confirma algebraicamente al observar que la conjugación es cuadrática en q , por lo que el signo de q se cancela y no afecta el resultado. (Ver mapeo 2:1 de SU(2) a SO(3) ) Si ambas rotaciones son media vuelta , tanto q como - q tendrán una coordenada real igual a cero. De lo contrario, uno tendrá una parte real positiva, que representa una rotación de un ángulo menor que , y el otro tendrá una parte real negativa, que representa una rotación de un ángulo mayor que .

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- dentro de sí mismo, mediante la rotación deseada alrededor del eje u , por el ángulo θ. (Esta operación transporta cada cuaternión real hacia sí mismo. 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 .

En este (¿cuál?) caso, q es un cuaternión unitario y

De ello se deduce que la conjugación por el producto de dos cuaterniones es la composición de las conjugaciones de estos cuaterniones: si p y q son cuaterniones unitarios, 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 de  n veces el ángulo alrededor del mismo eje que q . Esto se puede extender a n real arbitrario , lo que permite una interpolación suave entre orientaciones espaciales; ver Slerp .

Dos cuaterniones de rotación se pueden combinar 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 . Por lo tanto, se puede componer un número arbitrario de rotaciones y luego aplicarlas como una sola rotación. (Tenga en cuenta que la multiplicación de cuaterniones no es conmutativa ).

Ejemplo de operación de conjugación

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

Conjugar p por 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 + i + j + k/2en la unidad de 3 esferas . Tenga en cuenta que esta multiplicación unilateral (es decir, hacia la izquierda ) produce una rotación de cuaterniones de 60°

La longitud de es 3 , el medio ángulo esπ/3(60°) con coseno 1/2, ( cos 60° = 0,5 ) y seno 3/2, ( pecado 60° ≈ 0,866 ). Por tanto, estamos ante una conjugación por el cuaternión unitario.

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

Se puede demostrar que el inverso 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 de la aritmética de cuaterniones, para

Como era de esperar, la rotación corresponde a mantener un cubo fijo en un punto y girarlo 120° alrededor de la diagonal larga que pasa por el punto fijo (obsérvese 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 está la matriz de rotación dada por: [10]

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 . Usando 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 exterior , es la matriz identidad y es la matriz de transformación que cuando se multiplica por la derecha por un vector da el producto vectorial .

Dado que podemos identificarlo como , que al expandirse debería dar como resultado la expresión escrita en forma matricial arriba.

Recuperando la representación eje-ángulo

La expresión gira 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:

¿ Dónde está 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 identidad no está bien definido.

La composición de las rotaciones espaciales.

Un beneficio de la formulación de cuaterniones 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 compuesta R C = R B R A.

Sea el cuaternión asociado con una rotación espacial R 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

R BR AR CR B R A

Ampliar este producto para obtener

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

Ésta 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 (ver página 408). [11]

Los tres ejes de rotación A , B y C forman un triángulo esférico y los ángulos diédricos entre los planos formados por los lados de este triángulo están definidos por los ángulos de rotación. Hamilton [12] 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, lo que también define un álgebra para puntos en geometría elíptica .

Composición eje-ángulo

El eje de rotación normalizado, eliminando el producto expandido, deja el vector que es el eje de rotación, multiplicado por alguna constante. Se debe tener cuidado al normalizar el vector del eje cuando está o donde el vector está cerca ; que es identidad, o 0 rotación 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 necesita diferenciarse con respecto al cuaternión rotatorio q , cuando la rotación se estima a partir de optimización numérica. La estimación del ángulo de rotación es un procedimiento esencial en el registro de objetos 3D o en la calibración de cámaras. 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 usando la notación de cálculo matricial como

Se puede encontrar una derivación en. [13]

Fondo

Cuaterniones

Los números complejos se pueden definir introduciendo un símbolo abstracto i que satisface 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 se pueden definir introduciendo símbolos abstractos i , j , k que satisfacen 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 derivan todas las reglas de la aritmética de cuaterniones, como las reglas de multiplicación de elementos básicos de cuaterniones . Usando estas reglas, se puede demostrar que:

La parte imaginaria de un cuaternión se comporta como un vector en el espacio vectorial tridimensional , y la parte real a se 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 sumar un número a un vector , ya que son objetos de naturalezas muy diferentes, o multiplicar dos vectores entre sí, ya que esta operación suele estar indefinida. Sin embargo, si se recuerda que es una mera notación de las partes real e imaginaria de un cuaternión, se vuelve más legítima. En otras palabras, el razonamiento correcto es la suma de dos cuaterniones, uno con cero parte vectorial/imaginaria y otro con cero parte escalar/real:

Podemos expresar la multiplicación de cuaterniones en el lenguaje moderno de productos vectoriales cruzados y escalares (que en realidad se inspiraron en los cuaterniones en primer lugar [14] ). 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:

La multiplicación de cuaterniones no es conmutativa (debido al producto cruzado, que anticonmuta ), mientras que las multiplicaciones escalar-escalar y escalar-vectorial conmutan. 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 conjugado-norma ( ver detalles ):

como se puede comprobar mediante cálculo directo (nótese 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

produce el vector girado un ángulo alrededor del eje . Ampliando (y teniendo en cuenta que ), tenemos

Si hacemos e igualamos las componentes de perpendicular y paralela a respectivamente, entonces y , lo que lleva a

Usando las identidades trigonométricas pitagórica y de doble ángulo , entonces tenemos

Esta es la fórmula de una rotación alrededor del eje u .

Operaciones de rotación de cuaterniones

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

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 se puede entender visualizando primero el espacio de rotaciones mismo.

Dos rotaciones separadas, que se diferencian tanto por el ángulo como por el 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, es útil considerar un caso más simple. Cualquier rotación en tres dimensiones puede describirse mediante una rotación de 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 mediante un punto en un círculo a través del cual cruza el vector, y podemos seleccionar el radio del círculo para indicar 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 el espacio tridimensional, especificamos que el punto en el polo norte es la rotación identidad (una rotación de ángulo cero). Al igual que en el caso de la rotación identidad, no se define ningún eje de rotación y el ángulo de rotación (cero) es irrelevante. Una rotación que tiene un ángulo de rotación muy pequeño se puede especificar mediante un corte a través de la esfera paralelo 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 aumentan, 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 número negativo). Finalmente, cuando se alcanza el polo sur, los círculos se reducen una vez más hasta la rotación de identidad, que también se especifica como el punto en el polo sur.

Observe que en esta visualización se pueden ver varias 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 se reduce. Además, cada rotación en realidad está representada por dos puntos antípodas de la esfera, que están en 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 llamada doble cubierta ). 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 polo sur, la latitud oscila entre cero y 180 grados, mientras que el ángulo de rotación varía de 0 a 360 grados. (La "longitud" de un punto representa entonces un eje de rotación particular). Sin embargo, tenga en cuenta que este conjunto de rotaciones no está cerrado bajo composición. Dos rotaciones sucesivas con ejes en el plano xy no necesariamente darán una rotación cuyo eje se encuentre en el plano xy y, por lo tanto, no pueden 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 ampliar a una rotación general en un espacio tridimensional. La rotación idéntica 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 radio pequeño. A medida que el ángulo de rotación crece, 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 a medida que 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 3 esferas). Al igual que en el ejemplo más simple anterior, cada rotación representada como un punto en la hiperesfera coincide 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 tridimensional de puntos) a medida que la vecindad se reduzca. Este comportamiento se corresponde con el conjunto de cuaterniones unitarios: un cuaternión general representa un punto en un espacio de cuatro dimensiones, pero al restringirlo a tener una magnitud unitaria se obtiene 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 seno 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 cuaternión producto de dos cuaterniones unitarios dará como resultado un cuaternión unitario. Además, el espacio de los cuaterniones unitarios es "plano" en cualquier vecindad infinitesimal de un cuaternión unitario dado.

Parametrizando 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 ( degeneradas como lo describe el teorema de la bola peluda ) en los polos norte y sur, aunque los polos no son intrínsecamente diferentes de cualquier otro punto de la esfera. En los polos (latitud +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 incrustando la esfera en un espacio tridimensional y parametrizándola 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 de la esfera satisfacen la restricción w 2 + x 2 + y 2 = 1 , por lo que todavía tenemos sólo 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 dirigida por el vector ( x ,  y , 0) en un ángulo .

De la misma manera, el espacio hiperesférico de 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 dirigida por el vector ( x ,  y ,  z ) en un ángulo

Explicando las propiedades de los cuaterniones con rotaciones.

No conmutatividad

Rotación no conmutativa de dados.

La multiplicación de cuaterniones no es conmutativa . Este hecho explica cómo la fórmula pq p q −1 puede funcionar, 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.

La figura de la derecha ilustra esto con dados. Usa tu mano derecha para crear un par de rotaciones de 90 grados. Ambos dados están configurados inicialmente como se muestra en la esquina superior izquierda (con 1 punto en la cara superior). La ruta A comienza con una rotación alrededor del eje –y (usando la regla de la mano derecha ), seguida de una rotación alrededor del el eje +z , lo que da como resultado la configuración que se muestra en la esquina inferior izquierda (5 puntos en la cara superior). La ruta B invierte el orden de las operaciones, lo que da como resultado 3 puntos en la parte superior.

Si no tienes dados, coloca 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 del eje 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 vectorial , 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 recta conjunto para zurdos (o un conjunto para zurdos, dependiendo de cómo se defina el producto cruzado), fijando así una orientación en el espacio vectorial. Alternativamente, la dependencia de la orientación se expresa en referencia a tal 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 con los vectores axiales.

Convenciones alternativas

Se informa [16] que la existencia y el uso continuo de una convención de cuaterniones 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 [17] y se aparta de la tradición al invertir la definición para multiplicar elementos básicos de cuaterniones de manera que según la convención de Shuster, mientras que la definición de Hamilton es . Esta convención también se conoce como "convención JPL" por su uso en algunas partes del Laboratorio de Propulsión a Chorro de la NASA .

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 según la convención de Shuster, observe que el signo antes del producto cruzado se invierte de más a menos.

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

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

Aplicaciones de software por convención utilizadas.

La siguiente tabla agrupa las aplicaciones según su adherencia a cualquiera de las convenciones de cuaterniones: [16]

Si bien el uso de cualquiera de las convenciones no afecta la capacidad o corrección de las aplicaciones así creadas, los autores de [16] 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 es posible que nunca sea adoptada por el áreas de física matemática o teórica.

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 un á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 nos interesan las "rotaciones suaves", lo que significa que la escena debe rotar 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, necesariamente se acumulan errores de redondeo. Un cuaternión ligeramente desviado todavía representa una rotación después de ser normalizado: una matriz que está ligeramente desviada puede dejar de ser ortogonal y es más difícil convertirla nuevamente en una matriz ortogonal adecuada.

Los cuaterniones también evitan un fenómeno llamado bloqueo del cardán que puede ocurrir cuando, por ejemplo, en sistemas de rotación de cabeceo/guiñada/giro , el cabeceo se gira 90° hacia arriba o hacia abajo, de modo que guiñada y balanceo corresponden 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 un descenso o ascenso pronunciado.

Conversión hacia y 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 posteriormente con un vector columna viene dada por

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

donde está el conjugado del cuaternión , dado por

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

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

Un cálculo más eficiente en el que no es necesario normalizar la unidad del cuaternión viene dado por [20]

donde se han definido las siguientes cantidades intermedias:

De una matriz ortogonal a un cuaternión

Hay que 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 conocer un método estable para convertir una matriz ortogonal en un cuaternión, consulte Matriz de rotación#Cuaternión .

Ajuste de cuaterniones

La sección anterior describió cómo recuperar un cuaternión q a partir de una matriz de rotación Q de 3 × 3 . Sin embargo, supongamos 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 represente 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 original Q [ dudoso ] . [21]

Comparaciones de rendimiento

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

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

* Los cuaterniones se pueden convertir implícitamente en una matriz similar a una rotación (12 multiplicaciones y 12 sumas/restas), que nivela los siguientes vectores de costos de rotación con el método de la 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 R de 3 × 3 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 mediante un cuaternión de longitud unitaria q = ( w ,  r ) con parte escalar (real) w y 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 realiza mediante multiplicación). Esta fórmula, originalmente pensada para usarse con notación de eje/ángulo (fórmula de Rodrigues), también puede ser aplicado a la notación de cuaterniones. Esto produce el mismo resultado que la fórmula menos eficiente pero más compacta de multiplicación de cuaterniones .
  3. Utilice la fórmula de ángulo/eje para convertir un ángulo/eje en una matriz de rotación R y luego multiplique por 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 por un vector. Convertir el ángulo/eje a R cuesta 12 multiplicaciones, 2 llamadas a funciones (sen, cos) y 10 sumas/restas; A partir del elemento 1, rotar usando R agrega 9 multiplicaciones y 6 sumas adicionales para un total de 21 multiplicaciones, 16 sumas/restas y 2 llamadas a funciones (sin, cos). Convertir un cuaternión a R cuesta 12 multiplicaciones y 12 sumas/restas; del elemento 1, rotar usando R agrega 9 multiplicaciones y 6 sumas adicionales para un total de 21 multiplicaciones y 18 sumas/restas.

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 desde , las dos matrices deben conmutar. Por lo tanto, hay dos subgrupos de conmutación del grupo de rotaciones de cuatro dimensiones. Las rotaciones arbitrarias de cuatro dimensiones tienen 6 grados de libertad; cada matriz representa 3 de esos 6 grados de libertad.

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

Ver también

Referencias

  1. ^ Zapatero, Ken (1985). "Animación de rotación con curvas de cuaterniones" (PDF) . Gráficos de computadora . 19 (3): 245–254. doi :10.1145/325165.325242.Presentado en SIGGRAPH '85.
  2. ^ JM McCarthy, 1990, Introducción a la cinemática teórica, MIT Press
  3. ^ Amnon Katz (1996) Dinámica computacional de vehículos rígidos , Krieger Publishing Co. ISBN 978-1575240169 
  4. ^ JB Kuipers (1999) Cuaterniones y secuencias de rotación: introducción con aplicaciones a órbitas, aeroespacial y realidad virtual , Princeton University Press ISBN 978-0-691-10298-6 
  5. ^ Karsten Kunze, Helmut Schaeben (noviembre de 2004). "La distribución de Bingham de cuaterniones y su transformada esférica de radón en el análisis de textura". Geología Matemática . 36 (8): 917–943. doi :10.1023/B:MATG.0000048799.56445.59. S2CID  55009081.
  6. ^ Geometría euclidiana y no euclidiana. Patrick J. Ryan, Cambridge University Press, Cambridge, 1987.
  7. ^ IL Kantor. Números hipercomplejos, Springer-Verlag, Nueva York, 1989.
  8. ^ Andrew J. Hanson. Visualizando cuaterniones, Morgan Kaufmann Publishers, Ámsterdam, 2006.
  9. ^ JH Conway y DA Smith. Sobre cuaterniones y octoniones, AK Peters, Natick, MA, 2003.
  10. ^ "Preguntas frecuentes sobre comp.graphics.algorithms" . Consultado el 2 de julio de 2017 .
  11. ^ Rodrigues, O. (1840), Des lois géométriques qui régissent les déplacements d'un système solide dans l'espace, et la variación des coordonnées provenant de ses déplacements considérés indépendamment des cause qui peuvent les produire, Journal de Mathématiques Pures et Appliquées de Liouville 5, 380–440.
  12. ^ William Rowan Hamilton (1844 a 1850) Sobre cuaterniones o un nuevo sistema de imaginarios en álgebra, Philosophical Magazine , enlace a la colección de David R. Wilkins en Trinity College, Dublín
  13. ^ Lee, Byung-Uk (1991), "Diferenciación con cuaterniones, Apéndice B" (PDF) , Coincidencia estéreo de puntos de referencia del cráneo (tesis doctoral), Universidad de Stanford, págs.
  14. ^ Altmann, Simon L. (1989). "Hamilton, Rodrigues y el escándalo del Cuaternión". Revista Matemáticas . 62 (5): 306. doi : 10.2307/2689481. JSTOR  2689481.
  15. ^ Simon L. Altman (1986) Rotaciones, cuaterniones y grupos dobles , Publicaciones de Dover (ver especialmente el capítulo 12).
  16. ^ abc Sommer, H. (2018), "Por qué y cómo evitar la multiplicación de cuaterniones invertidos", Aeroespacial , 5 (3): 72, arXiv : 1801.07478 , Bibcode : 2018Aeros...5...72S, doi : 10.3390 /aeroespacial5030072 , ISSN  2226-4310
  17. ^ Shuster, MD (1993), "Un estudio sobre representaciones de actitudes", Journal of the Astronautical Sciences , 41 (4): 439–517, Bibcode :1993JAnSc..41..439S, ISSN  0021-9142
  18. ^ "Cuatrotato de MATLAB Aerospace Toolbox".
  19. ^ MATLAB Aerospace Toolbox utiliza la convención de multiplicación de Hamilton; sin embargo, debido a que aplica rotaciones *pasivas* en lugar de *activas*, los cuaterniones enumerados son, de hecho, rotaciones activas que utilizan la convención de Shuster. [18]
  20. ^ Alan Watt y Mark Watt (1992) Técnicas avanzadas de animación y renderizado: teoría y práctica , ACM Press ISBN 978-0201544121 
  21. ^ Bar-Itzhack, Itzhack Y. (noviembre-diciembre de 2000), "Nuevo método para extraer el cuaternión de una matriz de rotación", Journal of Guidance, Control and Dynamics , 23 (6): 1085–1087, Bibcode :2000JGCD.. .23.1085B, doi :10.2514/2.4654, ISSN  0731-5090
  22. ^ Eberly, D., Representaciones de rotación y problemas de desempeño
  23. ^ "Bitbucket". bitbucket.org .

Otras lecturas

Enlaces y recursos externos