Académique Documents
Professionnel Documents
Culture Documents
Réalisé par :
BECHIM AMEL
But de TP :
Le but de cette tâche pratique consiste à effectuer des calculs de matrices de rotation et d'angles
d'Euler en utilisant la convention d'Euler et la convention d'Euler inverse à l'aide du logiciel MATLAB.
De plus, nous allons utiliser la boîte à outils Toolbox Robotics (RT), développée par Peter Corke, pour
obtenir les matrices de rotation et les angles d'Euler.
Introduction :
L'étude de la robotique requiert des connaissances de base en géométrie. Lorsqu'on
souhaite contrôler un robot, il est essentiel de positionner ses différentes parties mobiles
les unes par rapport aux autres. Pour cela, on associe un repère à chaque composant du
robot (base, effecteur, articulations). La transition d'un repère à un autre (position,
orientation) s'exprime sous la forme d'une matrice de rotation. La géométrie, et plus
précisément les coordonnées et transformations homogènes, sont des outils
indispensables et largement utilisés en robotique.
Avec le logiciel MATLAB, la conception et la programmation d'un robot sont rapides et
faciles en utilisant la boîte à outils Toolbox Robotics.
1- La partie théorique :
Les angles d’Euler :
Les angles d’Euler classiques permettent de décrire l’orientation d’un solide par trois
rotations successives donnant au solide l’orientation en question. Les rotations
successives, conformément à la figure précédente, sont R(𝑍̂ , 𝛼), R(𝑌̂′, 𝛽) et enfin
𝐴 𝐵
R(X̂𝐵 ′′, 𝛾) ou les angles 𝛼, 𝛽 et 𝛾 sont connus respectivement sous les termes de
précession, nutation et rotation propre. Chaque nouvelle rotation étant effectuée par
rapport à un repère ayant tourné :
R = R(𝑍̂ , 𝛼)* R(𝑌̂′, 𝛽) *R(X̂ ′′, 𝛾)
𝐴
𝐵 𝐵
Telle que :
1 0 0
Et R(X̂ 𝐵 ′′,𝛾)= [0 𝑐𝑜𝑠𝛾 −𝑠i𝑛𝛾]
0 𝑠i𝑛𝛾 𝑐𝑜𝑠𝛾
C’est-à-dire
Et finalement
Si R=[r1 r2 r3] telle que r1,r2,r3 :sont les colonnes de R .alors ces colonnes sont de norme
unité et donc : ‖𝑟1‖ = ‖𝑟2‖ = ‖𝑟3‖ = 1
La transformation inverse permet d’établir les angles d’Euler à partir des cosinus
directeurs :
2 2
𝛽 = 𝑎𝑡𝑎𝑛2(-𝑅31,√𝑅11 + 𝑅21 )
𝛼 = 𝑎𝑡𝑎𝑛2(𝑅21/𝑐𝑜𝑠𝛽, 𝑅11/𝑐𝑜𝑠𝛽)
𝛾= 𝑎𝑡𝑎𝑛2(𝑅32/𝑐𝑜𝑠𝛽, 𝑅33/𝑐𝑜𝑠𝛽)
Il existe une deuxième solution, en utilisant la racine carrée positive dans le de calcule de β,
nous calculons toujours la première solution pour laquelle −90,0◦ ≤ β ≤ 90,0◦. Cependant,
dans certains cas, il est important de calculer toutes les solutions Si β = ±90,0◦ la solution
précédente dégénère. Une convention possible est de choisir α = 0
β = 90.0◦,
α = 0°
γ = atan2(𝑅12, 𝑅22).
β = −90.0◦,
α = 0°.
γ = -atan2(𝑅12, 𝑅22).
2- Manipulation :
a-En utilisant la convention d'Euler pour les angles Z—Y—X (α—β—γ), le programme
MATLAB pour calculer la matrice de rotation R lorsque l'utilisateur saisit les
angles d'Euler α—β—γ est le suivant :
alors le programme nous demande tout d’abord d’introduissez les valeurs de α—β—γ ;
apres d’avoir introduisser les valeurs des angles on aura R : la matrice de rotation
Pour le cas (i), démonstration des six contraintes pour les matrices de rotation orthonormée
unitaire (c'est-à-dire qu'il y a neuf nombres dans une matrice 3 x 3, mais seulement trois sont
indépendants)
On a :
0.9254 0.0180 0.3785
r1×r2= ( 0.1632 ) × (0.8826)=(−0.4410)=r3
−0.3420 0.4698 0.8138
0.9254
‖𝑟1‖=‖ 0.1632 ‖=√0.92542 + 0.16322 + (−0.3420)2=1.
−0.3420
0.0180
‖𝑟2‖=‖0.8826‖=√0.01802 + 0.88262 + (0.4698)2=1
0.4698
0.3785
‖𝑟3‖=‖−0.4410‖=√0.37852 + (−0.4410)2 + 0.81382=1.
0.8138
Code matlab :
Les résultats :
Démonstration de la belle propriété: 𝐵𝑅=𝐴𝑅−1=𝐴𝑅𝑇 pour le premier exemple
𝐴 𝐵 𝐵
Démonstration de cette solution inverse pour les deux cas de la partie (a) :
SOLUTIONS α 𝖰 𝛾
Solution 1 10 20 30
Solution 1 30 90 -50
On aura :
On remarque bien que c’est la même matrice de rotation obtenu avant (dans le cas α=30°,
𝖰 = 90° et 𝛾 = −55°)
c) Pour une rotation simple β autour de l'axe Y uniquement, pour β = 20° et 𝐵𝑃 = [1 0 1]𝑇
Calcule de 𝐴𝑃:
On prend : α=0° et 𝛾 = 0°
On a: 𝐴𝑃 =𝐴𝑅*𝐵𝑃 on doit tout d’abord calculer la matrice de rotation 𝐴𝑅 en utilisant le
𝐵 𝐵
code a
Le programme matlab :
Résultats :
d) on vérifie tous les résultats à l’aide du Toolbox Corke MATLAB Robotics. En Essayant
les fonctions rpy2tr() , tr2rpy(), rotx() et rotz()
Tout d’abord avant d’écrire ce programme on doit installer robotics system toolbox qui
propose des outils et des algorithmes pour concevoir ,simuler ,tester et déployer des
applications de robots .Pour les robots manipulateurs la toolbox offre des algorithmes de
détection de collision, de planification et de génération de trajectoire, de cinématique directe
et inverse, mais aussi de dynamique qui utilisent des représentations d'arbre à corps rigides.
Pour les robots mobiles, elle propose des algorithmes de cartographie, de localisation, de
planification et de suivi de trajectoires, et de contrôle du mouvement.
Rpy2tr ( ) : cette fonction nous donne la matrice de transformation homogène SE(3) (4x4)
équivalente aux angles de roulis, de tangage et de lacet spécifiés.
Tel que T = rpy2tr(roll, pitch, yaw, options) Ceux-ci correspondent à des rotations autour
des axes X, Y, Z respectivement,
tr2rpy( ) : cette fonction nous donne les angles (en radians) de roulis-tangage-lacet (1x3)
correspondant à la partie rotation d’une transformation homogène T. Les 3
angles rpy=[R,P,Y] correspondent à des rotations séquentielles autour des axes X, Y et Z
respectivement.
rotx( ) :nous donne la matrice de rotation R autour de l’axe x (avec une angle en dégrée )
roty( ) : nous donne la matrice de rotation R autour de l’axe y (avec une angle en dégrée)
rotz( ): nous donne la matrice de rotation R autour de l’axe z (avec une angle en dégrée)
De premier cas :
de 2eme cas :
Remarque :
Ces résultats nous confirment que les résultats précédents sont corrects (on a trouvé les même
résultats).
Et pour la question b on a trouvé uniquement une seule solution (la fonction tr2rpy( ) donne
une seule solution ),et pour le 2eme cas cette fonction nous a donnée α=85°, 𝖰 = 90° et 𝛾 =
0°
Si on met cette solution comme entree de notre code (d) on aura la meme matrice de
rotation d’avant
Le code matlab :
Les resultats :
De premier cas :
De 2em cas :
On remarque bien que les résultats obtenu sont similaires à celles d’avant
rotm2eul(): une fonction qui convertit une matrice de rotation, rotm, en angles d’Euler
correspondants (les angles obtenue sont en radians )
Le code matlab :
Les résultats
De premier cas :
De deuxième cas :
Conclusion:
La Robotics Toolbox est une boîte à outils qui propose de nombreuses fonctions utiles pour
l'étude et la simulation des robots industriels. Parmi ces fonctions, certaines sont
spécifiquement conçues pour faciliter le calcul de la matrice de transformation (en extrayant
la matrice de rotation à partir de T) ainsi que les angles d'Euler.
Dans le cadre de MATLAB, on peut également trouver deux fonctions utiles pour le calcul de
la matrice de rotation et des angles d'Euler : eu2rotml() et rotm2eul(). Cependant, la plupart
des fonctions essentielles pour la conception, la simulation, le test et le déploiement
d'applications robotiques se trouvent généralement dans la Robotics Toolbox..