Expresar el sistema de coordenadas local por otro sistema de coordenadas local a través del sistema de coordenadas global

Imagine que tiene un sistema de coordenadas global 3D, un sistema de coordenadas local arbitrario 1 y un sistema de coordenadas local arbitrario 2.

Están disponibles dos matrices de rotación que definen las rotaciones del sistema de coordenadas local 1 (R1) y el sistema de coordenadas local 2 (R2), ambos con respecto al sistema de coordenadas global.

¿Cómo puedo expresar la rotación del sistema de coordenadas local 1 con respecto al sistema de coordenadas local 2? Probé con la solución en el enlace a continuación, pero no obtuve los resultados esperados.

https://stackoverflow.com/questions/19621069/3d-rotation-matrix-rotate-to-another-reference-system

Gracias de antemano.

Respuestas (1)

Dejar R 1 describir la rotación del sistema de coordenadas global al primer sistema de coordenadas local, y R 2 describir la rotación del sistema de coordenadas global al segundo sistema de coordenadas local.

Entonces, R 1 1 describe la rotación desde el primer sistema de coordenadas local hasta el sistema de coordenadas global, y R 2 1 describe la rotación desde el segundo sistema de coordenadas local hasta el sistema de coordenadas global.

Cuando matriz R es una matriz de rotación pura, es ortonormal, y su inversa es su transpuesta, R 1 = R T .

Supongamos una multiplicación correcta o posterior entre matrices y vectores. Esto significa que si el vector v gramo en el sistema de coordenadas global corresponde al vector v 1 en el primer sistema de coordenadas local, y al vector v 2 en el segundo sistema de coordenadas local, entonces

(1) v 1 = R 1 v gramo
(2) v 2 = R 2 v gramo
(3) v gramo = R 1 1 v 1
(4) v gramo = R 2 1 v 2
podemos sustituir (4) en (1) Llegar
v 1 = R 1 R 2 1 v 2
o (3) en (2) Llegar
v 2 = R 2 R 1 1 v 1
Esto significa que para rotar un vector desde el primer sistema de coordenadas local al segundo sistema de coordenadas, necesitamos usar la matriz de rotación R 1 2 ,
(5) R 1 2 = R 2 R 1 1
y desde el segundo sistema de coordenadas local de vuelta al primero, R 2 1 ,
(6) R 2 1 = R 1 R 2 1
Tenga en cuenta que debido a que ambas matrices son ortonormales,
R 2 1 = R 1 2 1 R 1 2 = R 2 1 1
No es necesario repetir este procedimiento para todos los casos. De lo anterior, podemos derivar algunas reglas que serán de gran ayuda en este tipo de situaciones.

  1. Consideramos solo vectores columna, es decir v = [ v 1 v 2 v 3 ] .

  2. Consideramos sólo matrices puras de rotación y reflexión, es decir, matrices ortonormales, para las cuales R 1 = R T , y es el inverso de la rotación por R .

  3. Usamos la multiplicación derecha o posterior de vectores para la multiplicación matriz-vector. Esto significa que para rotar el vector v por matriz R , obtenemos resultado, o vector rotado r , usando r = R v .

  4. Podemos encadenar rotaciones multiplicando las matrices de rotación. Si las matrices son ortonormales, el resultado también es ortonormal. La primera rotación es la matriz más a la derecha del producto y la última rotación es la matriz más a la izquierda del producto.

  5. Para calcular la rotación entre dos sistemas de coordenadas locales, "desenrollamos" las rotaciones iniciales del sistema de coordenadas utilizando matrices de rotación inversa en el orden inverso, seguidas de las matrices de rotación en el orden normal desde el sistema de coordenadas global hasta el sistema de coordenadas local de destino.


Como ejemplo, supongamos que tenemos dos sistemas de coordenadas locales cuyas rotaciones desde el sistema de coordenadas global son R 1 y R 2 , y tenemos otros dos sistemas de coordenadas locales, R 11 y R 12 encima de (o relativo a) R 1 , y otros dos sistemas de coordenadas locales R 21 y R 22 encima de (o relativo a) R 2 .

En otras palabras, vector v 0 en el sistema de coordenadas global corresponde a:

v 1 = R 1 v 0 v 2 = R 2 v 0 v 11 = R 11 R 1 v 0 v 12 = R 12 R 1 v 0 v 21 = R 21 R 2 v 0 v 22 = R 22 R 2 v 0
entonces
R 1 2 = R 2 R 1 T R 22 2 = R 22 T R 21 12 = R 12 R 1 R 2 T R 21 T
etcétera. ¡Simples!

Nótese que podríamos escribir R 22 2 = R 2 R 2 T R 22 T , pero desde R R T = R T R = I (matriz de identidad; "sin cambio") para matrices ortonormales, podemos omitir la parte de identidad o "sin cambio", y simplemente usar R 22 2 = R 22 T .