Considérons le point P arbitraire est représenté dans le repère absolu {A} par le vecteur
𝑨
𝒑 = 𝑨𝒙 ⃗⃗⃗⃗
𝑥𝐴 + 𝑨𝒚 ⃗⃗⃗⃗
𝑦𝐴 et dans le repère relatif {B} par 𝑩𝒑 = 𝑩𝒙 ⃗⃗⃗⃗𝑥𝐵 + 𝑩𝒚 ⃗⃗⃗⃗
𝑦𝐵 . Nous créons
un nouveau repère {V} dont les axes sont parallèles à ceux de {A} mais dont l'origine est
la même chose que {B} (Voir la figure 2). On peut exprimer le point P par rapport à {V}
en termes de vecteurs-unités définissant les axes du repère :
𝑽
𝑽 𝒙
𝒑 = 𝑽𝒙 ⃗⃗⃗⃗
𝑥𝑉 + 𝑽𝒚 ⃗⃗⃗⃗
𝑦𝑉 = (𝑥 𝑦𝑉 ) ( 𝑽 ) , à partir de cette figure on peut ressortir :
⃗⃗⃗⃗𝑉 ⃗⃗⃗⃗
𝒚
𝑽
𝑥𝑉 = (cos(𝜃) 𝑩𝒙 − sin(𝜃) 𝑩𝒚)𝑥
𝒙 ⃗⃗⃗⃗ ⃗⃗⃗⃗𝑉 𝑽
𝒙 cos(𝜃) −sin(𝜃)
𝑩
𝒙
{𝑽 ⇒ (𝑥
⃗⃗⃗⃗𝑉 𝑦𝑉 ) ( 𝑽 ) = (𝑥
⃗⃗⃗⃗ ⃗⃗⃗⃗𝑉 𝑦𝑉 ) (
⃗⃗⃗⃗ )(𝑩 )
𝑦𝑉 = (sin(𝜃) 𝑩𝒙 + cos(𝜃) 𝑩𝒚)𝑦
𝒚 ⃗⃗⃗⃗ ⃗⃗⃗⃗𝑉 𝒚 sin(𝜃) cos(𝜃) 𝒚
On obtient la relation de passage qui décrit comment les points sont transformés du repère
𝑽 𝑩
𝒙 cos(𝜃) −sin(𝜃) 𝒙
{B} au repère {V} lorsqu’il y a rotation du repère : ( 𝑽 ) = ( )(𝑩 )
𝒚 sin(𝜃) cos(𝜃) 𝒚
Ce type de matrice est appelé matrice de rotation car il transforme un point du repère {V}
à {B} et est noté : 𝑉𝑹𝐵 .
La toolbox Robotics and Control nous permet de créer ces matrices de rotations ainsi :
1. En utilisant la fonction rot2 créer une matrice R de rotation de 0.3 Radians. Créer
une matrice R2 de rotation d’un angle de 40° (aidez-vous du Help).
2. Vérifiez sur Matlab que la propriété de la matrice de rotation où le déterminant de
cette dernière est toujours égal à +1.
3. Vérifiez sur Matlab pour les cas précédents que l’inverse de la matrice de rotation
est sa transposée 𝑅 −1 = 𝑅 𝑇 .
1
REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Après la rotation du repère nous prenons en compte sa translation vis-à-vis du repère absolu
{A}. Du fait que le repère {V} et le repère {A} sont parallèles, cela résulte à une simple
addition vectorielle :
𝑩
𝑨 𝑽
𝒙 𝑩
𝒙 𝒙
𝒙 𝒙 cos(𝜃) −sin(𝜃) 𝒙 cos(𝜃) −sin(𝜃) 𝑥
( 𝑨 ) = ( 𝑽 ) + (𝒚) = ( ) ( 𝑩 ) + (𝒚) = ( ) ( 𝑩𝒚 )
𝒚 𝒚 sin(𝜃) cos(𝜃) 𝒚 sin(𝜃) cos(𝜃) 𝑦
1
𝑨 𝑩
𝒙 𝐴 𝒙
𝐴 𝑅 𝒕
Où d’une façon plus homogène : 𝑝̃ = ( 𝒚) = ( 𝐵𝑨 ) ( 𝑩𝒚) = 𝐴𝑇𝐵 𝐵𝑝̃, avec 𝐴𝑝̃ est le
𝟎1x2 1
1 1
𝐴
vecteur de position homogène et 𝑇𝐵 est la matrice de transformation homogène.
Note :
Aidez vous des fonctions de la toolbox : rot2, trot2, transl2, plotvol, trplot2, plot_point,
e2h, h2e.
• Générer une matrice de transformation homogène avec les paramètres (2, 1, 35° ) avec
la fonction SE2 et utilisez les propriétés de cette fonction. Quel type de fonction
est SE2 ?
2
REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Suite du TP n°1 :
Représentation en 3D : Matrices de rotations :
Tout comme pour le cas de 2 dimensions, nous pouvons représenter l’orientation d’un repère
par ces coordonnées. Chaque vecteur unité a trois éléments et ils forment les colonnes d'une
matrice orthonormée 3 × 3 𝐴𝑹𝐵 . Les matrices de rotation de 𝜃 autours des axes x, y et z
sont :
1 0 0 cos(𝜃) 0 sin(𝜃) cos(𝜃) −sin(𝜃) 0
𝑅𝑥 (𝜃) = (0 cos(𝜃) −sin(𝜃)) , 𝑅𝑦 (𝜃) = ( 0 1 0 ) , 𝑅𝑧 (𝜃) = ( sin(𝜃) cos(𝜃) 0)
0 sin(𝜃) cos(𝜃) −sin(𝜃) 0 cos(𝜃) 0 0 1
La toolbox fournit des fonctions pour calculer ces matrices de rotation élémentaires, par
exemple une rotation autours de l’axe y : R = roty(pi/2)
Si nous considérons que la matrice de rotation représente une pose, alors le repère peut être
affiché graphiquement grâce à la fonction : trplot(R)
Nous pouvons visualiser une rotation de manière plus visuelle à l'aide de la fonction de la
Toolbox qui anime une rotation : tranimate(R)
1. Calculer la matrice de rotation pour les angles d’Euler suivant : (0.2 ,0.3, 0.4) puis
calculer le problème inverse à partir de la matrice de rotation trouvée. Recommencer
la même chose pour les angles (0.2, -0.3, 0.4). Est-ce qu’on peut récupérer les angles
de départ à partir de la matrice de rotation trouvée ? Pourquoi ?
2. Calculer la matrice de rotation pour les angles de Cardan suivant (0.1, 0.2, 0.3).
3
REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
3. Explorer l'effet des angles négatifs de roulis, de tangage ou de lacet. Est-ce que la
transformation des angles RPY à une matrice de rotation puis au angles RPY donnent
un résultat différent de la valeur de départ comme pour les angles d’Euler ?
4. Utiliser la classe d’objet SE3 pour générer une matrice de transformation homogène et
accédez à ces différentes méthodes dans un script (matrice de rotation, la translation,
l’affichage graphique, l’animation et…).