Jessaie de comprendre comment utiliser, ce quil faut pour calculer la matrice de transformation homogène.
Je connais 2 points de 2 cadres différents, et 2 origines de leurs cadres correspondants.
Jai à quoi ressemble la matrice de transformation, mais ce qui me déroute, cest comment je devrais calculer le vecteur de position (3×1) dont la matrice a besoin. Si je comprends bien, ce vecteur est une origine de lancien cadre par rapport au nouveau cadre. Mais comment le calculer, la réponse évidente (je pense) serait de soustraire les deux ($ O_ {new} – O_ {old} $), mais cela ne semble pas juste.
Je sais que cest une question simple mais ma tête ne peut pas contourner ce problème, et comment puis-je le prouver de la bonne façon, avec les informations que je connais?
Réponse
Une matrice de transformation homogène $ H $ est souvent utilisée comme matrice pour effectuer des transformations dune image à une autre, exprimée dans lancienne image . Le vecteur de translation comprend donc les coordonnées [x, y (, z)] de la dernière trame exprimées dans la première. Peut-être que cela répond déjà à votre question, mais vous trouverez ci-dessous une explication plus élaborée.
La matrice de transformation contient des informations sur la rotation et la translation et appartient au groupe euclédien spécial $ SE (n) $ in $ n $ -RÉ. Il se compose dune matrice de rotation $ R $ et dun vecteur de translation $ r $. Si nous nautorisons aucun cisaillement, la matrice de rotation ne contient que des informations sur la rotation et appartient au groupe orthonormé $ SO (n) $. Nous avons:
$$ H = \ begin {bmatrix} R & r \\ \ bar {0} & 1 \ end {bmatrix} $$
Définissons $ H ^ a_b $ la matrice de transformation qui exprime le cadre de coordonnées $ \ Phi_b $ en $ \ Phi_a $, exprimé en $ \ Phi_a $. $ \ Phi_a $ peut être votre origine, mais cela peut aussi être une autre image.
Vous pouvez utiliser la matrice de transformation pour exprimer un point $ p = [p_x \ p_y] ^ \ top $ (vecteurs) dans un autre cadre: $$ P_a = H ^ a_b \, P_b $$ $$ P_b = H ^ b_c \, P_c $$ avec $$ P = \ begin {bmatrix} p \\ 1 \ end {bmatrix} $$ Le la meilleure partie est que vous pouvez les empiler comme suit: $$ P_a = H ^ a_b H ^ b_c \, P_c = H ^ a_c \, P_c $$ Voici un petit exemple en 2D. Considérons un cadre $ \ Phi_b $ traduit $ [ 3 \ 2] ^ \ top $ et a tourné $ 90 ^ \ circ $ degrés par rapport à $ \ 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 point $ p_b = [3 \ 4] ^ \ top $ exprimé dans le cadre $ \ Phi_b $ est $$ \ 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} $$ Essayez de faire un dessin pour améliorer votre compréhension.