Vous êtes sur la page 1sur 4

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D'ORAN MOHAMED BOUDIAF


FACULTE DE GENIE ELCTRIQUE
DEPARTEMENT D’AUTOMATIQUE

2ère année Master AII Année : 2021 - 2022


Module : TP n°1 de Robotique M-R - BENACHENHOU

TP n°1 Représentation de la Position et orientation dans l’espace


Représentation en 2D : Nous prenons le cas d’un repère absolu {A} avec (𝑥⃗⃗⃗⃗𝐴 , ⃗⃗⃗⃗
𝑦𝐴 ) les
vecteurs unitaires du repère, et un repère relatif {B} (𝑥
⃗⃗⃗⃗𝐵 , ⃗⃗⃗⃗
𝑦𝐵 ) dont les coordonnées de ce
dernier sont décrites par apport au repère {A} (voir la figure 1). Le centre du repère {B} a été
déplacer d’un vecteur 𝑡 = (𝑥, 𝑦) par rapport au repère absolu.

Figure (1) Figure (2)

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

UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D'ORAN MOHAMED BOUDIAF


FACULTE DE GENIE ELCTRIQUE
DEPARTEMENT D’AUTOMATIQUE

2ère année Master AII Année : 2021 - 2022


Module : TP n°1 de Robotique M-R - BENACHENHOU

Transformation homogène en 2D:

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.

A partir de la Toolbox Robotics and control :

1. Quelle est la différence entre la fonction rot2 et trot2 ?


2. Générer une matrice de transformation homogène de rotation pure « T1 » d’une
rotation de 45°, puis générer une matrice de transformation homogène de translation
pure « T2» de 2 sur l’axe des x et 2.5 sur l’axe des y.
3. Générer une matrice de transformation homogène qui fait une translation « T1 » puis
une rotation «T2 » qu’on appellera T3.
4. Afficher graphiquement les repères T1, T2 et T3 dans une figure.
5. Définissez un point P de coordonnées euclidiennes (1,1) dans le repère absolu, puis
dessinez le dans la même figure.
6. Définissez les coordonnées homogènes du point P.
7. Calculez les coordonnées du point P dans le repère T2 𝟐𝒑.

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

UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D'ORAN MOHAMED BOUDIAF


FACULTE DE GENIE ELCTRIQUE
DEPARTEMENT D’AUTOMATIQUE

2ère année Master AII Année : 2021 - 2022


Module : TP n°1 de Robotique M-R - BENACHENHOU

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)

Les angles d’Euler et angles de Cardan:


Pour calculer la matrice de rotation équivalente pour les angles d’Euler et les angles de
cardans, on peut soit multiplié les différentes matrices de rotation soit utilisés les fonctions
préétablies dans la Toolbox.

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

UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D'ORAN MOHAMED BOUDIAF


FACULTE DE GENIE ELCTRIQUE
DEPARTEMENT D’AUTOMATIQUE

2ère année Master AII Année : 2021 - 2022


Module : TP n°1 de Robotique M-R - BENACHENHOU

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 fonction interactive tripleangle pour expérimenter les différents angles.


Aidez vous du help avec les fonctions suivantes : tr2eul, eul2r, rpy2r, tr2rpy, rotx, roty,
rotz.

Transformation homogène en 3D:


A partir de la Toolbox Robotics and control :

1. Générer une matrice de transformation homogène de rotation pure « T1 » d’une


rotation de 30° au tour de l’axe X puis une rotation de 20° au tour de l’axe Z, puis
générer une matrice de transformation homogène de translation pure « T2» de 3 sur
l’axe des Z et 1 sur l’axe des Y.

2. Générer une matrice de transformation homogène « T3 » à partir des angles d’Euler


(0.1, 0.3, 0.4) et une translation de (1, 3 ,2).

3. Afficher graphiquement les repères T1, T2 et T3 dans une figure.

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…).

5. Testez les animations de vos repères.

6. L'inverse d'une matrice de transformation homogène est-il égal à sa transposée ?

Aidez vous des fonctions : eul2tr, rpy2tr, r2t, SE3.

Vous aimerez peut-être aussi