Încerc să înțeleg cum să folosesc, ceea ce necesită calculează matricea de transformare omogenă.
Știu 2 puncte din 2 cadre diferite și 2 origini din cadrele lor corespunzătoare.
Am cum arată matricea de transformare, dar ceea ce mă încurcă este cum ar trebui să calculez vectorul de poziție (3×1) de care are nevoie matricea. După cum am înțeles, acest vector este o origine a vechiului cadru în comparație cu noul cadru. Dar cum să-l calculăm, răspunsul evident (cred) ar fi scăderea ambelor ($ O_ {new} – O_ {old} $), dar nu se simte bine.
Știu că este o întrebare simplă, dar capul meu nu poate rezolva această problemă și cum o pot dovedi corect, cu informațiile pe care le cunosc?
Răspuns
O matrice de transformare omogenă $ H $ este adesea utilizată ca matrice pentru a efectua transformări de la un cadru la alt cadru, exprimat în cadrul anterior . Vectorul de traducere include astfel coordonatele [x, y (, z)] ale ultimului cadru exprimate în primul. Poate că acest lucru vă răspunde deja la întrebarea dvs., dar mai jos este o explicație mai elaborată.
Matricea de transformare conține informații atât despre rotație, cât și despre translație și aparține grupului eucleian special $ SE (n) $ în $ n $ -D. Se compune dintr-o matrice de rotație $ R $ și vectorul de traducere $ r $. Dacă nu permitem tăierea, matricea de rotație conține doar informații despre rotație și aparține grupului ortonormal $ SO (n) $. Avem:
$$ H = \ begin {bmatrix} R & r \\ \ bar {0} & 1 \ end {bmatrix} $$
Să definim $ H ^ a_b $ matricea de transformare care exprimă cadrul de coordonate $ \ Phi_b $ în $ \ Phi_a $, exprimat în $ \ Phi_a $. $ \ Phi_a $ poate fi originea dvs., dar poate fi și un alt cadru.
Puteți utiliza matricea de transformare pentru a exprima un punct $ p = [p_x \ p_y] ^ \ top $ (vectori) într-un alt cadru: $$ P_a = H ^ a_b \, P_b $$ $$ P_b = H ^ b_c \, P_c $$ cu $$ P = \ begin {bmatrix} p \\ 1 \ end {bmatrix} $$ cea mai bună parte este că le puteți stiva după cum urmează: $$ P_a = H ^ a_b H ^ b_c \, P_c = H ^ a_c \, P_c $$ Aici un mic exemplu 2 D. Luați în considerare un cadru $ \ Phi_b $ tradus $ [ 3 \ 2] ^ \ top $ și rotit 90 $ ^ \ circ $ grade față de $ \ 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 punct $ p_b = [3 \ 4] ^ \ top $ exprimat în cadrul $ \ Phi_b $ este $$ \ 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} $$ Încercați să faceți un desen pentru a vă înțelege mai bine.