Estoy tratando de entender cómo se usa, qué requiere calcular la matriz de transformación homogénea.

Conozco 2 puntos de 2 marcos diferentes y 2 orígenes de sus marcos correspondientes.

Veo cómo se ve la matriz de transformación, pero lo que me confunde es cómo debo calcular el vector de posición (3×1) que necesita la matriz. Según tengo entendido, este vector es un origen del marco antiguo en comparación con el nuevo marco. Pero cómo calcularlo, la respuesta obvia (creo) sería restar ambos ($ O_ {nuevo} – O_ {antiguo} $), pero no se siente bien.

Sé que es una pregunta simple, pero mi cabeza no puede evitar este problema, y ¿cómo puedo probarlo de la manera correcta, con la información que conozco?

Respuesta

Una matriz de transformación homogénea $ H $ se usa a menudo como una matriz para realizar transformaciones de un marco a otro, expresado en el marco anterior . Por tanto, el vector de traslación incluye las coordenadas [x, y (, z)] del último marco expresado en el primero. Quizás esto ya responde a su pregunta, pero a continuación hay una explicación más elaborada.

La matriz de transformación contiene información sobre la rotación y la traducción y pertenece al grupo euclidiano especial $ SE (n) $ en $ n $ -D. Consiste en una matriz de rotación $ R $ y un vector de traslación $ r $. Si no permitimos cortante, la matriz de rotación solo contiene información sobre la rotación y pertenece al grupo ortonormal $ SO (n) $. Tenemos:

$$ H = \ begin {bmatrix} R & r \\ \ bar {0} & 1 \ end {bmatrix} $$

Definamos $ H ^ a_b $ la matriz de transformación que expresa el marco de coordenadas $ \ Phi_b $ en $ \ Phi_a $, expresado en $ \ Phi_a $. $ \ Phi_a $ puede ser tu origen, pero también puede ser otro marco.

Puedes usar la matriz de transformación para expresar un punto $ p = [p_x \ p_y] ^ \ top $ (vectores) en otro marco: $$ P_a = H ^ a_b \, P_b $$ $$ P_b = H ^ b_c \, P_c $$ con $$ P = \ begin {bmatrix} p \\ 1 \ end {bmatrix} $$ The La mejor parte es que puede apilarlos de la siguiente manera: $$ P_a = H ^ a_b H ^ b_c \, P_c = H ^ a_c \, P_c $$ Aquí hay un pequeño ejemplo de 2 D. Considere un marco $ \ Phi_b $ traducido $ [ 3 \ 2] ^ \ top $ y rotó $ 90 ^ \ circ $ grados con respecto a $ \ Phi_a $. $$ H ^ a_b = \ begin {bmatrix} \ cos (90 ^ \ circ) & – \ sin (90 ^ \ circ) & 3 \\ \ sin (90 ^ \ circ) & \ cos (90 ^ \ circ) & 2 \\ 0 & 0 & 1 \ end {bmatrix} = \ begin {bmatrix} 0 & -1 & 3 \\ 1 & 0 & 2 \\ 0 & 0 & 1 \ end {bmatrix} $$ Un punto $ p_b = [3 \ 4] ^ \ top $ expresado en el marco $ \ Phi_b $ es $$ \ begin {bmatrix} p_ {a, x} \\ p_ {a, y} \\ 1 \ end {bmatrix} = \ begin {bmatrix} 0 & -1 & 3 \\ 1 & 0 & 2 \\ 0 & 0 & 1 \ end {bmatrix} \ begin {bmatrix} 3 \\ 4 \\ 1 \ end {bmatrix} = \ begin {bmatrix} -1 \\ 5 \\ 1 \ end {bmatrix} \ to p_a = \ begin {bmatrix} -1 \\ 5 \ end {bmatrix} $$ Intenta hacer un dibujo para mejorar tu comprensión.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *