Documente Academic
Documente Profesional
Documente Cultură
net/publication/337955144
CITATIONS READS
0 300
2 authors:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Vincent Bagaïni on 17 December 2019.
Résumé — Cet article propose une modélisation et une simulation cinématique du robot industriel
6 axes StäubliⓇ TX2 – 90 entièrement réalisées sous MatlabⓇ avec Robotics Toolbox. Le but est
d’évaluer la performance du toolbox et d’expliquer son utilisation à travers une étude simple sur
un robot complexe. La dynamique du robot n’est pas traitée. Cet article vise également à expliquer
les principes fondamentaux de la robotique. Finalement, les fonctionnalités développées avec l’aide
du toolbox ont été intégrées à une IHM.
Mots clés — Robotique, MatlabⓇ, modélisation, simulation, cinématique, génération de trajectoires [A]
Tous droits réservés, la reproduction de ce document sans l’autorisation écrite des auteurs est interdite.
2
A noter que sur la Figure 1, les repères {1} et {2} ne Une fois la matrice de paramètres MDH connue, on
sont pas confondus. En effet, il y a un offset au niveau de peut modéliser le robot avec le logiciel Matlab Ⓡ et le Robotics
« l’épaule » du robot (voir partie de droite de la Figure 2). Toolbox. Pour cela, plusieurs fonctions sont utilisées. La
Cependant, les origines des repères {4}, {5} et {6} sont première étape consiste à définir chaque articulation du robot.
confondues. Pour définir des articulations rotatives, on utilise la fonction
RevoluteMDH qui prend pour arguments les différents
La prochaine étape consiste à déterminer les différents paramètres MDH du robot. Les limites physiques du robot
paramètres de chaque articulation du robot selon la convention (angles minimum et maximum indiqués dans la documentation
Denavit-Hartenberg modifiée : constructeur) peuvent être spécifiées avec l’argument'qlim'.
La fonction renvoie un objet de type Link. En utilisant cette
• 𝜶𝒊−𝟏 : Angle de la rotation autour de l’axe 𝑋, pour que fonction on peut donc construire un tableau de Link qui
l’axe 𝑍𝑖−1 soit parallèle à l’axe 𝑍𝑖 comprend toutes les articulations du robot :
• 𝒂𝒊−𝟏 : Distance de la translation sur l’axe 𝑋, pour
ramener l’axe 𝑍𝑖−1 à l’axe 𝑍𝑖 L(1) = RevoluteMDH('d', 0,'a', 0,'alpha', 0)
L(2) = RevoluteMDH('d', 0,'a', 50,'alpha', -pi/2)
• 𝜽𝒊 : Angle de la rotation autour de l’axe 𝑍, pour que L(3) = RevoluteMDH('d', 50,'a', 425,'alpha', 0)
l’axe 𝑋𝑖−1 soit parallèle à l’axe 𝑋𝑖 L(4) = RevoluteMDH('d', 425,'a', 0,'alpha', pi/2)
• 𝒅𝒊−𝟏 : Distance de la translation sur l’axe 𝑍, pour L(5) = RevoluteMDH('d', 0,'a', 0,'alpha', -pi/2)
L(6) = RevoluteMDH('d', 0 ,'a', 0,'alpha', pi/2)
ramener l’axe 𝑋𝑖−1 à l’axe 𝑋𝑖
Le robot est ensuite construit en utilisant la fonction
Pour déterminer les valeurs de chaque paramètre, on
SerialLink, qui prend en argument le tableau d’objets Link et
s’aide de la documentation fournie par le constructeur. Les
renvoie une classe de type SerialLink qui constituera notre
dimensions du robot TX2-90 sont montrées dans la Figure 2.
robot.
Les dimensions importantes sont entourées en rouge. Une fois
tous les paramètres connus, on établit la matrice de paramètres Robot = SerialLink(L)
Modified Denavit Hartenberg (MDH) du robot. (Tableau 1).
On peut maintenant utiliser plusieurs fonctions de la
classe Robot, notamment la fonction suivante :
Robot.tool = transl(0,0,100)
Robot.plot(q)
𝜽𝒊 𝒅𝒊 𝒂𝒊−𝟏 𝜶𝒊−𝟏
Link 1 𝜃1 0 0 0
Link 2 𝜃2 0 50 -90°
Link 3 𝜃3 50 425 0
Link 4 𝜃4 425 0 90°
Link 5 𝜃5 0 0 -90°
Link 6 𝜃6 0 0 90°
Tableau 1 – Matrice de paramètres du robot Figure 3 – Squelette du robot selon la configuration « zero angle »
3
Les expressions cos (𝜃) et sin (𝜃) sont notées IV. CINÉMATIQUE INVERSE
relativement 𝑐𝜃 et 𝑠𝜃. La sous matrice composée des éléments
Contrairement à la cinématique directe, la cinématique
allant de 𝑥1,1 à 𝑥3,3 est appelée matrice de rotation. Le vecteur inverse consiste à déterminer les angles de chaque articulation
composé des éléments allant de 𝑥1,4 à 𝑥3,4 est appelé vecteur de pour une position et orientation donnée de l’effecteur. Une
translation. Une fois que les matrices relatives à chaque position unique de l’effecteur peut être atteinte selon plusieurs
articulation sont calculées, il suffit de les multiplier entre elles configurations d’angles.
(dans l’ordre des articulations) pour obtenir la matrice de
transformation homogène finale exprimant la relation entre la
base {0} et l’effecteur {6} du robot. Position de l’effecteur Angles des
dans l’espace cartésien articulations
𝑇60 = 𝑇10 𝑇21 𝑇32 𝑇43 𝑇54 𝑇65
La cinématique inverse d’un robot consiste à établir
La matrice obtenue est exprimée sous la forme des systèmes d’équations algébriques ou trigonométriques et les
suivante (les coefficients sont donnés en annexes) : résoudre pour obtenir les angles des articulations en fonction
des éléments de la matrice de transformation homogène qui
𝑅11 𝑅12 𝑅13 𝑃𝑥 caractérise la position et l’orientation de l’effecteur.
𝑅21 𝑅22 𝑅23 𝑃𝑦
𝑇60 =[ ]
𝑅31 𝑅32 𝑅33 𝑃𝑧 Le Robotics Toolbox propose la fonction ikine6s qui
0 0 0 1 permet de calculer les différentes solutions analytiques pour la
cinématique inverse d’un robot 6 axes. L’utilisation de cette
Nous avons calculé cette matrice complexe grâce au fonction semble correspondre à notre robot. Son exécution est
calcul matriciel de MatlabⓇ. Le toolbox de Peter Corke permet rapide et elle permet d’obtenir les 8 solutions possibles en
également de calculer cette matrice très rapidement une fois que spécifiant les configurations suivantes : droitier / gaucher,
le robot est défini. Pour cela, on utilise la fonction : coude orienté vers le haut / bas et poignet retourné ou non.
4
𝑞(𝑡) = 𝑎0 + 𝑎1 𝑡 + 𝑎2 𝑡 2 + ⋯ 𝑎𝑛 𝑡 𝑛
[q,qd,qdd] = jtraj(q0,qf,T)