Ángulos de Euler extrínsecos e intrínsecos a la matriz de rotación y viceversa

actualmente estoy trabajando en la visualización de sistemas de coordenadas en el espacio para comprender mejor las matrices de rotación. Hasta ahora pensé que todo estaría bien, pero hay una cosa que no me entra en la cabeza, tal vez puedas ayudarme. Seré tan preciso como pueda.

Convenciones

  1. Utilizo las matrices de rotación de base de, por ejemplo, http://en.wikipedia.org/wiki/Rotation_matrix#Basic_rotations . Dejar pag i R 3 × 1 ser un vector expresado en el sistema de coordenadas cs i : ( O i , i i , j i , k i ) y R R 3 × 3 la matriz de rotación antes mencionada. Dejar pag R 3 × 1 ser otro vector arbitrario cuyo significado puede cambiar. pag 0 = R pag puede interpretarse de varias maneras:
    • una rotación de un vector pag a la versión girada pag 0 en el mismo sistema de coordenadas.
    • dejar pag = pag 1 ser las coordenadas de un punto en otro sistema de coordenadas cs 1 , entonces pag 0 = R 0 1 pag 1 con R 0 1 = R es el mismo punto expresado en cs 0 . Esto puede ser visto como un cuerpo ( cs 1 ) y un mundo ( cs 0 ) sistema coordinado.
    • la matriz de rotación R 0 1 nos da la orientación de cs 1 relativo a cs 0 . las columnas en R 0 1 son los vectores directores del sistema cs 1 .
  2. Estas rotaciones se denominan transformación activa o coartada, consulte http://en.wikipedia.org/wiki/Active_and_passive_transformation
  3. La rotación sucesiva puede ser alrededor del sistema de coordenadas global cs 0 o alrededor de uno local. Esto depende del orden de la multiplicación. Por ejemplo: pag 0 = R 0 1 R 1 2 pag 2 = R 0 2 pag 2 es un vector que gira dos veces. La rotación tiene lugar alrededor del eje local o rotado, esto se llama rotación intrínseca. Para la rotación extrínseca alrededor del eje global de cs 0 se sostiene lo siguiente: pag 0 = R 1 2 R 0 1 pag 2 , por lo que las matrices se intercambian. esto es cierto para norte secuencias de rotación alrededor de diferentes ejes y ángulos.

  4. La orientación está descrita por R . Pero hay 9 parámetros para almacenar y sin una gráfica de los vectores unitarios es difícil imaginar la orientación. Entonces, otro método para calcular la orientación son los ángulos de euler o tait-bryan, vea Euler_angles en Wikipedia, no puedo publicar más de 2 enlaces, lo siento. Hay muchas definiciones, traté de usar solo dos:

    • zy'-x'' (intrínseco) lo que significa: Primero girar alrededor del eje z con un ángulo Ψ , luego alrededor del nuevo eje y con Θ y luego alrededor del nuevo eje x con Φ . Los ángulos se denominan comúnmente balanceo de cabeceo de guiñada o rumbo, elevación y alabeo. R zy'x'' = R z ( Ψ ) R y ( Θ ) R X ( Φ )
    • zyx (extrínseco) Lo mismo que arriba, pero siempre gira alrededor del eje global. R zix = R X ( Φ ) R y ( Θ ) R z ( Ψ ) . Las matrices completas se dan en el apéndice.

Sería increíble, si ustedes pueden confirmar lo dicho anteriormente, o decirme si hay algún error.

Problema

Ahora viene lo difícil (para mí). Suponga que desea obtener los ángulos de Euler de las matrices de rotación. En las matrices de rotación se puede ver para la rotación intrínseca R zx'y'' , el r ( i , j ) son los elementos de Matrix.

Φ = atan2 ( r ( 3 , 2 ) , r ( 3 , 3 ) ) Θ = como en ( r ( 3 , 1 ) ) Ψ = atan2 ( r ( 2 , 1 ) , r ( 1 , 1 ) )

y para la rotación extrínseca R zxy

Φ = atan2 ( r ( 2 , 3 ) , r ( 3 , 3 ) ) Θ = como en ( r ( 1 , 3 ) ) Ψ = atan2 ( r ( 1 , 2 ) , r ( 1 , 1 ) )

