27 votos

Composición de dos rotaciones eje-ángulo

Tenga en cuenta que soy no en referencia a Ángulos de Euler de la forma (,,). Me refiero a la representación eje-ángulo , en el que un vector unitario indica el eje de dirección de una rotación y un escalar la magnitud de la rotación.

Sea $(\hat{n_1},\theta_1)$ se refieren a la primera rotación y $(\hat{n_2},\theta_2)$ se refieren a la segunda rotación. ¿Cuál es el valor de la primera rotación seguida de la segunda rotación, en representación eje-ángulo?

Entiendo que la composición de dos rotaciones representadas por cuaterniones $q_1$ y $q_2$ es igual a su producto $q_2q_1$ . ¿Existe alguna forma de hallar la composición de rotaciones eje-ángulo (sin tener que convertirlas a cuaterniones, multiplicarlas y volver a convertirlas a eje-ángulo) de forma similar? ¿Existe una fórmula simplificada para esta operación?

25voto

Keshav Srinivasan Puntos 1776

La fórmula figura en este extracto de un artículo de revista. Lo descubrió el matemático francés Olinde Rodrigues en 1840, antes de que se inventaran los vectores e incluso los cuaterniones (que se inventaron antes que los vectores).

La composición de $\alpha\hat{l}$ y $\beta\hat{m}$ (donde se aplica la segunda rotación y luego se aplica la primera) viene dada por $\gamma\hat{n}$ donde $\cos\frac{\gamma}{2} = \cos\frac{\alpha}{2}\cos\frac{\beta}{2} - \sin\frac{\alpha}{2}\sin\frac{\beta}{2}\hat{l}\cdot\hat{m}$ y $\sin\frac{\gamma}{2}\hat{n}=\sin\frac{\alpha}{2}\cos\frac{\beta}{2}\hat{l}+\cos\frac{\alpha}{2}\sin\frac{\beta}{2}\hat{m}+\sin\frac{\alpha}{2}\sin\frac{\beta}{2}\hat{l}\times\hat{m}$ .

Como comprobación de cordura, es fácil ver que cuando $\hat{l}=\hat{m}$ entonces es fácil ver que $\gamma=\alpha+\beta$ y $\hat{n}= \hat{l}=\hat{m}$ .

En cualquier caso, estas fórmulas se demuestran en detalle en el capítulo 9 secciones 2-4 del libro de Simon Altmann "Rotaciones, cuaterniones y grupos dobles", pero básicamente se reduce a este triángulo esférico:

enter image description here

Ver también este resultado relacionado demostrada por William Rowan Hamilton tras inventar los cuaterniones.

8voto

Quaternions Puntos 1

Hice una investigación original usando Mathematica, y esta fue la forma más simple que pude encontrar.

Dados dos ángulos de eje $\vec{a}$ y $\vec{b}$ con $a = \|\vec{a}\|$ y $b = \|\vec{b}\|$

El vector resultante tiene la longitud

$c = \cos^{-1}\left(\cos a \cos b - (\hat{a} \sin a) \cdot (\hat{b} \sin b)\right)$

y está en la dirección

$d = (\cos a) (\hat{b} \sin b) + (\cos b) (\hat{a} \sin a) + (\hat{a} \sin a) \times (\hat{b} \sin b)$

Así que

$C = c \hat{d}$

donde $\hat{x} = \vec{x} / |x|$ . No es muy monstruoso, pero me llevó varias horas de simplificar y pinchar.

1voto

lunixbochs Puntos 779

No creo que lo haya sin pasar por alguna representación alternativa (cuaternión, matriz, ...). Esta es una de las desventajas conocidas de eje-ángulo en comparación con los demás, mientras que una ventaja es la trivialidad de la inversión (simplemente negar el ángulo o el eje).

1voto

rschwieb Puntos 60669

El procedimiento de los cuaterniones es probablemente el más sencillo, fácil de aplicar y más económico desde el punto de vista informático.

En la práctica, lo más probable es que todo esto se haga en un ordenador, y calcular el producto de dos cuaterniones (en el gran esquema de las cosas) no es mucho más difícil que dos números reales o dos números complejos. I piense en la multiplicación es más eficiente desde el punto de vista informático que multiplicar dos $3\times 3$ matrices, al menos.

En realidad, si te sientas y trabajas la solución del cuaternión, probablemente puedas elaborar una fórmula completamente en términos de las coordenadas del $n_i$ y los ángulos $\theta_i$ . Sería monstruoso, pero sería totalmente en términos de sus datos (y tal vez funciones trigonométricas inversas.)

0voto

J Decker Puntos 101

No estoy seguro de si esto es más simple o más complejo. Esto reelabora las fórmulas para combinar los ángulos antes de tomar el sen/cos. Yo había empezado con esto... https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation#The_composition_of_spatial_rotations y terminé alimentando los parciales a wolfram alpha, y obteniendo funciones equivalentes.

https://github.com/d3x0r/stfrphysics#live-demos implementan este método; es equivalente.

dado

  • ${Q} = [n,\theta]$ n es un vector normal/eje de rotación

  • ${P} = [n,\theta]$ $\theta$ es el ángulo de rotación, a menudo positivo.

  • resultado compuesto, de Q girado alrededor de P.

    • $ R_{\theta} = 2 cos^{-1}(\frac { {\cos (\frac {{ Q_\theta} - P_{\theta}} 2)}( 1 - (Q_n \cdot P_n) ) + {\cos (\frac {{ Q_\theta} + P_{\theta}} 2) }(1+(Q_n \cdot P_n)) } 2 ) $

    • $ R_n = ( Q_n \times P_n ) ({\cos (\frac {{ Q_\theta} - P_{\theta}} 2)}-{ \cos (\frac {{ Q_\theta} + P_{\theta}} 2) }) + P_n ({\sin (\frac {{ Q_\theta} + P_{\theta}} 2)}+{\sin (\frac {{ Q_\theta} - P_{\theta}} 2)}) + Q_n ({\sin (\frac {{ Q_\theta} + P_{\theta}} 2)}-{\sin (\frac {{ Q_\theta} - P_{\theta}} 2)}) $

-o-

  • $ A = Q_n \cdot P_n $

  • $ B = \cos \frac {{ Q_\theta} + P_{\theta}} 2 $

  • $ C = \cos \frac {{ Q_\theta} - P_{\theta}} 2 $

  • $ D = \frac { C( 1 - A ) + B(1+A) } 2 $

  • $ {Result}_{\theta} = 2 \arccos( D ) $

si $ {Result}_{\theta} = 0 $

  • entonces las dos rotaciones son coincidentes el eje se deja sin modificar.

si no

  • $ E = \sin \frac {{ Q_\theta} + P_{\theta}} 2 $
  • $ F = \sin \frac {{ Q_\theta} - P_{\theta}} 2 $
  • $ G = ( Q_n \times P_n ) (C-B) + P_n (E+F) + Q_n (E-F) $
  • $ {Result}_n = \frac G {||G||} $

$ {Result} = Result_{\theta} {Result}_n $

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X