cours_robotique.pdf
TRANSCRIPT
Modélisation et commande des robots
Badreddine BOUZOUITA
ENISO
Badreddine BOUZOUITA Modélisation et commande des robots 1/131
Introduction générale
Sommaire
1 Introduction généraleStructure générale d’un robotLes architectures du type série (robot sérielLes architectures parallèlesMorphologie du robot manipulateurCaractéristiques générales d’un robot
2 Modèles géométriques directs d’un robot
3 Modèle géométrique inverse d’un robot
4 Planification et génération de trajectoire
Badreddine BOUZOUITA Modélisation et commande des robots 2/131
Introduction générale
Introduction générale
La robotique est une science pluridisciplinaire qui comprend la mécanique,l’automatique, l’électrotechnique, le traitement de signal, l’informatique,communication...
Le mot robot vient du tchèque robota, qui signifie travail forcé, mot crée en 1920par Karel Capek.
Un robot est une appareil automatique capable de manipuler des objets oud’exécuter des opérations selon un programme fixe, modifiable ou adaptable.
Badreddine BOUZOUITA Modélisation et commande des robots 3/131
Introduction générale
Introduction générale
La robotique est une science pluridisciplinaire qui comprend la mécanique, l’automa-tique, l’électrotechnique, le traitement de signal, l’informatique, communication...Un robot se compose de :
Le mécanisme : structure plus au moins proche de celle du bras humain, on ditaussi manipulateur quand il ne s’agit pas d’un robot mobile. Sa motorisation estréalisée par des actionneurs électriques, pneumatiques ou hydrauliques quitransmettent leur mouvement aux articulations par des systèmes appropriés.
La perception : Permet de gérer les relations entre le robot et son environnement.Les organes de perception sont des capteurs dits " proprioceptifs " lorsqu’ilsmesurent l’état interne du robot (position et vitesses des articulations) ou "extéroceptifs " lorsqu’ils recueillent des informations sur l’environnement(détection de présence, mesure de distance, vision artificielle).
La commande : qui synthétise les consignes des asservissements pilotant lesactionneurs. A partir de la fonction de perception et des ordres de l’utilisateur, ellepermet d’engendrer les actions du robot.
Badreddine BOUZOUITA Modélisation et commande des robots 4/131
Introduction générale
Introduction générale
l’interface homme-machine : à travers laquelle l’utilisateur programme les tâchesque le robot doit exécuter.
le poste de travail et les dispositifs périrobotique 1 : qui constituent l’environnementdans lequel évolue le robot.
1. Matériel et logiciels constituant l’environnement proprement dit du robot et nécessaire à son utilisation.Parmi les matériels classiques, on peut citer les convoyeurs et tapis roulants, les magasins de stockage depièces, etc. Côté logiciel, on pourra noter les aides à la programmation (en CNC (Commande numérique parcalculateur) par ex.), les aides à la gestion, etc.
Badreddine BOUZOUITA Modélisation et commande des robots 5/131
Introduction générale Structure générale d’un robot
Structure générale d’un robot
L’architecture géométrique du robot varie selon le type des tâches qui lui sont destinées.D’une manière générale, on distingue au robot trois parties essentielles. Il s’agit :
- du véhicule ;du porteur ;
-- de l’organe terminal.
Badreddine BOUZOUITA Modélisation et commande des robots 6/131
Introduction générale Structure générale d’un robot
Structure générale d’un robotLe véhicule
Son rôle est d’amener le robot dans la partie de son environnement où il a une tâcheà accomplir. Néanmoins, le véhicule n’ est pas toujours existant. Dans le cas le plusgénéral où le robot est, par exemple, lié à un satellite évoluant dans l’espace, le véhiculepossède trois degrés de liberté en translation et trois degrés de liberté en rotation.Cependant, dans un environnement terrestre, on supprime habituellement au véhiculeles trois degrés de liberté en rotation pour ne lui laisser que ceux en translation (ou deuxdes trois) afin d’assurer son déplacement. Pour les robots fixes, on dira que le véhicule,qui est la base du robot, n’a aucun degré de liberté.
Badreddine BOUZOUITA Modélisation et commande des robots 7/131
Introduction générale Structure générale d’un robot
Structure générale d’un robotLe porteur
Le porteur est la structure mécanique, généralement une structure articulée, dont le rôleest d’amener l’extrémité du robot en divers points de son espace de travail. D’une ma-nière générale, le porteur possède les trois degrés de liberté en translation qui assurentle déplacement ; cependant, il peut en posséder moins, dépendant du type de tâchesassignées au robot
Badreddine BOUZOUITA Modélisation et commande des robots 8/131
Introduction générale Structure générale d’un robot
Structure générale d’un robotL’organe terminal
C’est sur l’organe terminal qu’est fixé l’outil. Une fois que ce dernier a été positionnégrâce au porteur, il faut lui donner l’orientation adéquate pour l’exécution de la tâche.C’est donc l’organe terminal qui assure l’orientation de l’outil. Pour avoir une bonne pré-cision d’orientation, il faut fournir à l’organe terminal trois degrés de liberté en rotation ;l’orientation est d’autant meilleure que l’on peut effectuer trois rotations autour de troisaxes normaux et concourants
Badreddine BOUZOUITA Modélisation et commande des robots 9/131
Introduction générale Structure générale d’un robot
Structure générale d’un robotNombre de degrés de liberté du robot
La plupart des robots usuels ayant n degrés de liberté (n ≤ 6) possèdent également naxes, qu’ils soient de translation ou de rotation. Cependant, le nombre d’axes du robotne définit pas nécessairement le nombre de degrés de liberté.Si on considère le robot fixe, sans véhicule, les six degrés de liberté possibles sontrépartis entre le porteur et l’organe terminal de manière que les trois rotations soientliées à ce dernier. Pour compenser un degré de liberté déficitaire au niveau de l’organeterminal, on rajoute en général un ou plusieurs axes au niveau du porteur. On obtientainsi des robots pouvant avoir sept axes et plus, mais avec six degrés de liberté (ex. :robot peintre ACMA)
Badreddine BOUZOUITA Modélisation et commande des robots 10/131
Introduction générale Les architectures du type série (robot sériel
Introduction généraleLes architectures du type série
Les mécanique de cette famille se composent globalement d’un assemblage de corpssuccessifs reliés par des articulations.
Badreddine BOUZOUITA Modélisation et commande des robots 11/131
Introduction générale Les architectures du type série (robot sériel
Introduction généraleLes architectures du type série avec boucles cinématique
Pour des raisons de robustesse, à ces articulations principales peuvent s’ajouter desarticulations complémentaires qui constituent des boucles cinématique qui permettentde rigifier la structure, ce qui permet la manipulation de charge plus élevées.Dans certains cas, les actionneurs sont reportés à la base du robot, diminuant ainsi lesmasse globales en mouvement. il est alors nécessaire d’inclure des boucles cinéma-tique pour transférer le mouvement vers l’articulation concernée.
Badreddine BOUZOUITA Modélisation et commande des robots 12/131
Introduction générale Les architectures du type série (robot sériel
Introduction généraleLes architectures séries arborescentes
Dans certains cas, un robot peut posséder plusieurs extrémités, on parlera alors dearchitectures arborescentes.
Badreddine BOUZOUITA Modélisation et commande des robots 13/131
Introduction générale Les architectures parallèles
Introduction généraleLes architectures parallèles
Un robot parallèle est constitué d’un ensemble de chaînes cinématique liées à l’une deleur extrémité à un corps de référence la base, et à l’autre extrémité à une plate-formemobile destinée à recevoir l’organe terminal.Ces architectures sont peu nombreuses car les méthode de calcul de leur modèle ma-thématique sont complexes, et l’étude de mécanisme n’est pas évidente.Ainsi, à chaque nouvelle architecture, un développement complet de la commande està réaliser, cce qui rend la rentabilité de tels projets plus hasardeuse.
Badreddine BOUZOUITA Modélisation et commande des robots 14/131
Introduction générale Morphologie du robot manipulateur
Introduction généraleMorphologie du robot manipulateur
Selon l’arrangement des articulations du porteur, on peut obtenir différentes architec-tures possibles. En éliminant a priori les structures limitant les mouvements du porteur àdes déplacements linéaires ou planaires (3 liaisons prismatiques d’axes parallèles, parexemple, ou 3 liaisons rotoïdes d’axes parallèles), on trouve les 5 structures suivantes :
Robots cartésiens (PPP) : : Trois axes de translation.
Badreddine BOUZOUITA Modélisation et commande des robots 15/131
Introduction générale Morphologie du robot manipulateur
Introduction généraleMorphologie du robot manipulateur
Robots cylindriques (RPP) : : est obtenu en remplaçant la première articulationprismatique de la configuration cartésienne par une articulation rotoïde.
Badreddine BOUZOUITA Modélisation et commande des robots 16/131
Introduction générale Morphologie du robot manipulateur
Introduction généraleMorphologie du robot manipulateur
Robots sphériques (RRP) : : se diffère de celle cylindrique en remplaçant ladeuxième articulation prismatique par une articulation rotoïde.
Badreddine BOUZOUITA Modélisation et commande des robots 17/131
Introduction générale Morphologie du robot manipulateur
Introduction généraleMorphologie du robot manipulateur
Robots SCARA (RRP) : : Bien que le SCARA (Selective Compliant ArticulatedRobot for Assembly) ait une structure de RRP, il diffère tout à fait du manipulateursphérique tant dans l’apparence que dans sa gamme d’applications. Contrairementà la conception sphérique, qui a z0 perpendiculaire à z1 et z1 perpendiculaire à z2,le SCARA a z0, z1 et z2 mutuellement parallèle.
Badreddine BOUZOUITA Modélisation et commande des robots 18/131
Introduction générale Morphologie du robot manipulateur
Introduction généraleMorphologie du robot manipulateur
Robots rotoïdes ou révolution ou anthropomorphes (RRR) : : est réalisée partrois articulations rotoïde ; l’axe de rotation de la première articulation est orthogo-nal aux deux autres axes qui sont parallèles.
Badreddine BOUZOUITA Modélisation et commande des robots 19/131
Introduction générale Morphologie du robot manipulateur
Introduction généraleMorphologie du robot manipulateur
Selon le dernier rapport par la Fédération Internationale de Robotique (IFR :Internatio-nal Federation of Robotics), jusqu’à 2005, 59% de manipulateurs de robot installés dansle monde entier ont la configuration géométrie anthropomorphique, 20% ont la structuregéométrie cartésienne, 12% ont la géométrie cylindrique et 8% ont la géométrie SCARA.
Badreddine BOUZOUITA Modélisation et commande des robots 20/131
Introduction générale Caractéristiques générales d’un robot
Caractéristiques générales d’un robotEspace de travail
Les caractéristiques générales d’un robot sont :L’espace de travail : est défini comme l’espace physique engendré par un pointde l’organe terminal lorsque le configuration du robot évolue. Il s’exprime en unitésvolumiques, mais la forme de son enveloppe (qui peut-être compliquée puisqueformée par la combinaison des mouvements de plusieurs articulations) est aussiimportante.
Badreddine BOUZOUITA Modélisation et commande des robots 21/131
Introduction générale Caractéristiques générales d’un robot
Caractéristiques générales d’un robotEspace de travail
Si on suppose que :* chaque liaison rotoïde permet une rotation d’un tour complet (360◦),* les différentes parties du bras manipulateur ont la même dimension L,* chaque liaison prismatique permet une translation égale à L
Dans ces conditions, on a :I robot PPP : le volume de travail est un cube de côté L :
V = L3
Badreddine BOUZOUITA Modélisation et commande des robots 22/131
Introduction générale Caractéristiques générales d’un robot
Caractéristiques générales d’un robotEspace de travail
I robot RPP : le volume de travail est un cylindre creux, autrement dit un tore àsection carrée, de hauteur L et de rayons intérieur et extérieur L et 2L :
V = 3πL3 ' 9L3
Badreddine BOUZOUITA Modélisation et commande des robots 23/131
Introduction générale Caractéristiques générales d’un robot
Caractéristiques générales d’un robotEspace de travail
I robot RPR ou RRP : le volume de travail est un cylindre de hauteur L et de rayon2L :
V = 4πL3 ' 12L3
Badreddine BOUZOUITA Modélisation et commande des robots 24/131
Introduction générale Caractéristiques générales d’un robot
Caractéristiques générales d’un robotEspace de travail
I robot RRP : le volume de travail est une sphère creuse de rayons intérieur etextérieur L et de rayon 2L :
V =283πL3 ' 29L3
Badreddine BOUZOUITA Modélisation et commande des robots 25/131
Introduction générale Caractéristiques générales d’un robot
Caractéristiques générales d’un robotEspace de travail
I robot RRR : le volume de travail est une sphère de rayon 2L :
V =323πL3 ' 34L3
Badreddine BOUZOUITA Modélisation et commande des robots 26/131
Introduction générale Caractéristiques générales d’un robot
Caractéristiques générales d’un robotEspace de travail
Cette comparaison montre la nette supériorité des structures RRP et RRR qui, a dimen-sions égales des différentes parties du manipulateur, possèdent un volume de travailenviron 30 fois supérieur à celui de la structure PPP. Les structures RPP et RPR, avecun volume de travail environ 10 fois supérieur à celui de la structure PPP, offrent doncun volume de travail moyen.
Badreddine BOUZOUITA Modélisation et commande des robots 27/131
Introduction générale Caractéristiques générales d’un robot
Caractéristiques générales d’un robotLa capacité de charge
La capacité de charge : La capacité de charge est la charge que peut porter etmanipuler le robot. Evidemment, les couples qui doivent développer les action-neurs sont fonction de la configuration du robot. C’est pourquoi la charge maximumindiquée dans les catalogues des constructeurs de robots n’est souvent suppor-table que dans une fraction du volume de travail, mais pas dans tout le volumeatteignable ni avec toutes les orientations atteignables. Il faudrait plutôt fournir 2chiffres : la charge maximum soulevable dans la configuration la meilleure etla charge utile c’est-à-dire celle qui est effectivement manœuvrable dans tout levolume atteignable. Actuellement, on peut distinguer trois grandes catégories derobots suivant leur capacité de charge :
robots de grande capacité : 50 à 100 kgrobots de capacité moyenne : 5 à 10 kgrobots de petite capacité : quelques centaines de grammes.
Badreddine BOUZOUITA Modélisation et commande des robots 28/131
Introduction générale Caractéristiques générales d’un robot
Caractéristiques générales d’un robotPrécision, répétabilité et résolution
Précision : Pour expliquer ces notions, considérons un robot manipulateur quel-conque dont l’organe terminal est immobile dans une situation A et doit être dé-placé pour arriver à vitesse nulle dans une situation B. Si ce déplacement est exé-cuté un grand nombre de fois, il est possible de définir une situation moyenne Bmoy
qui correspond à la moyenne des situations Bi atteintes au cours des déplacementsrépétés : Bmoy est le centre de la plus petite sphère qui contient tous les points Bi.L’écart entre la situation B programmée et la situation moyenne Bmoy définit la pré-cision statique du robot manipulateur. Elle caractérise l’aptitude du robot à situerl’organe terminal en conformité avec la situation programmée.
Badreddine BOUZOUITA Modélisation et commande des robots 29/131
Introduction générale Caractéristiques générales d’un robot
Caractéristiques générales d’un robotPrécision, répétabilité et résolution
Répétabilité : L’écart maximal entre la situation moyenne Bmoy et les situations at-teintes Bi, autrement dit le rayon de la sphère définie plus haut, détermine la répé-tabilité du robot. Pour la plupart des robots industriels, elle est nettement meilleureque la précision, généralement elle est de l’ordre du dixième de mm. C’est une desraisons pour lesquelles beaucoup de constructeurs ne mentionnent que la répétabi-lité dans leurs catalogues de robots, une autre raison étant que c’est évidemmentla répétabilité qui intéresse les utilisateurs lorsque le robot doit répéter un grandnombre de fois la même tâche.
Résolution : on appelle résolution d’un robot le plus petit écart entre la situationinitiale A et la situation programmée B qui puisse se traduire par une modificationréelle de la situation de l’organe terminal, c-à-d. qui entraîne un déplacement decelui-ci.
Badreddine BOUZOUITA Modélisation et commande des robots 30/131
Introduction générale Caractéristiques générales d’un robot
Caractéristiques générales d’un robotAgilité
L’agilité est la propriété de se déplacer avec rapidité d’une configuration à une autredans l’espace de travail. Elle est entièrement liée à la réponse dynamique du manipula-teur.Le temps de transfert entre deux points est limité par :
- la vitesse maximum permise par chacun des degrés de liberté (les robots actuelsatteignent des vitesses de l’ordre de 2m/s et des vitesses angulaires de 3rad/s),
- l’accélération maximum permise, elle-même limitée par les couples disponibles,
- le temps nécessaire à l’amortissement des oscillations aux extrémités du parcours.
Ces oscillations résultent principalement, pour les manipulateurs conventionnels, desflexibilités présentes dans les transmissions, plutôt que de celles des liens. Le tempsde stabilisation sera minimisé en générant des trajectoires qui n’excitent pas les modesflexibles et en augmentant l’amortissement du système. La limite de l’agilité qu’il estpossible d’atteindre par la simple augmentation du couple des moteurs est fixée par letemps de stabilisation et les dépassements associés aux oscillations. Notons ici que lesmeilleurs manipulateurs modernes ont des accélérations maximum un ordre de gran-deur inférieures à celles du bras humain.
Badreddine BOUZOUITA Modélisation et commande des robots 31/131
Introduction générale Caractéristiques générales d’un robot
Introduction générale
Pour commander ou simuler le comportement d’un système mécanique articulé (robot),on doit disposer d’un modèle. Plusieurs niveaux de modélisation sont possibles selonles objectifs, les contraintes de la tâche et les performances recherchées.Les modèles mathématiques nécessaires sont :
Les modèles géométriques directs (MGD) : consistent à déterminer la pose (po-sition et orientation) de l’effecteur (l’organe terminal) en fonction des coordonnéesarticulaires. Cette relation permet de faire le lien entre les mesures prises aux arti-culations et la position spatiale du mécanisme.(
xp
xr
)= f (q) (1)
où xp représente les trois coordonnées opérationnelles de position (coordonnéesdu centre On+1 par rapport à l’origine fixe O1) et où xr représente les coordonnéesopérationnelles d’orientation de la base Xn + 1 par rapport à la base fixe X1.
Les modèles géométriques inverses (MGI) : consistent à obtenir les coordonnéesarticulaires correspondant à une pose (position et orientation) de l’effecteur don-née. Cette relation est ici obtenue en manipulant algébriquement les équations duMGD.
Badreddine BOUZOUITA Modélisation et commande des robots 32/131
Introduction générale Caractéristiques générales d’un robot
Introduction générale
Les modèles cinématiques directs et inverses qui expriment la vitesse de l’organeterminal en fonction de la vitesse articulaire et inversement.
Les modèles dynamiques définissant les équations différentielles du mouvementdu robot qui permettent d’établir les relations entre les couples ou forces exer-cées par les actionneurs et les positions, vitesses, accélérations des articulations.Celles-ci seront d’ailleurs à la base de la planification de trajectoire
Badreddine BOUZOUITA Modélisation et commande des robots 33/131
Modèles géométriques directs d’un robot
Sommaire
1 Introduction générale
2 Modèles géométriques directs d’un robotIntroductionReprésentations de rotationsCoordonnées et matrices de transformation homogènesConvention de Denavit Hartenberg
3 Modèle géométrique inverse d’un robot
4 Planification et génération de trajectoire
Badreddine BOUZOUITA Modélisation et commande des robots 34/131
Modèles géométriques directs d’un robot Introduction
Introduction
L’étude de la robotique nécessite des connaissances de base en Géométrie et en ci-nématique. Lorsque l’on désire commander un robot, il est nécessaire de situer sesdifférentes parties mobiles les unes par rapport aux autres. Pour ce faire, on associe unrepère à chaque partie du robot (socle, effecteur, articulations). Le passage d’un repèreà un autre (position, orientation) s’exprime sous la forme d’une matrice de passage.La géométrie, et plus particulièrement les coordonnées et transformations homogènessont des outils indispensables et très utilisés en robotique, qui font l’objet d’une grandepartie de ce chapitre.La cinématique du déplacement, à travers la loi de composition des vitesses, fait égale-ment partie des bases de la robotique. Elle est abordée dans le 3me chapitre.
Badreddine BOUZOUITA Modélisation et commande des robots 35/131
Modèles géométriques directs d’un robot Introduction
Introduction
Considérant un robot sériel tel que symbolisé sur la figure ci-dessous, on cherche à dé-terminer la relation qui lie les coordonnées opérationnelles aux coordonnées articulairesq : (
xp
xr
)= f (q) (2)
où xp représente les trois coordonnées opérationnelles de position (coordonnées ducentre On+1 par rapport à l’origine fixe O1) et où xr représente les coordonnées opéra-tionnelles d’orientation de la base Xn+1 par rapport à la base fixe X1.
Badreddine BOUZOUITA Modélisation et commande des robots 36/131
Modèles géométriques directs d’un robot Introduction
Introduction
Alors que pour les coordonnées xp tout le monde s’accorde pour choisir les compo-santes cartésiennes de la position de On+1 par rapport à O1 exprimées dans la base X1,plusieurs choix sont possibles (et adoptés en pratique) pour les coordonnées xr :
angles d’Euler
angles de Tait Bryan (ou angles nautiques)
quaternions d’Euler
Dans le but d’obtenir un résultat qui soit intrinsèque et ne dépende pas d’un choix par-ticulier des coordonnées de rotation, nous nous baserons sur la relation :[
X1]= A1,n+1
[Xn+1
](3)
qui fait apparaître la matrice de rotation entre les deux repères, et nous chercherons larelation : (
xp
A1,n+1
)= f (q) (4)
sachant que, quel que soit le choix des coordonnées opérationnelles de rotation, cesdernières peuvent s’exprimer en fonction des éléments (i, j) de la matrice A1,n+1.
Badreddine BOUZOUITA Modélisation et commande des robots 37/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsCas 2D
Transformation des coordonnées d’un vecteur U 2D−→U = Ux1
−→x 1 + Uy1−→y 1 = Ux2
−→x 2 + Uy2−→y 2 (5)
Ox1
x2
θ
θ
y1y2
U
La correspondance des vecteurs de base s’exprime parles deux équations suivantes :
−→x 2 = −→x 1 cos θ +−→y 1 sin θ−→y 2 = −−→x 1 sin θ +−→y 1 cos θ (6)
ou symboliquement à travers la relation matricielle sui-vante : [
x2
y2
]=
(cos θ sin θ− sin θ cos θ
)[x1
y1
](7)
Soit X2 = R2,1X1 avec R2,1 est dite matrice de rotation.
Badreddine BOUZOUITA Modélisation et commande des robots 38/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsCas 2D
En exprimant les relations de correspondance des vecteurs de base
−→U = Ux2
−→x 2 + Uy2−→y 2
= Ux2(−→x 1 cos θ +−→y 1 sin θ
)+ Uy2
(−−→x 1 sin θ +−→y 1 cos θ
)(8)
= (Ux2 cos θ − Uy2 sin θ)−→x 1 + (Ux2 sin θ + Uy2 cos θ)−→y 1
= Ux1−→x 1 + Uy1
−→y 1
Ox1
x2
θ
θ
y1y2
U
Par identification, on obtient alors :[Ux1
Uy1
]=
(cos θ − sin θsin θ cos θ
)[Ux2
Uy2
](9)
Soit :X1 = R1,2X2 (10)
avec R2,1 est dite matrice de passage de la base 1 à labase 2. En effet, la base 2 est obtenue par transforma-tion de la base 1.La relation (10) permet de connaître les coordonnées de U dans la base 1 sachant lescoordonnées de U dans dans la base 2.
Badreddine BOUZOUITA Modélisation et commande des robots 39/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsCas 3D
En ce qui concerne les rotations dans l’espace R3, il est important de préciser l’axede rotation. Nous pouvons distinguer 3 rotations principales : la rotation d’angle θ au-tour de l’axe Ox, celle autour de Oy et celle autour de Oz. Les matrices associées sontrespectivement données par :
R(x, θ) =
1 0 00 cos θ − sin θ0 sin θ cos θ
,
R(y, θ) =
cos θ 0 sin θ0 1 0
− sin θ 0 cos θ
et
R(z, θ) =
cos θ − sin θ 0sin θ cos θ 0
0 0 1
Ces relations sont appelées aussi matrices de rotation élémentaire.
Badreddine BOUZOUITA Modélisation et commande des robots 40/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles d’Euler classiques
La représentation par les angles d’Euler est particulièrement importante en robotique,parce qu’ils correspondent aux variables articulaires de la structure de poignet la plusclassique
FIGURE 1: Structure classique d’un poignet dont les angles d’articulations sont identiques auxangles d’Euler
Badreddine BOUZOUITA Modélisation et commande des robots 41/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles d’Euler classiques
Les angles d’Euler classiques permettent de décrire l’orientation d’un solide par troisrotations successives. Conformément à la figure ci-dessous, il s’agit de trois rotationsR(z, ψ), R(xψ, θ) et enfin R(zθ, φ). Les angles ψ, θ et φ sont connus respectivement sousles termes de précession, nutation et rotation propre. Chaque nouvelle rotation étanteffectué par rapport à un repère ayant tourné :
R = R(z, ψ)R(xψ, θ)R(zθ, φ) (11)
ψ
y
z
x
y
x
θ
yψ
zψ
xψ
yψ
zψyθzθ
xθ
φyθ
xθ
yφzφ
xφ
Badreddine BOUZOUITA Modélisation et commande des robots 42/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles d’Euler classiques
Sous forme développée :
R =
cosψ − sinψ 0sinψ cosψ 0
0 0 1
1 0 00 cos θ − sin θ0 sin θ cos θ
cosφ − sinφ 0sinφ cosφ 0
0 0 1
(12)
soit finalement :
R =
cosψ cosφ− sinψ cos θ sinφ − cosψ sinφ− sinψ cos θ cosφ sinψ sin θsinψ cosφ+ cosψ cos θ sinφ − sinψ sinφ+ cosψ cos θ cosφ − cosψ sin θ
sin θ sinφ sin θ cosφ cos θ
(13)
Remarque
Il existe d’autre variante d’angles d’Euler qui fait intervenir :
z− x− z, x− y− x, y− z− y, z− y− z, x− z− x, y− x− y
Badreddine BOUZOUITA Modélisation et commande des robots 43/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles d’Euler classiques
Sous forme développée :
R =
cosψ − sinψ 0sinψ cosψ 0
0 0 1
1 0 00 cos θ − sin θ0 sin θ cos θ
cosφ − sinφ 0sinφ cosφ 0
0 0 1
(12)
soit finalement :
R =
cosψ cosφ− sinψ cos θ sinφ − cosψ sinφ− sinψ cos θ cosφ sinψ sin θsinψ cosφ+ cosψ cos θ sinφ − sinψ sinφ+ cosψ cos θ cosφ − cosψ sin θ
sin θ sinφ sin θ cosφ cos θ
(13)
Remarque
Il existe d’autre variante d’angles d’Euler qui fait intervenir :
z− x− z, x− y− x, y− z− y, z− y− z, x− z− x, y− x− y
Badreddine BOUZOUITA Modélisation et commande des robots 43/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles d’Euler classiques
Considérons maintenant le problème de déterminer les angles θ, ψ et φ pour une ma-trice de rotation représentée par les cosinus directeurs :
R =
r11 r12 r13
r21 r22 r23
r31 r32 r33
=
cosψ cosφ− sinψ cos θ sinφ − cosψ sinφ− sinψ cos θ cosφ sinψ sin θsinψ cosφ+ cosψ cos θ sinφ − sinψ sinφ+ cosψ cos θ cosφ − cosψ sin θ
sin θ sinφ sin θ cosφ cos θ
R33 6= ±1⇒ sin θ 6= 0 :
θ = arccos r33 (14)
(15)
(16)
Badreddine BOUZOUITA Modélisation et commande des robots 44/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles d’Euler classiques
Considérons maintenant le problème de déterminer les angles θ, ψ et φ pour une ma-trice de rotation représentée par les cosinus directeurs :
R =
r11 r12 r13
r21 r22 r23
r31 r32r33
=
cosψ cosφ− sinψ cos θ sinφ − cosψ sinφ− sinψ cos θ cosφ sinψ sin θsinψ cosφ+ cosψ cos θ sinφ − sinψ sinφ+ cosψ cos θ cosφ − cosψ sin θ
sin θ sinφ sin θ cosφ cos θ
R33 6= ±1⇒ sin θ 6= 0 :
θ = arccos r33 (14)
(15)
(16)
Badreddine BOUZOUITA Modélisation et commande des robots 44/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles d’Euler classiques
Considérons maintenant le problème de déterminer les angles θ, ψ et φ pour une ma-trice de rotation représentée par les cosinus directeurs :
R =
r11 r12 r13
r21 r22 r23
r31 r32 r33
=
cosψ cosφ− sinψ cos θ sinφ − cosψ sinφ− sinψ cos θ cosφ sinψ sin θsinψ cosφ+ cosψ cos θ sinφ − sinψ sinφ+ cosψ cos θ cosφ − cosψ sin θ
sin θ sinφ sin θ cosφ cos θ
R33 6= ±1⇒ sin θ 6= 0 :
θ = arccos r33 (14)
φ = arctanr31
r32(15)
(16)
Badreddine BOUZOUITA Modélisation et commande des robots 44/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles d’Euler classiques
Considérons maintenant le problème de déterminer les angles θ, ψ et φ pour une ma-trice de rotation représentée par les cosinus directeurs :
R =
r11 r12r13
r21 r22r23
r31 r32 r33
=
cosψ cosφ− sinψ cos θ sinφ − cosψ sinφ− sinψ cos θ cosφ sinψ sin θ
sinψ cosφ+ cosψ cos θ sinφ − sinψ sinφ+ cosψ cos θ cosφ − cosψ sin θ
sin θ sinφ sin θ cosφ cos θ
R33 6= ±1⇒ sin θ 6= 0 :
θ = arccos r33 (14)
φ = arctanr31
r32(15)
ψ = arctanr13
−r23(16)
Badreddine BOUZOUITA Modélisation et commande des robots 44/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles d’Euler classiques
R33 = ±1⇒ sin θ = 0 :
θ = π(1− r33)/2 (17)
(18)
R =
r11 r12 r13
r21 r22 r23
r31 r32 r33
=
cosψ cosφ− sinψ cos θ sinφ − cosψ sinφ− sinψ cos θ cosφ sinψ sin θsinψ cosφ+ cosψ cos θ sinφ − sinψ sinφ+ cosψ cos θ cosφ − cosψ sin θ
sin θ sinφ sin θ cosφ cos θ
Badreddine BOUZOUITA Modélisation et commande des robots 45/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles d’Euler classiques
R33 = ±1⇒ sin θ = 0 :
θ = π(1− r33)/2 (17)
(18)
R =
r11 r12 r13
r21 r22 r23
r31 r32r33
=
cosψ cosφ− sinψ cos θ sinφ − cosψ sinφ− sinψ cos θ cosφ sinψ sin θsinψ cosφ+ cosψ cos θ sinφ − sinψ sinφ+ cosψ cos θ cosφ − cosψ sin θ
sin θ sinφ sin θ cosφ cos θ
Badreddine BOUZOUITA Modélisation et commande des robots 45/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles d’Euler classiques
R33 = ±1⇒ sin θ = 0 :
θ = π(1− r33)/2 (17)
ψ + r33φ = arctanr11
r21(18)
R =
r11 r12 r13
r21 r22 r23
r31 r32r33
=
cosψ cosφ− sinψ cos θ sinφ − cosψ sinφ− sinψ cos θ cosφ sinψ sin θsinψ cosφ+ cosψ cos θ sinφ − sinψ sinφ+ cosψ cos θ cosφ − cosψ sin θ
sin θ sinφ sin θ cosφ cos θ
Badreddine BOUZOUITA Modélisation et commande des robots 45/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles de Bryant
C’est une autre représentation d’angles d’Euler. La seule différence est que les anglesTait-Bryan représentent rotations autour de trois axes distincts (par exemple xyz), tandisque les angles d’Euler utilisent le même axe pour la première et la troisième rotationsélémentaires (par exemple, zxz).
R = R(x, θ)R(yθ, ψ)R(zψ, φ) (19)
θ
y
z
x
y
z
ψ
yθ
zθ
xθ
zθ
xθ
yψzψ
xψ
φyψ
xψ
yφzφ
xφ
Badreddine BOUZOUITA Modélisation et commande des robots 46/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsAngles roulis, tangage et lacet
Ces angles, très utilisés par les industriels, portent les noms de roll, pitch et yaw enanglais. Il s’agit en fait d’angles d’Euler non classiques en cela que les rotations s’effec-tuent par rapport à un axe du repère fixe : les rotations successives sont R(x, γ), R(y, β)puis R(z, α). Les angles γ, β et α sont respectivement désignés sous les noms d’anglesde roulis, tangage et lacet :
R = R(z, α)R(y, β)R(x, γ) (20)
γ
y
z
x
y
z
y
z
y
z
β
αyγ
zγ
xγ
zγ
xγ
yβ
zβ
xβ
yβ
xβ
yα
zα
xα
Badreddine BOUZOUITA Modélisation et commande des robots 47/131
Modèles géométriques directs d’un robot Représentations de rotations
Représentations de rotationsPropriétés
Soient R ∈ R3×3 une matrice de rotation et r1, r2 et r3 ces vecteurs colonnes. Alors, ona :
rTi rj =
{0 si i 6= j1 si i = j
(21)
RRT = RT R = I (22)
Badreddine BOUZOUITA Modélisation et commande des robots 48/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènes
On suppose que le repère final Bf a subit, par rapport au repère initial Bi, une rotationdéfinit par la matrice de rotation R1,2 et une translation ~OiOf = X0. Le vecteur U définitles coordonnées de P dans Bf .Connaissant les coordonnées de la position du point P par rapport à l’origine Oj dans lerepère Bj, on souhaite déterminer les coordonnées de ce même point P par rapport aurepère de départ Bi. On cherche donc :
Oi
yi
zi
xi
X0
Oj
yj
zj
xj
U
X
•P
~OiP/i = ~OiOf /i +~Of P/i
= ~OiOf /i + R1,2 ~Of P/f
X = X0 + R1,2U (23)
L’équation (23) exprime la liaison entre les co-ordonnées du même point dans deux référen-tiels séparés par une translation x0 et une ro-tation de matrice R1,2.
Badreddine BOUZOUITA Modélisation et commande des robots 49/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènes
La présence conjointe de produits et de sommes dans l’équation vectorielle ~OiP/i =~OiOf /i +
~Of P/i est peu commode pour effectuer des calculs systématiques, dus parexemple à des changements successifs de repères. On lui préfère une représentationmatricielle de dimension 4, basée sur les coordonnées homogènes.La représentation en coordonnées homogènes consiste à doter toute notation vecto-rielle d’un facteur d’échelle en introduisant une coordonnée supplémentaire. Soit parexemple, un point M de l’espace, rapporté à trois axes rectangulaires, donné par larelation :
~OM =
abc
(24)
On représente alors les coordonnées homogène du point M par le vecteur :
~OM =
xyzw
(25)
avec x = aw , y = b
w , z = cw et le facteur d’échelle est unitaire (w = 1) en robotique.
Badreddine BOUZOUITA Modélisation et commande des robots 50/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènes
Soit la matrice de transformation homogène T0,1 correspondant à la matrice partitionnéesuivante :
M0,1 =
(R01(3×3) T01(3×1)
0 0 0 1
)(26)
La matrice M0,1 représente la transformation permettant de passer du repère Bf aurepère Bi.
O0
y0
z0
x0
O1
y0
z1
x1
T0,1
En effet, elle permet d’exprimer dansle repère B0 les coordonnées d’unvecteur exprimées dans le repère B1
. Autrement dit, on a : x0
y0
z0
= M0,1
x1
y1
z1
(27)
Badreddine BOUZOUITA Modélisation et commande des robots 51/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènes
La composition des transformations homogènes se fait très simplement comme expliquéà la figure ci-dessous : si X0, X1 et X2 représentent la position d’un point P dans lesréférentiels 1, 2 et 3 respectivement, on a par définition :
O0
y0
z0
x0
O1
y0
z1
x1
O2
y2z2
x2
T0,1
T 1,2
T0,2
X1 = M1,2X2
X0 = M0,1X1
X0 = M0,3X2
Combinant les deux premièresde ces équations, il suit immé-diatement que :
M0,2 = M0,1M1,2
Cette relation se généralise sans difficulté à un nombre quelconque de transformations :
M0,N = M0,1M1,2 . . .MN−1,N
Badreddine BOUZOUITA Modélisation et commande des robots 52/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènesMatrice de transformation de translation pure
Soit Trans(a, b, c) cette transformation, où a, b, et c désignent les composantes de latranslation le long des axes x, y et z respectivement. L’orientation étant conservée danscette transformation, Trans(a, b, c) a pour expression :
Oi
yi
zi
xi
Oj
yj
zj
xj cb
a
Mi,j = Trans(a, b, c) =
1 0 0 a0 1 0 b0 0 1 c0 0 0 1
Par la suite, on utilisera aussi la no-tation Trans(u, d) pour désigner une trans-lation d’une valeur d le long d’un axeu . Ainsi, la matrice Trans(a, b, c) peutêtre décomposée en un produit de troismatrices Trans(x, a)Trans(y, b)Trans(z, c), l’ordre des multiplications étant quelconque.
Badreddine BOUZOUITA Modélisation et commande des robots 53/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènesMatrices de transformation de rotation autour des axes principaux
Soit Rot(x, θ) la matrice de rotation d’un angle θ autour de l’axe x.
Oi
yi
yj
θ
θ
zizj
xi
θ
La matrice de transformation homogène du repère j versle repère i est :
Mij =
Rij(x, θ)000
0 0 0 1
=
1 0 0 00 cos θ − sin θ 00 sin θ cos θ 00 0 0 1
Xj exprimé dans Bi
Badreddine BOUZOUITA Modélisation et commande des robots 54/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènesMatrices de transformation de rotation autour des axes principaux
Soit Rot(x, θ) la matrice de rotation d’un angle θ autour de l’axe x.
Oi
yi
yj
θ
θ
zizj
xi
θ
La matrice de transformation homogène du repère j versle repère i est :
Mij =
Rij(x, θ)000
0 0 0 1
=
1 0 0 00 cos θ − sin θ 00 sin θ cos θ 00 0 0 1
Xj exprimé dans Bi
Yj exprimé dans Bi
Badreddine BOUZOUITA Modélisation et commande des robots 54/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènesMatrices de transformation de rotation autour des axes principaux
Soit Rot(x, θ) la matrice de rotation d’un angle θ autour de l’axe x.
Oi
yi
yj
θ
θ
zizj
xi
θ
La matrice de transformation homogène du repère j versle repère i est :
Mij =
Rij(x, θ)000
0 0 0 1
=
1 0 0 00 cos θ − sin θ 00 sin θ cos θ 00 0 0 1
Xj exprimé dans Bi
Yj exprimé dans Bi
Zj exprimé dans Bi
Badreddine BOUZOUITA Modélisation et commande des robots 54/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènesReprésentation d’un vecteur
La représentation d’un vecteur se fait aussi par quatre composantes, mais la quatrièmeest nulle. Si l’on note ux, uy et uz les coordonnées cartésiennes d’un vecteur unitaire U,en coordonnées homogènes on écrit :
U =
ux
uy
uz
0
(28)
Badreddine BOUZOUITA Modélisation et commande des robots 55/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènesReprésentation d’un plan
Le plan αx + βy + γz + δ = 0 est représenté par un vecteur ligne Q :
Q = [α β γ δ] (29)
Pour tout point P appartenant au plan Q, le produit QP est nul :
QP =[α β γ δ
] px
py
pz
1
= 0 (30)
Badreddine BOUZOUITA Modélisation et commande des robots 56/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènesExemple en 2D d’un bras de type robot d’assemblage
1 Trouver les coordonnées du point C dans le repère R0.
y0
x0
y1
x1
y2 x2
a
b
θ01
θ12
C
2 Recalculer les coordonnées de point C dans le repère R0 en utilisant le repère R2
et sans utiliser les repères R1. Conclure.
Badreddine BOUZOUITA Modélisation et commande des robots 57/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènesTransformation consécutives
Par rapport à un référentiel PRECEDENT
Soient :
M1 par rapport à FR transforme FR en F1 ;
M2 par rapport à F1 modifie la transformation obtenue par M1 pour donner Mresultat.Cette dernière est obtenue par postmultiplication des matrices de transformationM1 et M2.
Mresultat = M1M2
Par rapport à un référentiel UNIQUE
Soient :
M1 par rapport à FR transforme FR en F1 ;
M2 par rapport à FR modifie la transformation obtenue par M1 pour donnerMresultat. Cette dernière est obtenue par prétmultiplication des matrices detransformation M1 et M2.
Mresultat = M2M1
Badreddine BOUZOUITA Modélisation et commande des robots 58/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènesInversion
Montrer que l’inverse de la matrice de transformation homogène M est donnée par cetterelation :
M−1 =
(RT −RT d0 1
)(31)
Badreddine BOUZOUITA Modélisation et commande des robots 59/131
Modèles géométriques directs d’un robot Coordonnées et matrices de transformation homogènes
Coordonnées et matrices de transformation homogènesExemple d’un robot manipulateur R⊥R ‖ R
Trouver les coordonnées du point C dans le repère R0.
Badreddine BOUZOUITA Modélisation et commande des robots 60/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit Hartenberg
Denavit et Hartenberg (D-H) est une convention habituellement utilisée pour choisir lesystème de référence en robotique. Elle fut introduite en 1955 par Jacques Denavitet Richard S. Hartenberg. Selon cette convention, chaque transformation (passage dutrièdre n au trièdre n + 1) est représentée comme le produit de quatre transformationsbasiques. Pour définir ces transformations, il est tout d’abord nécessaire de définir lesaxes des liaisons :
Les axes Zn sont suivant les axes des liaisons. La convention deDenavit-Hartenberg (non modifié) est tel que l’axe du repère est confondu avecl’axe n− 1 (et non n) du robot.
L’axe Xn est perpendiculaire et coupe les axes Zn− 1 et Zn.
Laxe Yn est choisi de manière à former un trièdre direct avec les axes Zn et Xn.
Badreddine BOUZOUITA Modélisation et commande des robots 61/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit Hartenberg
Chaque transformation entre deux corps successifs est donc décrite par quatre para-mètres :
di : la distance selon l’axe Zi−1 entre les axes Xi−1 et Xi (le signe est déterminé parrapport à l’origine de repère i− 1). Pour une glissière, di est une variable et pourune charnière di est une constante.
θi : l’angle que l’on obtient par vissage de Xi−1 vers Xi autour de l’axe Zi−1. Pourune glissière, θi est une constante et pour une charnière, θi est une variable.
yi−1
zi−1
xi−1
diai
θ
α
y′
z′
x′
yizi
xi
Badreddine BOUZOUITA Modélisation et commande des robots 62/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit Hartenberg
ai : la distance entre les axes Zi et Zi−1 mesurée sur l’axe Xi ( ai toujours positiveou nulle).
αi : l’angle entre Zi et Zi−1 obtenu en vissant Zi−1 vers Zi autour de Xi. Le signe deαi dépend de sens de rotation autour de Xi.
yi−1
zi−1
xi−1
diai
θ
α
y′
z′
x′
yizi
xi
Badreddine BOUZOUITA Modélisation et commande des robots 63/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit Hartenberg
Comme ces transformations sont faites par rapport au repère courant, on a :
DHi−1,i = Rot(zi−1, θi)Trans(zi−1, di)Trans(xi, ai)Rot(xi, αi) (32)
Badreddine BOUZOUITA Modélisation et commande des robots 64/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit Hartenberg
DHi−1,i = Rot(zi−1, θi)Trans(zi−1, di)Trans(xi, ai)Rot(xi, αi)
=
Cθi −Sθi 0 0Sθi Cθi 0 00 0 1 00 0 0 1
1 0 0 00 1 0 00 0 1 di
0 0 0 1
1 0 0 ai
0 1 0 00 0 1 00 0 0 1
1 0 0 00 Cαi −Sαi 00 Sαi Cαi 00 0 0 1
(33)
=
Cθi −SθiCαi SθiSαi aiCθi
Sθi CθiCαi −CθiSαi aiSθi
0 Sαi Cαi di
0 0 0 1
(34)
Badreddine BOUZOUITA Modélisation et commande des robots 65/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit Hartenberg
Les paramètres de DH peuvent être groupés dans un tableau comme suit :
j θj dj aj αj
1 θ1 d1 a1 α1
......
......
...n θn dn an αn
Où :
j : indice du segment du manipulateur.
θj, dj, aj et αj sont les paramètres de DH.
Badreddine BOUZOUITA Modélisation et commande des robots 66/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit HartenbergCas où zi−1 et zi ne sont pas coplanaires
Si zi−1 et zi ne sont pas coplanaires, il existe donc une seule ligne qui coupe perpendicu-lairement zi−1 et zi et de longueur minimale. L’axe xi est défini sur cette ligne et l’origineOi représente l’intersection de cette ligne avec l’axe zi.
yi−1
zi−1
xi−1
diai
θ
α
y′
z′
x′
yizi
xi
Badreddine BOUZOUITA Modélisation et commande des robots 67/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit HartenbergCas où zi−1 est parallèle à zi
Dans ce cas, il y a infinité de normales communes entre zi−1 et zi. Par suite, noussommes libres de choisir l’origine Oi n’importe où le long de zi. On choisit souvent Oi
d’une manière à simplifier les équations résultantes. L’axe xi est alors choisi être dirigéde Oi−1 vers zi le long le commun normal.
Remarque
Dans ce cas le paramètre αi est égal à 0.
Badreddine BOUZOUITA Modélisation et commande des robots 68/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit HartenbergCas où zi−1 croise zi
Si zi−1 croise zi, xi est choisi normal au plan formé par zi−1 et zi. La direction positivede xi est arbitraire. Le choix le plus naturel pour l’origine Oi est dans ce cas le pointd’intersection de zi−1 et zi1.
Remarque
Dans ce cas le paramètre ai est égal à 0.
Badreddine BOUZOUITA Modélisation et commande des robots 69/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit HartenbergExemple : Robot cylindrique RPP
1 Retrouver les paramètres de DH pour ce manipulateur.2 Calculer la matrice de transformation homogène correspondante.
Badreddine BOUZOUITA Modélisation et commande des robots 70/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit HartenbergExemple : Robot cylindrique RPP
j ai αi di θi
1 0 0 d1 θ∗1
2 0 -90 d∗2 0
3 0 0 d∗3 0∗ variable
Badreddine BOUZOUITA Modélisation et commande des robots 71/131
Modèles géométriques directs d’un robot Convention de Denavit Hartenberg
Convention de Denavit HartenbergExemple : manipulateur plan R ‖ R ‖ R
1 Retrouver les paramètres de DH pour ce manipulateur.2 Calculer la matrice de transformation homogène correspondante.
y0
x0
a
b
cθ23
θ01
θ12
C
Badreddine BOUZOUITA Modélisation et commande des robots 72/131
Modèle géométrique inverse d’un robot
Sommaire
1 Introduction générale
2 Modèles géométriques directs d’un robot
3 Modèle géométrique inverse d’un robotIntroductionExemple 1 : Manipulateur RPExemple 2 : Manipulateur RRMéthode de PaulMéthode de Newton
4 Planification et génération de trajectoire
Badreddine BOUZOUITA Modélisation et commande des robots 73/131
Modèle géométrique inverse d’un robot Introduction
Introduction
Le problème de la cinématique inverse peut être formulé comme suit : on souhaite ame-ner l’outil dans une position déterminée, avec une orientation imposée, ceci est définipar la matrice de transformation homogène M0,T . On connaît d’autre part la position del’outil dans le référentiel d’extrémité, MW,T (W pour wrist (poignet) et T pour tool (outil).Il s’agit de calculer les coordonnées articulaires permettant de réaliser :
M0,w = M0,T M−1w,T
Badreddine BOUZOUITA Modélisation et commande des robots 74/131
Modèle géométrique inverse d’un robot Introduction
Introduction
Le problème inverse MGI consiste à calculer les coordonnées articulaires qui amènentl’organe terminal dans une situation désirée, spécifiée par ses coordonnées opération-nelles.Lorsqu’elle existe, la forme explicite qui donne toutes les solutions possibles au pro-blème inverse (il y a rarement unicité de la solution) constitue ce que l’on appelle lemodèle géométrique inverse MGI.Il n’existe pas une méthode analytique générale pour trouver le MGI, mais un certainnombre de méthodes, plus ou moins adaptées à des classes de cinématiques particu-lières, notamment la méthode de Paul qui traite séparément chaque cas particulier etqui convient pour la plupart des robots industrielsLorsque le modèle géométrique inverse n’existe pas, c’est-à-dire qu’il n’existe pas uneforme explicite, on peut calculer une solution particulière du problème inverse par desprocédures numériques, qui est une solution locale au sens où elle dépend des condi-tions initiales. Notons que de telles méthodes sont pénalisantes du point de vue dutemps de calcul.
Badreddine BOUZOUITA Modélisation et commande des robots 75/131
Modèle géométrique inverse d’un robot Introduction
Introduction
Quand une solution existe, elle n’est en général pas unique. La même configuration del’organe d’extrémité peut être obtenue pour différentes valeurs des variables d’articula-tions. Parmi les différentes solutions possibles, il est alors raisonnable d’adopter cellequi est la plus proche de la configuration précédente.
Badreddine BOUZOUITA Modélisation et commande des robots 76/131
Modèle géométrique inverse d’un robot Exemple 1 : Manipulateur RP
Exemple 1 : Manipulateur RP
Soit le manipulateur évoluant dans un plan et décrit dans la figure suivante :
On a le modèle géométrique direct suivant :{x = q2 cos(q1)y = q2 sin(q1)
(35)
Badreddine BOUZOUITA Modélisation et commande des robots 77/131
Modèle géométrique inverse d’un robot Exemple 1 : Manipulateur RP
Exemple 1 : Manipulateur RP
Une démarche analytique simple permet de déterminer le modèle géométrique inverse.On a : {
x = q2 cos(q1)y = q2 sin(q1)
(36)
Donc :
tan(q1) =yx⇒ q1 = arctan
( yx
)(37)
x2 + y2 = q22 ⇒ q2 =
√x2 + y2 (38)
Badreddine BOUZOUITA Modélisation et commande des robots 78/131
Modèle géométrique inverse d’un robot Exemple 2 : Manipulateur RR
Exemple 2 : Manipulateur RR
Soit le manipulateur RR plan décrit dans la figure suivante :
On a le modèle géométrique direct suivant :
x = l1 cos(q1) + l2 cos(q1 + q2)y = l1 sin(q1) + l2 sin(q1 + q2)
(39)
Badreddine BOUZOUITA Modélisation et commande des robots 79/131
Modèle géométrique inverse d’un robot Exemple 2 : Manipulateur RR
Modèle géométrique inverse d’un robotExemple 2 : Manipulateur RR
On a :
x2 + y2 = l21 + l2
2 + 2l1l2 cos(q2) (40)
Soit :
cos(q2) =x2 + y2 − (l2
1 + l22)
2l1l2(41)
Badreddine BOUZOUITA Modélisation et commande des robots 80/131
Modèle géométrique inverse d’un robot Exemple 2 : Manipulateur RR
Exemple 2 : Manipulateur RR
Sachant que cos(q) = a avec a ∈ [−1, 1], il en résulte que :
q2 = ± arccos(
x2 + y2 − (l21 + l2
2)
2l1l2
)(42)
sous réserve :
−1 ≤ x2 + y2 − (l21 + l2
2)
2l1l2≤ 1 (43)
Cette condition indique que la position du point P doit être atteignable.
Badreddine BOUZOUITA Modélisation et commande des robots 81/131
Modèle géométrique inverse d’un robot Exemple 2 : Manipulateur RR
Exemple 2 : Manipulateur RR
Lorsque q2 est positif (resp., négatif), le robot a une posture coude bas (resp., coudehaut)
Badreddine BOUZOUITA Modélisation et commande des robots 82/131
Modèle géométrique inverse d’un robot Exemple 2 : Manipulateur RR
Exemple 2 : Manipulateur RR
Il reste maintenant à déterminer q1.En développant les expressions cos(q1 + q2) et sin(q1 + q2) dans le système correspon-dant au MGD, on obtient :{
(l1 + l2 cos(q2)) cos(q1)− l2 sin(q1) sin(q2) = xl2 sin(q2) cos(q1) + (l1 + l2 cos(q2)) sin(q1) = y
(44)
ou encore sous forme matricielle :(l1 + l2 cos(q2) −l2 sin(q2)
l2 sin(q2) l1 + l2 cos(q2)
)(cos(q1)sin(q1)
)=
(xy
)(45)
Donc : (cos(q1)sin(q1)
)=
1x2 + y2
(l1 + l2 cos(q2) l2 sin(q2)−l2 sin(q2) l1 + l2 cos(q2)
)(xy
)(46)
On obtient alors :
cos(q1) =1
x2 + y2 (x(l1 + l2 cos(q2)) + y(l2 sin(q2))) (47)
sin(q1) =1
x2 + y2 (y(l1 + l2 cos(q2))− x(l2 sin(q2))) (48)
Badreddine BOUZOUITA Modélisation et commande des robots 83/131
Modèle géométrique inverse d’un robot Exemple 2 : Manipulateur RR
Exemple 2 : Manipulateur RR
Ainsi, on aboutit au modèle géométrique inverse suivant :
q2 = ± arccos
(x2 + y2 −
(l21 + l2
2)
2l1l2
)q1 = arctan
(y (l1 + l2 cos (q2))− xl2 sin (q2)
x (l1 + l2 cos (q2)) + yl2 sin (q2)
) (49)
On remarque qu’il y a 2 solutions, correspondantà 2 postures différentes du bras : L’une est ditecoude haut, l’autre coude bas.
Badreddine BOUZOUITA Modélisation et commande des robots 84/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulPrésentation de la méthode
On suppose que chaque matrice de transformation homogène représente une trans-formation individuelle soit de rotation soit de translation. Donc, la matrice de passagehomogène a pour expression :
T0,n = T0,1(q1)× T1,2(q2)× · · · × Tn−1,n(qn) (50)
on note :
U0 = T0,1(q1)× T1,2(q2)× · · · × Tn−1,n(qn) =
sx nx ax Px
sy ny ay Py
sz nz az Pz
0 0 0 1
(51)
Cette matrice U0 est la donnée du problème. Elle représente la situation de l’organeterminal dans le repère de base du robot R0.Le problème est de trouver les variables articulaires à partir de l’équation :
U0 = T0,1(q1)× T1,2(q2)× · · · × Tn−1,n(qn) (52)
en fonction des éléments articulaires~s, ~n, ~a et ~P est très difficile.
Badreddine BOUZOUITA Modélisation et commande des robots 85/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulPrésentation de la méthode
Paul (en 81) a proposé une méthode qui consiste à prémultiplier successivement les 2membres de l’équation par les matrices de transformation homogène inverse.
Tj,j−1 pour j variant de 1 à n− 1 (53)
Il s’agit de déplacer l’une après l’autre chacune des variables articulaires (q1, · · · , qn)dans le membre de gauche de l’équation.Cela permet d’isoler et d’identifier l’une aprèsl’autre les variables articulaires que l’on recherche.Pour un robot à 6 ddl, on procède comme suit :
Multiplication à gauche par T1,0
T1,0(q1)U0 = T1,2(q2)T2,3(q3)T3,4(q4)T4,5(q5)T5,6(q6) (54)
1ère partie de l’équation = fonction de q1 uniquement2ème partie de l’équation = fonction de q2, q3, q4, q5, q6
q1 est obtenu par identification d’un ou de deux éléments parmi les plus simplesqui constitue l’expression de droite avec les termes équivalents dans celle degauche (identification avec 0 ou constante).en partant de l’expression T1,0(q1)U0 = T1,2(q2)T2,3(q3)T3,4(q4)T4,5(q5)T5,6(q6), onprémultiplie par T2,1 et on réitère le même processus.
Dans certains cas il est possible de résoudre le robot en partant de qn. Il suffit alors demultiplier à droite les 2 membres de l’expression par Tj,j−1 pour j variant de n à 2
Badreddine BOUZOUITA Modélisation et commande des robots 86/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulExemple : manipulateur R ` R
l1
l2
θ2
y0
z0
x0
x1
y1
z1
x2
y2
z2
θ1
Soit le manipulateur R ` R suivant :
j θj dj aj αj
1 θ1 l1 0 90◦
2 θ2 0 l2 0
T0,1 =
Cθ1 0 Sθ1 0Sθ1 0 −Cθ1 00 1 0 l1
0 0 0 1
(55)
T1,2 =
Cθ2 −Sθ2 0 l2Cθ2
Sθ2 Cθ2 0 l2sθ2
0 0 1 00 0 0 1
(56)
Badreddine BOUZOUITA Modélisation et commande des robots 87/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulExemple : manipulateur R ` R
l1
l2
θ2
y0
z0
x0
x1
y1
z1
x2
y2
z2
θ1
Soit le manipulateur R ` R suivant :
j θj dj aj αj
1 θ1 l1 0 90◦
2 θ2 0 l2 0
T0,1 =
Cθ1 0 Sθ1 0Sθ1 0 −Cθ1 00 1 0 l1
0 0 0 1
(55)
T1,2 =
Cθ2 −Sθ2 0 l2Cθ2
Sθ2 Cθ2 0 l2sθ2
0 0 1 00 0 0 1
(56)
Badreddine BOUZOUITA Modélisation et commande des robots 87/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulExemple : manipulateur R ` R
l1
l2
θ2
y0
z0
x0
x1
y1
z1
x2
y2
z2
θ1
Soit le manipulateur R ` R suivant :j θj dj aj αj
1 θ1 l1 0 90◦
2 θ2 0 l2 0
T0,1 =
Cθ1 0 Sθ1 0Sθ1 0 −Cθ1 00 1 0 l1
0 0 0 1
(55)
T1,2 =
Cθ2 −Sθ2 0 l2Cθ2
Sθ2 Cθ2 0 l2sθ2
0 0 1 00 0 0 1
(56)
Badreddine BOUZOUITA Modélisation et commande des robots 87/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulExemple : manipulateur R ` R
l1
l2
θ2
y0
z0
x0
x1
y1
z1
x2
y2
z2
θ1
Soit le manipulateur R ` R suivant :j θj dj aj αj
1 θ1 l1 0 90◦
2 θ2 0 l2 0
T0,1 =
Cθ1 0 Sθ1 0Sθ1 0 −Cθ1 00 1 0 l1
0 0 0 1
(55)
T1,2 =
Cθ2 −Sθ2 0 l2Cθ2
Sθ2 Cθ2 0 l2sθ2
0 0 1 00 0 0 1
(56)
Badreddine BOUZOUITA Modélisation et commande des robots 87/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulExemple : manipulateur R ` R
l1
l2
θ2
y0
z0
x0
x1
y1
z1
x2
y2
z2
θ1
Soit le manipulateur R ` R suivant :La transformé inverse est donnée par :
T1,0 =
Cθ1 Sθ1 0 0
0 0 1 −l1
Sθ1 −Cθ1 0 00 0 0 1
(57)
T2,1 =
Cθ2 Sθ2 0 −l2
−Sθ2 Cθ2 0 00 0 1 00 0 0 1
(58)
Badreddine BOUZOUITA Modélisation et commande des robots 88/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulExemple : manipulateur R ` R
l1
l2
θ2
y0
z0
x0
x1
y1
z1
x2
y2
z2
θ1
Soit le manipulateur R ` R suivant :La transformé inverse est donnée par :
T1,0 =
Cθ1 Sθ1 0 0
0 0 1 −l1
Sθ1 −Cθ1 0 00 0 0 1
(57)
T2,1 =
Cθ2 Sθ2 0 −l2
−Sθ2 Cθ2 0 00 0 1 00 0 0 1
(58)
Badreddine BOUZOUITA Modélisation et commande des robots 88/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulExemple : manipulateur R ` R
on a :
U0 = T0,1(q1)× T1,2(q2) =
sx nx ax Px
sy ny ay Py
sz nz az Pz
0 0 0 1
(59)
1re étape :
T1,0(q1)U0 = T1,2(q2) = T1,0
sx nx ax Px
sy ny ay Py
sz nz az Pz
0 0 0 1
(60)
Badreddine BOUZOUITA Modélisation et commande des robots 89/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulExemple : manipulateur R ` R
donc : Cθ1sx + Sθ1sy Cθ1nx + Sθ1ny Cθ1ax + Sθ1ay Cθ1Px + Sθ1Py
sz nz az Pz − l1
Sθ1sx − Cθ1sy Sθ1nx − Cθ1ny Sθ1ax − Cθ1ay Sθ1Px − Cθ1Py
0 0 0 1
=
Cθ2 −Sθ2 0 l2Cθ2
Sθ2 Cθ2 0 l2Sθ2
0 0 1 00 0 0 1
arctan (θ2) =Pz − l1
PxCθ1 + PySθ1
arctan (θ1) =Py
Px
Pz = l1 +√
l22 −
(P2
x + P2y)
Badreddine BOUZOUITA Modélisation et commande des robots 90/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulExemple : manipulateur R ` R
donc : Cθ1sx + Sθ1sy Cθ1nx + Sθ1ny Cθ1ax + Sθ1ay
Cθ1Px + Sθ1Py
sz nz azPz − l1
Sθ1sx − Cθ1sy Sθ1nx − Cθ1ny Sθ1ax − Cθ1ay Sθ1Px − Cθ1Py
0 0 0 1
=
Cθ2 −Sθ2 0 l2Cθ2
Sθ2 Cθ2 0 l2Sθ2
0 0 1 00 0 0 1
arctan (θ2) =
Pz − l1
PxCθ1 + PySθ1
arctan (θ1) =Py
Px
Pz = l1 +√
l22 −
(P2
x + P2y)
Badreddine BOUZOUITA Modélisation et commande des robots 90/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulExemple : manipulateur R ` R
donc : Cθ1sx + Sθ1sy Cθ1nx + Sθ1ny Cθ1ax + Sθ1ay
Cθ1Px + Sθ1Py
sz nz azPz − l1
Sθ1sx − Cθ1sy Sθ1nx − Cθ1ny Sθ1ax − Cθ1aySθ1Px − Cθ1Py
0 0 0 1
=
Cθ2 −Sθ2 0 l2Cθ2
Sθ2 Cθ2 0 l2Sθ2
0 0 1 0
0 0 0 1
arctan (θ2) =
Pz − l1
PxCθ1 + PySθ1
arctan (θ1) =Py
Px
Pz = l1 +√
l22 −
(P2
x + P2y)
Badreddine BOUZOUITA Modélisation et commande des robots 90/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulExemple : manipulateur R ` R
donc : Cθ1sx + Sθ1sy Cθ1nx + Sθ1ny Cθ1ax + Sθ1ay
Cθ1Px + Sθ1Py
sz nz azPz − l1
Sθ1sx − Cθ1sy Sθ1nx − Cθ1ny Sθ1ax − Cθ1aySθ1Px − Cθ1Py
0 0 0 1
=
Cθ2 −Sθ2 0 l2Cθ2
Sθ2 Cθ2 0 l2Sθ2
0 0 1 0
0 0 0 1
arctan (θ2) =
Pz − l1
PxCθ1 + PySθ1
arctan (θ1) =Py
Px
Pz = l1 +√
l22 −
(P2
x + P2y)
Badreddine BOUZOUITA Modélisation et commande des robots 90/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulNombre de solutions au problème inverse
On peut constater pratiquement trois cas :absence de solutions : Par exemple, lorsque la situation désirée est en dehorsde la zone accessible du robot. La zone accessible est limitée par le nombre deddl, les débattements articulaires, et la dimension des segments.infinité de solutions : Ce cas se présente lorsque :
le robot est redondant vis-à-vis de la tâche à réaliser.le robot se trouve en configuration singulière. Il y a alors une redondance locale qui setraduit par le fait que le robot ne peut déplacer son organe terminal dans certainesdirections ou tourner autour de certains axes. De ce fait, il perd un ou plusieurs ddl.Tout cela est dû aux valeurs numériques particulières prises par les paramètres pourdécrire la situation désirée.
Badreddine BOUZOUITA Modélisation et commande des robots 91/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulNombre de solutions au problème inverse
solution en ensemble fini : C’est le cas lorsque toutes les solutions peuvent êtrecalculées sans ambiguïté.
Badreddine BOUZOUITA Modélisation et commande des robots 92/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulSolutions aux types d’équations rencontrés
Lorsque nous utilisons la méthode de Paul, nous sommes confrontés de manière itéra-tive à la résolution de système d’équations de différents types. L’utilisation d’un grandnombre de robots industriels a permis de constater que les principaux types rencontréssont peu nombreux. Les 10 types d’équations sont détaillés ci-dessous.
Equations de type 1 : X.rj = Y
Dans ce cas, la réponse est immédiate⇒ rj =YX
avec X 6= 0.
Equations de type 2 : X.Sθi + Y.Cθi = ZX et Y étant connus, deux cas peuvent être envisagés.
Z = 0 : deux solutions sont possibles :
θi = arctan(−Y,X)
θi = θi + 180◦(61)
Z 6= 0 : On résout le système en sinus et en cosinus, puis on prend l’arctangente : Onpeut réécrire le système type 2 de deux manières différentes.
X.Sθi = Z − Y.Cθi
Y.Cθi = Z − X.Sθi(62)
Badreddine BOUZOUITA Modélisation et commande des robots 93/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulSolutions aux types d’équations rencontrés
en sinus :
Y2.C2θi = Z2 + X2.S2θi − 2ZX.Sθi
Y2.(
1− S2θi
)= Z2 + X2.S2θi − 2ZX.Sθi(
X2 + Y2).S2θi − 2ZX.Sθi + Z2 + Y2 = 0 (63)
d’où :
Sθi =Z.X + ε.Y
√X2 + Y2 − Z2
X2 + Y2 avec ε = ±1 (64)
en cosinus :
X2.S2θi = Z2 + Y2.C2θi − 2ZY.Cθi
X2.(
1− C2θi
)= Z2 + Y2.C2θi − 2ZY.Cθi(
X2 + Y2).C2θi − 2ZY.Cθi + Z2 − X2 = 0 (65)
d’où :
Cθi =Z.Y + ε.X
√X2 + Y2 − Z2
X2 + Y2 avec ε = ±1 (66)
Badreddine BOUZOUITA Modélisation et commande des robots 94/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulSolutions aux types d’équations rencontrés
Le signe − devant ε vient du fait que nous devrons vérifier à chaque instant que
C2θi + S2θi = 1
La réponse est la suivante :
Cθi =Z.Y + ε.X
√X2 + Y2 − Z2
X2 + Y2
Sθi =Z.X − ε.Y
√X2 + Y2 − Z2
X2 + Y2
(67)
si X2 + Y2 − Z2 ≥ 0 alors :
θi = arctanSθi
Cθi(68)
Badreddine BOUZOUITA Modélisation et commande des robots 95/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulSolutions aux types d’équations rencontrés
Equations de type 3 (forme 1) :
X1.Sθi = Y1
X2.Sθi = Y2(69)
X1 et X2 étant non nuls, la réponse est la suivante :
θi = arctan(
Y1X2
Y2X1
)(70)
Equations de type 3 (forme 2) :
X1.Sθi + Y1.Cθi = Z1
X2.Sθi + Y2.Cθi = Z2(71)
On se ramène au cas précédent en posant :
Sθi =Y2.Z1 − Y1.Z2
X1.Y2 − X2.Y1
Cθi =X1.Z2 − X2.Z1
X1.Y2 − X2.Y1
(72)
d’où :
θi = arctan(
Sθi
Cθi
)(73)
Badreddine BOUZOUITA Modélisation et commande des robots 96/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulSolutions aux types d’équations rencontrés
Equations de type 4 :X1.rj.Sθi = Y1
X2.rj.Sθi = Y2(74)
X1 et X2 étant non nuls, on réécrit le système :rj.Sθi =
Y1
X1
rj.Cθi =Y2
X2
⇒
r2
j .Sθ2i =
Y21
X21
r2j .Cθ
2i =
Y22
X22
(75)
d’où :
rj = ±
√Y2
1
X21+
Y22
X22
θi = arctan(
Y1X2
Y2X1
) (76)
Badreddine BOUZOUITA Modélisation et commande des robots 97/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulSolutions aux types d’équations rencontrés
Equations de type 5 :X1.Sθi = Y1 + Z1.rj
X2.Cθi = Y2 + Z1.rj(77)
X1 et X2 étant non nuls, on réécrit le système :Sθi =
Y1
X1+
Z1
X1.rj
Cθi =Y2
X2+
Z2
X2.rj
soit{
Sθi = V1 + W1.rj
Cθi = V2 + W2.rj(78)
la réponse est la suivante :
rj =− (V1.W1 + V2.W2)±
√W2
1 + W22 − (V1.W2 − V2.W2
1 )
W21 + w2
2
θi = arctan(
V1 + W1.rj
V2 + W2.rj
) (79)
Badreddine BOUZOUITA Modélisation et commande des robots 98/131
Modèle géométrique inverse d’un robot Méthode de Paul
Méthode de PaulSolutions aux types d’équations rencontrés
Equations de type 6 :
W.Sθj = X.Cθi + Y.Sθi + Z1 (80a)
W.Cθj = X.Sθi − Y.Cθi + Z2 (80b)
Eliminons θj en faisant la somme au carrée de (80a) et (80b). Ce qui nous donneune équation en θi de la forme :
B1.Sθi + B2.Cθi = B3 (81)
Dans ce cas, θi peut être résolu par un système de type 2.Puis θj peut être résolut par un système de type 3 (forme 1).
Badreddine BOUZOUITA Modélisation et commande des robots 99/131
Modèle géométrique inverse d’un robot Méthode de Newton
Méthode numériqueMéthode de Newton
La méthode du Newton est une méthode numérique itérative permettant de résoudre lesystème d’équations suivant :
f1 (θ1, θ2, θ3, θ4, θ5, θ6,) = 0f2 (θ1, θ2, θ3, θ4, θ5, θ6,) = 0f3 (θ1, θ2, θ3, θ4, θ5, θ6,) = 0f4 (θ1, θ2, θ3, θ4, θ5, θ6,) = 0f5 (θ1, θ2, θ3, θ4, θ5, θ6,) = 0f6 (θ1, θ2, θ3, θ4, θ5, θ6,) = 0
(82)
Sous forme matricielle :f (θ) = 0 (83)
Badreddine BOUZOUITA Modélisation et commande des robots 100/131
Modèle géométrique inverse d’un robot Méthode de Newton
Méthode numériqueMéthode de Newton
Les racines de l’équation f (θ) sont obtenues d’une manière itérative par cette relation :
θ(i+1) = θ(i) − J−1(θ(i))
f(θ(i))
(84)
Où J(θ) est la matrice Jacobienne suivante :
J (θ) =[∂fi(θ)
∂θj
]=
∂f1(θ)
∂θ1
∂f1(θ)
∂θ2· · · ∂f1(θ)
∂θn∂f2(θ)
∂θ1
∂f2(θ)
∂θ2· · · ∂f2(θ)
∂θn...
. . ....
∂fn(θ)
∂θ1
∂fn(θ)
∂θ2
∂fn(θ)
∂θn
(85)
Badreddine BOUZOUITA Modélisation et commande des robots 101/131
Modèle géométrique inverse d’un robot Méthode de Newton
Méthode numériqueExemple
Considérons le manipulateur RRR plan donné par la figure suivante :
On désire mettre l’extrémité du manipulateur à la position x = 0.5 et y = 0.3 avec uneorientation φ = 2π/3(φ = θ1 + θ2 + θ3) . On suppose que l1 = 2 et l2 = l3 = 1.
Badreddine BOUZOUITA Modélisation et commande des robots 102/131
Modèle géométrique inverse d’un robot Méthode de Newton
Méthode numériqueExemple
On a donc :
f1 = 2 cos(θ1) + cos(θ1 + θ2) + cos(θ1 + θ2 + θ3)− 0.5f2 = 2 sin(θ1) + sin(θ1 + θ2) + sin(θ1 + θ2 + θ3)− 0.3
f3 = θ1 + θ2 + θ3 −2π3
(86)
Ce qui donne la matrice Jacobienne suivante :
J (θ1, θ2, θ3) = −2 sin θ1 − sin(θ1 + θ2)− sin(θ1 + θ2 + θ3) − sin(θ1 + θ2)− sin(θ1 + θ2 + θ3)2 cos θ1 + cos(θ1 + θ2) + cos(θ1 + θ2 + θ3) cos(θ1 + θ2) + cos(θ1 + θ2 + θ3)
1 1(87)
− sin(θ1 + θ2 + θ3)cos(θ1 + θ2 + θ3)
1
Badreddine BOUZOUITA Modélisation et commande des robots 103/131
Modèle géométrique inverse d’un robot Méthode de Newton
Méthode numériqueExemple
En choisissant comme point de départ la position initiale (θ1 = θ2 = π/6 et θ3 = π/3) :
J(θ(0))=
−3.5981 −1.8660 −0.86600.5000 −0.5000 −0.5000
1 1 1
(88)
et
F(θ(0))=
0.00000.59810.0000
(89)
ce qui nous donne comme première itération :
θ(1) = θ(0) − J−1(θ(0))
f(θ(0))=
0.44912.1576−0.5123
(90)
et
F(θ(1))=
−0.059−0.7560.0000
(91)
Badreddine BOUZOUITA Modélisation et commande des robots 104/131
Modèle géométrique inverse d’un robot Méthode de Newton
Méthode numériqueExemple
Itération 2 :
θ(2) =
0.60971.6083−0.1236
et F(θ(2))=
0.0367−0.19100.0000
Itération 3 :
θ(3) =
0.67891.42060.0049
et F(θ(3))=
0.0608−0.00960.0000
Itération 4 :
θ(4) =
0.69841.4329−0.0369
et F(θ(4))=
0.0001−0.00100.0000
Badreddine BOUZOUITA Modélisation et commande des robots 105/131
Modèle géométrique inverse d’un robot Méthode de Newton
Méthode numériqueCas où la matrice Jacobienne n’est pas inversible
Si la matrice Jacobienne J est de dimension m × n avec m 6= n. Alors, les racinesde l’équation f (θ) peuvent être obtenues d’une manière itérative en utilisant le pseudoinverse de la matrice Jacobinne :
θ(i+1) = θ(i) − J+(θ(i))
f(θ(i))
(92)
avec J+ est le pseudo inverse de J donné par :
si rang(J) = m 6 n, alors(JT J)−1
existe.(JT J)−1 (
JT J)= I
⇒[(
JT J)−1
JT]J = J+J = I
si rang(J) = n 6 m, alors(JJT)−1
existe.(JJT) (JJT)−1
= I
⇒ J[JT (JJT)−1
]= JJ+ = I
Badreddine BOUZOUITA Modélisation et commande des robots 106/131
Planification et génération de trajectoire
Sommaire
1 Introduction générale
2 Modèles géométriques directs d’un robot
3 Modèle géométrique inverse d’un robot
4 Planification et génération de trajectoireIntroductionTypes de trajectoiresGénération de mouvement dans l’espace articulaireGénération de mouvement dans l’espace opérationnel
Badreddine BOUZOUITA Modélisation et commande des robots 107/131
Planification et génération de trajectoire Introduction
Introduction
En robotique, une des tâches de base que doit accomplir un robot consiste à se déplacerd’un point A à un point B, avec le respect éventuel d’un certain nombre de contraintes(vitesse, accélération max, évitement d’obstacle).La commande en position du robot consiste donc à calculer les différentes consignes,en fonction du temps, afin de générer le mouvement désiré. C’est pour cela que la com-mande en position d’un robot est aussi appelée génération de mouvement. De manièreclassique, deux types de commande en position sont envisagés :
une commande en position dans l’espace articulaire q.
une commande en position dans l’espace opérationnel X.
Le choix du type de commande peut être effectué en fonction de l’espace dans lequelest décrite la trajectoire à suivre.
Badreddine BOUZOUITA Modélisation et commande des robots 108/131
Planification et génération de trajectoire Introduction
IntroductionCommande en position dans l’espace articulaire q
La génération d’un mouvement directement dans l’espace articulaire présente des avan-tages :
le mouvement est minimal sur chaque articulation,
elle nécessite moins de calculs (pas de passage MGD MGI),
le mouvement n’est pas affecté par le passage sur les configurations singulières,
les contraintes de couples maximums et de vitesse maximum sont connues, caron les fixe aux limites physiques des actionneurs.
Badreddine BOUZOUITA Modélisation et commande des robots 109/131
Planification et génération de trajectoire Introduction
IntroductionCommande en position dans l’espace opérationnel X
Lorsque la géométrie de la trajectoire doit être contrôlée, la génération de trajectoiredans l’espace opérationnel sera préférée. Par contre, elle comporte un certain nombred’inconvénients :
elle demande d’appliquer le MGI en chaque point de la trajectoire,
elle peut être mise en défaut lorsque la trajectoire calculée passe par une positionsingulière,
elle peut être mise en défaut lorsque la trajectoire calculée fait passer unearticulation hors de ces limites de variation [qmin; qmax],
Badreddine BOUZOUITA Modélisation et commande des robots 110/131
Planification et génération de trajectoire Types de trajectoires
Types de trajectoires
Les trajectoires peuvent être classées en plusieurs catégories :
La catégorie Monodimensionnelle correspond à la trajectoire d’un degré deliberté du robot.
La trajectoire Multi-dimensionelle est associée soit à un ensemble de degrés deliberté du robot (planification articulaire) soit à l’organe effecteur (planificationcartésienne). Par opposition à la planification mono-dimensionnelle, laplanification multi-dimensionnelle peut nécessiter de synchroniser temporellementl’ensemble des axes du robot.
Les trajectoires qui sont définies par deux points (les conditions initiales et finales)sont des trajectoires point à point.Les trajectoires multi-points, quant à elles, passent par des pointsintermédiaires ou approximent un ensemble de points comme dans le cas deschemins
Badreddine BOUZOUITA Modélisation et commande des robots 111/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Génération de mouvement dans l’espace articulaire
Soit un robot à n degrés de liberté.Soient qi le vecteur des coordonnées articulaires initiales et qf le vecteur des coordon-nées articulaires finales. Le mouvement interpolé entre qi et qf en fonction du temps test décrit par l’équation suivante :
q(t) = qi + r(t)(
qf − qi)
pour 0 ≤ t ≤ tf (93)
q(t) = r(t)(
qf − qi)
(94)
avec r(t) est une fonction d’interpolation telle que : r(0) = 0 et r(tf ) = 1.On peut alors écrire l’équation précédente comme suit :
q(t) = qf (t)− [1− r(t)](
qf − qi)
(95)
Badreddine BOUZOUITA Modélisation et commande des robots 112/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Génération de mouvement dans l’espace articulaire
Plusieurs fonctions permettent de satisfaire le passage par qi à t = 0 et qf à t = tf :
interpolation polynomiale linéaire, de degré 3 ou de degré 5.
loi du Bang Bang,
loi trapèze (Bang Bang avec paliers de vitesse)
Badreddine BOUZOUITA Modélisation et commande des robots 113/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Interpolation linéaire
C’est la plus simple. L’équation du mouvement s’écrit :
q(t) = qi +ttf
(qf − qi
)(96)
Cette loi de mouvement impose une vitesse constante le long de la trajectoire.On en déduit la fonction d’interpolation :
r(t) =ttf (97)
La loi est continue en position, mais discontinue en vitesse et en accélération.
t(s)
q(t)
q(t)
q(t)1 2 3
1
2
Badreddine BOUZOUITA Modélisation et commande des robots 114/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Interpolation de degré 3 : trajectoire cubique
Si on impose une vitesse nulle aux points de départ et d’arrivée, on rajoute deuxcontraintes supplémentaires par rapport à l’interpolation linéaire. Afin de satisfaire ces4 contraintes : {
qi = q(0) = 0 (a)qf = q(tf ) = 0 (b)
{q(0) = qi (c)q(tf ) = qf (d)
(98)
Le degré minimal du polynôme est de 3. La forme générale est donnée par l’équationsuivante :
q(t) = a0 + a1t + a2t2 + a3t3 (99)
On en déduit les relations donnant la vitesse et l’accélération :{q(t) = a1 + 2a2t + 3a3t2
q(t) = 2a2 + 6a3t(100)
En utilisant les hypothèses (a) et (c), on en déduit les coefficients :
a0 = qi et a1 = 0 (101)
En utilisant les hypothèses (b) et (d), on en déduit les coefficients :
a2 =3t2f
(qf − qi
)et a3 = − 2
t3f
(qf − qi
)(102)
Badreddine BOUZOUITA Modélisation et commande des robots 115/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Interpolation de degré 3 : trajectoire cubique
On en déduit la fonction d’interpolation :
r(t) = 3( t
tf
)2− 2( t
tf
)3(103)
La vitesse est maximale en t = tf/2 et nulle en t = 0 et en t = tf .La valeur maximaleest : qmax = 3|qf − qi|/(2tf )
Badreddine BOUZOUITA Modélisation et commande des robots 116/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Interpolation de degré 3 : trajectoire cubique
2eme méthode : On a :q(t) = a0 + a1t + a2t2 + a3t3
q(t) = a1 + 2a2t + 3a3t2
En combinant ces 2 relations avec les 4 contraintes, on obtient :
q(0) = a0 + a1t0 + a2t20 + a3t3
0
q(0) = a1 + 2a2t0 + 3a3t20
q(tf ) = a0 + a1tf + a2t2f + a3t3
f
q(tf ) = a1 + 2a2tf + 3a3t2f
ou encore sous forme matricielle :1 t0 t2
0 t30
0 1 2t0 3t20
1 tf t2f t3
f
0 1 2tf 3t2f
a0
a1
a2
a3
=
q(0)q(0)q(tf )q(tf )
(104)
On peut montrer que le déterminant de ce problème est égal à (tf − t0)4 et par consé-
quent la solution est unique pour un intervalle de temps différent de 0.
Badreddine BOUZOUITA Modélisation et commande des robots 117/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Interpolation de degré 5
Si de plus l’on impose une accélération nulle aux points de départ et d’arrivée, on ra-joute deux contraintes supplémentaires par rapport à l’interpolation de degré 3. Afin desatisfaire ces 6 contraintes :{
qi = q(0) = 0 (a)qf = q(tf ) = 0 (b)
{qi = q(0) = 0 (c)qf = q(tf ) = 0 (d)
{q(0) = qi (e)q(tf ) = qf (f )
(105)
le degré minimal du polynôme est de 5. La forme générale est donnée par l’équationsuivante :
q(t) = a0 + a1t + a2t2 + a3t3 + a4t4 + a5t5 (106)
De la même manière, on montre que la fonction d’interpolation est la suivante :
r(t) = 10( t
tf
)3− 15
( ttf
)4+ 6( t
tf
)5(107)
Badreddine BOUZOUITA Modélisation et commande des robots 118/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Interpolation de degré 5
Badreddine BOUZOUITA Modélisation et commande des robots 119/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Interpolation de degré 5
2eme méthode : On a :q(t) = a0 + a1t + a2t2 + a3t3 + a4t4 + a5t5
q(t) = a1 + 2a2t + 3a3t2 + 4a4t3 + 5a5t4
q(t) = 2a2 + 6a3t + 12a4t2 + 20a5t3
En combinant ces 2 relations avec les 6 contraintes, on obtient :
q(0) = a0 + a1t0 + a2t20 + a3t3
0 + a4t40 + a5t5
0
q(0) = a1 + 2a2t0 + 3a3t20 + 4a4t3
0 + 5a5t40
q(0) = 2a2 + 6a3t0 + 12a4t20 + 20a5t3
0
q(tf ) = a0 + a1tf + a2t2f + a3t3
f + a4t4f + a5t5
f
q(tf ) = a1 + 2a2tf + 3a3t2f + 4a4t3
f + 5a5t4f
q(tf ) = 2a2 + 6a3tf + 12a4t2f + 20a5t3
f
(108)
ou encore sous forme matricielle :
1 t0 t20 t3
0 t40 t5
0
0 1 2t0 3t20 4t3
0 5t40
0 0 2 6t0 12t20 20t3
0
1 tf t2f t3
f t4f t5
f
0 1 2tf 3t2f 4t3
f 5t4f
0 0 2 6tf 12t2f 20t3
f
a0
a1
a2
a3
a4
a5
=
q(0)q(0)q(0)q(tf )q(tf )q(tf )
(109)
Badreddine BOUZOUITA Modélisation et commande des robots 120/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Loi de Bang Bang
Dans ce cas, le mouvement est représenté par une phase d’accélération constantejusqu’à tf/2, puis une phase de décélération constante. On impose les 4 contraintessuivantes : {
qi = q(0) = 0 (a)qf = q(tf ) = 0 (b)
{q(0) = qi (c)q(tf ) = qf (d)
(110)
Le mouvement est donc continu en position et en vitesse. Il est discontinu en accéléra-tion.La position est donnée par l’ensemble des relations suivantes :
q(t) = qi + 2(
ttf
)2 (qf − qi
)pour 0 ≤ t ≤ tf
2
q(t) = qi +
[−1 + 4
ttf− 2(
ttf
)2](
qf − qi)
pourtf
2≤ t ≤ tf
(111)
Badreddine BOUZOUITA Modélisation et commande des robots 121/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Loi de Bang Bang
La figure ci-dessous représente les évolutions de q(t), q(t) et q(t) obtenues pour :
- qi = 1 et qf = 2,
- tf = 3
t(s)
q(t)
q(t)
q(t)1 2 3
1
2
Badreddine BOUZOUITA Modélisation et commande des robots 122/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Loi trapèze : Loi Bang Bang avec palier de vitesse
Cette approche, qui est fréquemment utilisée dans la pratique, permet de vérifier di-rectement si les vitesses et les accélérations résultantes peuvent être supportées parle manipulateur. Dans ce cas, un profil trapézoïdal de vitesse est adopté, qui imposeune :
accélération constante dans la phase de début,
une vitesse de croisière et un ralentissement constant dans la phase d’arrivée.
La trajectoire résultante est formée par un segment linéaire connecté par deux seg-ments paraboliques aux positions initiales et finales.
Badreddine BOUZOUITA Modélisation et commande des robots 123/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Loi trapèze : Loi Bang Bang avec palier de vitesse
Pour 0 ≤ t ≤ tc :On a :
q(t) = qc
Sachant les conditions initiales :
q(0) = 0 et q(0) = qi
on peut écrire :
q(t) = qct (112)
q(t) = qi +12
qct2 (113)
Badreddine BOUZOUITA Modélisation et commande des robots 124/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Loi trapèze : Loi Bang Bang avec palier de vitesse
Pour tc ≤ t ≤ tf − tc : On a :q(t) = 0
donc :q(t) = qc = q(tc) = qctc et q(t) = C + _qct
or :q(tc) = qi +
12
qct2c = C + qctc ⇒ qi +
12
qctc = C + qctc
⇒ C = qi − 12
qctc
et par suite :
q(t) = qi + qc
(t − 1
2tc
)(114)
Badreddine BOUZOUITA Modélisation et commande des robots 125/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Loi trapèze : Loi Bang Bang avec palier de vitesse
Pour tf − tc ≤ t ≤ tf : On a :q(t) = −qc
D’après les conditions initiales :
q(tf ) = qf et -q(tf) = 0
on peut écrire :
q(t) = qc (tf − t) (115)
q(t) = qf − 12
qc(tf − t)2 (116)
Badreddine BOUZOUITA Modélisation et commande des robots 126/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Loi trapèze : Loi Bang Bang avec palier de vitesse
La position est donnée par l’ensemble des relations suivantes :
q(t) =
qi +
12
qct2sgn(
qf − qi)
0 ≤ t ≤ tc
qi + qc
(t − 1
2tc
)sgn(
qf − qi)
pour tc ≤ t ≤ tf − tc
qf − 12
qc(tf − t)2sgn(
qf − qi)
tf − tc ≤ t ≤ tf
(117)
avec :tc =
qc
qc
Badreddine BOUZOUITA Modélisation et commande des robots 127/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Temps minimum
Si tf n’est pas spécifié, on recherche, en général, le temps minimum pour faire le dépla-cement qi → qf en respectant les contraintes de vitesse et d’accélération.Généralement, on calcul le temps minimum sur chaque articulation séparément. Puis,on effectue la coordination des articulations sur un temps commun. La coordination estnécessaire à deux titres :
- harmonie du mouvement global du robot,
- contrôle de la trajectoire et de la géométrie du robot.
Les deux étapes sont donc : calcul du temps minimum tf : il dépend de la méthoded’interpolation retenue. Il consiste en fait à saturer la vitesse et/ou l’accélération. Pourle calcul de chacun des tfj , on se sert des résultats suivants :
Interpolation linéaire tfj =|Dj|kvj
Interpolation de degré 3 tfj = max[
3|Dj|2kvj
,√
6|Dj|kaj
]Interpolation de degré 5 tfj = max
[15|Dj|
8kvj,
√10|Dj|√
3kaj
]Loi Bang-Bang tfj = max
[2|Dj|
kvj, 2√|Dj|kaj
]avec Dj = qf
j − qij, kvj le vitesse max et kaj l’accélération max.
Badreddine BOUZOUITA Modélisation et commande des robots 128/131
Planification et génération de trajectoire Génération de mouvement dans l’espace articulaire
Temps minimum
Pour la coordination des axes, on impose pour chaque axe tf = max [tf 1, tf 2, · · · , tfn].
Badreddine BOUZOUITA Modélisation et commande des robots 129/131
Planification et génération de trajectoire Génération de mouvement dans l’espace opérationnel
Génération de mouvement dans l’espace opérationnel
En spécifiant la trajectoire dans l’espace des coordonnées articulaires, on ne peutcontrôler la trajectoire de l’organe d’extrémité entre les points où la trajectoire est impo-sée (trajectoire rectiligne).
Par contre :- elle implique la transformation en coordonnées articulaires de chaque point de la
trajectoire,- elle peut être mise en échec lorsque la trajectoire calculée passe par une position
singulière,- elle peut être mise en échec chaque fois que les points de la trajectoire engendrée
ne sont pas dans le volume accessible du robot ou chaque fois que la trajectoireimpose une reconfiguration du mécanisme (changement d’aspect en cours de tra-jectoire).
Badreddine BOUZOUITA Modélisation et commande des robots 130/131
Planification et génération de trajectoire Génération de mouvement dans l’espace opérationnel
Mouvement rectilignePoint à Point
On cherche à appliquer un mouvement rectiligne au point outil (OE origine du repère RElié à l’outil)Soit Mi
0,e la matrice de transformation homogène décrivant la situation initiale de l’outildans le repère R0.Soit Mf
0,e la matrice de transformation homogène décrivant la situation finale de l’outildans le repère R0.On définit :
Mi0,e =
[Ai Pi
0 1
](118)
Mf0,e =
[Af Pf
0 1
](119)
On décompose le mouvement en un mouvement de :
translation en ligne droite entre les origines OiE et Of
E,
rotation autour d’un axe u de l’organe terminal pour aligner Ai avec Af ,
Badreddine BOUZOUITA Modélisation et commande des robots 131/131