Ik probeer te begrijpen hoe, wat het vereist, de homogene transformatiematrix te berekenen.
Ik ken 2 punten van 2 verschillende frames en 2 oorsprong van hun overeenkomstige frames.
Ik zie hoe de transformatiematrix eruitziet, maar wat me in de war brengt, is hoe ik de (3×1) positievector moet berekenen die de matrix nodig heeft. Zoals ik begrijp, is deze vector een oorsprong van het oude frame vergeleken met het nieuwe frame. Maar hoe het te berekenen, het voor de hand liggende antwoord zou (denk ik) zijn om beide ($ O_ {nieuw} – O_ {oud} $) af te trekken, maar het voelt niet goed.
Ik weet dat het een simpele vraag is, maar mijn hoofd kan dit probleem niet omzeilen, en hoe kan ik het op de juiste manier bewijzen met de informatie die ik ken?
Antwoord
Een homogene transformatiematrix $ H $ wordt vaak gebruikt als een matrix om transformaties uit te voeren van het ene frame naar het andere frame, uitgedrukt in het vorige frame . De translatievector omvat dus [x, y (, z)] coördinaten van het laatste frame uitgedrukt in het eerste. Wellicht dat hiermee uw vraag al beantwoord is, maar hieronder een meer uitgebreide uitleg.
De transformatiematrix bevat informatie over zowel rotatie als vertaling en behoort tot de speciale Eucledische groep $ SE (n) $ in $ n $ -D. Het bestaat uit een rotatiematrix $ R $ en een vertaalvector $ r $. Als we geen afschuiving toestaan, bevat de rotatiematrix alleen informatie over de rotatie en behoort deze tot de orthonormale groep $ SO (n) $. We hebben:
$$ H = \ begin {bmatrix} R & r \\ \ bar {0} & 1 \ end {bmatrix} $$
Laten we $ H ^ a_b $ de transformatiematrix definiëren die het coördinatenframe $ \ Phi_b $ in $ \ Phi_a $ uitdrukt, uitgedrukt in $ \ Phi_a $. $ \ Phi_a $ kan uw oorsprong zijn, maar het kan ook een ander frame zijn.
U kunt de transformatiematrix gebruiken om een punt uit te drukken $ p = [p_x \ p_y] ^ \ top $ (vectoren) in een ander frame: $$ P_a = H ^ a_b \, P_b $$ $$ P_b = H ^ b_c \, P_c $$ met $$ P = \ begin {bmatrix} p \\ 1 \ end {bmatrix} $$ De Het beste is dat je ze als volgt kunt stapelen: $$ P_a = H ^ a_b H ^ b_c \, P_c = H ^ a_c \, P_c $$ Hier een klein 2D-voorbeeld. Beschouw een frame $ \ Phi_b $ vertaald $ [ 3 \ 2] ^ \ top $ en $ 90 ^ \ circ $ graden gedraaid ten opzichte van $ \ 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} $$ A punt $ p_b = [3 \ 4] ^ \ top $ uitgedrukt in frame $ \ Phi_b $ is $$ \ 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} $$ Probeer een tekening te maken om uw begrip te verbeteren.