Cours Robotique PDF [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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φ yθ

φ

x

yψ y

θ xψ

Badreddine BOUZOUITA





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θ yθ



φ

ψ y









y

θ x





xφ 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 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 yγ

y

β

z

zγ zβ

z zα

α y



yα yβ

y

y

γ 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