38 0 3MB
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érale Structure générale d’un robot Les architectures du type série (robot sériel Les architectures parallèles Morphologie du robot manipulateur Caracté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 1920 par Karel Capek. Un robot est une appareil automatique capable de manipuler des objets ou d’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’automatique, 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 dit aussi manipulateur quand il ne s’agit pas d’un robot mobile. Sa motorisation est réalisée par des actionneurs électriques, pneumatiques ou hydrauliques qui transmettent 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’ils mesurent 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 les actionneurs. A partir de la fonction de perception et des ordres de l’utilisateur, elle permet 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âches que le robot doit exécuter. le poste de travail et les dispositifs périrobotique 1 : qui constituent l’environnement dans 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 de pièces, etc. Côté logiciel, on pourra noter les aides à la programmation (en CNC (Commande numérique par calculateur) 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 robot Le 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 plus général où le robot est, par exemple, lié à un satellite évoluant dans l’espace, le véhicule possè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éhicule les trois degrés de liberté en rotation pour ne lui laisser que ceux en translation (ou deux des 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 robot Le porteur
Le porteur est la structure mécanique, généralement une structure articulée, dont le rôle est d’amener l’extrémité du robot en divers points de son espace de travail. D’une manière générale, le porteur possède les trois degrés de liberté en translation qui assurent le déplacement ; cependant, il peut en posséder moins, dépendant du type de tâches assigné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 robot L’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 trois axes 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 robot Nombre de degrés de liberté du robot
La plupart des robots usuels ayant n degrés de liberté (n ≤ 6) possèdent également n axes, qu’ils soient de translation ou de rotation. Cependant, le nombre d’axes du robot ne 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 sont répartis entre le porteur et l’organe terminal de manière que les trois rotations soient liées à ce dernier. Pour compenser un degré de liberté déficitaire au niveau de l’organe terminal, on rajoute en général un ou plusieurs axes au niveau du porteur. On obtient ainsi 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érale Les architectures du type série
Les mécanique de cette famille se composent globalement d’un assemblage de corps successifs 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érale Les architectures du type série avec boucles cinématique
Pour des raisons de robustesse, à ces articulations principales peuvent s’ajouter des articulations complémentaires qui constituent des boucles cinématique qui permettent de 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 les masse globales en mouvement. il est alors nécessaire d’inclure des boucles cinématique 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érale Les architectures séries arborescentes
Dans certains cas, un robot peut posséder plusieurs extrémités, on parlera alors de architectures arborescentes.
Badreddine BOUZOUITA
Modélisation et commande des robots
13/131
Introduction générale
Les architectures parallèles
Introduction générale Les architectures parallèles
Un robot parallèle est constitué d’un ensemble de chaînes cinématique liées à l’une de leur extrémité à un corps de référence la base, et à l’autre extrémité à une plate-forme mobile destinée à recevoir l’organe terminal. Ces architectures sont peu nombreuses car les méthode de calcul de leur modèle mathé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érale Morphologie du robot manipulateur
Selon l’arrangement des articulations du porteur, on peut obtenir différentes architectures 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, par exemple, 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érale Morphologie du robot manipulateur
Robots cylindriques (RPP) : : est obtenu en remplaçant la première articulation prismatique 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érale Morphologie du robot manipulateur
Robots sphériques (RRP) : : se diffère de celle cylindrique en remplaçant la deuxiè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érale Morphologie du robot manipulateur
Robots SCARA (RRP) : : Bien que le SCARA (Selective Compliant Articulated Robot for Assembly) ait une structure de RRP, il diffère tout à fait du manipulateur sphé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érale Morphologie du robot manipulateur
Robots rotoïdes ou révolution ou anthropomorphes (RRR) : : est réalisée par trois articulations rotoïde ; l’axe de rotation de la première articulation est orthogonal 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érale Morphologie du robot manipulateur
Selon le dernier rapport par la Fédération Internationale de Robotique (IFR :International Federation of Robotics), jusqu’à 2005, 59% de manipulateurs de robot installés dans le monde entier ont la configuration géométrie anthropomorphique, 20% ont la structure gé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 robot Espace 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 point de l’organe terminal lorsque le configuration du robot évolue. Il s’exprime en unités volumiques, mais la forme de son enveloppe (qui peut-être compliquée puisque formée par la combinaison des mouvements de plusieurs articulations) est aussi importante.
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 robot Espace 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 robot Espace 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 robot Espace de travail
I
robot RPR ou RRP : le volume de travail est un cylindre de hauteur L et de rayon 2L : 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 robot Espace de travail I
robot RRP : le volume de travail est une sphère creuse de rayons intérieur et extérieur L et de rayon 2L : 28 3 V= πL ' 29L3 3
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 robot Espace de travail
I
robot RRR : le volume de travail est une sphère de rayon 2L : V=
Badreddine BOUZOUITA
32 3 πL ' 34L3 3
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 robot Espace de travail
Cette comparaison montre la nette supériorité des structures RRP et RRR qui, a dimensions égales des différentes parties du manipulateur, possèdent un volume de travail environ 30 fois supérieur à celui de la structure PPP. Les structures RPP et RPR, avec un volume de travail environ 10 fois supérieur à celui de la structure PPP, offrent donc un 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 robot La capacité de charge
La capacité de charge : La capacité de charge est la charge que peut porter et manipuler le robot. Evidemment, les couples qui doivent développer les actionneurs sont fonction de la configuration du robot. C’est pourquoi la charge maximum indiquée dans les catalogues des constructeurs de robots n’est souvent supportable que dans une fraction du volume de travail, mais pas dans tout le volume atteignable ni avec toutes les orientations atteignables. Il faudrait plutôt fournir 2 chiffres : la charge maximum soulevable dans la configuration la meilleure et la charge utile c’est-à-dire celle qui est effectivement manœuvrable dans tout le volume atteignable. Actuellement, on peut distinguer trois grandes catégories de robots suivant leur capacité de charge : robots de grande capacité : 50 à 100 kg robots de capacité moyenne : 5 à 10 kg robots 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 robot Précision, répétabilité et résolution
Précision : Pour expliquer ces notions, considérons un robot manipulateur quelconque 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éplacements ré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 à situer l’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 robot Précision, répétabilité et résolution
Répétabilité : L’écart maximal entre la situation moyenne Bmoy et les situations atteintes 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 meilleure que la précision, généralement elle est de l’ordre du dixième de mm. C’est une des raisons pour lesquelles beaucoup de constructeurs ne mentionnent que la répétabilité dans leurs catalogues de robots, une autre raison étant que c’est évidemment la répétabilité qui intéresse les utilisateurs lorsque le robot doit répéter un grand nombre de fois la même tâche. Résolution : on appelle résolution d’un robot le plus petit écart entre la situation initiale A et la situation programmée B qui puisse se traduire par une modification réelle de la situation de l’organe terminal, c-à-d. qui entraîne un déplacement de celui-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 robot Agilité
L’agilité est la propriété de se déplacer avec rapidité d’une configuration à une autre dans l’espace de travail. Elle est entièrement liée à la réponse dynamique du manipulateur. Le temps de transfert entre deux points est limité par : - la vitesse maximum permise par chacun des degrés de liberté (les robots actuels atteignent 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, des flexibilités présentes dans les transmissions, plutôt que de celles des liens. Le temps de stabilisation sera minimisé en générant des trajectoires qui n’excitent pas les modes flexibles et en augmentant l’amortissement du système. La limite de l’agilité qu’il est possible d’atteindre par la simple augmentation du couple des moteurs est fixée par le temps de stabilisation et les dépassements associés aux oscillations. Notons ici que les meilleurs manipulateurs modernes ont des accélérations maximum un ordre de grandeur 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 selon les 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 (position et orientation) de l’effecteur (l’organe terminal) en fonction des coordonnées articulaires. Cette relation permet de faire le lien entre les mesures prises aux articulations et la position spatiale du mécanisme. xp = f (q) (1) xr où xp représente les trois coordonnées opérationnelles de position (coordonnées du centre On + 1 par rapport à l’origine fixe O1) et où xr représente les coordonnées opé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ées articulaires correspondant à une pose (position et orientation) de l’effecteur donnée. Cette relation est ici obtenue en manipulant algébriquement les équations du MGD. 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’organe terminal en fonction de la vitesse articulaire et inversement. Les modèles dynamiques définissant les équations différentielles du mouvement du robot qui permettent d’établir les relations entre les couples ou forces exercé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 robot Introduction Représentations de rotations Coordonnées et matrices de transformation homogènes Convention 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 cinématique. Lorsque l’on désire commander un robot, il est nécessaire de situer ses différentes parties mobiles les unes par rapport aux autres. Pour ce faire, on associe un repè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ènes sont des outils indispensables et très utilisés en robotique, qui font l’objet d’une grande partie de ce chapitre. La cinématique du déplacement, à travers la loi de composition des vitesses, fait également 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 articulaires q: xp = f (q) (2) xr où xp représente les trois coordonnées opérationnelles de position (coordonnées du centre On+1 par rapport à l’origine fixe O1 ) et où xr représente les coordonnées opéraˆn+1 par rapport à la base fixe X ˆ1 . tionnelles d’orientation de la base X
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ˆ1 , santes cartésiennes de la position de On+1 par rapport à O1 exprimées dans la base X 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 particulier des coordonnées de rotation, nous nous baserons sur la relation : h i h i ˆ 1 = A1,n+1 X ˆ n+1 X (3) qui fait apparaître la matrice de rotation entre les deux repères, et nous chercherons la relation : xp = f (q) (4) A1,n+1 sachant que, quel que soit le choix des coordonnées opérationnelles de rotation, ces derniè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 rotations Cas 2D
Transformation des coordonnées d’un vecteur U 2D − → → → → → U = Ux1 − x 1 + Uy1 − y 1 = Ux2 − x 2 + Uy2 − y2 La correspondance des vecteurs de base s’exprime par les deux équations suivantes :
(5)
y1 y2
− → → → x2=− x 1 cos θ + − y 1 sin θ − → → → y 2 = −− x 1 sin θ + − y 1 cos θ
(6)
U
θ
x2 ou symboliquement à travers la relation matricielle suivante : x2 cos θ sin θ x1 = (7) y2 − sin θ cos θ y1
θ O
x1
Soit X2 = R2,1 X1 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 rotations Cas 2D
En exprimant les relations de correspondance des vecteurs de base − → → → U = Ux2 − x 2 + Uy2 − y2 − → → → → = Ux2 x 1 cos θ + − y 1 sin θ + Uy2 −− x 1 sin θ + − y 1 cos θ → → = (Ux2 cos θ − Uy2 sin θ) − x 1 + (Ux2 sin θ + Uy2 cos θ) − y1 − → − → =U x +U y x1
1
y1
(8)
1
Par identification, on obtient alors : Ux1 cos θ − sin θ Ux2 = Uy1 sin θ cos θ Uy2
y1 y2 (9)
θ
x2
Soit : X1 = R1,2 X2
U
(10)
θ
x1 O avec R2,1 est dite matrice de passage de la base 1 à la base 2. En effet, la base 2 est obtenue par transformation de la base 1. La relation (10) permet de connaître les coordonnées de U dans la base 1 sachant les coordonné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 rotations Cas 3D
En ce qui concerne les rotations dans l’espace R3 , il est important de préciser l’axe de rotation. Nous pouvons distinguer 3 rotations principales : la rotation d’angle θ autour de l’axe Ox, celle autour de Oy et celle autour de Oz. Les matrices associées sont respectivement données par : 1 0 0 R(x, θ) = 0 cos θ − sin θ , 0 sin θ cos θ cos θ 0 sin θ 0 1 0 et R(y, θ) = − sin θ 0 cos θ cos θ − sin θ 0 cos θ 0 R(z, θ) = sin θ 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 rotations Angles 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 plus classique
F IGURE 1: Structure classique d’un poignet dont les angles d’articulations sont identiques aux angles 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 rotations Angles d’Euler classiques
Les angles d’Euler classiques permettent de décrire l’orientation d’un solide par trois rotations successives. Conformément à la figure ci-dessous, il s’agit de trois rotations R(z, ψ), R(xψ , θ) et enfin R(zθ , φ). Les angles ψ, θ et φ sont connus respectivement sous les termes de précession, nutation et rotation propre. Chaque nouvelle rotation étant effectué par rapport à un repère ayant tourné : (11)
R = R(z, ψ)R(xψ , θ)R(zθ , φ) zψ
z
zψ zθ
ψ y x
yθ
zφ
yφ yθ
φ
x
yψ y
θ xψ
Badreddine BOUZOUITA
yψ
xθ
Modélisation et commande des robots
xφ xθ
42/131
Modèles géométriques directs d’un robot
Représentations de rotations
Représentations de rotations Angles d’Euler classiques
Sous forme développée : cos ψ − sin ψ 0 1 cos ψ 0 0 R = sin ψ 0 0 1 0
0 cos θ sin θ
0 cos φ − sin θ sin φ cos θ 0
− sin φ cos φ 0
0 0 1
(12)
soit finalement :
cos ψ cos φ − sin ψ cos θ sin φ R = sin ψ cos φ + cos ψ cos θ sin φ sin θ sin φ
− cos ψ sin φ − sin ψ cos θ cos φ − sin ψ sin φ + cos ψ cos θ cos φ sin θ cos φ
sin ψ sin θ − cos ψ sin θ 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 rotations Angles d’Euler classiques
Sous forme développée : cos ψ − sin ψ 0 1 cos ψ 0 0 R = sin ψ 0 0 1 0
0 cos θ sin θ
0 cos φ − sin θ sin φ cos θ 0
− sin φ cos φ 0
0 0 1
(12)
soit finalement :
cos ψ cos φ − sin ψ cos θ sin φ R = sin ψ cos φ + cos ψ cos θ sin φ sin θ sin φ
− cos ψ sin φ − sin ψ cos θ cos φ − sin ψ sin φ + cos ψ cos θ cos φ sin θ cos φ
sin ψ sin θ − cos ψ sin θ 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 rotations Angles d’Euler classiques
Considérons maintenant le problème de déterminer les angles θ, ψ et φ pour une matrice de rotation représentée par les cosinus directeurs : r11 r12 r13 R = 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 rotations Angles d’Euler classiques
Considérons maintenant le problème de déterminer les angles θ, ψ et φ pour une matrice de rotation représentée par les cosinus directeurs : r11 r12 r13 R = r21 r22 r23 r 33 r31 r32 cos ψ cos φ − sin ψ cos θ sin φ − cos ψ sin φ − sin ψ cos θ cos φ sin ψ sin θ sin ψ cos φ + cos ψ cos θ sin φ − sin ψ sin φ + cos ψ cos θ cos φ − cos ψ sin θ = cos θ sin θ sin φ sin θ 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 rotations Angles d’Euler classiques
Considérons maintenant le problème de déterminer les angles θ, ψ et φ pour une matrice de rotation représentée par les cosinus directeurs : r11 r12 r13 r22 r23 R = r21 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 r31 φ = arctan r32
(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 rotations Angles d’Euler classiques
Considérons maintenant le problème de déterminer les angles θ, ψ et φ pour une matrice de rotation représentée par les cosinus directeurs : r13 r11 r12 r23 R= r22 r21 r31 r32 r33
cos ψ cos φ − sin ψ cos θ sin φ = sin ψ cos φ + cos ψ cos θ sin φ sin θ sin φ
− cos ψ sin φ − sin ψ cos θ cos φ − sin ψ sin φ + cos ψ cos θ cos φ sin θ cos φ
sin ψ sin θ
− cos ψ sin θ cos θ
R33 6= ±1⇒ sin θ 6= 0 : θ = arccos r33 r31 φ = arctan r32 r13 ψ = arctan −r23 Badreddine BOUZOUITA
Modélisation et commande des robots
(14) (15) (16)
44/131
Modèles géométriques directs d’un robot
Représentations de rotations
Représentations de rotations Angles d’Euler classiques
R33 = ±1⇒ sin θ = 0 : θ = π(1 − r33 )/2
(17) (18)
r11 r12 r13 R = r21 r22 r23 r31 r32 r33 cos ψ cos φ − sin ψ cos θ sin φ = sin ψ cos φ + cos ψ cos θ sin φ sin θ sin φ
− cos ψ sin φ − sin ψ cos θ cos φ − sin ψ sin φ + cos ψ cos θ cos φ sin θ cos φ
Badreddine BOUZOUITA
Modélisation et commande des robots
sin ψ sin θ − cos ψ sin θ cos θ
45/131
Modèles géométriques directs d’un robot
Représentations de rotations
Représentations de rotations Angles d’Euler classiques
R33 = ±1⇒ sin θ = 0 : θ = π(1 − r33 )/2
(17) (18)
r11 r12 r13 R = r21 r22 r23 r31 r32 r33 cos ψ cos φ − sin ψ cos θ sin φ = sin ψ cos φ + cos ψ cos θ sin φ sin θ sin φ
− cos ψ sin φ − sin ψ cos θ cos φ − sin ψ sin φ + cos ψ cos θ cos φ
Badreddine BOUZOUITA
sin θ cos φ
Modélisation et commande des robots
sin ψ sin θ − cos ψ sin θ cos θ
45/131
Modèles géométriques directs d’un robot
Représentations de rotations
Représentations de rotations Angles d’Euler classiques
R33 = ±1⇒ sin θ = 0 : θ = π(1 − r33 )/2 r11 ψ + r33 φ = arctan r21
(18)
r11
r12
r13
r21 R=
r22
r31
r32
r23 r33
(17)
cos ψ cos φ − sin ψ cos θ sin φ
= sin ψ cos φ + cos ψ cos θ sin φ sin θ sin φ
− cos ψ sin φ − sin ψ cos θ cos φ − sin ψ sin φ + cos ψ cos θ cos φ
Badreddine BOUZOUITA
sin θ cos φ
Modélisation et commande des robots
sin ψ sin θ − cos ψ sin θ cos θ
45/131
Modèles géométriques directs d’un robot
Représentations de rotations
Représentations de rotations Angles de Bryant
C’est une autre représentation d’angles d’Euler. La seule différence est que les angles Tait-Bryan représentent rotations autour de trois axes distincts (par exemple xyz), tandis que les angles d’Euler utilisent le même axe pour la première et la troisième rotations élémentaires (par exemple, zxz). (19)
R = R(x, θ)R(yθ , ψ)R(zψ , φ) z
zθ
z
zθ yθ
yψ
φ
ψ y
yφ
zψ
zφ
yψ
y
θ x
xθ
xθ
xφ xψ
Badreddine BOUZOUITA
xψ
Modélisation et commande des robots
46/131
Modèles géométriques directs d’un robot
Représentations de rotations
Représentations de rotations Angles roulis, tangage et lacet
Ces angles, très utilisés par les industriels, portent les noms de roll, pitch et yaw en anglais. Il s’agit en fait d’angles d’Euler non classiques en cela que les rotations s’effectuent 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’angles de roulis, tangage et lacet : (20)
R = R(z, α)R(y, β)R(x, γ) z
zγ
z yγ
y
β
z
zγ zβ
z zα
α y
yβ
yα yβ
y
y
γ x
xγ
xγ
xα xβ
Badreddine BOUZOUITA
xβ Modélisation et commande des robots
47/131
Modèles géométriques directs d’un robot
Représentations de rotations
Représentations de rotations Propriétés
Soient R ∈ R3×3 une matrice de rotation et r1 , r2 et r3 ces vecteurs colonnes. Alors, on a: riT rj =
0 si i 6= j 1 si i = j
RRT = RT R = I
Badreddine BOUZOUITA
Modélisation et commande des robots
(21) (22)
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
U
On suppose que le repère final Bf a subit, par rapport au repère initial Bi , une rotation définit par la matrice de rotation R1,2 et une translation O~i Of = X0 . Le vecteur U définit les coordonnées de P dans Bf . Connaissant les coordonnées de la position du point P par rapport à l’origine Oj dans le repère Bj , on souhaite déterminer les coordonnées de ce même point P par rapport au repère de départ Bi . On cherche donc : P • zj yj zi O~i P/i = O~i Of /i + O~f P/i = O~i Of /i + R1,2 O~f P/f X = X0 + R1,2 U
X
Oj
(23)
L’équation (23) exprime la liaison entre les coordonnées du même point dans deux référentiels séparés par une translation x0 et une rotation de matrice R1,2 .
Badreddine BOUZOUITA
X0 yi Oi xi
Modélisation et commande des robots
xj
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 O~i P/i = O~i Of /i + O~f P/i est peu commode pour effectuer des calculs systématiques, dus par exemple à des changements successifs de repères. On lui préfère une représentation matricielle de dimension 4, basée sur les coordonnées homogènes. La représentation en coordonnées homogènes consiste à doter toute notation vectorielle d’un facteur d’échelle en introduisant une coordonnée supplémentaire. Soit par exemple, un point M de l’espace, rapporté à trois axes rectangulaires, donné par la relation : a ~ = b (24) OM c On représente alors les coordonnées homogène du point M par le vecteur : x ~ = y OM z w avec x = wa , y = wb , z =
c w
(25)
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ée suivante : R01(3×3) T01(3×1) M0,1 = (26) 000 1 La matrice M0,1 représente la transformation permettant de passer du repère Bf au repère Bi . z1 En effet, elle permet d’exprimer dans y0 z0 T0,1 le repère B0 les coordonnées d’un vecteur exprimées dans le repère B1 O1 . Autrement dit, on a : y0 x0 x1 O0 y0 = M0,1 y1 (27) x1 x0 z0 z1
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 les référentiels 1, 2 et 3 respectivement, on a par définition : O2 X1
=
M1,2 X2
X0
=
M0,1 X1
X0
=
M0,3 X2
2
, T 1 z2
z1
y2 y0 x2
z0
T 0,2 O1
Combinant les deux premières de ces équations, il suit immédiatement que :
O0
T 0y,1 0 x1
x0
M0,2 = M0,1 M1,2 Cette relation se généralise sans difficulté à un nombre quelconque de transformations : M0,N = M0,1 M1,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ènes Matrice de transformation de translation pure
Soit Trans(a, b, c) cette transformation, où a, b, et c désignent les composantes de la translation le long des axes x, y et z respectivement. L’orientation étant conservée dans cette transformation, Trans(a, b, c) a pour expression : z j
1 0 Mi,j = Trans(a, b, c) = 0 0
0 1 0 0
0 0 1 0
a b c 1
zi yj Oj xj
c
yi
Oi
b Par la suite, on utilisera aussi la notation Trans(u, d) pour désigner une translation d’une valeur d le long d’un axe a u . Ainsi, la matrice Trans(a, b, c) peut xi être décomposée en un produit de trois matrices 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ènes Matrices de transformation de rotation autour des axes principaux
Soit Rot(x, θ) la matrice de rotation d’un angle θ autour de l’axe x. La matrice de transformation homogène du repère j vers le repère i est : zi zj 0 Rij (x, θ) θ 0 Mij = 0 000 1 Oi 0 0 1 0 θ 0 cos θ − sin θ 0 xi = 0 sin θ cos θ 0 0 0 0 1 Xj exprimé dans Bi
Badreddine BOUZOUITA
Modélisation et commande des robots
yj θ
yi
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ènes Matrices de transformation de rotation autour des axes principaux
Soit Rot(x, θ) la matrice de rotation d’un angle θ autour de l’axe x. La matrice de transformation homogène du repère j vers le repère i est : zi zj 0 Rij (x, θ) θ 0 Mij = 0 000 1 Oi 0 0 1 0 θ 0 cos θ − sin θ 0 xi = 0 sin θ cos θ 0 0 0 0 1 Xj exprimé dans Bi
yj θ
yi
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ènes Matrices de transformation de rotation autour des axes principaux
Soit Rot(x, θ) la matrice de rotation d’un angle θ autour de l’axe x. La matrice de transformation homogène du repère j vers le repère i est : zi zj 0 Rij (x, θ) θ 0 Mij = 0 000 1 Oi 0 0 1 0 θ 0 cos θ − sin θ 0 xi = 0 sin θ cos θ Zj exprimé dans Bi 0 0 0 0 1 Xj exprimé dans Bi
yj θ
yi
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ènes Représentation d’un vecteur
La représentation d’un vecteur se fait aussi par quatre composantes, mais la quatrième est 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 : ux uy U= (28) uz 0
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ènes Représentation d’un plan
Le plan αx + βy + γz + δ = 0 est représenté par un vecteur ligne Q : Q = [α β γ δ] Pour tout point P appartenant au plan Q, le produit QP est nul : px py QP = α β γ δ pz = 0 1
Badreddine BOUZOUITA
Modélisation et commande des robots
(29)
(30)
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ènes Exemple en 2D d’un bras de type robot d’assemblage
1
Trouver les coordonnées du point C dans le repère R0 . C y2
x2
b y1
y0
θ12 a x1 θ01 x0
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ènes Transformation 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 Mr´esultat . Cette dernière est obtenue par postmultiplication des matrices de transformation M1 et M2. Mr´esultat = 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 donner Mr´esultat . Cette dernière est obtenue par prétmultiplication des matrices de transformation M1 et M2. Mr´esultat = 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ènes Inversion
Montrer que l’inverse de la matrice de transformation homogène M est donnée par cette relation : T R −RT d M −1 = (31) 0 1
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ènes Exemple d’un robot manipulateur R⊥R k 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 le système de référence en robotique. Elle fut introduite en 1955 par Jacques Denavit et Richard S. Hartenberg. Selon cette convention, chaque transformation (passage du trièdre n au trièdre n + 1) est représentée comme le produit de quatre transformations basiques. Pour définir ces transformations, il est tout d’abord nécessaire de définir les axes des liaisons : Les axes Zn sont suivant les axes des liaisons. La convention de Denavit-Hartenberg (non modifié) est tel que l’axe du repère est confondu avec l’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 paramètres : di : la distance selon l’axe Zi−1 entre les axes Xi−1 et Xi (le signe est déterminé par rapport à l’origine de repère i − 1). Pour une glissière, di est une variable et pour une 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 . Pour une glissière, θi est une constante et pour une charnière, θi est une variable. z0 zi
yi
α y0
ai
di zi−1
x0 xi yi−1
xi−1 θ
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 positive ou 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 . z0 zi
yi
α y0
ai
di zi−1
x0 xi yi−1
xi−1 θ
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 )
Badreddine BOUZOUITA
Modélisation et commande des robots
(32)
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 ) 1 0 0 0 Cθi −Sθi 0 0 Sθi Cθi 0 0 0 1 0 0 = 0 0 1 0 0 0 1 di 0 0 0 1 0 0 0 1 1 0 0 0 0 Cαi −Sαi 0 0 Sαi Cαi 0 0 0 0 1 Cθi −Sθi Cαi Sθi Sαi ai Cθi Sθi Cθi Cαi −Cθi Sαi ai Sθi = 0 Sαi Cαi di 0 0 0 1
Badreddine BOUZOUITA
1 0 0 0
Modélisation et commande des robots
0 1 0 0
0 0 1 0
ai 0 0 1
(33)
(34)
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 1 .. . n
dj θ1 .. . θn
d1 .. . dn
aj
αj
a1 .. . an
α1 .. . α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 Hartenberg Cas 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 perpendiculairement zi−1 et zi et de longueur minimale. L’axe xi est défini sur cette ligne et l’origine Oi représente l’intersection de cette ligne avec l’axe zi. z0 zi
yi
α y0
ai
di zi−1
x0 xi yi−1
xi−1 θ
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 Hartenberg Cas où zi−1 est parallèle à zi
Dans ce cas, il y a infinité de normales communes entre zi−1 et zi . Par suite, nous sommes 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 Hartenberg Cas où zi−1 croise zi
Si zi−1 croise zi , xi est choisi normal au plan formé par zi−1 et zi . La direction positive de xi est arbitraire. Le choix le plus naturel pour l’origine Oi est dans ce cas le point d’intersection de zi−1 et zi 1. 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 Hartenberg Exemple : 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 Hartenberg Exemple : Robot cylindrique RPP
j
ai
αi
di
θi
1
0
0
d1
θ1∗
2
0
-90
d2∗
0
0
d3∗
0
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 Hartenberg Exemple : manipulateur plan R k R k R
1
Retrouver les paramètres de DH pour ce manipulateur.
2
Calculer la matrice de transformation homogène correspondante. C c
θ23
b y0
θ12 a θ01 x0
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 robot Introduction Exemple 1 : Manipulateur RP Exemple 2 : Manipulateur RR Méthode de Paul Mé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 amener l’outil dans une position déterminée, avec une orientation imposée, ceci est défini par la matrice de transformation homogène M0,T . On connaît d’autre part la position de l’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 : −1 M0,w = M0,T Mw,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ènent l’organe terminal dans une situation désirée, spécifiée par ses coordonnées opérationnelles. Lorsqu’elle existe, la forme explicite qui donne toutes les solutions possibles au problème inverse (il y a rarement unicité de la solution) constitue ce que l’on appelle le modèle géométrique inverse MGI. Il n’existe pas une méthode analytique générale pour trouver le MGI, mais un certain nombre de méthodes, plus ou moins adaptées à des classes de cinématiques particulières, notamment la méthode de Paul qui traite séparément chaque cas particulier et qui convient pour la plupart des robots industriels Lorsque le modèle géométrique inverse n’existe pas, c’est-à-dire qu’il n’existe pas une forme explicite, on peut calculer une solution particulière du problème inverse par des procédures numériques, qui est une solution locale au sens où elle dépend des conditions initiales. Notons que de telles méthodes sont pénalisantes du point de vue du temps 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 de l’organe d’extrémité peut être obtenue pour différentes valeurs des variables d’articulations. Parmi les différentes solutions possibles, il est alors raisonnable d’adopter celle qui 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 ) Badreddine BOUZOUITA
Modélisation et commande des robots
(35)
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 ) (36) y = q2 sin(q1 ) Donc : y y ⇒ q1 = arctan x x p x2 + y2 = q22 ⇒ q2 = x2 + y2
tan(q1 ) =
Badreddine BOUZOUITA
(37) (38)
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 )
Badreddine BOUZOUITA
Modélisation et commande des robots
(39)
79/131
Modèle géométrique inverse d’un robot
Exemple 2 : Manipulateur RR
Modèle géométrique inverse d’un robot Exemple 2 : Manipulateur RR
On a : x2 + y2 = l12 + l22 + 2l1 l2 cos(q2 )
(40)
Soit : cos(q2 ) =
x2 + y2 − (l12 + l22 ) 2l1 l2
Badreddine BOUZOUITA
(41)
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 − (l12 + l22 ) 2l1 l2
(42)
sous réserve :
−1 ≤
x2 + y2 − (l12 + l22 ) ≤1 2l1 l2
(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., coude haut)
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 correspondant au MGD, on obtient : (l1 + l2 cos(q2 )) cos(q1 ) − l2 sin(q1 ) sin(q2 ) = x (44) l2 sin(q2 ) cos(q1 ) + (l1 + l2 cos(q2 )) sin(q1 ) = y ou encore sous forme matricielle : x l1 + l2 cos(q2 ) −l2 sin(q2 ) cos(q1 ) = y l2 sin(q2 ) l1 + l2 cos(q2 ) sin(q1 )
(45)
Donc :
cos(q1 ) sin(q1 )
=
1 x2 + y2
l1 + l2 cos(q2 ) −l2 sin(q2 )
l2 sin(q2 ) l1 + l2 cos(q2 )
x y
(46)
On obtient alors : 1 (x(l1 + l2 cos(q2 )) + y(l2 sin(q2 ))) x2 + y2 1 sin(q1 ) = 2 (y(l1 + l2 cos(q2 )) − x(l2 sin(q2 ))) x + y2
cos(q1 ) =
Badreddine BOUZOUITA
Modélisation et commande des robots
(47) (48)
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 :
! x2 + y2 − l12 + l22 q2 = ± arccos 2l1 l2 y (l + l cos (q 1 2 2 )) − xl2 sin (q2 ) q1 = arctan 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 dite coude 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 Paul Présentation de la méthode
On suppose que chaque matrice de transformation homogène représente une transformation individuelle soit de rotation soit de translation. Donc, la matrice de passage homogène a pour expression : T0,n = T0,1 (q1 ) × T1,2 (q2 ) × · · · × Tn−1,n (qn )
(50)
on note :
sx sy U0 = T0,1 (q1 ) × T1,2 (q2 ) × · · · × Tn−1,n (qn ) = sz 0
nx ny nz 0
ax ay az 0
Px Py Pz 1
(51)
Cette matrice U0 est la donnée du problème. Elle représente la situation de l’organe terminal 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 Paul Présentation de la méthode
Paul (en 81) a proposé une méthode qui consiste à prémultiplier successivement les 2 membres 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ès l’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 uniquement 2è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 simples qui constitue l’expression de droite avec les termes équivalents dans celle de gauche (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 ), on pré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 de multiplier à 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 Paul Exemple : manipulateur R ` R
Soit le manipulateur R ` R suivant : l2
θ2 θ1 l1 z0
y0 x0 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 Paul Exemple : manipulateur R ` R
y2 Soit le manipulateur R ` R suivant : y1
x2
l2
x1
z2
θ2 z1 θ1 l1 z0
y0 x0 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 Paul Exemple : manipulateur R ` R
y2 Soit le manipulateur R ` R suivant : j θj dj aj αj 1 θ1 l1 0 90◦ 2 θ2 0 l2 0
y1
x2
l2
x1
z2
θ2 z1 θ1 l1 z0
y0 x0 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 Paul Exemple : manipulateur R ` R
y2 Soit le manipulateur R ` R suivant : j θj dj aj αj 1 θ1 l1 0 90◦ 2 θ2 0 l2 0
T0,1
T1,2
Cθ1 Sθ1 = 0 0 Cθ2 Sθ2 = 0 0
0 0 1 0
Sθ1 −Cθ1 0 0
−Sθ2 Cθ2 0 0
0 0 1 0
y1
x1
0 0 l1 1
(55)
x2
l2 z2
θ2 z1 θ1 l1
l2 Cθ2 l2 sθ2 0 1 (56)
z0
y0 x0
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 Paul Exemple : manipulateur R ` R
y2 Soit le manipulateur R ` R suivant : La transformé inverse est donnée par :
y1
x2
l2
x1
z2
θ2 z1 θ1 l1 z0
y0 x0 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 Paul Exemple : manipulateur R ` R
y2 Soit le manipulateur R ` R suivant : La transformé inverse est donnée par :
T1,0
T2,1
Cθ1 Sθ1 0 0 = Sθ1 −Cθ1 0 0 Cθ2 Sθ2 −Sθ2 Cθ2 = 0 0 0 0
0 1 0 0 0 0 1 0
0 −l1 (57) 0 1 −l2 0 (58) 0 1
y1
x2
l2
x1
z2
θ2 z1 θ1 l1 z0
y0 x0 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 Paul Exemple : manipulateur R ` R
on a :
sx sy U0 = T0,1 (q1 ) × T1,2 (q2 ) = sz 0
nx ny nz 0
ax ay az 0
Px Py Pz 1
(59)
nx ny nz 0
ax ay az 0
Px Py Pz 1
(60)
1re étape :
sx sy T1,0 (q1 )U0 = T1,2 (q2 ) = T1,0 sz 0
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 Paul Exemple : manipulateur R ` R
donc :
Cθ1 sx + Sθ1 sy sz Sθ1 sx − Cθ1 sy 0 Cθ2 −Sθ2 Sθ2 Cθ2 0 0 0 0
0 0 1 0
Cθ1 nx + Sθ1 ny nz Sθ1 nx − Cθ1 ny 0 l2 Cθ2 l2 Sθ2 0 1
Badreddine BOUZOUITA
Cθ1 ax + Sθ1 ay az Sθ1 ax − Cθ1 ay 0
Cθ1 Px + Sθ1 Py Pz − l1 = Sθ1 Px − Cθ1 Py 1
Modélisation et commande des robots
90/131
Modèle géométrique inverse d’un robot
Méthode de Paul
Méthode de Paul Exemple : manipulateur R ` R
donc : Cθ1 sx + Sθ1 sy sz Sθ1 sx − Cθ1 sy
Cθ1 nx + Sθ1 ny
0 Cθ2 Sθ2 0 0
−Sθ2
0
Cθ2 0 0
0 1 0
nz Sθ1 nx − Cθ1 ny 0 l2 Cθ2 l2 Sθ2 0 1 arctan (θ2 ) =
Badreddine BOUZOUITA
Cθ1 ax + Sθ1 ay az Sθ1 ax − Cθ1 ay 0
Cθ1 Px + Sθ1 Py P z − l1 Sθ1 Px − Cθ1 Py 1
=
Pz − l1 Px Cθ1 + Py Sθ1
Modélisation et commande des robots
90/131
Modèle géométrique inverse d’un robot
Méthode de Paul
Méthode de Paul Exemple : manipulateur R ` R
donc : Cθ1 sx + Sθ1 sy sz Sθ s − Cθ s 1 x 1 y 0 Cθ2 −Sθ2 Sθ2 Cθ2 0 0 0 0
0 0 1 0
Cθ1 nx + Sθ1 ny
Cθ1 ax + Sθ1 ay
nz
az
Sθ1 nx − Cθ1 ny 0 l2 Cθ2 l2 Sθ2 0 1
Sθ1 ax − Cθ1 ay 0
arctan (θ2 ) =
P z − l1 Sθ1 Px − Cθ1 Py
=
1
Pz − l1 Px Cθ1 + Py Sθ1
arctan (θ1 ) =
Badreddine BOUZOUITA
Cθ1 Px + Sθ1 Py
Py Px
Modélisation et commande des robots
90/131
Modèle géométrique inverse d’un robot
Méthode de Paul
Méthode de Paul Exemple : manipulateur R ` R
donc : Cθ1 sx + Sθ1 sy sz Sθ s − Cθ s 1 x 1 y 0 Cθ2 −Sθ2 Sθ2 Cθ2 0 0 0 0
0 0 1 0
Cθ1 nx + Sθ1 ny
Cθ1 ax + Sθ1 ay
nz
az
Sθ1 nx − Cθ1 ny 0 l2 Cθ2 l2 Sθ2 0 1
Sθ1 ax − Cθ1 ay 0
arctan (θ2 ) =
P z − l1 Sθ1 Px − Cθ1 Py
=
1
Pz − l1 Px Cθ1 + Py Sθ1
arctan (θ1 ) = P z = l1 +
Cθ1 Px + Sθ1 Py
Py Px
q l22 − P2x + 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 Paul Nombre 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 dehors de la zone accessible du robot. La zone accessible est limitée par le nombre de ddl, 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 se traduit par le fait que le robot ne peut déplacer son organe terminal dans certaines directions 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 pour dé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 Paul Nombre de solutions au problème inverse
solution en ensemble fini : C’est le cas lorsque toutes les solutions peuvent être calculé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 Paul Solutions aux types d’équations rencontrés
Lorsque nous utilisons la méthode de Paul, nous sommes confrontés de manière itérative à la résolution de système d’équations de différents types. L’utilisation d’un grand nombre de robots industriels a permis de constater que les principaux types rencontrés sont 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 =
Y avec X 6= 0. X
Equations de type 2 : X.Sθi + Y.Cθi = Z X 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 : On peut 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 Badreddine BOUZOUITA
Modélisation et commande des robots
(62)
93/131
Modèle géométrique inverse d’un robot
Méthode de Paul
Méthode de Paul Solutions aux types d’équations rencontrés
en sinus : Y 2 .C2 θi = Z 2 + X 2 .S2 θi − 2ZX.Sθi Y 2 . 1 − S2 θi = Z 2 + X 2 .S2 θi − 2ZX.Sθi X 2 + Y 2 .S2 θi − 2ZX.Sθi + Z 2 + Y 2 = 0
d’où : Sθi =
√ Z.X + .Y X 2 + Y 2 − Z 2 avec = ±1 X2 + Y 2
(63)
(64)
en cosinus : X 2 .S2 θi = Z 2 + Y 2 .C2 θi − 2ZY.Cθi X 2 . 1 − C2 θi = Z 2 + Y 2 .C2 θi − 2ZY.Cθi X 2 + Y 2 .C2 θi − 2ZY.Cθi + Z 2 − X 2 = 0
d’où : Cθi =
√ Z.Y + .X X 2 + Y 2 − Z 2 avec = ±1 X2 + Y 2 Badreddine BOUZOUITA
Modélisation et commande des robots
(65)
(66)
94/131
Modèle géométrique inverse d’un robot
Méthode de Paul
Méthode de Paul Solutions aux types d’équations rencontrés
Le signe − devant vient du fait que nous devrons vérifier à chaque instant que C 2 θi + S 2 θi = 1 La réponse est la suivante : √ Z.Y + .X X 2 + Y 2 − Z 2 X2 + Y 2 √ Z.X − .Y X 2 + Y 2 − Z 2 Sθi = X2 + Y 2
Cθi =
(67)
si X 2 + Y 2 − Z 2 ≥ 0 alors : θi = arctan
Badreddine BOUZOUITA
Sθi Cθi
Modélisation et commande des robots
(68)
95/131
Modèle géométrique inverse d’un robot
Méthode de Paul
Méthode de Paul Solutions aux types d’équations rencontrés
Equations de type 3 (forme 1) : X1 .Sθi = Y1 X2 .Sθi = Y2 X1 et X2 étant non nuls, la réponse est la suivante : Y1 X2 θi = arctan Y2 X1
(69)
(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 : Y2 .Z1 − Y1 .Z2 X1 .Y2 − X2 .Y1 X1 .Z2 − X2 .Z1 Cθi = X1 .Y2 − X2 .Y1 Sθi =
d’où :
Badreddine BOUZOUITA
Modélisation et commande des robots
(72)
96/131
Modèle géométrique inverse d’un robot
Méthode de Paul
Méthode de Paul Solutions aux types d’équations rencontrés
Equations de type 4 : X1 .rj .Sθi = Y1 X2 .rj .Sθi = Y2 X1 et X2 étant non nuls, on réécrit le système : Y12 2 2 Y rj .Sθi = 1 rj .Sθi = 2 X1 X1 ⇒ Y Y22 2 2 rj .Cθi = 2 r .Cθ = j i X2 X22
(74)
(75)
d’où : s
Y12 Y2 + 22 2 X1 X2 Y1 X2 θi = arctan Y2 X1 rj = ±
Badreddine BOUZOUITA
Modélisation et commande des robots
(76)
97/131
Modèle géométrique inverse d’un robot
Méthode de Paul
Méthode de Paul Solutions aux types d’équations rencontrés
Equations de type 5 : X1 .Sθi = Y1 + Z1 .rj X2 .Cθi = Y2 + Z1 .rj X1 et X2 étant non nuls, on réécrit le système : Z Y Sθi = 1 + 1 .rj Sθi = V1 + W1 .rj X1 X1 soit Z2 Y2 Cθ i = V2 + W2 .rj Cθi = + .rj X2 X2
(77)
(78)
la réponse est la suivante : rj =
− (V1 .W1 + V2 .W2 ) ±
θi = arctan
V1 + W1 .rj V2 + W2 .rj
p W12 + W22 − (V1 .W2 − V2 .W12 ) W12 + w22
Badreddine BOUZOUITA
Modélisation et commande des robots
(79)
98/131
Modèle géométrique inverse d’un robot
Méthode de Paul
Méthode de Paul Solutions 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 donne une é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érique Méthode de Newton
La méthode du Newton est une méthode numérique itérative permettant de résoudre le système d’équations suivant : f1 (θ1 , θ2 , θ3 , θ4 , θ5 , θ6 ,) = 0 f2 (θ1 , θ2 , θ3 , θ4 , θ5 , θ6 ,) = 0 f3 (θ1 , θ2 , θ3 , θ4 , θ5 , θ6 ,) = 0 f4 (θ1 , θ2 , θ3 , θ4 , θ5 , θ6 ,) = 0 f5 (θ1 , θ2 , θ3 , θ4 , θ5 , θ6 ,) = 0 f6 (θ1 , θ2 , θ3 , θ4 , θ5 , θ6 ,) = 0
(82)
f (θ) = 0
(83)
Sous forme matricielle :
Badreddine BOUZOUITA
Modélisation et commande des robots
100/13
Modèle géométrique inverse d’un robot
Méthode de Newton
Méthode numérique Mé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 : ∂f1 (θ) ∂θ1 ∂f2 (θ) ∂fi (θ) ∂θ1 = J (θ) = .. ∂θj . ∂f (θ) n
∂θ1
Badreddine BOUZOUITA
∂f1 (θ) ∂θ2 ∂f2 (θ) ∂θ2
··· ··· ..
∂fn (θ) ∂θ2
.
∂f1 (θ) ∂θn ∂f2 (θ) ∂θn .. .
∂fn (θ) ∂θn
Modélisation et commande des robots
(85)
101/13
Modèle géométrique inverse d’un robot
Méthode de Newton
Méthode numérique Exemple
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 une orientation φ = 2π/3(φ = θ1 + θ2 + θ3 ) . On suppose que l1 = 2 et l2 = l3 = 1. Badreddine BOUZOUITA
Modélisation et commande des robots
102/13
Modèle géométrique inverse d’un robot
Méthode de Newton
Méthode numérique Exemple
On a donc : f1 = 2 cos(θ1 ) + cos(θ1 + θ2 ) + cos(θ1 + θ2 + θ3 ) − 0.5 f2 = 2 sin(θ1 ) + sin(θ1 + θ2 ) + sin(θ1 + θ2 + θ3 ) − 0.3 2π f3 = θ1 + θ2 + θ3 − 3
(86)
Ce qui donne la matrice Jacobienne suivante : J (θ1 , θ2 , θ3 ) = −2 sin θ1 − sin(θ1 + θ2 ) − sin(θ1 + θ2 + θ3 ) 2 cos θ1 + cos(θ1 + θ2 ) + cos(θ1 + θ2 + θ3 ) 1
− sin(θ1 + θ2 ) − sin(θ1 + θ2 + θ3 ) cos(θ1 + θ2 ) + cos(θ1 + θ2 + θ3 ) 1 (87)
− sin(θ1 + θ2 + θ3 ) cos(θ1 + θ2 + θ3 ) 1
Badreddine BOUZOUITA
Modélisation et commande des robots
103/13
Modèle géométrique inverse d’un robot
Méthode de Newton
Méthode numérique Exemple
En choisissant comme point de départ la position initiale (θ1 = θ2 = π/6 et θ3 = π/3) : −3.5981 −1.8660 −0.8660 −0.5000 −0.5000 J θ(0) = 0.5000 (88) 1 1 1 et
0.0000 (0) F θ = 0.5981 0.0000
(89)
ce qui nous donne comme première itération : θ et
(1)
=θ
(0)
−J
−1
θ
(0)
0.4491 (0) f θ = 2.1576 −0.5123
−0.059 (1) F θ = −0.756 0.0000 Badreddine BOUZOUITA
Modélisation et commande des robots
(90)
(91)
104/13
Modèle géométrique inverse d’un robot
Méthode de Newton
Méthode numérique Exemple
Itération 2 :
θ(2)
0.6097 0.0367 = 1.6083 et F θ(2) = −0.1910 −0.1236 0.0000
Itération 3 :
θ
(3)
0.6789 0.0608 (3) = 1.4206 et F θ = −0.0096 0.0000 0.0049
Itération 4 : 0.6984 0.0001 = 1.4329 et F θ(4) = −0.0010 −0.0369 0.0000
θ(4)
Badreddine BOUZOUITA
Modélisation et commande des robots
105/13
Modèle géométrique inverse d’un robot
Méthode de Newton
Méthode numérique Cas où la matrice Jacobienne n’est pas inversible
Si la matrice Jacobienne J est de dimension m × n avec m 6= n. Alors, les racines de l’équation f (θ) peuvent être obtenues d’une manière itérative en utilisant le pseudo inverse de la matrice Jacobinne : θ(i+1) = θ(i) − J + θ(i) f θ(i) (92) avec J + est le pseudo inverse de J donné par : −1 si rang(J) = m 6 n, alors J T J existe. JT J h
JT J
si rang(J) = n 6 m, alors JJ T
−1
⇒
h
⇒ J JT
−1
−1
JT J = I
i
JT J = J+J = I
existe. −1 JJ T JJ T =I i −1 JJ T = JJ + = I
Badreddine BOUZOUITA
Modélisation et commande des robots
106/13
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 trajectoire Introduction Types de trajectoires Génération de mouvement dans l’espace articulaire Génération de mouvement dans l’espace opérationnel
Badreddine BOUZOUITA
Modélisation et commande des robots
107/13
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éplacer d’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 commande en position d’un robot est aussi appelée génération de mouvement. De manière classique, 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 lequel est décrite la trajectoire à suivre.
Badreddine BOUZOUITA
Modélisation et commande des robots
108/13
Planification et génération de trajectoire
Introduction
Introduction Commande en position dans l’espace articulaire q
La génération d’un mouvement directement dans l’espace articulaire présente des avantages : 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, car on les fixe aux limites physiques des actionneurs.
Badreddine BOUZOUITA
Modélisation et commande des robots
109/13
Planification et génération de trajectoire
Introduction
Introduction Commande 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 trajectoire dans l’espace opérationnel sera préférée. Par contre, elle comporte un certain nombre d’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 position singulière, elle peut être mise en défaut lorsque la trajectoire calculée fait passer une articulation hors de ces limites de variation [qmin ; qmax ],
Badreddine BOUZOUITA
Modélisation et commande des robots
110/13
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é de liberté du robot. La trajectoire Multi-dimensionelle est associée soit à un ensemble de degrés de liberté du robot (planification articulaire) soit à l’organe effecteur (planification cartésienne). Par opposition à la planification mono-dimensionnelle, la planification multi-dimensionnelle peut nécessiter de synchroniser temporellement l’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 points intermédiaires ou approximent un ensemble de points comme dans le cas des chemins
Badreddine BOUZOUITA
Modélisation et commande des robots
111/13
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 coordonnées articulaires finales. Le mouvement interpolé entre qi et qf en fonction du temps t est décrit par l’équation suivante : q(t) = qi + r(t) qf − qi pour 0 ≤ t ≤ tf (93) ˙ = r˙ (t) qf − qi q(t) (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
Badreddine BOUZOUITA
Modélisation et commande des robots
(95)
112/13
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/13
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 : t q(t) = qi + f qf − qi t
(96)
Cette loi de mouvement impose une vitesse constante le long de la trajectoire. On en déduit la fonction d’interpolation : r(t) =
t tf
(97)
La loi est continue en position, mais discontinue en vitesse et en accélération. q(t)
2 1
˙ q(t) 1
Badreddine BOUZOUITA
2
t(s) q(t) 3¨
Modélisation et commande des robots
114/13
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 deux contraintes supplémentaires par rapport à l’interpolation linéaire. Afin de satisfaire ces 4 contraintes : i ˙ q˙ = q(0) = 0 (a) q(0) = qi (c) (98) f ˙ f ) = 0 (b) q˙ = q(t q(tf ) = qf (d) Le degré minimal du polynôme est de 3. La forme générale est donnée par l’équation suivante : q(t) = a0 + a1 t + a2 t2 + a3 t3 (99) On en déduit les relations donnant la vitesse et l’accélération : ˙ = a1 + 2a2 t + 3a3 t2 q(t) ¨ q(t) = 2a2 + 6a3 t
(100)
En utilisant les hypothèses (a) et (c), on en déduit les coefficients : a0 = qi et a1 = 0 En utilisant les hypothèses (b) et (d), on en déduit les coefficients : 3 2 a2 = 2 qf − qi et a3 = − 3 qf − qi tf tf Badreddine BOUZOUITA
Modélisation et commande des robots
(101)
(102)
115/13
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 : t 2 t 3 r(t) = 3 f −2 f t t
(103)
La vitesse est maximale en t = tf /2 et nulle en t = 0 et en t = tf .La valeur maximale est : q˙ max = 3|qf − qi|/(2tf )
Badreddine BOUZOUITA
Modélisation et commande des robots
116/13
Planification et génération de trajectoire
Génération de mouvement dans l’espace articulaire
Interpolation de degré 3 : trajectoire cubique 2`eme méthode : On a :
q(t) = a0 + a1 t + a2 t2 + a3 t3 ˙ = a1 + 2a2 t + 3a3 t2 q(t)
En combinant ces 2 relations avec les 4 contraintes, on obtient : q(0) = a0 + a1 t0 + a2 t02 + a3 t03 ˙ q(0) = a1 + 2a2 t0 + 3a3 t02 q(tf ) = a0 + a1 tf + a2 tf2 + a3 tf3 ˙ f ) = a1 + 2a2 tf + 3a3 tf2 q(t ou encore sous forme matricielle : 1 t0 t02 0 1 2t0 1 tf tf2 0 1 2tf
t03 a0 2 3t0 a1 tf3 a2 a3 3tf2
q(0) q(0) = ˙ q(tf ) ˙ f) q(t
(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/13
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 rajoute deux contraintes supplémentaires par rapport à l’interpolation de degré 3. Afin de satisfaire ces 6 contraintes : i i ¨ ˙ q =¨ q(0) = 0 (a) q˙ = q(0) = 0 (c) q(0) = qi (e) (105) f f ¨ ˙ f ) = 0 (d) q =¨ q(tf ) = 0 (b) q˙ = q(t q(tf ) = qf (f ) le degré minimal du polynôme est de 5. La forme générale est donnée par l’équation suivante : q(t) = a0 + a1 t + a2 t2 + a3 t3 + a4 t4 + a5 t5 (106) De la même manière, on montre que la fonction d’interpolation est la suivante : t 4 t 5 t 3 − 15 f +6 f r(t) = 10 f t t t
Badreddine BOUZOUITA
Modélisation et commande des robots
(107)
118/13
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/13
Planification et génération de trajectoire
Génération de mouvement dans l’espace articulaire
Interpolation de degré 5 2`eme méthode : On a : q(t) = a0 + a1 t + a2 t2 + a3 t3 + a4 t4 + a5 t5 ˙ = a1 + 2a2 t + 3a3 t2 + 4a4 t3 + 5a5 t4 q(t) ¨ q(t) = 2a2 + 6a3 t + 12a4 t2 + 20a5 t3 En combinant ces 2 relations avec les 6 contraintes, on obtient : q(0) = a0 + a1 t0 + a2 t02 + a3 t03 + a4 t04 + a5 t05 ˙ q(0) = a1 + 2a2 t0 + 3a3 t02 + 4a4 t03 + 5a5 t04 ¨ q(0) = 2a2 + 6a3 t0 + 12a4 t02 + 20a5 t03 q(tf ) = a0 + a1 tf + a2 tf2 + a3 tf3 + a4 tf4 + a5 tf5 ˙ f ) = a1 + 2a2 tf + 3a3 tf2 + 4a4 tf3 + 5a5 tf4 q(t ¨ q(tf ) = 2a2 + 6a3 tf + 12a4 tf2 + 20a5 tf3 ou encore sous forme matricielle : 1 t0 t02 t03 0 1 2t 3t2 0 0 2 6t0 0 0 1 tf tf2 tf3 0 1 2tf 3tf2 0 0 2 6tf
t04 4t03 12t02 tf4 4tf3 12tf2
Badreddine BOUZOUITA
t05 5t04 20t03 tf5 5tf4 20tf3
a0 a1 a2 a3 a4 a5
=
q(0) ˙ q(0) ¨ q(0) q(tf ) ˙ f) q(t ¨ q(tf )
Modélisation et commande des robots
(108)
(109)
120/13
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 constante jusqu’à tf /2, puis une phase de décélération constante. On impose les 4 contraintes suivantes : i ˙ q(0) = qi (c) q˙ = q(0) = 0 (a) (110) f ˙ f ) = 0 (b) q˙ = q(t q(tf ) = qf (d) Le mouvement est donc continu en position et en vitesse. Il est discontinu en accélération. La position est donnée par l’ensemble des relations suivantes : 2 t tf i f i q(t) = q + 2 q − q pour 0 ≤ t ≤ 2 " tf # 2 (111) t t tf i f i + −1 + 4 q(t) = q − 2 q − q pour ≤ t ≤ t f tf tf 2
Badreddine BOUZOUITA
Modélisation et commande des robots
121/13
Planification et génération de trajectoire
Génération de mouvement dans l’espace articulaire
Loi de Bang Bang
˙ et ¨ La figure ci-dessous représente les évolutions de q(t), q(t) q(t) obtenues pour : - qi = 1 et qf = 2, - tf = 3 q(t) 2 1 ˙ q(t) t(s) 1
Badreddine BOUZOUITA
2
3 ¨ q(t)
Modélisation et commande des robots
122/13
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 directement si les vitesses et les accélérations résultantes peuvent être supportées par le manipulateur. Dans ce cas, un profil trapézoïdal de vitesse est adopté, qui impose une : 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 segments paraboliques aux positions initiales et finales.
Badreddine BOUZOUITA
Modélisation et commande des robots
123/13
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) qc t
(112)
1 2 q(t) = qi + ¨ qc t 2
(113)
Badreddine BOUZOUITA
Modélisation et commande des robots
124/13
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˙ c = q(t ˙ c) = ¨ q(t) qc tc et q(t) = C + _ qc t or :
et par suite :
1 2 1 qc tc = C + q˙ c tc ⇒ qi + q˙ c tc = C + q˙ c tc q(tc ) = qi + ¨ 2 2 1 ⇒ C = qi − q˙ c tc 2 1 i q(t) = q + q˙ c t − tc 2
Badreddine BOUZOUITA
Modélisation et commande des robots
(114)
125/13
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) 1 q(t) = qf − ¨ qc (tf − t)2 2
Badreddine BOUZOUITA
Modélisation et commande des robots
(115) (116)
126/13
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 : 1 2 qc t sgn qf − qi 0 ≤ t ≤ tc qi + ¨ 2 1 i f i q(t) = q + q˙ c t − tc sgn q − q pour tc ≤ t ≤ tf − tc 2 qf − 1 ¨ qc (tf − t)2 sgn qf − qi tf − tc ≤ t ≤ tf 2 avec : q˙ c tc = ¨ qc
Badreddine BOUZOUITA
Modélisation et commande des robots
(117)
127/13
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éplacement 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 est né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éthode d’interpolation retenue. Il consiste en fait à saturer la vitesse et/ou l’accélération. Pour le calcul de chacun des tfj , on se sert des résultats suivants : Interpolation linéaire Interpolation de degré 3 Interpolation de degré 5 Loi Bang-Bang
|D |
tfj = kvjj q h i 3|D | 6|Dj | tfj = max 2kvjj , kaj r 15|D | 10|D | tfj = max 8kvjj , √3k j aj q i h 2|D | |D | tfj = max kvjj , 2 kajj
avec Dj = qfj − qij , kvj le vitesse max et kaj l’accélération max. Badreddine BOUZOUITA
Modélisation et commande des robots
128/13
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/13
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 peut contrôler la trajectoire de l’organe d’extrémité entre les points où la trajectoire est imposé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 trajectoire impose une reconfiguration du mécanisme (changement d’aspect en cours de trajectoire). Badreddine BOUZOUITA
Modélisation et commande des robots
130/13
Planification et génération de trajectoire
Génération de mouvement dans l’espace opérationnel
Mouvement rectiligne Point à Point
On cherche à appliquer un mouvement rectiligne au point outil (OE origine du repère RE lié à l’outil) i Soit M0,e la matrice de transformation homogène décrivant la situation initiale de l’outil dans le repère R0 . f la matrice de transformation homogène décrivant la situation finale de l’outil Soit M0,e dans le repère R0 . On définit : i A Pi i M0,e = (118) 0 1 f A Pf f M0,e = (119) 0 1 On décompose le mouvement en un mouvement de : translation en ligne droite entre les origines OiE et OfE , rotation autour d’un axe u de l’organe terminal pour aligner Ai avec Af ,
Badreddine BOUZOUITA
Modélisation et commande des robots
131/13