El problema: no puedo interpretar los ángulos correctamente. Sigamos con la primera secuencia de rotación y giremos un sistema de coordenadas a una orientación inicial. Por ejemplo rotar π / 8 = 22.5 ° alrededor del eje x, de modo que los ángulos de Euler son [ Φ , Θ , Ψ ] = [ 22.5 0 0 ] . Ahora gire alrededor del nuevo eje y (verde) en pasos de 10 grados varias veces. Vea la imagen, el sistema de coordenadas en negrita es la orientación inicial, el punteado es el sistema mundial. Como ayuda, también dibujé el plano xz. ingrese la descripción de la imagen aquíAl calcular los ángulos de Euler intrínsecos de la matriz de rotación con los formularios mencionados anteriormente, obtengo los siguientes ángulos para las 6 posiciones

  Phi         Theta       Psi
  22.5        0           0
  22.812      9.2319      3.8603
  23.788       18.42      7.9294
  25.561      27.512      12.459
  28.401      36.431      17.802
  32.798      45.051      24.516

Entonces, lo que realmente esperaba era que Phi y Psi permanecieran constantes y solo Thetachanges. Desafortunadamente, este es el caso, cuando calculo los ángulos EXTRÍNSECOS a partir de la segunda definición:

22.5          10          -0
22.5          20          -0
22.5          30          -0
22.5          40          -0
22.5          50          -0

¿Se puede explicar esto fácilmente? Pensé que los ángulos de guiñada, cabeceo y balanceo (intrínsecos) describen la rotación alrededor de estos ejes, por ejemplo, de un avión. ¿Mezclé algo en mis cálculos (sin embargo, lo verifiqué y parece ser consistente) o hay una explicación fácil?

Solo para completar, aquí hay una imagen de una rotación alrededor del eje y GLOBAL: ingrese la descripción de la imagen aquíLos ángulos se comportan de manera similar (por supuesto, los valores son diferentes y ya no se encuentran en el plano xz)

intrinsic
Phi             Theta        Psi
  22.5          10           0
    22.5          20           0
    22.5          30           0
    22.5          40           0
    22.5          50           0


extrinsic
Phi             Theta        Psi
  22.812      9.2319     -3.8603
  23.788       18.42     -7.9294
  25.561      27.512     -12.459
  28.401      36.431     -17.802
  32.798      45.051     -24.516

Escribí todo el texto anterior para estar realmente seguro de que estamos hablando del mismo orden de rotación y convención, ya que esta es la fuente de la mayoría de los errores.

¡Muchas gracias!

Apéndice

R X ( θ ) = [ 1 0 0 0 porque θ pecado θ 0 pecado θ porque θ ] R y ( θ ) = [ porque θ 0 pecado θ 0 1 0 pecado θ 0 porque θ ] R z ( θ ) = [ porque θ pecado θ 0 pecado θ porque θ 0 0 0 1 ]

R zy'z'' = [ C Ψ C Θ C Ψ s Θ s Φ C Φ s Ψ s Ψ s Φ + C Ψ C Φ s Θ C Θ s Ψ C Ψ C Φ + s Ψ s Θ s Φ C Φ s Ψ s Θ C Ψ s Φ s Θ C Θ s Φ C Θ C Φ ]

R zix = [ C Ψ C Θ s Φ C Θ s Θ s Φ C Ψ s Θ + C Φ s Ψ C Φ C Ψ s Φ s Ψ s Θ s Φ C Θ s Φ s Ψ C Θ C Ψ s Θ C Φ s Ψ s Θ + s Φ C Ψ C Θ C Φ ]

¿Hay algo mal con la pregunta?

Respuestas (1)

Usted describe la secuencia de Euler ZYX como Primero alrededor de Z, luego Y, luego X. Pero en su problema, está haciendo XYZ, primero X luego Y... ¿Es este el problema?

Descomponga con la secuencia XYZ o cambie su prueba para que coincida con ZYX.

Un poco de teoría conceptual: el orden de multiplicación que usa para aplicar esa rotación corresponderá a una de las dos descomposiciones de Euler (la premultiplicación será intrínseca o extrínseca).

Si aplica la otra descomposición, obtendrá resultados no intuitivos.

Así que solo queda convencerse de que la premultiplicación está rotando el sistema de coordenadas Local sobre un eje GLOBAL. Esto es lo que creo que es cierto, y como hiciste esos diagramas, puedes confirmarlo.

Pero para su secuencia de Euler, la multiplicación previa de Ry (Θ) (en comparación con Rx (Φ)) sería intrínseca, no sobre GLOBAL. Entonces, el problema es que su definición de la matriz de rotación que desea descomponer no coincide con la secuencia de Euler con la que está descomponiendo.