Sto cercando di capire come usare, cosa richiede calcolare la matrice di trasformazione omogenea.

Conosco 2 punti da 2 frame diversi e 2 origini dai frame corrispondenti.

So come appare la matrice di trasformazione, ma quello che mi confonde è come dovrei calcolare il vettore di posizione (3×1) di cui la matrice ha bisogno. A quanto ho capito, questo vettore è lorigine del vecchio frame rispetto al nuovo frame. Ma come calcolarlo, la risposta ovvia (penso) sarebbe sottrarre entrambi ($ O_ {nuovo} – O_ {vecchio} $), ma non sembra giusto.

So che è una domanda semplice ma la mia testa non riesce a aggirare questo problema e come posso dimostrarlo nel modo giusto, con le informazioni che conosco?

Risposta

Una matrice di trasformazione omogenea $ H $ viene spesso utilizzata come matrice per eseguire trasformazioni da un frame a un altro, espressa nel frame precedente . Il vettore di traslazione include quindi le coordinate [x, y (, z)] del secondo frame espresse nel primo. Forse questo già risponde alla tua domanda, ma di seguito è una spiegazione più elaborata.

La matrice di trasformazione contiene informazioni sia sulla rotazione che sulla traduzione e appartiene allo speciale gruppo euclediano $ SE (n) $ in $ n $ -D. Consiste di una matrice di rotazione $ R $ e di un vettore di traduzione $ r $. Se non permettiamo il taglio, la matrice di rotazione contiene solo informazioni sulla rotazione e appartiene al gruppo ortonormale $ SO (n) $. Abbiamo:

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

Definiamo $ H ^ a_b $ la matrice di trasformazione che esprime il frame di coordinate $ \ Phi_b $ in $ \ Phi_a $, espresso in $ \ Phi_a $. $ \ Phi_a $ può essere la tua origine, ma può anche essere un altro frame.

Puoi usare la matrice di trasformazione per esprimere un punto $ p = [p_x \ p_y] ^ \ top $ (vettori) in un altro frame: $$ P_a = H ^ a_b \, P_b $$ $$ P_b = H ^ b_c \, P_c $$ con $$ P = \ begin {bmatrix} p \\ 1 \ end {bmatrix} $$ Il la parte migliore è che puoi impilarli come segue: $$ P_a = H ^ a_b H ^ b_c \, P_c = H ^ a_c \, P_c $$ Ecco un piccolo esempio 2D. Considera un frame $ \ Phi_b $ tradotto $ [ 3 \ 2] ^ \ top $ e ruotato di $ 90 ^ \ circ $ gradi rispetto 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 $ espresso nel frame $ \ Phi_b $ è $$ \ 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} $$ Prova a fare un disegno per migliorare la tua comprensione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *