Jag försöker förstå hur man använder, vad det kräver beräknar den homogena transformationsmatrisen.

Jag känner till 2 poäng från 2 olika ramar och 2 ursprung från motsvarande ramar.

Jag hur transformationsmatris ser ut, men det som förvirrar mig är hur jag ska beräkna (3×1) positionsvektorn som matrisen behöver. Som jag förstår är den här vektorn ett ursprung för den gamla ramen jämfört med den nya ramen. Men hur man beräknar det, det uppenbara svaret (tror jag) skulle vara att subtrahera båda ($ O_ {new} – O_ {old} $), men det känns inte bra.

Jag vet att det är en enkel fråga men mitt huvud kan inte komma runt den här frågan, och hur kan jag bevisa det på rätt sätt, med den information jag känner?

Svar

En homogen transformationsmatris $ H $ används ofta som en matris för att utföra transformationer från en ram till en annan ram, uttryckt i den tidigare ramen . Translationsvektorn innefattar således [x, y (, z)] – koordinater för den senare ramen uttryckt i den förra. Kanske att detta redan svarar på din fråga, men nedan är en mer detaljerad förklaring.

Transformationsmatrisen innehåller information om både rotation och översättning och tillhör den speciella eukleiska gruppen $ SE (n) $ i $ n $ -D. Den består av en rotationsmatris $ R $ och översättningsvektorn $ r $. Om vi inte tillåter skjuvning innehåller rotationsmatrisen endast information om rotationen och tillhör den ortonormala gruppen $ SO (n) $. Vi har:

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

Låt oss definiera $ H ^ a_b $ transformationsmatrisen som uttrycker koordinatram $ \ Phi_b $ i $ \ Phi_a $, uttryckt i $ \ Phi_a $. $ \ Phi_a $ kan vara ditt ursprung, men det kan också vara en annan ram.

Du kan använda transformationsmatrisen för att uttrycka en punkt $ p = [p_x \ p_y] ^ \ top $ (vektorer) i en annan ram: $$ P_a = H ^ a_b \, P_b $$ $$ P_b = H ^ b_c \, P_c $$ med $$ P = \ börja {bmatrix} p \\ 1 \ end {bmatrix} $$ The det bästa är att du kan stapla dem enligt följande: $$ P_a = H ^ a_b H ^ b_c \, P_c = H ^ a_c \, P_c $$ Här är ett litet 2 D-exempel. Tänk på en ram $ \ Phi_b $ översatt $ [ 3 \ 2] ^ \ top $ och roterade $ 90 ^ \ circ $ grader med avseende på $ \ 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} $$ En punkt $ p_b = [3 \ 4] ^ \ top $ uttryckt i ram $ \ Phi_b $ är $$ \ börjar {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} \ till p_a = \ begin {bmatrix} -1 \\ 5 \ end {bmatrix} $$ Försök att göra en ritning för att förbättra din förståelse.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *