Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Université de Bourgogne Franche-Comté – UFC – ENSMM Robotique industrielle Guillaume Laurent et Nicolas Chaillet 2017 Table des matières 1 Introduction 1.1 Définitions . . . . . . . . . . . . . . . . . . . . 1.2 Composition d’un robot industriel . . . . . . 1.3 Configurations usuelles des robots industriels 1.4 Les marchés de la robotique . . . . . . . . . . 1.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Repérage d’un solide dans l’espace 2.1 Représentation d’un point . . . . . . . . . . . . . . 2.2 Position . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Orientation déterminée par une matrice . . . . . . 2.4 Orientation déterminée par trois angles . . . . . . 2.5 Orientation déterminée par un vecteur et un angle 2.6 Orientation déterminée par les quaternions . . . . 2.7 Transformation homogène . . . . . . . . . . . . . . 2.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . 3 Modèles géométriques direct et inverse 3.1 Modélisation géométrique directe d’un robot . 3.2 Domaine atteignable . . . . . . . . . . . . . . 3.3 Modèle géométrique inverse d’un robot . . . . 3.4 Conclusion . . . . . . . . . . . . . . . . . . . 4 Modèles cinématiques direct et inverse 4.1 Définitions . . . . . . . . . . . . . . . . . 4.2 Jacobienne analytique . . . . . . . . . . 4.3 Jacobienne cinématique . . . . . . . . . 4.4 Passage d’une jacobienne à l’autre . . . 4.5 Vitesses atteignables et manipulabilité . 4.6 Aspects et configurations singulières . . 4.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Efforts et modélisation dynamique 5.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Modèle dynamique inverse . . . . . . . . . . . . . . . 5.3 Efforts appliqués par le robot sur son environnement 5.4 Efforts dus à la pesanteur et équilibrage statique . . 5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 8 12 15 . . . . . . . . 17 17 17 18 21 23 24 24 26 . . . . 27 27 34 35 39 . . . . . . . 41 41 42 42 46 46 47 51 . . . . . 53 53 53 56 56 58 4 TABLE DES MATIÈRES 6 Génération de mouvement 6.1 Programmation d’un robot . . 6.2 Génération de mouvement dans 6.3 Génération de mouvement dans 6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . l’espace articulaire . l’espace opérationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 59 60 65 69 7 Commande des axes (dans l’espace articulaire) 7.1 Chaı̂ne de commande d’un robot industriel . . . 7.2 Commande individuelle des axes . . . . . . . . . 7.3 Commande à couples calculés . . . . . . . . . . . 7.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 71 72 73 74 8 Choix d’un robot 8.1 Choix du robot . . . . . . . . . . 8.2 Choix du préhenseur ou de l’outil 8.3 Placement du robot . . . . . . . 8.4 Choix des trajectoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 75 78 78 79 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Ce 9.1 9.2 9.3 9.4 9.5 9.6 qui n’a pas été vu ... Planification de trajectoires . . . . . . . . . . . . . . . . . . . . . Étude des robots parallèles . . . . . . . . . . . . . . . . . . . . . Identification des paramètres géométriques des robots . . . . . . Identification des paramètres dynamiques des robots . . . . . . . Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commande référencée capteur : commande en effort - commande servissements visuels . . . . . . . . . . . . . . . . . . . . . . . . . 9.7 Parcourabilité - Dextérité - Manipulabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . hybride . . . . . . . . . . . . . . . . . . . . . . . . . - as. . . . . . 81 81 81 81 81 81 81 81 Bibliographie 83 A Sites web, blogs, réseaux d’informations et salons industriels 85 B Logiciels et bibliothèques libres B.1 Logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.2 Bibliothèques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 87 87 Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet Chapitre 1 Introduction Un système robotique est une machine mécatronique programmable disposant de moyens de perception, d’interprétation et d’action qui lui permettent d’agir sur un environnement physique. Ce cours concerne plus particulièrement la robotique manufacturière, c’est-à-dire les robots manipulateurs destinés à des tâches de soudure, de peinture, de manutention, d’emballageconditionnement, etc. L’objectif est de fournir un ensemble minimal de connaissances pour comprendre le fonctionnement d’un robot industriel, son comportement et son implantation. 1.1 1.1.1 Définitions Définition d’un robot Étymologiquement, le mot (( robot )) tire sa racine du bulgare (( robu )), qui signifie (( serviteur )) et qui a donné naissance, entre autres, au russe (( rabota )) qui signifie (( travail )) ou (( corvée )) et au tchèque (( robota )) qui se traduit par (( travail forcé )). C’est d’ailleurs l’écrivain tchèque Karel Capek qui a popularisé le terme dans les années 1920, à travers une pièce de théâtre intitulée (( Rossum’s Universal Robots )) qui a connu un certain succès, en particulier en France. Elle met en scène des êtres artificiels à l’apparence humaine, qui finissent par se révolter et anéantir l’humanité. Isaac Asimov, dans les années 1940, pensait lui au contraire, que les robots seraient bénéfiques et que les scientifiques et les ingénieurs programmeraient la (( bienveillance )) dans tous les robots. Asimov nomma l’industrie des robots la robotique et légua aux roboticiens une (( éthique )) de la robotique au travers de ses célèbres lois de la robotique. De nos jours, on peut définir un robot comme une machine qui bouge commandée par un ordinateur, pouvant se substituer à l’homme pour effectuer certaines opérations, et capable d’en modifier de elle-même le cycle en appréhendant son environnement. Cependant, il n’est pas toujours aisé d’établir une frontière claire entre robots et certains systèmes automatisés tant les applications sont maintenant diversifiées. 1.1.2 Robotique industrielle Le concept de robot industriel n’a vraiment pris forme que lorsque les ingénieurs se sont rendus compte de la difficulté qu’il y avait à donner à une machine le comportement et l’apparence d’un être humain. Les efforts ont donc été concentrés sur la conception de bras mécaniques en vue d’exécuter des tâches industrielles. Définition 1 (Robot industriel pour manipulation). Système de manipulation programmable de trois axes ou plus, à usage multiple, contrôlé automatiquement, reprogrammable, qui peut être mobile ou fixe lors de son utilisation automatique (définition ISO 8373). 5 6 CHAPITRE 1. INTRODUCTION !"#$%&"'()(*+',&-.%/)(*01",231',$+4+(,*'21&($*"5, Figure 1.1 – Éléments d’un robot industriel (illustration extraite de [3]). Un robot industriel doit en principe comporter au moins trois axes (ce qui n’est pas forcément le cas dans la classification japonaise). Le terme (( reprogrammable )) signifie que les mouvements programmés ou fonctions auxiliaires peuvent être changés sans entraı̂ner d’altérations physiques. Enfin, un robot industriel peut être adapté pour une utilisation différente avec altérations physiques et est donc (( à usage multiple )). 1.1.3 Robotique de service Si la robotique est restée pendant longtemps relativement confinée à des applications industrielles manufacturières, les avancées technologiques font que depuis quelques années de nombreux autres domaines sont explorés, en vue notamment de développer une robotique de service. Définition 2 (Robot de service). Robot mi ou totalement autonome accomplissant un travail directement utile à un usager ou sur un équipement, à l’exception des tâches de production industrielle. On peut citer ici quelques domaines d’utilisation des robots de service : robotique médicale (chirurgie téléopérée), robotique de manutention, robotique d’exploration et de surveillance (terrestre, sous-marine, aérienne, spatiale), robotique pour la sécurité civile, robotique agricole, robotique minière, robotique militaire (déminage, soldat robotisé, drone), robotique de chantier (ou du bâtiment), robotique de nettoyage et d’entretien, robotique de divertissements (jouets, robots de compagnie), robotique d’aide à la personne (aide aux handicapés, prothèses), etc. 1.2 1.2.1 Composition d’un robot industriel Éléments d’un robot Les différents éléments d’un robot industriel sont (voir figure 1.1) : — base : support sur lequel est située l’origine du premier élément de la structure articulée constituant le bras, Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 7 1.2. COMPOSITION D’UN ROBOT INDUSTRIEL Perception - Décision - Action 6 Figure 1.2 – Boucle perception-décision-action. — porteur (ou bras) : chaı̂ne constituée d’éléments de translation et/ou de rotation animés les uns par rapport aux autres et qui permet de déplacer et d’orienter un organe terminal (ou effecteur), comme par exemple un préhenseur ou un outil (selon les définitions, le porteur inclut ou non le poignet, qui est alors dans ce dernier cas considéré comme faisant partie de l’organe terminal), — poignet : ensemble mécanique de l’extrémité du bras d’un robot, constitué d’articulations et permettant l’orientation de l’organe terminal. — liaison active : liaison motorisée entre deux corps successifs d’un robot. La pratique industrielle fait que l’on parle ici d’axe (parfois d’(( articulation )), voire de (( degré de liberté articulaire ))) pour désigner un tel degré de mobilité. On dira donc communément qu’un robot a n axes. — liaison passive : liaison non motorisée entre deux corps successifs d’un robot, — coordonnée articulaire : variable représentant un degré de mobilité d’un robot, en rotation ou en translation. L’ensemble des coordonnées articulaires correspondant à une certaine posture du robot définit le vecteur des coordonnées articulaires ou généralisées. L’ensemble des vecteurs des coordonnées articulaires est appelé espace de configuration. — coordonnée opérationnelle : variable représentant un degré de liberté (ddl) de l’organe terminal du robot dans l’espace (en position ou en orientation). Il y a donc six coordonnées opérationnelles, l’ensemble représentant le vecteur des coordonnées opérationnelles. Les coordonnées opérationnelles et articulaires sont reliées par la géométrie du robot ; la tâche que le robot doit effectuer se définit dans l’espace opérationnel, qui correspond à l’espace de la tâche. En fonction du nombre d’articulations et de la cinématique du robot, celui-ci n’est pas forcément en mesure de générer les 6 degrés de liberté de l’organe terminal. Notamment, — Un robot à n axes avec n < 6 ne peut pas générer 6 ddl indépendants au niveau de son effecteur. Pour qu’il puisse le faire, un robot doit posséder au minimum 6 axes. — Cette dernière condition est nécessaire mais pas suffisante car on peut trouver des robots redondants possédant plus de 6 axes et générant moins de 6 ddl. D’autre part, l’espace 3D comportant six degrés de liberté, un robot, quel que soit le nombre de ses axes, ne pourra générer au maximum que six degrés de liberté de son organe terminal. 1.2.2 Boucle perception-décision-action Un robot est système bouclé dont le fonctionnement peut être décrit par le schéma très général (( perception-décision-action )) représenté par la figure 1.2. Le robot peut agir sur ses mouvements et son environnement à l’aide de ses actionneurs. Pour réagir de façon adaptée, le robot doit percevoir des informations sur lui-même et sur son environnement par l’intermédiaire de capteurs. On distingue généralement : — les capteurs proprioceptifs qui le renseigne sur son état interne (positions, forces, intensités, etc.), — les capteurs extéroceptifs qui l’informe sur son environnement (attente d’un convoyeur, qu’un opérateur appuie sur un bouton, utilisation de la vision pour localiser des objets, etc.). Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 8 CHAPITRE 1. INTRODUCTION En fonction des informations qu’il reçoit, le robot doit prendre une décision pour accomplir sa tâche (atteindre une destination, maintenir une force, éviter les obstacles, etc.). La robotique est donc un domaine d’intégration où interviennent plusieurs disciplines différentes : la mécanique, les actionneurs (électromagnétiques, piézoélectriques, hydrauliques, pneumatiques, etc.), les capteurs (position, vitesse, force, vision, etc.), l’électronique, l’automatique, l’informatique, la robotique (( pure )) (génération de trajectoires, planification, placement d’un robot, manipulabilité, etc.). 1.3 1.3.1 Configurations usuelles des robots industriels Porteurs à chaı̂ne cinématique ouverte (ou porteurs série) La majorité des robots manipulateurs existant à l’heure actuelle présente un caractère anthropomorphe, en l’occurrence une forte ressemblance avec le bras humain. Ce type de porteur est constitué d’une succession de corps en série, chacun étant relié à son prédécesseur et à son successeur par une articulation à une mobilité, générant ainsi une chaı̂ne cinématique ouverte. On parle alors de robots série. Les articulations sont généralement soit des liaisons pivots (ou rotoı̈de, symbolisée par la lettre R) soit des liaisons glissières (ou prismatique, symbolisée par la lettre P). Les robots industriels peuvent être classifiés en fonction de leur structure mécanique et du type des axes. Les principales configurations des porteurs industriels à chaı̂ne cinématique ouverte sont : — structure cartésienne (ou robot portique) = PPP — structure cylindrique = RPP, — structure SCARA (bi-cylindrique) = RRP, — structure sphérique = RRP, — structure anthropomorphique (bi-sphérique) = RRR. Ces configurations sont illustrées dans le tableau 1.1. Parmi toutes les structures possibles de porteur, on cherche surtout celles qui, à l’instar du bras humain, cherchent à découpler le mouvement de l’effecteur en un mouvement l’amenant à une position donnée (bras à 3 ddl) et un mouvement l’orientant convenablement à cette position (poignet à 3 ddl). Notons également que l’on peut trouver des robots hyper-redondants, souvent nommés (( trompes d’éléphant )) qui peuvent être intéressants dans des cas où l’accès est rendu difficile par la présence d’obstacles (ex : soudure ou peinture à l’intérieur d’une carrosserie d’automobile). D’une manière générale, la redondance augmente la dextérité du robot. En outre, on peut envisager que si une articulation se bloque, la redondance fait que le robot peut néanmoins accomplir sa tâche. NB: Un robot est dit redondant lorsque le nombre de degrés de liberté de l’organe terminal (dans l’espace opérationnel) est inférieur au nombre d’articulations motorisées. 1.3.2 Configurations du poignet Suivant la tâche envisagée, on trouve des poignets à un, deux ou trois axes. De nombreux robots ont un poignet à deux degrés de liberté, car plus on s’éloigne de la base, plus le degré de liberté à tendance à coûter cher, de point de vue de la réalisation et de la commande (la partie terminale du robot s’alourdit, surtout si les moteurs du poignet ne sont pas ramenés sur Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet manipulator programmable in three or more axes, which may be either fixed in place or mobile for use in industrial automation applications. 9 1.3. CONFIGURATIONS USUELLES DES ROBOTS INDUSTRIELS Robot Principle Axes Kinematic Structure Examples Workspace Photo Robots brok structure The followin 1) with respe be used (defi 8373). Cartesian (G Robots whos joints, whose Cartesian co Cartesian Robot SCARA rob Robot which provide com Note: SCAR Complient A Articulated Robots whos concurrent p Cylindrical Robot Parallel rob Robots whos concurrent p Robots brok The definitio 8373 Spherical Robot Sequence-co Definition A robot havi state of mach desired order movement in SCARA Robot Trajectory o Definition A robot, whi procedure w axis motions instructions t timebased tra Articulated Robot (normally ac Adaptive ro Definition A robot havi control, or le Teleoperate Definition A robot that Parallel Robot human opera human’s sensory Table 1.1 – Classification des robots industriels par structure mécanique (norme ISO 8373).locations and the actions of the op Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 10 !! 1. INTRODUCTION CHAPITRE "#$%&!'()&!*$+*$,#'+-&!! !! !"#$%&'()*%"#+,-',."%&#/*, "#$%&!'()&!*$+*$,#'+-&!! !! !! "#$%&!'()&!+$+!*$+*$,#'+-&! (a) Trois axes concourants (b) Trois axes non concourants "#$%&!'()&!+$+!*$+*$,#'+-&! ! "#$%&!'()&!*$+*$,#'+-&!! !! ! !! "#$%&!'()&!+$+!*$+*$,#'+-&! ! ! ! .),(!'()&! .),(!'()&! (c) Deux axes Figure 1.3 – Configurations du poignet (illustrations extraites de [3]). ! .),(!'()&! la base, la commande s’en trouve ainsi compliquée et la masse embarquable diminuée) et de nombreuses tâches industrielles peuvent être correctement réalisées avec un robot à cinq axes (3+2), si elles ne nécessitent que cinq degrés de liberté (dans l’espace opérationnel) . Néanmoins, la tendance actuelle consiste à utiliser des robots (( complets )) à six degrés de liberté (3+3). La structure de poignet à trois axes la plus courante est constituée de trois articulations pivot en série et à axes concourants et orthogonaux deux à deux (voir figure 1.3). Cet ensemble est équivalent à une liaison sphérique. Elle permet donc d’obtenir une orientation quelconque de la pince et un découplage par rapport au porteur, d’où une simplification de la commande : le centre du poignet est fixe par rapport au bras, mais aussi par rapport à l’effecteur et sa position ne dépend que des trois premiers axes (ceux du porteur). Un poignet à axes non concourants a l’avantage de permettre des débattements angulaires plus importants par un montage en (( porte-à-faux )) du deuxième axe. 1.3.3 Porteurs à chaı̂ne cinématique fermée (ou porteurs parallèle) Un robot parallèle est caractérisé par le fait que l’organe terminal est relié à la base du robot par des chaı̂nes cinématiques distinctes et indépendantes, d’où des boucles cinématiques. Le robot parallèle le plus célèbre est la plate-forme de Gough-Stewart (1965) illustré par la figure 1.4. Ce type de structure était notamment utilisé à l’origine dans des simulateurs de vol pour l’entraı̂nement des pilotes. Plus récemment, développé dans les années 1980, le robot suisse Delta (EPFL/ABB) connaı̂t le succès industriel à partir des années 1990. Il faut noter que dans de telles structures cinématiques, toutes les articulations ne sont pas actives. Certaines sont nécessairement passives. Les avantages de ce type de structure sont les suivants : — en dépit du fait que les débattements de ces porteurs sont plus faibles que ceux des porteurs séries, générant donc un volume de travail plus faible, leur structure articulaire met les erreurs de position (ainsi que les imprécisions des capteurs, les défauts divers : jeux, frottements, flexion des corps) en parallèle au lieu de les mettre en série. Ces robots ont donc par nature une meilleure précision. Ainsi ils sont intéressants pour Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 1.3. CONFIGURATIONS USUELLES DES ROBOTS INDUSTRIELS "#$%&'()*+&!,&!-%&.$*% 11! (a) Plate-forme de Gough-Stewart "#$%&'()*+&!,&!-%&.$*%!! ! /)0)%!1&#%$!21&+$3*&45 ! !"#$%&'()*%+,#-*./&'(0&1,+&'( ! (b) Robot Delta Figure 1.4 – Deux exemples de porteurs parallèle (illustrations extraites de [3] et de [5]). les applications de type (( petits mouvements et grande précision )) (notamment en microrobotique) ; — une telle architecture permet une meilleure répartition des efforts et un montage des actionneurs sur la base, autorisant une structure mécanique plus légère et donc des mouvements rapides, de grandes accélérations et un rapport charge utile sur masse totale mouvement plus favorable (dans le cas des robots série ce rapport est en général très largement inférieur à 0,3) ; — cela permet également d’augmenter la rigidité de la structure (beaucoup moins de sollicitation en flexion des corps, peu de déformation) ; /)0)%!6*78&9%!2:)+$35! — l’utilisation de chaı̂nes parallèles permet d’utiliser des composants identiques (moteurs,! /)0)%!1&#%$!21&+$3*&45!!! constituants mécaniques), d’où une facilitation de la maintenance. ! Les applications industrielles des architectures parallèles sont en plein développement (il a! fallu du temps pour résoudre certains problèmes techniques et de commande), aussi bien en ! robotique (pick and place agro-alimentaire, recherche pharmaceutique, assemblage, ...) qu’en machines outils (les centres d’usinage parallèles permettent de multiplier les performances par rapport aux centres d’usinage classiques). NB: Il est également possible d’utiliser une structure parallèle comme poignet de robot afin d’augmenter la dextérité (et obtenir une compliance active ou passive du poignet). Les types de transmission en chaı̂ne fermée de type parallélogramme, tels que celui représenté en figure/)0)%!6*78&9%!2:)+$35! 1.5 permettant de réaliser une transmission de mouvement (mécanisme à un degré de liberté) à partir de! quatre corps formant un parallélogramme, n’entrent pas dans la catégorie des robots parallèles. Les relations géométriques entre les différents angles restent simples et similaires à celles d’un robot série. Le parallélogramme articulé permet de ramener les actionneurs vers la !base du robot, limitant la masse du robot en bout de porteur et augmentant ainsi les possibilités en terme de masse embarquée. En outre, une structure en parallélogramme peut être utilisée pour l’équilibrage d’un robot. 1.3.4 Robots à chaı̂ne cinématique arborescente Un robot à chaı̂ne cinématique arborescente est constitué de plusieurs chaı̂nes cinématiques ouvertes reliées à un corps central. Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 12 CHAPITRE 1. INTRODUCTION !"#$%"$#&'($)&#"&'#&*(+*,+"&'' -(.("'/'0,#,1121(3#,44&'' Figure 1.5 – Porteurs à parallélogramme (illustrations extraites de [5]). En fonctionnement, un robot à chaı̂ne cinématique arborescente peut devenir un robot à chaı̂ne cinématique fermée par la saisie d’une pièce avec deux bras ou le contact avec le sol de deux ou plusieurs pattes. Ce type de structure est davantage utilisé pour les robots de service (robots marcheurs, robot humanoı̈de) mais depuis les années 2010 des robots manipulateurs industriels à deux bras sont proposés pour réaliser des tâches particulièrement complexes. 1.4 Les marchés de la robotique 1 Fin 2012, le nombre de robots industriels opérationnels installés dans le monde dépassait le million d’unités (les estimations vont de 1 235 000 si l’on considère une durée de vie de 12 ans, à 1 500 000 si la durée de vie retenue est de 15 ans ce qui d’après les dernières études semble plus réaliste). En 2011, la Corée du Sud a atteint la densité de robot la plus élevé dans le monde, environ 347 robots industriels en fonctionnement pour 10 000 employés dans l’industrie manufacturière. La même année, la densité de robot au Japon était de 339, celle de l’Allemagne de 261. 10 pays avaient une densité de robot entre 104 (pour l’Autriche) et 149 (pour l’Italie), 5 pays de 50 à 100 (dont la France), 11 pays de 20 à 49 et tous les autres avaient moins de 20 robots en fonctionnement pour 10 000 employés. La densité de robot moyenne estimée dans le monde était d’environ 55 robots industriels pour 10 000 employés. C’est un marché dynamique qui connaı̂t toujours une forte croissance notamment en Asie (cf. figure 1.6). 2011 a été l’année où il s’est vendu le plus de robots industriels depuis 1961 (environ 166 000 unités). Malgré l’affaiblissement du contexte économique mondial, les ventes de robots industriels devraient continuer à progresser. L’IFR estime qu’entre 2014 et 2016 les ventes de robots dans le monde devraient augmenter d’environ 6% en moyenne par an (4% dans les Amériques et en Europe, 8% en Asie et Australie). Les plus grosses progressions sont prévus en Amérique du Nord, en Chine, en Corée du Sud, au Brésil et en Europe de l’est. Le secteur automobile demeure l’un des premiers marchés consommateurs de robots industriels : environ un tiers des robots en service dans le monde (deux tiers en France). Au Japon, en Allemagne, en Italie et en France, il y a plus d’un robot pour 10 employés dans l’industrie automobile. La soudure par points représente le plus grand domaine d’application. 1. L’essentiel des chiffres présentés ici est issu de l’UE, de l’ONU, de l’IFR (International Federation of Robotics) et des associations nationales. Une synthèse du rapport (( World Robotics )) qui fournit chaque année un ensemble de données sur la robotique mondiale, est disponible sur www.ifrstat.org. Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 13 1.4. LES MARCHÉS DE LA ROBOTIQUE Figure 1.6 – Ventes annuelles de robots industriels (source : IFR World Robotics). Figure 1.7 – Ventes annuelles de robots par secteurs industriels (source : IFR World Robotics). Figure 1.8 – Comparaison de la densité de robot entre l’Allemagne, l’Italie et la France (source : analyse Nodal d’après données IFR World Robotics 2008). Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 14 CHAPITRE 1. INTRODUCTION 20.2 milliers d’unités 20 15 13.6 15.3 21 22.2 16.4 10 5 0 4.7 millions d’unités 25 4 4 3 2.2 2 2.5 1.6 0 2009 2010 2011 2012 2013 2014 (a) Robots de service professionnels 2009 2010 2011 2012 2013 2014 (b) Robots de service domestiques Figure 1.9 – Ventes annuelles de robots de service (source : IFR World Robotics). Au delà du secteur automobile, la demande de robots industriels augmente également dans d’autres secteurs comme l’électronique, la plasturgie, l’agro-alimentaire et la métallurgie (cf. figure 1.7). La France accuse un certain retard en terme d’équipement robotique dans les secteurs autre que l’automobile et notamment dans les PME/PMI (cf. figure 1.8). Dans ce contexte, des industriels français ont pris en 2008 une initiative visant à promouvoir l’intégration de robots à la production, dans le but d’éviter de délocaliser 2 . En 2013, le gouvernement français a lancé un plan d’aide pour la robotisation des PME baptisé ROBOT Start PME 3 . Le secteur de la robotique de service est également en plein essor (cf. figure 1.9). Depuis 1998, environ 150,000 robots de service professionnels ont été vendus dans le monde. Il s’agit essentiellement de robots militaires, de robots agricoles (machines de traite automatisée), de robots médicaux et de robots de manutention. Les ventes de robots de services domestiques ont atteint 4,000 000 en 2013 (cf. figure 1.9). Il s’agit pour les deux tiers de robots de nettoyage (aspirateurs) et pour le reste de robots de divertissements (jouets, robots éducatifs). Les ventes de robots d’assistance pour personnes handicapées commencent à décoller. Un grand nombre de projets de recherche nationaux dans de nombreux pays se concentrent sur ce marché énorme pour l’avenir robots de service. Pour l’anecdote 4 , en 2006, le gouvernement sudcoréen avait demandé à des scientifiques et des industriels de développer des robots totalement intégrés à la société. Mon objectif personnel est qu’il y ait un robot dans chaque foyer à l’horizon 2010 expliquait un cadre du ministère. Il était ainsi prévu que des robots domestiques soient produits en série. Ils devaient, par exemple, transmettre des messages aux parents, enseigner l’anglais aux enfants ou jouer avec eux lorsque ceux-ci s’ennuient. En dehors du foyer, ils devaient également être capables de guider des clients dans les bureaux de poste ou même de patrouiller dans des espaces publics en localisant des intrus puis en transmettant des images à des centres de surveillance. 2. Voir www.robocaliser.com. Robotcaliser est une initiative du Symop, Syndicat des Entreprises de Technologies de Production 3. Voir www.robotstartpme.f 4. Tirée d’un bulletin d’information de l’Ambassade de France en Corée, 2006. Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 1.5. CONCLUSION 1.5 15 Conclusion Au cours des dernières années, les améliorations techniques des robots industriels ont été considérables, et ce pour un prix globalement divisé par plus de 3 entre 1990 et 2006. La durée de vie moyenne d’un robot se situe entre 12 et 15 ans (avec un retour sur investissement très court, souvent d’un à deux ans). Le robot industriel est l’équipement de production flexible par excellence, qui est désormais performant, relativement peu coûteux et fiable. Un grand constructeur japonais d’équipements de production en général et de robots en particulier, indique que le robot est actuellement l’équipement de production qui présente la plus grande fiabilité ! Il est aujourd’hui souvent intéressant et efficace de penser (( cellule robotisée )) avant d’investir dans une machine spéciale. Malgré l’état actuel de sophistication des robots, d’énormes progrès peuvent encore être faits, ne serait-ce que pour l’amélioration des robots industriels existants (sans parler du développement de robots totalement nouveaux, fondés sur des technologies nouvelles et dotés de fonctions nouvelles). Les robots industriels doivent travailler plus vite, sans perdre et même si possible en améliorant leur précision : — au niveau de la commande, mise en œuvre de commandes toujours plus performantes (ex : précision, prise en compte de la charge transportée, prise en compte des imperfections, prise en compte de l’environnement), — allégement de la structure (le rapport entre la charge utile et la masse des robots reste faible), — on peut également étudier des structures de robots flexibles ou souples, plus légers, plus rapides, permettant d’emmagasiner de l’énergie potentielle et offrant une compliance passive parfois utile. En robotique industrielle, une tendance actuelle est le travail collaboratif entre plusieurs robots et, plus récemment, le travail collaboratif entre les hommes et les robots, avec les fonctions de sécurité associées (ce qui permet d’éliminer les barrières de sécurité sur les lignes de production). Par ailleurs, les moyens de programmation des robots sont également en évolution (interfaces homme-machine, programmation hors ligne, CAO). Il existe également une tendance qui consiste à aller vers les extrêmes, c’est-à-dire vers le développement de robots de plus en plus petits (microrobots permettant la manipulation à grande précision d’objets très petits [9]) et les robots de plus en plus grands (manipulation d’ensembles plus complets, plus lourds, voire remplacement d’éléments de convoyage, c’est le robot qui amène la pièce à l’outil et plus le robot qui amène l’outil à la pièce). Un point essentiel pour le futur est celui de l’(( intelligence )) des robots. Il faut en effet conférer aux robots de plus en plus d’autonomie décisionnelle (génération de plans d’actions), de mobilité, s’accompagnant de la mise en œuvre de capteurs extéroceptifs, notamment la vision artificielle, pour la perception de l’environnement. Cette autonomie permettra aux fabricants de robots de conquérir de nouveaux marchés dans le secteur industriel et surtout dans les services. Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM Chapitre 2 Repérage d’un solide dans l’espace Soit un solide S1 quelconque, de centre O1 (le centre étant un point du solide choisi de façon arbitraire). On souhaite caractériser sa situation dans l’espace. Pour ce faire, on associe au solide un repère R1 , formé d’une base orthonormée directe (~x1 , ~y1 , ~z1 ) et d’une origine O1 . On définit également un repère fixe dans l’espace R0 = (O0 , ~x0 , ~y0 , ~z0 ), tel qu’indiqué sur le schéma suivant : ~y1 (R1 ) SS o S S ~z0 O1   e e   6 (R0 ) O0 ~x1  e e e e ~z1 - ~ y0 ~x0 2.1 1p Représentation d’un point Soit P un point du solide S1 . Les coordonnées de P dans R1 sont représentées par le vecteur tel que : −−→  O1 P .~x1 −→  −−→  1p = − O1 P /R1 =  O1 P .~y1  −−→ O1 P .~z1 NB: L’exposant 1 précédant p désigne le repère dans lequel les coordonnées de P sont exprimées. 2.2 Position La position du repère R1 dans l’espace peut alors s’exprimer par l’intermédiaire de la po−−→ sition du point O1 dans R0 , c’est-à-dire par les coordonnées du vecteur O0 O1 dans R0 noté 17 18 0o CHAPITRE 2. REPÉRAGE D’UN SOLIDE DANS L’ESPACE 1. 0 −−→ o1 = O0 O1 /R0  −−→ O0 O1 .~x0   −−→ =  O0 O1 .~y0  −−→ O0 O1 .~z0 Si les repères sont équipollents (translation pure entre les repères), le vecteur 0 o1 permet d’exprimer dans le repère R0 les coordonnées d’un point données dans le repère R1 . En effet, −−→ −−→ dans ce cas, on a O1 P /R0 = O1 P /R1 et donc on peut écrire : −−→ −−→ −−→ −−→ −−→ O0 P /R0 = O0 O1 /R0 + O1 P /R0 = O0 O1 /R0 + O1 P /R1 soit : 0 p = 0 o1 + 1 p En ce qui concerne l’orientation du repère R1 par rapport au repère de référence R0 , elle peut s’exprimer de différentes manières. L’orientation peut se définir par une matrice de rotation, par trois angles, par un vecteur et un angle ou encore par un quaternion. 2.3 2.3.1 Orientation déterminée par une matrice Définition Soit P un point du solide S1 . On note a, b et c ses coordonnées exprimées dans le repère R1 :   a −−→ 1 p = O1 P /R1 =  b  c On a alors : −−→ O1 P = a~x1 + b~y1 + c~z1 Si les origines des deux repères R0 et R1 sont confondues (rotation pure entre les repères), −−→ −−→ −−→ on peut substituer le vecteur O0 P par O1 P . Puis en exprimant les coordonnées du vecteur O0 P dans le repère R0 , il vient : −−→       O1 P .~x0 (a~x1 + b~y1 + c~z1 ).~x0 ~x1 .~x0 ~y1 .~x0 ~z1 .~x0 a −−→ −−→  −−→   0     b p = O0 P /R0 = O1 P /R0 =  O1 P .~y0  = (a~x1 + b~y1 + c~z1 ).~y0 = ~x1 .~y0 ~y1 .~y0 ~z1 .~y0 −−→ (a~x1 + b~y1 + c~z1 ).~z0 ~x1 .~z0 ~y1 .~z0 ~z1 .~z0 c O1 P .~z0 Soit : 0 p = 0 M1 . 1 p La matrice 0 M1 est la matrice de rotation (également appelée matrice des cosinus directeurs) correspondant à la matrice dite (( de passage de R0 à R1 )). Les colonnes de cette matrice sont les composantes des vecteurs de la base de R1 exprimés dans R0 :   ~x1 .~x0 ~y1 .~x0 ~z1 .~x0   0 M1 = ~x1/R0 ~y1/R0 ~z1/R0 = ~x1 .~y0 ~y1 .~y0 ~z1 .~y0  ~x1 .~z0 ~y1 .~z0 ~z1 .~z0 Notons que les 3 lignes sont les composantes des vecteurs de la base de R0 exprimés dans R1 soit respectivement ~x0/R1 , ~y0/R1 et ~z0/R1 . Chaque élément de la matrice est nommé cosinus directeur. Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 19 2.3. ORIENTATION DÉTERMINÉE PAR UNE MATRICE Outre le fait d’exprimer l’orientation d’un repère par rapport à un autre, la matrice 0 M1 dite (( de passage de R0 à R1 )) permet d’exprimer les coordonnées d’un vecteur v dans le repère R0 à partir de ses coordonnées données dans le repère R1 : 0v = 0 M1 . 1 v NB: A l’inverse, on peut bien entendu écrire : 1 v = 1 M0 . 0 v. 2.3.2 Propriétés Par définition, les lignes et les colonnes sont des vecteurs unitaires. De plus, les lignes (resp. colonnes) représentent des vecteurs perpendiculaires 2 à 2, donc de produit scalaire nul. Une ligne (resp. colonne) est le produit vectoriel des 2 autres (en respectant le sens direct). Les coefficients de M01 sont donc liés par des équations de contrainte. Ils ne sont donc pas indépendants et l’information fournie par M01 sur l’orientation de S1 est ainsi exprimée de façon redondante et implicite (les angles donnant l’orientation n’apparaissent pas directement). Exprimons à présent 1 M0 , la matrice de passage de R1 à R0 :   ~x0 .~x1 ~y0 .~x1 ~z0 .~x1   1 M0 = ~x0/R1 ~y0/R1 ~z0/R1 = ~x0 .~y1 ~y0 .~y1 ~z0 .~y1  ~x0 .~z1 ~y0 .~z1 ~z0 .~z1 Il apparaı̂t alors que : 1 0 M0 = M1 T En outre, comme les vecteurs de base de chaque repère sont perpendiculaires 2 à 2, si l’on calcule 1 M0 . 0 M1 et 0 M1 . 1 M0 , il vient : 1 M0 . 0 M1 = 0 M1 . 1 M0 = I3 (matrice identité) D’où : 1 M0 = 0 M1 T = 0 M1 −1 On peut également noter que : det 0 M1 = det 1 M0 = 1 Les matrices de passage sont des matrices unitaires et orthogonales. i Enfin, on démontre la relation de composition. Soit un vecteur quelconque v dans l’espace. Mj est telle que i v = i Mj . j v. En utilisant deux fois cette relation, on peut écrire que : 0 v = 0 M1 . 1 v = 0 M1 . 1 M2 . 2 v On en déduit aisément la relation de composition suivant : 0 Guillaume Laurent et Nicolas Chaillet M2 = 0 M1 . 1 M2 Université de Bourgogne Franche-Comté – UFC – ENSMM 20 2.3.3 CHAPITRE 2. REPÉRAGE D’UN SOLIDE DANS L’ESPACE Matrices de rotation usuelles Si la rotation d’un repère Rn par rapport à un repère Rn−1 s’effectue autour d’un des axes de base de Rn−1 , il est facile d’écrire la matrice de passage entre Rn−1 et Rn . NB: Les rotations sont définies dans le sens direct. Rotation autour de l’axe ~xn−1 (quand ~xn = ~xn−1 ) ~zn ~zn−1 OC α 6 C  9 C C C C C yn :  ~  C   α B M  B Ce  ~yn−1 (sur ce schéma, α > 0) ~xn−1 = ~xn En calculant les coefficients de la matrice de passage entre Rn−1 et Rn dans cette situation, il vient :   1 0 0 n−1 Mn = rot(~xn−1 , α) = 0 cα −sα  0 sα cα NB: cα désigne cos(α) et sα désigne sin(α). Rotation autour de l’axe ~yn−1 (quand ~yn = ~yn−1 ) ~zn−1 ~zn 6α  X z X       e XX X - ~ xn−1 XXX  α X ~yn−1 = ~yn X z X ~ x (sur ce schéma, α > 0) n   cα 0 sα n−1 1 0 Mn = rot(~yn−1 , α) =  0 −sα 0 cα Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 21 2.4. ORIENTATION DÉTERMINÉE PAR TROIS ANGLES Rotation autour de l’axe ~zn−1 (quand ~zn = ~zn−1 ) ~yn ~yn−1 OC α 6 C  9 C C C C C xn : ~   C   BMB α - ~ C e  xn−1 (sur ce schéma, α > 0) ~zn−1 = ~zn   cα −sα 0 n−1 Mn = rot(~zn−1 , α) = sα cα 0 0 0 1 2.4 Orientation déterminée par trois angles Outre l’utilisation de la matrice de rotation décrite précédemment, on peut également exprimer les trois ddl de rotation de R1 par rapport à R0 de manière explicite et non redondante, par trois angles. Pour ce faire, on définit R1 = (OO , ~x1 , ~y1 , ~z1 ) ayant même origine que R0 . R1 peut se déduire de R0 par trois rotations successives, en définissant deux repères intermédiaires R0 et R00 . La première rotation fait passer de R0 à R0 , la seconde de R0 à R00 et la troisième de R00 à R1 . Ces trois rotations peuvent alors être définies de différentes manières (à condition que deux rotations consécutives ne soient pas autour du même axe). Ainsi, pour exprimer de cette manière l’orientation d’un solide, ou de l’organe terminal d’un robot, on peut choisir, parmi les diverses possibilités, celle qui, selon le robot considéré, permettra l’expression de l’orientation la plus simple en fonction des qi (coordonnées articulaires du robot). Notons que les angles nautiques ont peut-être l’avantage d’être plus (( parlants )), donc plus ergonomiques pour un opérateur qui essaie de se représenter l’orientation de l’effecteur par rapport à la base du robot. On trouve donc ce type de représentation sur la plupart des robots industriels. 2.4.1 Angles nautiques Les angles nautiques, également appelés angles de cardan, angles de Tait-Bryan ou encore lacet-tangage-roulis (LTR), définissent les trois rotations suivantes : — le lacet (yaw) α, autour de l’axe ~z0 , fait passer de R0 à R0 , — le tangage (pitch) β, autour de l’axe ~y 0 , fait passer de R0 à R00 , — le roulis (roll) γ, autour de l’axe ~x 00 , fait passer de R00 à R1 . rot(~y 0 , β) rot(~z0 , α) R0 −→ R0 −→ rot(~x00 , γ) R00 −→ R1 NB: Pour garantir l’unicité de la représentation de l’orientation par les trois angles nautiques, il faut choisir ces angles dans les intervalles suivants : −π ≤ α < π ; − π π ≤β< ; −π ≤ γ < π. 2 2 De plus, si β = − π2 , la représentation n’est plus unique. Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 22 CHAPITRE 2. REPÉRAGE D’UN SOLIDE DANS L’ESPACE La matrice de rotation équivalente à une orientation donnée par les angles nautiques est :     cα −sα 0 cβ 0 sβ 1 0 0 0 1 0  0 cγ −sγ  M1 = rot(~z0 , α).rot(~y 0 , β).rot(~x00 , γ) = sα cα 0  0 0 1 −sβ 0 cβ 0 sγ cγ   cα cβ −sα cγ + cα sβ sγ sα sγ + cα sβ cγ = sα cβ cα cγ + sα sβ sγ −cα sγ + sα sβ cγ  −sβ cβ sγ cβ cγ Inversement, connaissant une matrice nautiques : — si m11 = 0 et m21 = 0,   α β   γ de rotation 0 M1 , il est possible de calculer les angles =0 = atan2(−m31 , m11 ) = atan2(−m23 , m22 ) — sinon,   α β   γ = atan2(m21 , m11 ) = atan2(−m31 , cα m11 + sα m21 ) = atan2(sα m13 − cα m23 , cα m22 − sα m12 ) NB: La fonction atan2 est une fonction arctangente à deux arguments définie telle que : atan2 : R2 → ] − π ; π] (y, x) 7→ atan2(y, x) Dans certains ouvrages ou interfaces de programmation, les angles nautiques sont définis dans l’ordre RTL et non LTR comme il vient d’être présenté. Les rotations sont alors les suivantes : rot(~y 0 , β) rot(~x0 , γ) −→ R0 2.4.2 R0 −→ rot(~z00 , α) R00 −→ R1 Angles d’Euler Les angles d’Euler définissent les trois rotations suivantes : — la précession ψ, autour de l’axe ~z0 , fait passer de R0 à R0 , — la nutation θ, autour de l’axe ~x 0 , fait passer de R0 à R00 , — la rotation propre φ, autour de l’axe ~z 00 , fait passer de R00 à R1 . rot(~x0 , θ) rot(~z0 , ψ) R0 −→ R0 −→ rot(~z00 , φ) R00 −→ R1 La matrice de rotation équivalente à une orientation donnée par les angles d’Euler est :   cφ cψ − sφ cθ sψ −sφ cψ − cφ cθ sψ sθ sψ 0 M1 = rot(~z0 , ψ).rot(~x0 , θ).rot(~z00 , φ) = cφ sψ + sφ cθ sψ −sφ sψ + cφ cθ cψ −sθ cψ  sφ sθ cφ sθ cθ Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 2.5. ORIENTATION DÉTERMINÉE PAR UN VECTEUR ET UN ANGLE 23 NB: Pour garantir l’unicité de la représentation de l’orientation par les trois angles d’Euler, il faut choisir ces angles dans les intervalles suivants : −π ≤ ψ < π ; − π π ≤θ< ; −π ≤ φ < π. 2 2 De plus, si θ = 0, la représentation n’est plus unique. Comme pour les angles nautiques, il existe des formules permettant de retrouver les angles d’Euler à partir d’une matrice de rotation [8]. 2.5 Orientation déterminée par un vecteur et un angle L’orientation d’un repère par rapport à un autre peut se décrire par une unique rotation. En effet, une matrice de rotation a toujours une valeur propre égale à un et deux valeurs propres conjuguées cos(θ) ± i sin(θ) où θ est l’angle de rotation. Le vecteur propre u (unitaire) associé à la valeur propre unitaire est invariant par la rotation puisque par définition, u est solution de 0 M1 .u = u. L’orientation de R1 par rapport à R0 est donc complètement définie par quatre paramètres qui décrivent une rotation unique d’angle θ (avec 0 ≤ θ ≤ π) autour de l’axe de vecteur unitaire u. Inversement, connaissant un vecteur de rotation unitaire u et un angle de rotation θ, il est possible de calculer la matrice de rotation en utilisant la formule de Rodrigues [8] : 0 M1 = I3 + sin(θ)S(u) + (1 − cos(θ)) u.uT avec S(u) la matrice antisymétrique associée au vecteur u. De manière plus compacte, la rotation peut être également représentée par le vecteur θu et donc seulement 3 paramètres. Bien que cette représentation soit minimale, elle n’est pas utilisée car elle pose des problèmes de conditionnement au voisinage de θ = 0. Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 24 CHAPITRE 2. REPÉRAGE D’UN SOLIDE DANS L’ESPACE 2.6 Orientation déterminée par les quaternions Les quaternions sont également appelés paramètres Euler ou paramètres d’Olinde-Rodrigues. Dans cette représentation, l’orientation est également exprimée de manière redondante par quatre paramètres qui décrivent une rotation unique d’angle θ (0 ≤ θ ≤ π) autour d’un axe de vecteur unitaire u. Les quaternions q1 à q4 sont définis comme suit :    q1 = cos (θ/2)  2  q2 = ux sin (θ/2) q1 + q22 + q32 + q42 = 1 ⇒ q = uy sin (θ/2) cos θ = 2q12 − 1    3 q4 = uz sin (θ/2) Dans ces conditions et tous calculs faits, la matrice de vante :  2 2(q1 + q22 ) − 1 2(q2 q3 − q1 q4 ) 0 M1 = 2(q2 q3 + q1 q4 ) 2(q12 + q32 ) − 1 2(q2 q4 − q1 q3 ) 2(q3 q4 + q1 q2 ) rotation s’exprime de la façon sui 2(q2 q4 + q1 q3 ) 2(q3 q4 − q1 q2 ) 2(q12 + q42 ) − 1 On trouve cette représentation de l’orientation de l’organe terminal du robot par rapport à sa base sur certains robots industriels. Par rapport aux matrices de rotation, les calculs utilisant les quaternions sont plus efficaces (en terme de complexité) et numériquement stable. Ils sont notamment utilisés en infographie 3D. 2.7 2.7.1 Transformation homogène Définition −−→ Soit P un point du solide. Le but est ici d’exprimer les coordonnées du vecteur O0 P dans −−→ −−→ R0 en fonction des coordonnées de O1 P dans R1 , c’est-à-dire d’exprimer O0 P /R0 en fonction −−→ de O1 P /R1 . Pour ce faire, on peut écrire : −−→ −−−→ −−→ O0 P = O0 O1 + O1 P −−−→ −−→ Notons que O0 O1 est un vecteur qui peut s’exprimer aisément dans R0 . De même, O1 P est un vecteur qui peut s’exprimer aisément dans R1 . La relation précédente, exprimée dans R0 s’écrit : −−→ −−−→ −−→ O0 P /R0 = O0 O1 /R0 + O1 P /R0 En désignant 0 M1 la matrice de passage de R0 à R1 , on peut écrire : −−→ −−→ O1 P /R0 = 0 M1 .O1 P /R1 Ainsi, il vient la relation utile : −−→ −−−→ −−→ O0 P /R0 = O0 O1 /R0 + 0 M1 .O1 P /R1 qu’on peut également écrire : 0p = 0 o1 + 0 M1 . 1 p Écrivons cette expression sous la forme matricielle suivante : "−−→ # " −−−→ # "−−→ # 0 O0 P /R0 M1 O0 O1 /R0 O1 P /R1 = 1 ∅1×3 1 1 Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 25 2.7. TRANSFORMATION HOMOGÈNE On pose : −−−→ # 0 M1 M 0 1 O0 O1 /R0 T1 = = ∅ ∅1×3 1 1×3 " 0 0o 1  1 La matrice 0 T1 est appelée matrice de transformation homogène. Elle contient les mêmes informations que les équations écrites précédemment, mais sous une forme matricielle plus (( compacte )). La matrice de transformation homogène 0 T1 dite (( de passage de R0 à R1 )) permet d’exprimer dans le repère R0 les coordonnées d’un point P à partir de ses coordonnées données dans le repère R1 : "−−→ # "−−→ # O0 P /R0 O1 P /R1 = 0 T1 . 1 1 soit : 0p = 0 T1 . 1 p Le vecteur p (de dimension 4) représente les coordonnées homogènes du point P . On dit également que la transformation 0 T1 définit le repère R1 dans le repère R0 . Outre les changements de repère, les matrices de transformations permettent de représenter les homothéties ainsi que les modèles de projections utilisés en vision comme la projection perspective et la projection orthographique (cf. chapitre 9.6). 2.7.2 Propriétés On a, par définition : −−−→ # "1 −−−→ # "1 −−−→ # 1 M O O M − O O M − M . 1 0 1 0 /R1 0 0 1 /R1 0 0 O0 O1 /R0 T0 = = = ∅1×3 1 ∅1×3 1 ∅1×3 1 " 1 Soit : " 1 T0 = T T −−−→ # M1 − 0 M1 .O0 O1 /R0 ∅1×3 1 0 On montre alors aisément que 1 T0 . 0 T1 = 0 T1 . 1 T0 = I4 et donc que : 1 T0 = 0 T1 −1 0 6= T1 T et : det 0 T1 = det 0 M1 = 1 Comme pour les matrices de rotation, on a naturellement aussi : 0 Guillaume Laurent et Nicolas Chaillet T2 = 0 T1 . 1 T2 Université de Bourgogne Franche-Comté – UFC – ENSMM 26 CHAPITRE 2. REPÉRAGE D’UN SOLIDE DANS L’ESPACE 2.8 La — — — — — — Conclusion situation d’un solide S1 dans l’espace peut être représenté sous différentes formes : −−→ le vecteur O0 O1 et les trois angles nautiques α, β et γ, −−→ le vecteur O0 O1 et les trois angles d’Euler ψ, θ et φ, −−→ le vecteur O0 O1 , l’angle θ et un vecteur unitaire u, −−→ le vecteur O0 O1 et le quaternion q1 , q2 , q3 et q4 , −−→ le vecteur O0 O1 et la matrice de rotation 0 M1 , la matrice de transformation homogène 0 T1 . En robotique, les quatre premières représentations sont utilisées pour décrire les tâches qu’un robot doit effectuer, notamment dans les langages de programmation et les interfaces homme-machine. Les deux dernières représentations sont utilisées pour calculer les différents modèles (géométrique, cinématique et dynamique) d’un robot et pour implanter les lois de commandes. Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet Chapitre 3 Modèles géométriques direct et inverse Rappelons qu’un robot est constitué d’un mécanisme polyarticulé, le porteur, et d’un outil déplacé et orienté par le porteur, l’effecteur ou organe terminal. Dans la majorité des cas, on s’intéresse exclusivement aux mouvements de l’effecteur dans l’espace opérationnel, sans d’ailleurs s’intéresser nécessairement à celui dans le même espace des différents corps constituant le robot (sauf en cas de risque de collision du porteur avec des objets de son environnement). Le mouvement de l’effecteur dans l’espace est totalement décrit par l’évolution de 6 paramètres (3 pour la position et 3 pour l’orientation), chacun représentant alors une coordonnée opérationnelle, regroupés en un vecteur colonne (6 × 1) noté x. Ce mouvement est engendré par l’actionnement de n articulations actives (motorisées) du porteur, dont les variables (coordonnées articulaires) peuvent être regroupées en un vecteur colonne (n × 1) noté q (q définit la (( posture )) du robot). NB: La ième coordonnée de x (resp. q) est noté xi (resp. qi ). 3.1 3.1.1 Modélisation géométrique directe d’un robot Définitions et hypothèses Définition 3. On appelle (( modèle géométrique direct )) (MGD) d’un robot, l’application f de Rn dans R6 (si n est le nombre d’axes du robot) exprimant x en fonction de q :   x y      z  position de l’effecteur dans R0  x = f (q) = = α orientation de Rn par rapport à R0   β  γ (si angles nautiques) /R0 Le MGD permet donc de connaı̂tre les mouvements de l’effecteur dans l’espace de la tâche, en fonction des mouvements des articulations du robot. Il permet notamment de déterminer l’espace de travail du robot (domaine atteignable), en prenant en compte les butées articulaires. L’espace de travail est évidemment un critère majeur du choix d’un robot. 27 28 CHAPITRE 3. MODÈLES GÉOMÉTRIQUES DIRECT ET INVERSE Figure 3.1 – Conventions de repérage. NB: Le modèle géométrique est donc un système de 6 équations permettant de calculer les 6 inconnues xi en fonction des n valeurs qi . Les structures mécaniques de robot étudiées ici ont les caractéristiques suivantes : — les robots sont à chaı̂ne cinématique ouverte, le dernier corps supportant l’effecteur (ou organe terminal) ; — les corps sont parfaitement rigides et sont connectés entre eux par des articulations (( idéales )) (pas de jeu mécanique ni d’élasticité). Dans la suite n désigne le nombre total d’axes du robot. On choisira les repères associés aux corps du robot étudié de la manière suivante : — à chaque corps Si du robot est associé un repère Ri , du repère R0 associé à la base, jusqu’au repère Rn associé au dernier corps ; — le repère R0 est situé à la base du robot, l’axe ~z0 vers le haut — le repère monde RS désigne un repère de référence (distinct de R0 ), la transformation de RS à R0 est appelé placement du robot ; — le repère outil RP associé à l’organe terminal a son vecteur ~zP dans l’axe de l’effecteur et (( sortant )) du robot (dirigé vers l’extérieur) ; RP peut être distinct de Rn ; — les coordonnées opérationnelles de l’effecteur s’exprime en un point privilégié P de cet effecteur (P est donc l’origine du repère outil RP ). — les coordonnées articulaires sont notés qi (qi désignera un angle pour une articulation rotoı̈de et une longueur pour une articulation prismatique) ; — dans la posture dite de référence toutes les coordonnées articulaires sont nulles, NB: Les hypothèses concernant la structure des robots étudiées sont quelque peu restrictives, mais sont valables pour la grande majorité des robots industriels. Les hypothèses sur le choix des repères ne génèrent en revanche aucune restriction. Elles sont destinées uniquement à simplifier le calcul des modèles. Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 3.1. MODÉLISATION GÉOMÉTRIQUE DIRECTE D’UN ROBOT (a) Disposition de référence 29 (b) Disposition quelconque Figure 3.2 – Convention de repérage d’une articulation rotoı̈de. Il s’agit maintenant d’exprimer le modèle géométrique direct d’un robot, x = f (q), qui exprime la position et l’orientation de l’organe terminal en fonction des coordonnées articulaires du robot. 3.1.2 Modélisation d’une articulation Soient deux solides Si−1 et Si , liés par une articulation de mobilité 1, de type rotoı̈de ou prismatique. Articulation rotoı̈de (liaison pivot) A chaque solide est lié un repère (Ri pour Si et Ri−1 pour Si−1 ). On choisit ces repères de telle manière qu’ils soient équipollents (c’est-à-dire qu’ils se déduisent par une simple translation) dans la disposition de référence. D’autre part, la rotation de Si par rapport à Si−1 est d’angle qi autour de l’axe de rotation de vecteur unitaire ~ui , avec qi = 0 dans la disposition de référence. Enfin, on choisit l’origine Oi de Ri sur l’axe de rotation et on fait coı̈ncider l’un des axes de Ri avec l’axe de rotation ~ui . Ainsi, la matrice de passage i−1 Mi s’écrit aisément. −−−−→ Soit P un point de Si . On exprime alors les coordonnées du vecteur Oi−1 P dans Ri−1 : −−−−→ −−−−→ −−→ Oi−1 P /Ri−1 = Oi−1 Oi /Ri−1 + i−1 Mi .Oi P /Ri ou sous forme d’une matrice de transformation homogène : " # −−−−→ i−1 Mi Oi−1 Oi /Ri−1 i−1 Ti = ∅1×3 1 −−−−→ Notons que Oi−1 Oi est un vecteur de longueur constante qui peut s’exprimer aisément dans −−→ Ri−1 . De même, Oi P est un vecteur de longueur constante qui peut s’exprimer aisément dans Ri . Par exemple, si on choisit P sur ~zi , et que li désigne la longueur Oi P , on peut alors écrire :   0 −−→  Oi P /Ri = 0  li Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 30 CHAPITRE 3. MODÈLES GÉOMÉTRIQUES DIRECT ET INVERSE (a) Disposition de référence (b) Disposition quelconque Figure 3.3 – Convention de repérage d’une articulation prismatique. Articulation prismatique (liaison glissière) Dans ce cas, le mouvement relatif des deux solides est une translation d’axe représenté par son vecteur unitaire ~ui . La variable qi représente cette fois-ci non plus un angle, mais une longueur correspondant à la translation effectuée. Comme dans le cas précédent, on choisit Ri−1 et Ri équipollents dans la disposition de référence, c’est-à-dire correspondant à une translation pure. Ri−1 et Ri resteront ici constamment équipollents. Enfin, on choisit l’origine Oi de Ri sur l’axe de translation. Le point Oir désigne l’origine Oi du repère Ri dans la disposition de référence. La longueur Oi−1 Oir est donc constante. Elle s’exprime aisément dans Ri−1 . Lorsqu’un mouvement est effectué, Oi (( s’éloigne )) de Oir . On peut écrire : −−−−−→ −−−→ −−→ −−−−→ Oi−1 P /Ri−1 = Oi−1 Oir + Oir Oi + Oi P C’est à dire : −−−−→ −−−−−→ −−→ Oi−1 P /Ri−1 = Oi−1 Oir + qi ~ui + Oi P Ou encore sous forme d’une matrice de transformation homogène : " i−1 Ti = I3 ∅1×3 # −−−−−→r Oi−1 Oi + qi ~ui 1 Quand cela est possible, on peut choisir l’un des axes de Ri−1 (c’est à dire également l’un des axes de Ri ), par exemple ~xi−1 , identique à l’axe de translation et les points Oi−1 , Oi et P le long de cet axe tel qu’indiqué sur la figure précédente. Dans ces conditions, on peut écrire : −−−−→ Oi−1 P /Ri−1 = (li−1 + qi + li)~xi−1 où li−1 et li désigne respectivement les longueurs Oi−1 Oir et Oi P . Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 3.1. MODÉLISATION GÉOMÉTRIQUE DIRECTE D’UN ROBOT 3.1.3 31 Orientation de l’organe terminal De manière implicite L’orientation de l’effecteur par rapport à la base, c’est à dire de RP par rapport à R0 peut s’exprimer de manière implicite par la matrice de passage 0 MP de R0 à RP . D’après les paragraphes précédents, on peut aisément exprimer i−1 Mi correspondant à un axe de rotation (par l’une des trois formes explicitée au paragraphe 2.3) ou à un axe de translation (dans le cas de la translation, cette matrice est la matrice identité). On en déduit donc aisément que : 0 Mn = n Y i−1 Mi i=1 et : 0 MP = 0 Mn . n MP De manière explicite Si on souhaite connaı̂tre les coordonnées d’un vecteur particulier, par exemple l’orientation de l’organe terminal (axe ~z du repère outil), on écrit :   0 0 n  ~zn/R0 = Mn . MP . 0 1 Si on souhaite exprimer l’orientation du repère outil à travers trois angles choisis judicieusement selon la cinématique du robot (angles nautiques, d’Euler, etc.), on utilise les formules de transformations inverses (cf. chapitre 2). 3.1.4 Position de l’organe terminal On chercher à calculer les coordonnées du point P de l’organe terminal dans le repère R0 , −−→ soit O0 P /R0 . Avec les matrices d’orientation On écrit : −−→ −−−→ −−−→ −−−→ −−−−−→ −−→ O0 P = O0 O1 + O1 O2 + O2 O3 + ... + On−1 On + On P S’il y a des translations, une par exemple entre le corps i − 1 et le corps i, on décompose −−−−→ −−−−−→ −−−→ Oi−1 Oi en Oi−1 Oir + Oir Oi . Quel que soit l’axe i du robot (1 ≤ i ≤ n), on peut aisément exprimer les coordonnées des −−−−→ vecteurs Oi−1 Oi /Ri−1 . D’autre part, on sait également exprimer les matrices de passage i−1 Mi en fonction des qi . Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 32 CHAPITRE 3. MODÈLES GÉOMÉTRIQUES DIRECT ET INVERSE On écrit alors : −−→ −−−−−→ −−−→ −−−→ −−−→ −−→ O0 P /R0 = O0 O1/R0 + O1 O2/R0 + O2 O3/R0 + ... + On−1 On/R0 + On P /R0 −−→ −−−−−→ −−−→ −−−→ −−−→ = O0 O1/R0 +0 M1 O1 O2/R1 +0 M1 1 M2 O2 O3/R2 +...+0 M1 1 M2 ... n−2 Mn−1 On−1 On/Rn−1 +0 M1 ... n−1 Mn On P /Rn Soit : −−→ −−−→ −−−−→ −−−−−→ −−→ O0 P /R0 = O0 O1/R0 + ... + 0 Mi−1 Oi−1 Oi/Ri−1 + ... + 0 Mn−1 On−1 On/Rn−1 + 0 Mn On P /Rn Avec les matrices de transformation homogène En calculant 0 Tn = n Q i−1 Ti , on obtient : i=1 −−−→ # M 0 n O0 On /R0 Tn = ∅1×3 1 " 0 On peut alors obtenir directement les coordonnés du point P dans le repère R0 : "−−→ # "−−→ # O0 P /R0 On P /Rn = 0 Tn . 1 1 Cette méthode est intéressante de par sa (( compacité )) : il ne s’agit que de multiplier des matrices. 3.1.5 Convention de Denavit-Hartenberg En choisissant les repères Ri d’une manière bien précise, on peut exprimer les relations aux différents axes en utilisant les paramètres de Denavit-Hartenberg (ou de Denavit-Hartenberg modifié, qui permet également la prise en compte des robots à chaı̂ne cinématique complexe). Cette convention fournit pour chaque axe la matrice de transformation homogène correspondante par la connaissance de quatre paramètres. Cette méthode peut être intéressante pour (( systématiser )) les calculs du modèle géométrique. Le choix des repères est le suivant : — l’axe ~zi correspond à l’axe de l’articulation i, — l’axe ~xi est porté par la perpendiculaire commune aux axes ~zi et ~zi+1 , — si les axes des articulations i et i + 1 sont concourants, on choisit Oi et Oi+1 au point d’intersection. Le passage de Ri−1 à Ri s’exprime en fonction des quatre paramètres de Denavit-Hartenberg modifié suivants : — αi : angle entre les axes ~zi−1 et ~zi , correspondant à une rotation autour de ~xi−1 , — di : distance entre ~zi−1 et ~zi le long de ~xi−1 , — θi : angle entre les axes ~xi−1 et ~xi , correspondant à une rotation autour de ~zi , — ri : distance entre ~xi−1 et ~xi le long de ~zi . La variable articulaire qi est soit θi , soit ri , selon que l’articulation i est rotoı̈de ou prismatique. En utilisant ces paramètres, la matrice de transformation homogène i−1 Ti s’écrit : i−1 Ti = rot(~zi , θi ).trans(~zi , ri ).tans(~xi−1 , di ).rot(~xi−1 , αi ) Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 33 3.1. MODÉLISATION GÉOMÉTRIQUE DIRECTE D’UN ROBOT ~xi 7  ~zi−1 ~zi 6 d   i        JJ θi ] ] J J     J   J     J T   Oi J T   J J J J ri J J J αi J   J xi−1 J : ~  J     J  J      Oi−1 Figure 3.4 – Convention de Denavit-Hartenberg (sur ce schéma αi < 0 et θi < 0). soit :   cos θi − sin θi 0 di cos αi sin θi cos αi cos θi − sin αi −ri sin αi  i−1  Ti =   sin αi sin θi sin αi cos θi cos αi ri cos αi  0 0 0 1 La méthode consiste tout d’abord à placer les repères sur le robot tout en remplissant un tableau avec les paramètres utiles. Articulation 1 2 ... n σi αi dj θi ri (avec σi = 0 si l’articulation est rotoı̈de, σi = 1 si l’articulation est prismatique) A partir du tableau, il est alors aisé de calculer 0 T1 , 1 T2 , ..., 0 Tn = n Q i−1 n−1 Tn puis 0 Tn sachant que Ti i=1 Ces calculs peuvent être automatisés. Ce type de représentation permet de traiter tous les cas de figures, y compris ceux des robots (( biscornus )). Cela n’est pourtant apparemment pas le cas des robots industriels, mais, lorsque l’on veut obtenir par identification le modèle géométrique très précis d’un robot (notamment pour en améliorer sa commande), c’est à dire prendre en compte les défauts de fabrication (décalages divers, non-coaxialités, défauts angulaires), une représentation générique de type Denavit-Hartenberg s’avère très utile. 3.1.6 Synthèse On est donc à présent capable d’exprimer le modèle géométrique d’un robot. Quelle que soit la méthode, on peut exprimer ce modèle à l’aide d’une unique matrice de transformation homogène 0 TP . Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 34 CHAPITRE 3. MODÈLES GÉOMÉTRIQUES DIRECT ET INVERSE Figure 3.5 – Illustration du lien entre espace des configurations et domaine atteignable. En multipliant la matrice 0 Tn par la matrice de transformation homogène associée à l’effecteur, notée n TP , dans laquelle la matrice de rotation est la matrice identité. On obtient alors : " −−→ # 0 MP O0 P /R0 0 0 n TP = Tn . TP = ∅1×3 1 Cette matrice 0 TP exprime d’un seul coup la rotation de l’effecteur par 0 MP et sa position −−→ par O0 P /R0 . 3.2 Domaine atteignable Définition 4. Soit q les coordonnées articulaires d’un robot à n axes et tel que chaque qi ait un débattement limité par les butées articulaires : qi ∈ [qimin , qimax ] ⇒ q ∈ Q ⊂ Rn (Q est un pavé de Rn ) Q est nommé espace des configurations du robot. L’un des critères fondamentaux pour effectuer le choix d’un robot en fonction de la tâche à réaliser est naturellement les mouvements possibles de l’effecteur dans l’espace opérationnel. Cette donnée s’exprime par l’intermédiaire de l’espace de travail ou domaine atteignable D = f (Q) comme l’illustre la figure 3.5 (notons qu’il peut y avoir éventuellement des contraintes d’auto-collision du porteur qui réduisent le domaine D). Définition 5. On appelle domaine atteignable d’un robot, la variété D de R6 définie par : D = {f (q) | q ∈ Q} La dimension d de D est (( presque partout )) (en excluant les postures singulières) égale au nombre de degrés de liberté du robot : d = dim(D) ≤ min(n, 6) (le cas n > d correspond à une structure redondante de robot). Il est difficile de se représenter complètement D, qui est a priori de dimension 6. Pour le représenter, on le scinde en deux : — DP = f P (Q) : domaine des positions atteignables, chacune pour au moins une orientation de l’effecteur, — DO = f O (Q) : domaine des orientations atteignables, chacune pour au moins une position de P . Le cas échéant, si la tâche implique que les trajectoires de l’effecteur doivent s’effectuer sur un plan, on peut être amené à déterminer le domaine atteignable pour une orientation constante de l’effecteur, correspondant à celle du plan. On peut ainsi, selon la tâche à réaliser, être amené à s’intéresser à : Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 35 3.3. MODÈLE GÉOMÉTRIQUE INVERSE D’UN ROBOT — D∗P (α, β, γ) : domaine des positions atteignables, chacune pour une orientation donnée de l’effecteur, — D∗O (x, y, z) : domaine des orientations atteignables, chacune pour une position donnée de P . Ces domaines atteignables sont plus restrictifs que les précédents : D∗O ⊂ DO et D∗P ⊂ DP 3.3 Modèle géométrique inverse d’un robot Comme indiqué dans le chapitre précédent, la commande d’un robot requiert, à partir des trajectoires désirées de l’effecteur dans l’espace opérationnel, de connaı̂tre les coordonnées articulaires correspondantes. Ceci peut donc être réalisée à partir du modèle géométrique inverse, en calculant qd = f −1 (xd ) (à condition que l’on puisse inverser le modèle géométrique). 3.3.1 Définition Définition 6. On appelle modèle géométrique inverse (MGI), l’application f −1 de R6 dans Rn exprimant q en fonction de x : q = f −1 (x) Le MGI est destiné à réaliser un transformateur de coordonnées, à partir des coordonnées opérationnelles souhaitées vers les consignes articulaires correspondantes. Le MGI est donc la forme explicite qui donne toutes les solutions possibles pour q, correspondantes à un x fixé. Le problème majeur est que dans la majorité des cas (sauf robots cartésiens), le MGD est non linéaire (il contient des fonctions trigonométriques) et qu’il est donc souvent difficile, voire parfois quasi-impossible, de l’inverser directement. Néanmoins, pour la plupart des robots industriels, cette opération reste faisable. Plusieurs méthodes existent pour obtenir le MGI. Parmi celles-ci, on peut citer les cinq classes de méthodes suivantes : — les méthodes géométriques, permettant d’obtenir chaque variable articulaire à partir de considérations géométriques, — les méthodes générales, utilisant le MGD et s’adaptant à la plupart des robots, — les méthodes spécifiques aux robots à six degrés de liberté à poignet sphérique (trois articulations rotoı̈des d’axes concourants), — les méthodes spécifiques pour des robots à (( cinématique particulière )). 3.3.2 Nombre de solutions possibles Un robot est dit résoluble lorsqu’il est possible de calculer toutes les configurations des axes (tous les différents q possibles) permettant d’atteindre une situation opérationnelle donnée (x donné). La quasi-totalité des robots industriels est résoluble. Quand on calcule le MGI d’un robot, trois cas peuvent se présenter, selon le robot étudié : — il n’y a aucune solution permettant de satisfaire au x souhaité, car celui-ci est en dehors du domaine atteignable du robot : dans ce cas, le robot n’est pas adapté à la tâche ou mal positionné dans la cellule ; — il y a une infinité de solutions : si le robot est redondant vis-à-vis de la tâche à réaliser, ou si le robot se trouve en configuration singulière (voir chapitre suivant), générant ainsi une redondance locale au prix de la perte d’un ou plusieurs ddl. Cette situation n’est pas directement imputable à la structure du robot, mais aux valeurs numériques particulières prises par les coordonnées de x ; Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 36 CHAPITRE 3. MODÈLES GÉOMÉTRIQUES DIRECT ET INVERSE Figure 3.6 – Exemple de solutions du MGI pour un robot 6R. — il y a un nombre fini de solutions. Ce nombre dépend de la structure cinématique du robot. Par exemple pour les robots à 6 ddl et à poignet sphérique, il y a au maximum 32 solutions. La figure 3.6 donne les 8 solutions du MGI d’un robot 6R (6 articulations rotoı̈des). 3.3.3 Méthode géométrique Cette méthode est intéressante pour des robots à structure simple et ne nécessite pas forcément le calcul préalable du modèle géométrique direct. Elle consiste à utiliser les relations trigonométriques d’un triangle quelconque. On essaie alors de ramener le problème à la résolution de triangles, en partant souvent de l’effecteur, pour remonter jusqu’à la base du robot. Prenons par exemple une articulation rotoı̈de d’un robot, comme indiquée sur le schéma suivant. En supposant connues les longueurs a, b et c, on peut calculer l’angle α par la relation : a2 = b2 + c2 − 2bc cos α   Oi  qi u  ? PPP  PP PPc PP α P P (( u Oi+1 ( ( (  ( (  ((((  (((((( a u (  (  b  Oi−1 Ceci permet alors de calculer qi . Il peut naturellement exister plusieurs solutions qui seront exprimées à l’aide des fonctions trigonométriques inverses. On rappelle que : acos : [−1 ; 1] → [0 ; π] x 7→ acos(x) Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 37 3.3. MODÈLE GÉOMÉTRIQUE INVERSE D’UN ROBOT et : asin : [−1 ; 1] → [−π/2 ; π/2] x 7→ asin(x) On utilise également la fonction arctangente à deux arguments : atan2 : 3.3.4 R2 → ] − π ; π] (y, x) 7→ atan2(y, x) Méthode générale d’inversion La méthode générale d’inversion a été proposée par Paul en 1981 [8]. Soit un robot à n degrés de liberté dont la structure est représentée par la matrice de transformation homogène 0 TP = 0 T1 . 1 T2 ... n TP . Soit U la matrice de transformation décrivant l’orientation et la position désirées. On souhaite résoudre l’équation générale suivante dont les qi sont solutions : U = 0 TP Pour calculer les qi , on procède en plusieurs étapes. On écrit d’abord : 1 T0 . U = 1 T2 ... n TP Le terme de gauche, noté matrice MG , n’est fonction que de q1 et le terme de droite, noté matrice MD , est fonction de q2 ...qn . On peut alors obtenir q1 par identification d’un ou deux éléments judicieusement choisis des deux matrices MG et MD . Une fois q1 calculé, on écrit : 2 T1 . 1 T0 . U = 2 T3 ... n TP Cette fois, q1 étant calculé, le terme de gauche ne dépend que de q2 et celui de droite de q3 ...qn . De même que précédemment, on choisit d’identifier le ou les termes des deux matrices permettant le calcul de q2 . On réitère ainsi le processus, jusqu’à obtenir la dernière coordonnée articulaire qn en écrivant : n Tn−1 ... 2 T1 . 1 T0 . U = n TP Cette méthode est générale mais demande un peu de pratique. Heureusement pour les robots ayant une cinématique classique, on retombe sur un petit nombre de cas de figures qui sont répertoriés dans les ouvrages de références (voir par exemple [4]). A la main, elle est souvent plus complexe à mettre en œuvre pour les robots étudiés que la méthode géométrique. 3.3.5 Méthode d’inversion pour les robots à 6 ddl à poignet sphérique On a vu dans le premier chapitre que les poignets à 3 articulations rotoı̈des d’axes concourants correspondent à une liaison rotule. Un tel poignet est donc équivalent à un poignet sphérique. Pour avoir un robot à 6 ddl, le porteur (en excluant le poignet) doit donc posséder également 3 articulations. Pour de tels robots, on peut alors obtenir de manière explicite le MGI. Le schéma suivant représente un porteur quelconque à 3 axes (q1 , q2 , q3 ) suivi des 3 articulations du poignet (q4 , q5 , q6 ). Ces 3 articulations sont représentées par une liaison rotule. −−→ Les données du problème sont le vecteur O0 P /R0 et l’orientation du repère RP dans R0 , représentée par la matrice de passage 0 MP (définie par exemple par les angles nautiques). Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 38 CHAPITRE 3. MODÈLES GÉOMÉTRIQUES DIRECT ET INVERSE Figure 3.7 – Conventions de repérage pour l’inversion des robots à 6 ddl à poignet sphérique. −−→ Calcul de O0 C /R0 La distance P C est constante et C est un point fixe de RP , donc on peut connaı̂tre aisément −−→ P C /RP . On peut ensuite écrire : −−→ −−→ −−→ −−→ −−→ O0 C /R0 = O0 P /R0 + P C /R0 = O0 P /R0 + 0 MP P C /RP −−→ −−→ −−→ O0 P /R0 , 0 MP et P C /RP sont connus, donc on peut calculer O0 C /R0 . Résolution du porteur : calcul de q1 , q2 et q3 −−→ Connaissant O0 C /R0 , on peut résoudre le porteur (par exemple par une méthode géométrique) en prenant soin d’examiner toutes les solutions possibles (si on ne tient pas compte des butées articulaires, il y a au plus quatre solutions, c’est à dire quatre postures du porteur permettant d’atteindre le même point C). −−→ NB: O0 C /R0 = g(q1 , q2 , q3 ) correspond à un système de trois équations à trois inconnues. Calcul de 3 MP (MGD du poignet) On calcule 3 MP à partir des trois variables articulaires q4 , q5 et q6 . Résolution du poignet : calcul de q4 , q5 et q6 Les angles q1 , q2 et q3 étant connus, on peut calculer la matrice de passage 0 M3 = M1 . 1 M2 . 2 M3 . Connaissant l’orientation désirée de RP définie par 0 MP , on peut alors calculer 3 MP par la relation : 0 Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 39 3.4. CONCLUSION 3 MP = 3 M0 . 0 MP = (0 M3 )T . 0 MP En égalisant les deux matrices 3 MP , on peut alors en déduire q4 , q5 et q6 . Si q5 = 0 (ou q5 = π), il y a une infinité de solutions. Il s’agit de la singularité du poignet (voir chapitre suivant). Dans les autres cas, il y a deux solutions (sans tenir compte des butées articulaires). 3.3.6 Méthodes d’inversion pour des robots à (( cinématique particulière )) Rappelons que le MGI peut être vu comme la résolution de 6 équations à n inconnues (q1 à qn ). Robots redondants Lorsque n > 6, c’est à dire lorsque le robot est redondant, le système à résoudre contient plus d’inconnues que d’équations. Il y a donc une infinité de solutions possibles. On peut alors fixer arbitrairement (n−6) variables articulaires ou introduire (n−6) relations supplémentaires. Ces choix peuvent être dictés par la tâche à effectuer ou par la morphologie du robot. Robots à nombre d’articulations inférieur à 6 Dans le cas où n < 6, le robot ne peut pas générer les 6 ddl de l’espace. Le MGD fait donc apparaı̂tre (6 − n) équations de contraintes entre les 6 coordonnées de x, interdisant ainsi de les choisir indépendamment. 3.4 Conclusion Du fait de la non linéarité du MGD, le MGI peut s’avérer complexe à calculer. Il n’existe pas d’(( algorithme universel )) permettant de résoudre toutes les structures de robot. Néanmoins, la quasi-totalité des robots industriels est résoluble. Pour les autres, on peut utiliser une méthode numérique utilisant le modèle différentiel défini au chapitre suivant. Le MGI, par rapport aux méthodes numériques, a l’avantage de donner toutes les solutions possibles. Certaines sont d’emblée éliminées car elles ne satisfont pas les contraintes de butées articulaires. L’utilisateur a alors le choix des solutions restantes. Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM Chapitre 4 Modèles cinématiques direct et inverse On s’intéresse ici aux relations liant les vitesses opérationnelles (c’est-à-dire la vitesse instantanée du point P de l’effecteur et la vitesse de rotation du repère RP lié à l’organe terminal) en fonction des vitesses articulaires q̇i . 4.1 4.1.1 Définitions Modèle cinématique direct Définition 7. On appelle modèle cinématique direct (MCD) d’un robot, l’application donnant les vitesses opérationnelles ẋ en fonction des positions q et des vitesses q̇ : ẋ = g(q, q̇) Au contraire du modèle géométrique, qui correspond à une relation non linéaire entre x et q, le modèle cinématique correspond à une relation linéaire entre ẋ et q̇. Le modèle cinématique peut s’écrire sous la forme : ẋ = J(q).q̇ La matrice J(q) est nommée matrice jacobienne ou simplement jacobienne du robot. Cette matrice est de dimension (d × n), où d est le nombre de degrés de liberté du robot (d = 6 au maximum) et n le nombre d’axes. Par convention, les matrices jacobiennes présentées dans ce cours seront toujours exprimées dans le repère R0 . NB: La matrice jacobienne dépend de q. Elle varie donc dans le temps en fonction des mouvements du robot. 4.1.2 Modèle cinématique inverse On appelle modèle cinématique inverse (MCI), l’application inverse de la précédente, donnant q̇ en fonction de ẋ, soit : q̇ = [J(q)]−1 .ẋ Ce modèle est calculable à condition que J(q) soit inversible. En fonction des valeurs de q, cette condition peut être toujours vérifiée, ou jamais vérifiée, ou encore non vérifiée sur quelques points seulement, correspondant à des configurations singulières. 41 42 CHAPITRE 4. MODÈLES CINÉMATIQUES DIRECT ET INVERSE 4.2 Jacobienne analytique La matrice jacobienne peut s’obtenir en différentiant le modèle géométrique représentée par la fonction vectorielle f (q). Soit le modèle géométrique direct d’un robot exprimé dans le repère R0 : x = f (q) En différentiant cette expression, on obtient : ẋ = 0 Ja (q).q̇ avec 0 Ja (q) la matrice jacobienne : ∂f1  ∂q1  . 0 a J (q) =   ..  ∂fd ∂q1  ··· .. . ···  ∂f1 ∂qn  ..   .  ∂fd  ∂qn Cette matrice est appelée matrice jacobienne analytique (ou différentielle) pour la distinguer de matrice jacobienne cinématique présentée plus loin. Les fi sont dérivables car formés de fonctions affines et trigonométriques. Le calcul de 0 Ja (q) est donc aisée mais peut être coûteux en temps de calcul. Il faut également faire attention à l’instabilité numérique des algorithmes mis en œuvre. La jacobienne analytique est généralement calculée en utilisant une représentation explicite de l’orientation comme les angles d’Euler ou les angles nautiques. Par exemple, pour un robot 6 axes, 6 ddl et une orientation définie par les angles nautiques, la jacobienne analytique s’écrit :       ẋ q˙1 ∂f1 ∂f1  ẏ  q˙2  ···    ∂q1   ∂q6   .  ż   q˙3  . .      .. ..   α̇  =  ..  · q˙4       ∂f6  ∂f6  β̇  q˙5  ··· ∂q ∂q 1 6 q˙ γ̇ 6 Néanmoins, les représentations de l’orientation par trois angles sont mal adaptées pour calculer les efforts articulaires. Pour ce faire, on préférera utiliser la jacobienne cinématique fondée sur les torseurs cinématiques. 4.3 Jacobienne cinématique Le mouvement de l’organe terminal peut également être définit par sa vitesse instantanée et sa vitesse de rotation instantanée sous la forme d’un torseur cinématique. Cette partie propose d’établir la relation entre ce torseur et les positions et vitesses articulaires q et q̇. 4.3.1 Cinématique du point La vitesse instantanée d’un point P dans le repère Rj est définie par la dérivée du vecteur position : −→ j v(P ) = d − dt Oj P /Rj Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 43 4.3. JACOBIENNE CINÉMATIQUE Figure 4.1 – Illustration de la formule de Varignon. NB: L’opération de dérivation ne dépend pas du référentiel. C’est bien le vecteur qui s’exprime différemment selon le repère. 4.3.2 Cinématique du solide Champ de vitesse Le champ de vitesse d’un solide Si par rapport à un repère Rj est l’application qui associe, à tout point P de Si , la vitesse de ce point exprimée dans le repère Rj et telle que : jv i/j (P ) = d −−→ dt Oj P /Rj On dit que j vi/j (P ) est la vitesse instantanée du point P dans le mouvement de Si par rapport à Rj et exprimée dans le repère Rj . Formule de Varignon Soit M et P deux points d’un solide indéformable Si et un repère Rj . La formule de Varignon (ou formule transport des vitesses) permet d’écrire la vitesse d’un point P quelconque de Si en fonction de j vi/j (M ) et de j ω i/j : jv i/j (P ) −−→ = j vi/j (M ) + P M /Rj ∧ j ω i/j où j ω i est la vitesse de rotation instantanée du solide Si par rapport à Rj . On rappelle qu’en dimension trois le produit vectoriel de deux vecteurs u et v est :   u2 v3 − u3 v2 u ∧ v = u3 v1 − u1 v3  u1 v2 − u2 v1 Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 44 CHAPITRE 4. MODÈLES CINÉMATIQUES DIRECT ET INVERSE Torseur cinématique Le champ de vitesse d’un solide indéformable Si en mouvement par rapport à un repère Rj est complètement défini par un torseur cinématique, écrit en un point particulier P de Si : "j j V i/j (P ) = # vi/j (P ) jω i/j où : — j vi/j (P ) est la vitesse instantanée du point P dans le mouvement de Si par rapport à Rj exprimée dans le repère Rj , — j ω i/j est la vitesse de rotation instantanée du solide Si par rapport à Rj et exprimée dans le repère Rj . Composition des vitesses Soit Si , Sj et Sk trois solides et P un point, la vitesse absolue est égale à la somme de la vitesse relative et de la vitesse d’entraı̂nement : jv i/j (P ) = j vi/k (P ) + j vk/j (P ) La vitesse relative j vi/k (P ) est la vitesse de P dans le mouvement de Si par rapport à Sk exprimée dans le repère Rj . La vitesse d’entraı̂nement j vk/j (P ) est la vitesse de P dans le mouvement de Sk par rapport à Sj (c’est-à-dire s’il était fixe dans le repère Rk ) exprimée dans le repère Rj .. La loi de composition de vitesse de rotation instantanée s’écrit : jω i/j = j ω i/k + j ω k/j Ces deux équations peuvent s’écrire sous la forme de torseurs : j V i/j (P ) = j V i/k (P ) + j V k/j (P ) On remarquera que comme un solide i est fixe par rapport à lui-même, on a j V i/i = 0 et donc : j V i/j (P ) = − j V j/i (P ) 4.3.3 Modélisation des articulations On s’intéresse maintenant aux équations cinématiques liant deux solides Si−1 et Si reliés par une articulation. L’axe de l’articulation est noté ui et la valeur de l’angle ou de la translation est noté qi (cf. figures 3.2 et 3.3). Articulation rotoı̈de (liaison pivot) Pour une articulation rotoı̈de, la vitesse de rotation instantanée de Si par rapport à Si−1 est par définition : i−1 ω Université de Bourgogne Franche-Comté – UFC – ENSMM i/i−1 = i−1 ui .q̇i Guillaume Laurent et Nicolas Chaillet 45 4.3. JACOBIENNE CINÉMATIQUE Comme la vitesse du centre de rotation Oi dans le repère Ri−1 est nulle, la vitesse d’un point P lié au solide Si dans le repère Ri−1 s’écrit : i−1 −−→ vi/i−1 (P ) = i−1 vi/i−1 (Oi ) + P Oi /Ri−1 ∧ i−1 ω i/i−1 −−→ = i−1 ω i/i−1 ∧ Oi P /Ri−1  −−→ = i−1 ui .q̇i ∧ Oi P /Ri−1 −−→ Le vecteur Oi P étant plus facile à exprimer dans le repère Ri , on peut réécrire l’équation en utilisant la matrice de rotation entre Ri−1 et Ri . On obtient : i−1 v i−1 u .q̇ i i i/i−1 (P ) =  ∧  i−1 −−→  Mi .Oi P /Ri Ainsi le torseur cinématique pour une articulation rotoı̈de s’écrit :  i−1 i−1 u i V i/i−1 (P ) =   ∧ −−→  Mi .Oi P /Ri  .q̇i i−1 u i i−1 Articulation prismatique (liaison glissière) Pour une articulation rotoı̈de, la vitesse de rotation instantanée de Si par rapport à Si−1 est nulle par définition : i−1 ω i/i−1 = 0 La vitesse du point Oi dans le repère Ri−1 est par définition : i−1 vi/i−1 (Oi ) = i−1 ui .q̇i La vitesse d’un point P lié au solide Si dans le repère Ri−1 s’écrit également : i−1 −−→ vi/i−1 (P ) = i−1 vi/i−1 (Oi ) + P Oi /Ri−1 ∧ i−1 ω i/i−1 Donc : i−1 v i/i−1 (P ) = i−1 ui .q̇i Soit sous forme d’un torseur : i−1 4.3.4 V i/i−1 (P ) = "i−1 # ui ∅3×1 .q̇i Calcul de la matrice jacobienne cinématique Le mouvement de l’organe terminal est complètement définit par le torseur cinématique V n/0 (P ). On cherche donc à établir la relation entre la vitesse de l’organe terminal et les positions et vitesses articulaires q et q̇ sous la forme suivante : 0 0 V n/0 (P ) = 0 Jc (q).q̇ 0 c J (q) est la matrice jacobienne dite cinématique (ou encore jacobienne de base) pour ne pas la confondre avec la matrice jacobienne analytique. Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 46 CHAPITRE 4. MODÈLES CINÉMATIQUES DIRECT ET INVERSE Pour calculer le torseur 0 V n/0 (P ), on peut utiliser les lois de composition. On écrit : 0 V n/0 (P ) = 0 V n/n−1 (P ) + 0 V n−1/n−2 (P ) + · · · + 0 V 2/1 (P ) + 0 V 1/0 (P ) On exprime alors chaque torseur 0 V i/i−1 (P ) à l’aide de la matrice de changement de base 0 Mi−1 de R0 à Ri−1 telle que : 0  Mi−1 ∅3×3 0 Mi−1 = ∅3×3 0 Mi−1 qui permet d’écrire : 0 V i/i−1 (P ) = 0 Mi−1 . i−1 V i/i−1 (P ) On obtient enfin : 0 V n/0 (P ) = 0 Mn−1 . n−1 V n/n−1 (P ) + 0 Mn−2 . n−2 V n−1/n−2 (P ) + · · · + 0 M1 . 1 V 2/1 (P ) + 0 M0 . 0 V 1/0 (P ) Soit : 0 V n/0 (P ) = n−1 P 0 Mi . i V i+1/i (P ) i=0 4.4 Passage d’une jacobienne à l’autre Les matrices jacobiennes analytique et cinématique sont identiques sur les trois premières lignes et diffèrent sur les trois dernières lignes. Il existe néanmoins des formules pour passer directement d’une forme à l’autre (voir notamment [10]). 4.5 Vitesses atteignables et manipulabilité Les matrices jacobiennes (analytique ou cinématique) permettent de caractériser les vitesses atteignables d’un robot dans une configuration q donnée. En effet, si l’on connaı̂t les vitesses articulaires maximales q̇max , on a : −q̇max ≤ q̇ ≤ q̇max et donc : min J(q)q̇ ≤ ẋ ≤ max J(q)q̇ Pour représenter graphiquement les vitesses atteignables du robot dans une certaine configuration, on utilise les ellipsoı̈des de manipulabilité. Dans l’espace des vitesses articulaires, on considère l’ensemble des vecteurs q̇ unitaires, c’est-à-dire l’ensemble des vecteurs vitesses vérifiant : q̇T q̇ = 1 Cette équation défini une sphère dans l’espace des vitesses articulaires. L’image de cet ensemble dans l’espace opérationnel donne l’équation :  −1 ẋT J(q)J(q)T ẋ = 1 Cette équation défini une ellipsoı̈de qui est représentative des vitesses potentielles du robot dans chaque direction de l’espace opérationnel. Les axes principaux de l’ellipsoı̈de correspondent Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 47 4.6. ASPECTS ET CONFIGURATIONS SINGULIÈRES Figure 4.2 – Illustration des aspects Qi et de leur image Di . aux vecteurs propres de la matrice J(q)J(q)T et les longueurs des demi-axes correspondent aux valeurs propres associées. Le volume intérieur m(q) de l’ellipsoı̈de donne une mesure de la capacité du robot à générer une vitesse. Ce volume est défini par : q m(q) = det J(q)J(q)T Cette mesure m(q) est appelée manipulabilité en vitesse du robot. Elle a été introduite par Yoshikawa en 1984. 4.6 Aspects et configurations singulières Les matrices jacobiennes permettent également de connaı̂tre les différentes de postures d’un robot (aspects) et de détecter ses configurations singulières. 4.6.1 Aspects et domaine atteignable Rappelons les notations relatives au domaine atteignable définies dans le chapitre précédent : en prenant en compte les butées articulaires d’un robot (qi ∈ [qimin , qimax ]), on a q ∈ Q ⊂ R6 . Le domaine atteignable D est alors une variété de R6 , dont la dimension d est (( presque partout )) (en excluant les postures singulières) égale au nombre de degrés de liberté du robot. Dans ces conditions, le modèle géométrique direct du robot est une application de Q vers D, c’est-à-dire qu’un élément de Q n’a qu’une seule image dans D. L’inverse n’est pas vrai, c’est-à-dire qu’un élément de D pourra être l’image de plusieurs éléments de Q. On cherche alors à trouver les conditions dans lesquelles l’application est bijective, c’est-àdire les conditions dans lesquelles un élément de D n’est l’image que d’un seul élément de Q. Pour cela, on utilise le théorème d’inversion local, qui donne le résultat suivant : Si dans un sous-domaine de Q, noté Q0 , le déterminant de J(q) (q ∈ Q0 ) garde un signe constant, alors l’application est bijective dans ce sous-domaine. Ceci permet de donner une description complète du domaine atteignable. En effet, la relation det J(q) = 0 définit une partition de Q en m domaines disjoints notés Qi (i = 1, ..., m) et appelés aspects. Un aspect Qi est donc défini par : ∀ q ∈ Qi , signe [det J(q)] = constant Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 48 CHAPITRE 4. MODÈLES CINÉMATIQUES DIRECT ET INVERSE Soit Di , l’image de Qi . Le domaine atteignable D peut être alors décrit comme la réunion de toutes les images des aspects Qi (cf. figure 4.2). On peut écrire les propriétés suivantes : Q= m [ Qi ; Qi ∩ Qj = ∅ ; D= i=1 m [ Di ; Di ∩ Dj 6= ∅ i=1 Pour q ∈ Qi , le robot est dit dans la posture n◦ i. La description précédente permet alors de connaı̂tre les solutions multiples, c’est-à-dire toutes les postures possibles pour un x donné. En effet, si par exemple le vecteur opérationnel x ∈ Di ∩ Dj ∩ Dk , il est l’image de trois vecteurs articulaires différents, appartenant à Qi , Qj et Qk . 4.6.2 Configurations singulières D’après le chapitre précédent, on rappelle que le calcul du MGI peut conduire à une infinité de solutions dans deux cas : — soit le robot est redondant vis-à-vis de la tâche à réaliser, — soit le robot se trouve dans une certaine configuration, générant une indéterminée ou une redondance locale au prix de la perte d’un ou plusieurs ddl. Cette situation n’est pas directement imputable à la structure du robot, mais aux valeurs numériques particulières prises par les coordonnées de x. Dans ce dernier cas, la configuration correspondante est dite singulière. L’analyse des c singulières repose donc, sur le plan mathématique, sur le calcul du MGI, c’est-à-dire sur la résolution d’un système de n équations à n inconnues (n étant le nombre d’axes du robot). On va alors plutôt examiner les singularités sur le modèle cinématique, qui est linéaire, contrairement au modèle géométrique. Le MCD n’est pas inversible si det J(q) = 0. On se place alors dans ce cas et on définit r, le rang de J(q). NB: On rappelle que le rang d’une matrice (n × p) (n non nécessairement égal à p) est l’ordre r de la plus grande sous-matrice carrée (r × r) extraite de la précédente et dont le déterminant est non nul. Pour qu’une matrice soit de rang r, il suffit donc qu’un seul des déterminants d’ordre r soit différent de zéro. Dans le cas où det J(q) = 0, on peut réarranger l’ordre des équations et des inconnues du MCD de telle sorte que ∆r , le déterminant non nul d’ordre r, apparaisse (( en haut à gauche )) dans la nouvelle matrice J : r { n−r{ r n−r z}|{ z}|{   ∆r × . q̇ = ẋ × × On en déduit alors qu’il y a : — (n−r) indéterminées q̇i dans les r équations principales (celle (( du haut ))), d’où une redondance de certains qi pour engendrer certains mouvements de l’effecteur ; — (n−r) relations de contraintes entre les ẋi dues aux (n−r) équations non principales (celles (( du bas ))) qui doivent être vérifiées, d’où la perte de (n−r) degrés de liberté de l’effecteur. On peut donc dire qu’une configuration singulière correspond à la perte de contrôle d’un ou plusieurs mouvements de l’effecteur et corrélativement à l’apparition d’indéterminées ou de redondances sur les mouvements encore contrôlables, ce qui augmente la dextérité du robot sur ces mouvements. D’une manière générale, les configurations singulières sont Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 49 4.6. ASPECTS ET CONFIGURATIONS SINGULIÈRES plutôt à éviter, mais pour certaines tâches nécessitant de la dextérité (certains assemblages par exemple), elles peuvent être intéressantes. On peut également noter qu’il est généralement préférable, dans le cadre de l’utilisation d’algorithmes de type (( commande incrémentale )) présentée plus loin, de ne pas générer de trajectoires passant (( trop près )) des configurations singulières, afin d’éviter les problèmes de stabilité numérique, voire de divergence. D’autre part, lorsqu’un robot s’approche d’une configuration singulière, det J devient de plus en plus faible, donc les termes de J−1 risquent de devenir de plus en plus grands, ce qui entraı̂ne, à ẋ fixé, des vitesses articulaires très importantes, parfois incompatibles avec les possibilités des actionneurs. Si l’on souhaite que le robot passe quand même près ou par des configurations singulières, il faut (( sophistiquer )) le transformateur de coordonnées. 4.6.3 Configurations singulières d’un robot anthropomorphe à poignet sphérique Singularité du poignet Soit la configuration du poignet sphérique représentée par la figure 4.3 & q5 z q6 q4 C P & y & x Figure 4.3 – Singularité du poignet sphérique Dans cette situation, il apparaı̂t clairement que q4 et q6 sont redondants pour engendrer la rotation autour de l’axe ~y et que la rotation autour de l’axe ~z ne peut être engendrée. On retrouve bien entendu ce résultat par calcul de la jacobienne (analytique) du poignet, qui peut alors s’écrire :       α̇ 0 0 0 q̇4 β̇  = 0 1 0 . q̇5  1 0 1 q̇6 γ̇ Dans cette configuration, la jacobienne est de rang 2. Singularité du porteur Soit le porteur à trois axes suivants : Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 50 CHAPITRE 4. MODÈLES CINÉMATIQUES DIRECT ET INVERSE q3  ? O3 u ""S l" 2 " q2  - " S S " " O2 pu q1 " "  6 l S 3 S S Su P l1 O1 u ~z0 6 O0 u - ~ y0 ~x0 Le modèle géométrique est :   x = s1 (l2 s2 + l3 s23 ) y = −c1 (l2 s2 + l3 s23 )  z = l1 + l2 c2 + l3 c23 La jacobienne s’écrit donc :   c1 (l2 s2 + l3 s23 ) s1 (l2 c2 + l3 c23 ) l3 s1 c23 J = s1 (l2 s2 + l3 s23 ) −c1 (l2 c2 + l3 c23 ) −l3 c1 c23  0 −(l2 s2 + l3 s23 ) −l3 s23 =⇒ det J = l2 l3 s3 (l2 s2 + l3 s23 ) Configurations singulières de type 1 : q3 = 0 ou π : rang(J)=2, d’où la perte d’un ddl. On se ramène ici au cas des configurations singulières du robot plan à deux axes étudié précédemment. ~z0 6 l2 q2 @ R u@     u l3    uP  l1 j - ~ y0 ~x0 Configurations singulières de type 2 : l2 c2 + l3 c23 = 0 : rang(J)=2, d’où la perte d’un ddl. Dans ce cas, le point P est situé sur l’axe ~z0 et l’angle q1 devient inopérant pour modifier la position de P . Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 51 4.7. CONCLUSION ~z0 6 uP aa a q3 3 ala    9  aa u    q2   l @ 2 R u@  l1 j - ~ y0 ~x0 4.7 Conclusion Le modèle cinématique direct donne les performances en vitesse du robot, ses positions singulières et le nombre de postures différentes (aspects). Sous sa forme inverse, le modèle cinématique permet de calculer les consignes de vitesses articulaires en fonction des consignes de vitesses opérationnelles et donc de générer des mouvements standards. De plus, lorsqu’il est très difficile, voire impossible d’inverser analytiquement le modèle géométrique direct, on peut mettre en œuvre des méthodes numériques à l’aide de la matrice jacobienne inverse. La connaissance du modèle cinématique permet également de calculer les efforts articulaires correspondant à un effort statique exercé sur un robot et de calculer les matrices de compliance d’un robot. Il est également nécessaire pour la commande de robot en effort, en vision (et d’une manière plus générale en commande référencée capteur). Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM Chapitre 5 Efforts et modélisation dynamique Lorsqu’un robot se met en mouvement des effets dynamiques non linéaires et dépendant de la posture surviennent. Il est nécessaire de les connaı̂tre pour dimensionner les actionneurs et calculer les lois de commandes des axes. 5.1 Définition Définition 8. On appelle modèle dynamique inverse, l’application donnant les efforts moteurs articulaires Γm (forces ou couples générés par les actionneurs) en fonction des positions q, des vitesses q̇, des accélérations q̈, des efforts de frottements Γf (visqueux et/ou secs) et des efforts d’interaction Γe entre le robot et son environnement : Γm = g(q, q̇, q̈, Γf , Γe ) Le modèle dynamique inverse est non linéaire, couplé (le mouvement d’un axe influe sur celui des autres axes) et dépendant de la posture et des vitesses. Le modèle dynamique peut être obtenu en utilisant le formalisme d’Euler-Lagrange ou le principe fondamental de la dynamique (formalisme de Newton-Euler). Dans la suite, nous développerons succinctement la méthode utilisant le formalisme d’Euler-Lagrange. Pour plus de détails sur ces méthodes, nous renvoyons le lecteur aux nombreux ouvrages de références en mécanique (voir par exemple [7]). 5.2 5.2.1 Modèle dynamique inverse Formalisme de Lagrange Le Lagrangien est généralement défini par la différence entre l’énergie cinétique totale K du système (ici le robot) et l’énergie potentielle totale P du système : L=K−P Les équations d’Euler-Lagrange s’écrivent alors : d ∂L ∂L − = Γi dt ∂ q̇i ∂qi où Γi est l’effort au niveau de l’articulation i. 53 54 CHAPITRE 5. EFFORTS ET MODÉLISATION DYNAMIQUE 5.2.2 Calcul de l’énergie cinétique L’énergie cinétique du segment i s’écrit : 1 1 Ki = mi 0 vTi/0 (Gi ). 0 vi/0 (Gi ) + 0 ω Ti/0 .Īi . 0 ω i/0 2 2 avec : — mi la masse du segment i, — Gi le centre d’inertie du segment i, — Īi le tenseur d’inertie en Gi . En utilisant le modèle cinématique, on a : "0 0 V i/0 (P ) = vi/0 (Gi ) 0ω # = 0 Jci (Gi , q).q̇ i/0 Donc :   mi 0 0 ∅1×3 T  0 1  mi 0 ∅1×3   . 0 Jci (Gi , q) q̇ = 1 q̇T Di (q)q̇ Ki = q̇T 0 Jci (Gi , q) .   0 0 mi ∅1×3  2 2 ∅3×1 ∅3×1 ∅3×1 Īi {z } | Di (q) L’énergie cinétique totale du robot s’écrit donc : K= n X Ki = i=1 n X 1 i=1 2 q̇T Di (q)q̇ Soit sous une forme plus compacte : 1 K = q̇T D(q)q̇ 2 avec D(q) = 5.2.3 Pn i=1 Di (q). Calcul de l’énergie potentielle L’énergie potentielle du segment i est définie par : −−−→ Pi = mi g ~z0 .O0 Gi (q)/R0 = mi g zGi /R0 avec : — mi la masse du segment i, — g la constante universelle de gravitation, — Gi le centre d’inertie du segment i. L’énergie potentielle totale du robot s’écrit donc : P= n X Pi (q) i=1 Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 55 5.2. MODÈLE DYNAMIQUE INVERSE 5.2.4 Calcul du modèle dynamique Connaissant les énergies cinétiques et potentielles du robot, nous pouvons maintenant définir son Lagrangien, soit : 1 L = q̇T D(q)q̇ − P(q) 2 On calcule alors les différents termes des équations d’Euler-Lagrange. On a tout d’abord : ∂L = [D(q)q̇]i ∂ q̇i et donc : "   d ∂L dD(q) = D(q)q̈ + q̇ = D(q)q̈ + dt ∂ q̇i dt i n X ∂D(q) k=1 ∂qk ! # q̇k q̇ i Pour le second terme, on a : 1 ∂D(q) ∂P(q) ∂L = q̇T q̇ − ∂qi 2 ∂qi ∂qi Au final, les équations d’Euler-Lagrange peuvent s’écrire sous la forme suivante : D(q)q̈ + C(q, q̇) + Q(q) = Γ Où : — le terme D(q)q̈ désigne les contributions inertielles, avec,   mi 0 0 ∅1×3 n X 0 c T  0 mi 0 ∅1×3   . 0 Jci (Gi , q) D(q) = Ji (Gi , q) .   0 0 mi ∅1×3  i=1 ∅3×1 ∅3×1 ∅3×1 Īi — le terme C(q, q̇) désigne les contributions centrifuges et de Coriolis,   1 T ∂D(q) ! q̇ q̇ ∂q1 n X 2  ∂D(q) ..  q̇k q̇ −  C(q, q̇) = .   ∂qk k=1 1 T ∂D(q) 2 q̇ ∂qn q̇ — le terme Q(q) désigne les contributions de la gravité,    ∂zG /R  ∂P(q) 0 i ∂q1 n ∂q1  .  X    mi g  . . .  Q(q) =   ..  = ∂P(q) ∂qn i=1 ∂zGi /R0 ∂qn Les efforts articulaires Γ correspondent aux efforts des moteurs moins les efforts de frottements Γf (q, q̇) (visqueux et/ou secs) et les efforts d’interaction Γe entre le robot et son environnement, soit : Γ = Γm − Γe − Γf (q, q̇) En prenant en compte les frottements et les interactions avec l’environnement, le modèle dynamique inverse du robot est finalement défini par : Γm = D(q)q̈ + C(q, q̇) + Q(q) + Γf (q, q̇) + Γe Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 56 CHAPITRE 5. EFFORTS ET MODÉLISATION DYNAMIQUE 5.3 Efforts appliqués par le robot sur son environnement Les efforts d’interaction Γe entre le robot et son environnement, peuvent être calculés directement en utilisant la matrice jacobienne cinématique. Soit 0 T e (P ) le torseur des efforts appliqués par l’organe terminal du robot sur l’environnement exprimé dans le repère R0 : 0 T  T e (P ) = fx fy fz mx my mz Le principe des travaux virtuels implique que : Γe T .q̇ = 0 T T e (P ) . 0 V n/0 (P ) or : 0 V n/0 (P ) = 0 Jcn (P, q).q̇ avec 0 Jcn (P, q) la matrice jacobienne cinématique du segment Sn au point d’application P de la force extérieure. Donc :  T Γe = 0 Jcn (P, q) . 0 T e (P ) 5.4 Efforts dus à la pesanteur et équilibrage statique Le modèle dynamique permet de calculer les couples moteurs nécessaires pour contrecarrer la force de pesanteur. En statique et sans interaction avec l’environnement, le modèle dynamique se réduit à : Γm = Q(q) Le vecteur Q(q) peut être calculé par la méthode générale de Lagrange ou plus simplement en écrivant le principe des travaux virtuels pour chaque segment. Soit 0 T i (P ) le torseur des efforts par le robot pour contrecarrer le poids du solide Si exprimé dans le repère R0 :  T 0 T i (P ) = 0 0 mi g 0 0 0 Comme précédemment, en appliquant le principe des travaux virtuels, il vient : Γm,i = 0 T Jci (Gi , q) . 0 T i (P ) avec 0 Jci (Gi , q) la matrice jacobienne cinématique du segment Si au point Gi . Comme seule la troisième ligne du torseur 0 T i (P ) est non nulle, on a : Γm,i   ∂z 0 mi g G∂qi /R 1   ...     = mi g ∂zGi /R0  ∂qi     0 ... −−−→ avec zGi /R0 = ~z0 .O0 Gi (q)/R0 . Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 57 5.4. EFFORTS DUS À LA PESANTEUR ET ÉQUILIBRAGE STATIQUE (a) ABB IRB4400b (b) Fanuc m2000iA (c) Fanuc m900iA Figure 5.1 – Illustration de l’équilibrage statique. En effectuant cette démarche sur tous les corps constitutifs du robot, il vient : Q(q) = Γm   ∂z ∂z ∂z m1 g G∂q1 1/R0 + m2 g G∂q2 1/R0 + · · · + mn g G∂qn1/R0   ∂z ∂z  m2 g G∂q2 2/R0 + · · · + mn g G∂qn2/R0    =  . . .. ..     ∂zGn /R0 mn g ∂qn La connaissance des couples nécessaires pour contrecarrer la force de pesanteur peut être utilisée pour équilibrer le robot afin de réduire sa consommation énergétique dans sa posture la plus courante. C’est notamment le cas pour les robots pouvant déplacer une charge utile importante. Cet équilibrage statique peut être réalisé par une masse (contrepoids) ou par des ressorts comme l’illustre la figure 5.1. 5.4.1 Évaluation automatique de la masse et de la position du centre de masse d’une charge utile La méthode de calcul de Q(q) peut également être employée pour mesurer la masse et de la position du centre de masse d’une charge utile. Cette mesure permet notamment de réajuster les asservissements des axes en fonction de la charge. Tout d’abord, on place le robot immobile sans charge dans une configuration q0 . On mesure alors les couples moteurs Γm . Le robot étant à l’équilibre nous avons : Γm = Q(q0 ) Le robot va ensuite prendre la charge et revient dans la configuration q0 . On mesure à nouveau les couples moteurs Γ0m . On a alors : Γ0m = Q0 (q0 ) La différence entre Γ0m et Γm ne dépend que de la masse et de la position du centre de Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 58 CHAPITRE 5. EFFORTS ET MODÉLISATION DYNAMIQUE masse de la charge. Cette différence se calcule aisément et on obtient :  ∂z M /R0  M g G∂q 1   . 0   . Γm − Γm =  .  ∂z M /R0 M g G∂q n où M est la masse de la charge et GM son centre de masse. Cette relation fournit n équations pour 4 inconnues, on en déduit alors M et les trois coordonnés de GM . 5.5 Conclusion Le modèle dynamique d’un robot constitue un outil de dimensionnement afin de choisir les actionneurs adéquats, permettant de générer les bons couples et forces moteurs pour permettre au robot d’atteindre les performances spécifiées par un cahier des charges. Il permet également de réaliser la commande à couple calculé présentée au chapitre 7. Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet Chapitre 6 Génération de mouvement La génération de mouvement a pour objectif de calculer les consignes en position, vitesse ou accélération des axes du robot permettant de réaliser une tâche. Cette tâche est décrite à l’aide d’un programme constitué d’une séquence d’instructions élémentaires. En fonction des instructions, la génération de mouvement peut s’effectuer dans l’espace articulaire ou dans l’espace opérationnel. 6.1 Programmation d’un robot On trouve principalement deux types de programmation : l’apprentissage et la programmation hors ligne. 6.1.1 Programmation par apprentissage La programmation par apprentissage consiste à mémoriser, directement sur le site, les points et/ou les trajectoires à suivre. Pour cela, l’opérateur peut piloter le robot en mode manuel à l’aide du pendant dans différents repères (repère atelier, repère outil, repère lié à une tâche, etc.). Il est également possible d’utiliser un dispositif d’apprentissage direct fixé au poignet du robot. L’opérateur guide alors directement l’organe terminal du robot à l’aide d’une poignée spéciale dotée d’un capteur de force. Une commande en force déplace le robot afin de maintenir un effort nul sur la poignée. 6.1.2 Programmation hors ligne Une autre manière de programmer un robot est d’utiliser la programmation hors ligne (PHL). Cela consiste à réaliser, tester et programmer les mouvements du robot en simulation (CAO robotique) et, une fois cette étape terminée, à charger le programme directement dans l’armoire de commande du robot réel. La temps passé sur le site s’en trouve en principe réduit, au profit du bureau d’études. Cela permet donc de programmer un robot pour une nouvelle tâche sans interrompre son fonctionnement en production, mais également de réaliser des tâches très difficiles à programmer par apprentissage (ex : suivi de trajectoires gauches ou choix d’une configuration pour atteindre un point (( délicat ))). La programmation hors ligne impose que le robot soit bien étalonné et que sa position vis-à-vis de la tâche soit précisément connue. 6.1.3 Langages et programmes Quelque soit la méthode utilisée, les trajectoires sont représentées sous forme d’une séquence de mouvements élémentaires formant un programme. Le langage de programmation est propre à chaque fabricant. Il n’existe pas de langage robotique normalisé. 59 60 CHAPITRE 6. GÉNÉRATION DE MOUVEMENT qd (t) qk Générateur de mouvement q(t) + - Contrôleurs Axes q(t) Figure 6.1 – Génération de mouvement dans l’espace articulaire (qk désigne la position finale à atteindre, qd (t) la position désirée et q(t) la position courante des axes). Cependant, on retrouvera dans tous les langages, des instructions permettant de déplacer l’organe terminal d’un point à un autre avec une trajectoire libre ou avec une trajectoire contrainte (trajectoire rectiligne, circulaire, ajout de points de passage, etc.). Ces instructions (( classiques )) permettent donc de réaliser : — des mouvements de type (( point-à-point )), où l’on souhaite que le robot passe d’une configuration à une autre, sans se préoccuper de la trajectoire, si ce n’est pour aller le plus vite possible et en évitant les obstacles (prise-dépose, soudure par point, etc.), ces mouvements sont générés dans l’espace articulaire, — des mouvements de type (( interpolés )), où l’on souhaite au contraire maı̂triser toute la trajectoire de l’effecteur, avec une loi horaire donnée (suivi de contour, dépôt de joint, dépôt de colle, soudure en continu, découpe, ébavurage, usinage, etc.), ces mouvements sont générés dans l’espace opérationnel, — des mouvements de type (( référencés capteurs )), c’est-à-dire que le robot se déplace à partir d’une information provenant d’un capteur mesurant l’environnement (système de vision pour repérage et suivi de cible, capteur d’effort pour le contrôle des efforts de contact avec l’environnement). Ceci peut, le cas échéant, correspondre à une boucle d’asservissement externe (compliance active pour l’insertion, asservissement d’effort pour le suivi de contour, etc.) 6.2 Génération de mouvement dans l’espace articulaire La commande point-à-point, probablement la majorité des mouvements demandés aux robots, correspond au cas où la tâche est définie comme une succession de situations, notées xk (position et orientation) à atteindre par l’effecteur du robot. A chaque situation opérationnelle xk correspond la situation articulaire qk . On cherche donc à générer les trajectoires pour que le déplacement entre deux configurations consécutives qk à qk+1 soit le plus rapide possible. Si le robot doit s’arrêter à qk+1 pour y exécuter une tâche, c’est-à-dire avoir une vitesse nulle dans cette situation, il s’agit d’un point d’arrêt. Si le robot doit simplement passer par ce point sans s’y arrêter, pour éviter un obstacle par exemple, il s’agit d’un point de passage. La commande du robot s’effectue donc dans l’espace articulaire comme l’illustre le schéma de la figure 6.1. La commande dans l’espace articulaire ne nécessite pas l’utilisation du MGI et n’est donc pas affectée par les configurations singulières. En revanche, le déplacement de l’effecteur en ligne droite dans l’espace opérationnel, qui est la trajectoire la plus courte de celui-ci entre deux points, ne correspond donc pas nécessairement à la trajectoire la plus rapide, qui consiste à amener les axes du robot le plus rapidement possible de qk à qk+1 , ce qui dans le cas général ne conduit pas à un déplacement rectiligne de l’effecteur dans l’espace opérationnel. Plusieurs méthodes existent pour générer une trajectoire point-à-point en temps minimal. On peut notamment citer l’interpolation polynomiale (de degré trois ou cinq), la loi bang-bang Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 6.2. GÉNÉRATION DE MOUVEMENT DANS L’ESPACE ARTICULAIRE 61 avec ou sans palier de vitesse. Dans certains cas, on peut également envisager de générer des trajectoires plus douces, à jerk constant, voire d’ordre plus élevé. Nous ne développerons ici que la loi bang-bang avec palier de vitesse qui est utilisé dans la plupart des contrôleurs industriels. 6.2.1 Loi bang-bang avec palier de vitesse On s’intéresse ici à la génération de mouvement entre entre deux points d’arrêts, de qk à qk+1 . On pose ∆q = qk+1 − qk . Sur chaque axe i, la vitesse maximale est notée vi et l’accélération maximale est notée ai . Ces valeurs peuvent se déduire directement des capacités physiques du robot. On note également Ti le temps nécessaire à l’axe i pour effectuer le mouvement. Enfin, pour simplifier l’exposé, on supposera ∆qi > 0 pour tous les axes i. En fonction, de ∆qi , vi et ai , deux situations sont possibles : une loi bang-bang ou une loi bang-bang avec palier de vitesse. Dans une loi bang-bang, l’accélération maximale est maintenue sur la première moitié du mouvement, puis l’opposée de l’accélération maximale est appliquée sur le reste du mouvement (cf. figure 6.2). Ceci n’est réalisable que si la vitesse reste inférieure à la vitesse maximale admissible par l’axe i. L’accélération étant constante et la vitesse nulle au départ, la distance parcourue par l’articulation i pendant Ti /2 est :  2 ∆qi 1 Ti = ai 2 2 2 d’où : Ti 2 = q ∆qi ai La vitesse en cet instant est alors : r ∆qi p Ti ai . = ai . = ai .∆qi 2 ai Cette vitesse doit être inférieure à vi pour pouvoir appliquer la loi bang-bang, c’est-à-dire que : p ai .∆qi ≤ vi soit : ∆qi ≤ vi2 ai Dans le cas contraire, la vitesse maximale est atteinte avant Ti /2. Dans ce cas, on utilise une loi bang-bang avec palier de vitesse (cf. figure 6.2). La vitesse maximale est atteinte à l’instant ti = vi /ai , puis l’accélération est nulle jusqu’à Ti − ti où le freinage commence. On a finalement : i Ti = ∆q vi + ti Selon que l’on atteint ou non les limites de vitesse et d’accélération du robot, on réalisera pour chaque axe un déplacement en temps minimal selon la loi bang-bang avec ou sans palier de vitesse. Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 62 CHAPITRE 6. GÉNÉRATION DE MOUVEMENT qi qi ai ai t t -ai -ai qi qi vi vi t t ∆qi ∆qi t t ti Ti Ti =2 ∆qi ai Ti - ti Ti = Ti ∆qi +ti ; ti = vi vi ai Figure 6.2 – Loi bang-bang sans (à gauche) ou avec palier de vitesse (à droite). 6.2.2 Synchronisation des axes du robot La synchronisation des axes, non indispensable, permet de régler l’ensemble des axes sur l’axe le plus lent et ainsi de moins solliciter les actionneurs sans dégrader le temps de déplacement de l’effecteur d’un point au suivant. Une méthode simple consiste à ralentir les axes les plus rapides pour qu’ils terminent leur mouvement en même temps que le plus lent. Il en effet inutile de donner leur vitesse maximale aux autres axes, ce qui les sollicite inutilement, mécaniquement et énergétiquement, car c’est de toute façon l’axe le plus lent qui fixe le temps mis pour effectuer le mouvement d’ensemble. On associe à chaque articulation un coefficient de réduction νi inférieur 1. L’accélération de l’axe i est ainsi νi ai . Ainsi, si l’axe i suit une loi bang-bang, son accélération νi ai est telle que : νi ai = et donc : νi = 4∆qi 2 Tmax 4∆qi 2 ai Tmax avec Tmax le temps de déplacement de l’axe le plus lent. De même, si l’axe i suit une loi bang-bang avec palier de vitesse, sa nouvelle accélération est : vi2 νi ai = vi Tmax − ∆qi et donc : νi = vi2 (vi Tmax − ∆qi )ai L’algorithme 1 résume la génération de loi bang-bang avec palier de vitesse et synchronisation des axes. Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 6.2. GÉNÉRATION DE MOUVEMENT DANS L’ESPACE ARTICULAIRE 63 Algorithme 1 : Algorithme de génération de loi bang-bang avec palier de vitesse et synchronisation des axes. Données : qi,k les coordonnées articulaires initiales de chaque axe qi,k+1 les coordonnées articulaires à atteindre par chaque axe vi les vitesses maximales de chaque axe ai les accélérations maximales de chaque axe début pour chaque articulation i faire ∆qi ← qk+1,i − qk,i si ∆qi ≤ vi2 ai Ti ← 2 sinon Ti ← fin alors q ∆qi ai ∆qi vi + vi ai fin Tmax ← max Ti 1≤i≤n pour chaque articulation i faire v2 si ∆qi ≤ aii alors i νi ← ai4∆q ; T2 max ti ← sinon νi ← ti ← Tmax 2 vi2 (vi Tmax −∆qi )ai vi νi ai ; fin fin fin Résultat : Tmax , νi et ti pour chaque axe i 6.2.3 Synchronisation des axes du robot avec lois homothétiques Il est également intéressant que les phases d’accélération et de décélération soient complètement synchrones, c’est-à-dire que ti = tj quels que soient i et J. Ceci permet notamment d’obtenir des asservissements plus précis. En revanche, dans la plupart des cas, le déplacement alors obtenu n’est pas minimal. On souhaite donc avoir Ti = Tj = T et ti = tj = t quels que soient i et J. Pour cela, on associe à chaque articulation des coefficients νi et λi inférieurs 1. L’accélération de l’axe i est ainsi νi ai et sa vitesse λi vi . Chaque articulation suivant une loi bang-bang avec palier de vitesse (cf. figure 6.2). On peut écrire pour tout i : ∆q1 λ 1 v1 ∆qi λi vi T = + = + λ 1 v1 ν1 a1 λ i vi νi ai ainsi que : λ 1 v1 λ i vi t= = ν1 a1 νi ai On en déduit que : v1 ∆qi λi = λ1 vi ∆q1 Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 64 CHAPITRE 6. GÉNÉRATION DE MOUVEMENT Algorithme 2 : Algorithme de génération de loi bang-bang avec palier de vitesse et synchronisation homothétique des axes. Données : qi,k les coordonnées articulaires initiales de chaque axe qi,k+1 les coordonnées articulaires à atteindre par chaque axe vi les vitesses maximales de chaque axe ai les accélérations maximales de chaque axe début h i 1 λ1 ← min 1, vv1i ∆q ∆qi ; i=2...n h i 1 ν1 ← min 1, aai1∆q ∆qi ; i=2...n pour chaque articulation i faire ∆qi ; λi ← λ1 vv1i ∆q 1 ∆qi νi ← ν1 aa1i ∆q ; 1 fin 1 + λν11av11 ; Tmax ← λ∆q 1 v1 si λν11av11 < Tmax alors 2 λ1 v1 t ← ν1 a1 ; sinon t ← Tmax 2 ; fin fin Résultat : Tmax , t, νi et λi pour chaque axe i Or 0 ≤ λi ≤ 1, donc : 0 ≤ λ1 ≤ vi ∆q1 v1 ∆qi On montre de même que : ai ∆q1 a1 ∆qi Le temps de déplacement T est minimal quand ν1 et λ1 sont maximales. On choisit alors : h i  1 λ1 = min 1 , vvi ∆q 1 ∆qi i=2...n h i a ν1 = min 1 , i ∆q1 a1 ∆qi 0 ≤ ν1 ≤ i=2...n Si le déplacement est très court, le palier peut être absent et on retombe alors sur une loi bang-bang simple pour tous les axes. Cette situation arrive quand λν11av11 ≥ Tmax 2 , on fixera alors Tmax t à 2 . L’algorithme 2 résume la génération de loi bang-bang avec palier de vitesse et synchronisation homothétique des axes. C’est ce type de loi qui est généralement implantée sur les robots industriels. 6.2.4 Synthèse Une fois calculés les coefficients νi et les temps Tmax et ti par l’une des deux méthodes, la loi temporelle envoyée au contrôleur de chaque axe i est définie par :  1 2  pour 0 ≤ t < ti qk,i + 2 νi ai t 1 2 qd,i (t) = qk,i − 2 νi ai ti + νi ai ti t pour ti ≤ t < Tmax − ti   1 2 qk,i νi ai ti (Tmax − ti ) − 2 νi ai (t − Tmax ) pour Tmax − ti ≤ t < Tmax Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 6.3. GÉNÉRATION DE MOUVEMENT DANS L’ESPACE OPÉRATIONNEL 65 Figure 6.3 – Exemple d’arc paramétré définissant la trajectoire de l’organe terminal dans l’espace opérationnel. Figure 6.4 – Illustration de la génération d’une trajectoire rectiligne de l’organe terminal. 6.3 Génération de mouvement dans l’espace opérationnel Pour certaines applications, il est nécessaire de contrôler la trajectoire de l’organe terminal à cours du temps par une loi horaire. 6.3.1 Définition de la trajectoire La trajectoire de l’organe terminal (position et orientation) peut être décrite à l’aide d’un arc paramétré p(u) dans l’espace opérationnel, p(u) étant de classe C 2 et défini de [0; 1] dans R3 . Afin de déterminer la loi horaire de l’organe terminal, on utilise l’abscisse curviligne et un profil de vitesse. L’abscisse curviligne de p(u) est définie par : Z u dp k kdx s(u) = du 0 On souhaite généralement imposer une vitesse tangentielle constante v sur cette trajectoire, soit : Z ds d u dp (u) = v(u) = k kdx dt dt 0 du Cette équation admet des solutions analytiques pour des trajectoires simples comme une ligne droite ou un arc de cercle. Pour des trajectoires plus complexes, on utilisera un algorithme d’intégration numérique. Pour une trajectoire rectiligne entre une position initiale A et une position finale B, on a : −−→ −−→ p(u) = O0 A + AB.u Si on souhaite imposer une vitesses v constante sur cette trajectoire, le temps de parcours est alors Tmax = −→ kABk v et donc : u(t) = Guillaume Laurent et Nicolas Chaillet t Tmax v = −−→ .t kABk Université de Bourgogne Franche-Comté – UFC – ENSMM 66 CHAPITRE 6. GÉNÉRATION DE MOUVEMENT xd (t) p, v MGI Générateur de mouvement qd (t) q(t) + - Contrôleurs Axes x(t) MGD Figure 6.5 – Génération de mouvement dans l’espace operationnel (xk désigne la position finale à atteindre, xd (t) la position désirée et x(t) la position courante de l’organe terminale. La loi horaire dans l’espace opérationnel s’écrit au final : −−→ xd (t) = p(u(t)) = O0 A + −→ AB −→ .v.t kABk La poursuite de la trajectoire xd (t) par l’organe terminal du robot consiste à fournir à sa commande numérique une succession de valeurs xdk où l’indice k correspond à l’instant d’échantillonnage kT . Un transformateur de coordonnées doit donc fournir aux asservissements des axes la série de valeurs qdk , correspondant aux xdk . La commande du robot dans l’espace opérationnel nécessite donc l’utilisation du modèle géométrique direct et inverse pour transformer les coordonnées d’un espace à l’autre comme l’illustre la figure 6.5. L’utilisation du MGI pose plusieurs problèmes. D’une part, il faut s’assurer que la position opérationnelle désirée est atteignable pour que le MGI admette au moins une solution. Il faut également vérifier que la position désirée appartienne au même aspect que la position courante. D’autre part, le franchissement d’une configuration singulière peut poser problème, puisque toutes les trajectoires ne sont pas admissibles en raison de la perte de degrés de liberté. Nous verrons à la fin du chapitre une technique pour réaliser ce franchissement. Enfin, il faut s’assurer, par exemple à l’aide du modèle cinématique, que la trajectoire est réalisable par le robot du point de vue des vitesses et des accélérations articulaires. 6.3.2 Inversion numérique du modèle géométrique direct Dans le cas où l’inversion analytique du MGD s’avère complexe ou impossible, on peut calculer q en fonction de x par inversion numérique, en utilisant l’inverse de la matrice jacobienne. Le problème est donc ici de calculer le vecteur articulaire q∗ correspondant à un vecteur opérationnel désiré x∗ . Le vecteur q∗ cherché est donc une solution de l’équation : x∗ = f (q) A partir de l’équation précédente, on introduit la fonction d’erreur suivante : e(q) = f (q) − x∗ Le problème de l’inversion revient alors à trouver un zéro de cette fonction d’erreur. On peut pour ce faire utiliser l’algorithme de Newton-Raphson (cf. algorithme 3). Partant d’un point q0 (de préférence proche du zéro à trouver), la méthode consiste à une approximation affine p de e autour du point q0 à l’aide de son développement de Taylor au premier ordre : p(q) = e(q0 ) + J(q0 ).(q − q0 ) Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 6.3. GÉNÉRATION DE MOUVEMENT DANS L’ESPACE OPÉRATIONNEL 67 Algorithme 3 : Algorithme de Newton-Raphson pour l’inversion numérique du MGD. Données : x∗ les coordonnées opérationnelles à atteindre ; J(q) la matrice jacobienne ; q0 , tel que x0 = f (q0 ) ne soit (( pas trop éloigné )) de x∗ ; début tant que critère d’arrêt non satisfait faire Déterminer qk+1 comme solution de l’équation : x∗ = f (qk ) + J(qk ). (q − qk ) C’est-à-dire : qk+1 ← qk + [J(qk )]−1 . (x∗ − f (qk )) ; fin fin Résultat : qk+1 avec J(q0 ) la matrice jacobienne de la fonction e. La jacobienne de e est identique à celle de f puisque x∗ est constant. On calcule alors un nouveau point q1 solution de l’équation : e(q0 ) + J(q0 ).(q − q0 ) = 0 Soit : q1 = q0 − [J(q0 )]−1 .e(q0 ) Sous certaines hypothèses, le point q1 sera plus proche du vrai zéro de e que le point q0 précédent. On peut ensuite réitérer le processus, c’est-à-dire mettre définir qk+1 comme la solution de l’équation : e(qk ) + J(qk ).(q − qk ) = 0 soit en remplaçant la fonction e : x∗ − f (qk ) + J(qk ).(q − qk ) = 0 Ce qui correspond à définir la récurrence suivante : qk+1 = qk − [J(qk )]−1 . (f (qk ) − x∗ ) La convergence de cette suite est quadratique à condition que x∗ soit atteignable, que le vecteur initial q0 ne soit (( pas trop éloigné )) de q∗ et que tous les J(qk ) calculés soient inversibles. Elle ne permet par contre que le calcul d’une seule solution au problème, alors qu’il pourrait éventuellement y avoir plusieurs postures possibles pour une même disposition opérationnelle x∗ . En pratique, on arrête le calcul quand un critère d’arrêt se vérifie ou quand on a effectué un certain nombre d’itération. Les critères d’arrêt possibles sont : kf (qk ) − x∗ k < ε1 et kqk+1 − qk k < ε2 où ε1 , ε2 ∈ R+ représentent des erreurs d’approximations caractérisant la qualité de la solution numérique. Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 68 6.3.3 CHAPITRE 6. GÉNÉRATION DE MOUVEMENT Commande incrémentale d’un robot Si, à chaque instant kT , le transformateur de coordonnée ne peut calculer qdk à partir du MGI, il est possible d’utiliser l’algorithme précédent sous la forme de la (( commande incrémentale )) suivante :  −1  qdk+1 = qdk + J(qdk ) . xdk+1 − f (qdk ) Cette commande incrémentale sera d’autant plus précise que les δqk = qdk+1 − qdk et δxk = xdk+1 − xdk seront petits. Pour que cette méthode puisse être mise en œuvre, il faut : — la connaissance de valeurs initiales x0 et q0 , — une période d’échantillonnage suffisamment faible vis-à-vis des vitesses de déplacement mises en jeu, — une remise à jour à chaque pas d’échantillonnage de la jacobienne J(qdk ), — la résolution d’un système d’équations linéaires (dans la mesure où la jacobienne est inversible et bien conditionnée). 6.3.4 Inversion de la matrice jacobienne Jusqu’à présent, nous avons considéré que la jacobienne J était inversible. Pourtant, il y a de nombreux cas où J n’est pas inversible. D’une part, lorsque le robot est redondant (nombre de degrés de liberté d inférieur au nombre d’axes n) la matrice J, de dimension (d × n), n’est pas carrée. Dans ce cas, on peut par exemple fixer (n−d) variations articulaires δqi et calculer les autres en fonctions des δxi en réduisant la matrice J. Le problème est alors que l’on n’a pas forcément de critère clair pour savoir quels δqi on fixe et à quelle valeur. On peut alors faire appel au calcul de la pseudo-inverse de J, notée J+ , qui s’obtient mathématiquement par minimisation d’un critère quadratique (matrice qui vérifie J.J+ = I) En effet, si l’on souhaite minimiser l’incrément de déplacement articulaire, autrement dit dans le cas d’une commande incrémentale minimiser les vitesses articulaires, on cherche à minimiser le critère quadratique 12 qT .q et on obtient la pseudo-inverse suivante : J+ = JT JJT −1 NB: Du point de vue mathématique, la solution générale de l’inversion du modèle cinématique est : q̇ = J+ ẋ + (I − J+ J)z, où z désigne un vecteur arbitraire de Rn . Le premier terme donne, comme vu précédemment, une solution minimisant la norme euclidienne kq̇k2 . Le second terme peut être utilisé pour satisfaire des contraintes d’optimisation supplémentaires, comme par exemple l’éloignement des butées articulaires, l’éloignement des configurations singulières, les efforts moteurs des actionneurs ou encore la manipulabilité du robot, c’est-à-dire son aptitude à générer les déplacements demandés à partir d’une posture donnée. D’autre part, il a été vu précédemment que dans le cas de configurations singulières ou de redondances, le déterminant de la matrice jacobienne devient nul, ce qui interdit l’inversion de cette matrice. On peut alors, comme dans le cas précédent, utiliser la pseudo-inverse de J, qui permet de calculer des déplacements articulaires minimisant un critère. Le déplacement engendré du robot ne sera peut être pas exactement le même que celui δx souhaité, mais peut être acceptable jusqu’à ce que la singularité soit franchie. Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 6.4. CONCLUSION 6.4 69 Conclusion Réalisée dans l’espace articulaire ou dans l’espace opérationnel, la génération de mouvement fournit une loi horaire qd,i (t) pour chacun des axes i. Il reste ensuite que chaque position articulaire qi (rotation ou translation) soit asservie à la consigne articulaire qd,i (t) correspondante. Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM Chapitre 7 Commande des axes (dans l’espace articulaire) La commande des axes dans l’espace articulaire a pour objectif d’asservir la position articulaire q(t) sur la trajectoire qd (t) précédemment calculée. Sur la plupart des robots industriels, les axes sont asservis séparément ainsi que le présente la section suivante, mais les effets négligés peuvent intervenir pour dégrader les performances des asservissements, notamment aux vitesses importantes (l’augmentation de la vitesse des axes a notamment pour effet l’augmentation de la contribution des efforts centrifuges). Il existe des lois de commande qui permettent de prendre en compte efficacement et sans approximation la dynamique totale du robot, mais celles-ci sont plus complexes et gourmandes en temps de calcul. 7.1 Chaı̂ne de commande d’un robot industriel La chaı̂ne de commande d’un robot industriel est composée des éléments suivants : — le calculateur est chargé de calculer les consignes de couple ou de vitesse des actionneurs. Il est constitué d’une unité centrale, d’une unité de stockage, d’interfaces de communications (série, ethernet, etc.), et de ports d’entrées/sorties (CAN, CNA, E/S numériques, compteurs, etc.). — les actionneurs mettent la structure en mouvement. Il s’agit le plus souvent d’actionneurs électromagnétiques mais des actionneurs hydrauliques peuvent être utilisé pour des robots portant de très fortes charges. Les éléments périphériques du robot (préhenseurs mécaniques, préhenseurs par dépression, etc.) utilisent principalement des actionneurs pneumatiques. Dans le cas des actionneurs électromagnétiques, des variateurs assurent la régulation du couple ou de la vitesse du moteur (généralement par une régulation du courant). Les variateurs gèrent aussi la sécurité (( bas niveau )) du robot (protection contre les surcharges, protection contre une défaillance interne du variateur, gestions des fins de course, gestions des arrêts d’urgences). — les transmissions transmettent le mouvement des actionneurs à la structure (avec généralement un facteur de réduction). — la structure mécanique réalise le mouvement. — les capteurs proprioceptifs mesurent des grandeurs internes au robot (positions, vitesses, couples, forces). — des capteurs extéroceptifs peuvent renseigner le calculateur sur son environnement (ouverture d’un porte, etc.) ou permettre de réaliser une commande référencée capteur (commande en force, asservissement visuel, etc.). 71 72 CHAPITRE 7. COMMANDE DES AXES (DANS L’ESPACE ARTICULAIRE) Alimentation de puissance Commandes moteurs Calculateur Forces et couples moteurs Moteurs (+ variateurs) Forces et couples transmis Transmissions Structure mécanique Capteurs proprioceptifs extéroceptifs Environnement opérateur Figure 7.1 – Chaı̂ne de commande d’un robot industriel. qd,i + ei - Γm,i Controleur Axe i qi qi Figure 7.2 – Commande individuelle des axes 7.2 Commande individuelle des axes La commande individuelle (également appelée commande découplée) consiste à asservir indépendamment chaque axe sans tenir compte des couplages dynamiques et de l’influence de la posture sur l’inertie. Le couple moteur de chaque axe est calculé par un contrôleur dédié (généralement de type PID) comme le montre la figure 7.2. On se place dans la situation où l’on néglige les effets non linéaires, les variations des coefficients en fonction de la posture et les couplages dynamiques. Par ailleurs, on suppose les effets de la gravité majoritairement compensés par un système mécanique (cf. chapitre 5). Dans ces conditions et en l’absence d’efforts d’interaction avec l’environnement, le comportement dynamique de chaque axe i du robot peut s’écrire comme suit : aii q̈i = Γmi − fi q̇i − Γpi où fi représente le coefficient de frottement visqueux de l’axe et Γpi représente l’effort de perturbation correspondant à tous les effets dynamiques négligés. Dans le domaine de Laplace, on a donc : Γmi (p) = (aii p2 + fi p)qi (p) + Γpi (p) D’où l’expression de la fonction de transfert de l’axe : qi (p) = Université de Bourgogne Franche-Comté – UFC – ENSMM Γmi (p) − Γpi (p) (aii p + fi )p Guillaume Laurent et Nicolas Chaillet 73 7.3. COMMANDE À COUPLES CALCULÉS A partir de là, il est possible de synthétiser un PID permettant un asservissement convenable de l’axe. A titre d’exemple aisément calculable, si on prend la loi de commande simple suivante, correspondant à un régulateur PD (pour alléger l’écriture, on n’indique plus l’indice i correspondant à l’axe i considéré) : Γm (t) = Kp e(t) − Kd q̇(t) où e(t) = qd (t) − q(t). D’où le comportement en boucle fermée : Γm (p) = Kp qd (p) − (Kp + Kd p)q(p) = (ap2 + f p)q(p) + Γp (p) soit : q(p) = F (p)qd (p) − avec : F (p) = 1 F (p)Γp (p) Kp 1 a 2 Kp p + Kd +f Kp p +1 Ceci correspond donc à un système du deuxième ordre dont on peut aisément régler la rapidité et la stabilité (pulsation propre et amortissement) grâce à Kp et Kd . 7.3 Commande à couples calculés Le comportement d’un robot est en réalité fortement non linéaire, variable dans le temps (dépendant de la posture) et à couplage dynamique (le mouvement d’un axe influe sur celui des autres axes). La commande individuelle des axes peut générer des différences de comportement importantes en boucle fermée (temps de réponse, stabilité, précision) selon le domaine de l’espace atteignable où le robot évolue et quand le robot se déplace à grande vitesse. La commande à couples calculés (également appelée commande dynamique) utilise le modèle dynamique inverse du robot afin de compenser tous ces effets. On rappelle que le modèle dynamique de la structure mécanique d’un robot (sans prendre en compte ni la contribution électromagnétique des moteurs, ni les interactions avec l’environnement), peut s’exprimer de la manière générale suivante : Γm = D(q)q̈ + C(q, q̇) + Q(q) + Γf (q, q̇) La commande à couples calculés consiste à imposer aux axes les couples ou forces Γm tels que : Γm = D̂(q)u + Ĉ(q, q̇) + Q̂(q) + Γ̂f (q, q̇) avec u un vecteur de contrôle. Le symbole ˆ désigne ici les grandeurs modélisées. La figure 7.3 illustre cette équation. Si le modèle correspond (( suffisamment convenablement )) à la réalité du comportement dynamique du robot, alors le robot associé à sa commande présente le comportement dynamique suivant : u = q̈ Ainsi, chaque axe est découplé des autres et linéarisé. Il devient un double intégrateur : ui = q̈i ! Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 74 CHAPITRE 7. COMMANDE DES AXES (DANS L’ESPACE ARTICULAIRE) Ĉ(q, q̇) + Q̂(q) + Γ̂f (q, q̇) qd + e Contrôleur - u q Γm + + D̂(q) q Robot q Figure 7.3 – Commande à couples calculés q Q̂(q) qd + e - Contrôleur Γm + + q Robot q Figure 7.4 – Commande avec compensation de la gravité On peut alors choisir ici un régulateur linéaire classique, comme par exemple un régulateur PD : ui (t) = Kpi ei (t) − Kdi q̈i (t) Comme ui = q̈i , on obtient alors dans le domaine de Laplace : p2 qi (p) = Kpi qdi (p) − (Kpi + pKdi )qi (p) soit : qi (p) = 1 1 2 Kpi p + Kdi Kpi p +1 qdi (p) On peut alors régler la dynamique de l’axe i en jouant sur Kpi et Kdi . NB: Un compromis intéressant entre la commande individuelle des axes et la commande à couples calculés est de n’utiliser que le terme Q(q) pour compenser la gravité. Cette version (( dégradée )), qui néglige les termes inertiels, centrifuges et de Coriolis, est représentée par le schéma de la figure 7.4. 7.4 Conclusion Dans ce chapitre, nous avons présenté deux méthodes classiques de commande des axes mais il existe de nombreuses autres approches (commande prédictive, commande passive, commande adaptative, etc.). Pour plus d’informations, nous renvoyons le lecteur aux ouvrages de référence [4, 10]. Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet Chapitre 8 Choix d’un robot Au départ, la décision de mettre en œuvre un système robotisé relève de choix sur les flux de production et leur gestion et de choix économiques, donc correspond plus à un problème de productique qu’à un problème de robotique. Ceci n’est pas évoqué dans ce chapitre, qui résume très succinctement quelques aspects techniques de conception d’une cellule robotisée. Du point de vue du robot, la synthèse d’une telle cellule pose principalement quatre types de problèmes : — le choix du robot, — le choix du préhenseur, — le placement du robot dans la cellule, — le choix et la génération des trajectoires entre les points à atteindre. 8.1 8.1.1 Choix du robot Critères géométriques Deux critères principaux sont à prendre en compte : le nombre de degrés de liberté de l’effecteur requis par la tâche à réaliser, et le domaine atteignable nécessaire à l’exécution de cette tâche. D’une manière générale, des théories des mécanismes existent pour obtenir une cinématique de robot permettant de générer les ddl nécessaires et le domaine atteignable requis d’une manière optimisée. Mais ces théories sont souvent très complexes et l’on se tournera en général plutôt vers l’offre des constructeurs. Nombre de degrés de liberté Il s’agit ici de caractériser le nombre de degrés de liberté dans l’espace dont l’effecteur a besoin pour réaliser convenablement sa ou ses tâches. Par exemple, un robot prenant des biscuits sur un tapis roulant n’aura en général besoin que de travailler dans le plan du tapis à condition que les biscuits soient à ranger dans des boı̂tes de même orientation (coplanaire) que le tapis. Ainsi, il n’aura dans ce cas besoin que de 4 ddl pour permettre la prise-dépose : les 3 ddl du plan (a priori horizontal) considéré et un ddl en z (altitude). Il s’agit donc bien ici de déterminer les degrés de liberté de la tâche, pour adapter le nombre d’axes du robot au besoin (attention à ne pas le sous-estimer ni le sur-estimer). NB: Dans certains cas, où l’environnement est envahi d’obstacles, une redondance peut être intéressante car elle offre une infinité de choix de configurations possibles pour atteindre la situation considérée. 75 76 CHAPITRE 8. CHOIX D’UN ROBOT P X d : location désirée X i : locations atteintes X g : barycentre des locations atteintes R Figure 8.1 – Illustration géométrique de la justesse P et de la fidélité R. Domaine atteignable Le domaine atteignable en position est défini par sa forme géométrique et son volume. Il faut donc vérifier que l’ensemble des points à atteindre et/ou des trajectoires à effectuer soit inclus dans un volume pouvant lui-même être inclus dans le domaine atteignable. Les documentations des constructeurs donnent le domaine atteignable en position, mais en général pour une orientation quelconque. Il ne faut pas oublier que ce domaine se réduit lorsque l’on souhaite par exemple travailler à orientation fixe. On peut donc être amené à représenter soi-même le domaine atteignable. Ceci peut-être très fastidieux (( à la main )) et se réalise plus aisément à l’aide d’un outil de CAO robotique. NB: En général, le domaine atteignable est donné au centre de la bride sur laquelle on fixera l’organe terminal ou, dans le cas d’un poignet à axes concourants, au point de concours des axes. Précision Un robot est dit précis (ou exact) si il est à la fois juste et fidèle. Les conditions d’expériences permettant de mesurer la justesse et la fidélité d’un robot sont définies par la norme ISO9283 [1]. La démarche est la suivante : on définit xd une (( situation )) cible (position et orientation programmées que l’on souhaite atteindre) :  T xd = xd yd zd αd βd γd On demande au robot de se positionner n fois en xd , en suivant toujours la même trajectoire (30 cycles dans la norme). On nomme xg le barycentre de l’ensemble des n locations effectivement atteintes, notées xi et mesurés par un système de mesure externe. On définit alors la justesse et la fidélité comme suit (voir également la figure 8.1). Définition 9 (Justesse). La justesse statique en position d’un robot est définie par l’écart entre la position moyenne obtenue et la position désirée (valeur vraie), c’est-à-dire par la distance P entre xd et xg , telle que : q P = (xg − xd )2 + (yg − yd )2 + (zg − zd )2 avec : n n n i=1 i=1 i=1 1X 1X 1X x i ; yg = yi ; z g = zi . xg = n n n Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 77 8.1. CHOIX DU ROBOT Définition 10 (Fidélité/répétabilité). La fidélité statique d’un robot (appelée aussi répétabilité) est caractérisée par la dispersion spatiale des positions atteintes : R = ¯l + 3Sl Où : — ¯l est la distance moyenne au barycentre : n X ¯l = 1 li n i=1 — li est la distance entre xi et le barycentre xg : q li = (xi − xg )2 + (yi − yg )2 + (zi − zg )2 — Sn−1 est l’estimateur de l’écart-type : v u u Sl = t (8.1) n 1 X (li − ¯l)2 n−1 i=1 Des définitions simailaires existent définissant la justesse et la fidélité statique en orientation [1]. NB: Attention aux faux amis ! En anglais, le terme precision désigne souvent la fidélité/répétabilité. La justesse est traduite par le terme accuracy. Les erreurs de justesse et de fidélité sont dues aux performances des asservissements, à la résolution des capteurs, aux défauts des organes mécaniques (frottements secs, jeux). En ce qui concerne la justesse, une grande partie de sa dégradation peut venir des erreurs de modèle pour le transformateur de coordonnées x −→ q (en particulier, les valeurs des paramètres géométriques du modèle ne correspondent pas exactement à celles du robot). La fidélité est beaucoup plus importante que la justesse, notamment lorsque le robot est programmé par apprentissage. Des problèmes liés à la précision peuvent cependant apparaı̂tre lorsqu’on utilise la programmation hors ligne (la CAO considère les asservissements parfaits : consigne = mesure). NB: La fidélité est toujours indiquée dans les documentations constructeurs (souvent sous le terme répétabilité), mais rarement la justesse. Pour exemple, la répétabilité du STAÜBLI RX90 est 20 µm. 8.1.2 Critères cinématiques Comme pour toute machine, le temps de cycle permis pour la tâche robotisée est un critère fondamental du cahier des charges. Il est donc important de prévoir si le robot choisi pourra respecter ce temps de cycle. Pour cela, il est nécessaire de connaı̂tre les vitesses maximales (instantanées et de rotation), voire les accélérations maximales que l’effecteur peut atteindre. Les constructeurs fournissent en général quelques informations sur ce point. Il ne faut cependant pas oublier qu’un robot n’est pas un système linéaire et qu’à vitesses articulaires constantes, les vitesses opérationnelles varient en fonction de la posture (ẋ = J(q).q̇). Là encore un logiciel de CAO robotique peut être d’un grand secours. Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM 78 8.1.3 CHAPITRE 8. CHOIX D’UN ROBOT Critères dynamiques Les efforts extérieurs appliqués sur un robot sont en général issus du poids du préhenseur choisi et de celui de la charge transportée (il est d’ailleurs souvent préférable de choisir ou concevoir le préhenseur avant de choisir le robot, afin de prendre correctement en compte le critère de poids du préhenseur dans le choix du robot). Dans les cas de commande en effort, il faut également prendre en compte l’effort que le robot doit appliquer sur l’environnement. Les documentations constructeur précisent systématiquement la charge maximale admissible — ne pas oublier de compter l’effecteur dans cette charge ! — sans toutefois donner les six composantes du torseur des efforts (forces et couples). On peut également trouver dans ces documentations les positions, vitesses et accélérations à ne pas dépasser en fonction de la charge déplacée par le robot, de manière à ne pas endommager la mécanique et la motorisation. 8.2 Choix du préhenseur ou de l’outil Il existe une large gamme de préhenseurs et d’outils génériques adaptés à la plupart des tâches (doigts de serrage, ventouses à vide, pinces de soudage, broches, etc.). Mais pour certaines applications, il pourra être nécessaire de faire réaliser un préhenseur ou un outil spécifique. Dans tous les cas, il faut toujours essayer de choisir une solution la plus simple possible. Pour ce faire, on peut envisager des positions et orientations judicieuses de pièces à prendre, des posages et des amenages appropriés (à retournement automatique des pièces par exemples). NB: Les fabricants de préhenseur ne sont en général pas les mêmes que les fabricants de robots. 8.3 Placement du robot Une fois le robot choisi, il s’agit à présent de le placer sur le site. Le placement d’un robot consiste à déterminer la position de sa base par rapport à la tâche à réaliser dans la cellule. D’une manière générale, trouver un placement (( optimal )) du robot est un problème délicat. Une CAO robotique peut également rendre de grands services sur ce point. 8.3.1 Problème géométrique posé Soient p situations (positions et orientations) que le centre de l’effecteur du robot devra atteindre, données dans un repère lié au site robotisé, Rsite . On décrits les p situations Sk par p matrices site TSk . Il s’agit là du cahier des charges minimal correspondant au problème du placement du robot. Par ailleurs, le robot étant préalablement choisi, son modèle géométrique direct 0 TP donne les positions et orientations du centre de l’effecteur par rapport à un repère lié à sa base, R0 . Le problème est alors de positionner R0 dans Rsite de manière judicieuse, c’est-à-dire en optimisant un (ou des) critère(s) choisi(s). 8.3.2 Critères Les critères à optimiser sont variés et dépendent de la tâche à réaliser. On peut par exemple chercher à faire en sorte que le placement proposé soit tel que pour les p situations à atteindre Sk , les débattements soient les plus faibles possibles (gain de temps de cycle) et les variables Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet 79 8.4. CHOIX DES TRAJECTOIRES articulaires correspondantes soient les plus éloignées possibles de leurs valeurs limites (lorsqu’un axe s’approche d’une de ses butées, il peut générer des problèmes de retournement pour atteindre le point suivant). On peut également souhaiter s’éloigner ou se rapprocher au maximum, sur certains points de la trajectoire, des postures singulières du robot. 8.3.3 Contraintes Le robot doit naturellement être placé de manière à ce que le centre de l’effecteur puisse atteindre les p situations Sk qu’il doit atteindre pour réaliser la tâche. En d’autres termes, il doit exister pour tout k une solution à l’équation : site TSk = site T0 0 TSk La base du robot ne peut être déplacée que dans un domaine limité, compatible avec l’espace disponible au sol mais surtout prenant en compte les recommandations éventuelles du constructeur quant aux orientations permises de la base du robot. Ces considérations contraignent la matrice site T0 qui doit appartenir au domaine d’installation. En résumé, on cherche à déterminer la transformation site T0 qui optimise un critère défini sur les situations Sk et respectant les contraintes énoncées ci-dessus. Ceci ne peut quasiment se résoudre qu’à l’aide d’une CAO robotique appropriée. 8.4 Choix des trajectoires Un autre type de problème courant est un problème combinatoire. Lorsque par exemple le robot doit atteindre p situations Sk sans ordre préférentiel (par exemple pour le soudage par points ou la prise-dépose), il s’agit de trouver l’ordre des trajectoires générant un temps de cycle minimum. On est donc ramené à un problème de voyageur de commerce qui ne peut se résoudre que par heuristique : il y a en effet une explosion combinatoire, le nombre de circuits possibles est égal à p!. Ici encore, l’utilisation de l’informatique est indispensable. Enfin, pour certaines tâches de manipulation complexes dans des environnements encombrés, il n’est pas toujours facile de trouver une trajectoire évitant les collisions. On fait alors appel à des logiciels de planification qui recherchent une solution possible à l’aide de méthodes probabilistes (la résolution analytique étant ici aussi trop combinatoire). Guillaume Laurent et Nicolas Chaillet Université de Bourgogne Franche-Comté – UFC – ENSMM Chapitre 9 Ce qui n’a pas été vu ... 9.1 Planification de trajectoires 9.2 Étude des robots parallèles 9.3 Identification des paramètres géométriques des robots 9.4 Identification des paramètres dynamiques des robots 9.5 Compliance 9.6 Commande référencée capteur : commande en effort - commande hybride - asservissements visuels 9.7 Parcourabilité - Dextérité - Manipulabilité 81 Bibliographie [1] Manipulating industrial robots - performance criteria and related test methods. International Standard ISO 9283, 1998. 76, 77 [2] Philippe Coiffet. La robotique : principes et applications. Hermes Science, 1992. [3] Max Giordano and Jacques Lottin. Cours de robotique : Description et fonctionnement des robots industriels. Armand Colin, 1997. 6, 10, 11 [4] Wisama Khalil and Etienne Dombre. Modélisation, identification et commande des robots. Hermes Science, 1999. 37, 74 [5] J.P. Lallemand and S. Zeghloul. Robotique : Aspects Fondamentaux. Masson, 1994. 11, 12 [6] Alain Liégeois. Modélisation et commande des robots manipulateurs. Techniques de l’ingénieur, S7730 :1–16, 2000. [7] Morvan Ouisse and Sylvaine Mallet. Mécanique générale : Cinématique et dynamique des mécanismes. Hermes Science, 2010. 53 [8] Richard P. Paul. Robot Manipulators : Mathematics, Programming, and Control. The MIT press, 1981. 23, 37 [9] Stéphane Régnier and Nicolas Chaillet, editors. La microrobotique : Applications à la micromanipulation. Hermes Science, 2008. 15 [10] Mark W. Spong, Seth Hutchinson, and M. Vidyasagar. Robot Modeling and Control. Wiley, 2005. 46, 74 83 Annexe A Sites web, blogs, réseaux d’informations et salons industriels Dans le but de vous permettre de compléter votre formation et de vous aider dans la recherche d’un stage ou d’un emploi, cette annexe propose une liste de sites web, blogs, réseaux d’informations et salons industriels portant sur la robotique. Automatica Adresse : http://www.automatica-munich.com/ Description : salon industriel à Munich Collège de France Adresse : http://www.college-de-france.fr/site/jean-paul-laumond/ Description : vidéos des cours donnés au collège de France par J.-P. Laumond et de nombreuses personnalités invitées Cours de troisième année de l’ENSPS et du Master M2 ISTI Adresse : http://icube-avr.unistra.fr/index.php/Robotique_de_manipulation Description : Cours de robotique de J. Gangloff (transparents, exercices, sujets d’examen) European Robotics Research Network Adresse : http://www.euron.org/ Description : réseau européen d’acteurs industriels et académiques, liste de diffusion, offres de stages et d’emplois Everything-Robotic Adresse : http://www.everything-robotic.com/ Description : blog Groupement de Recherche (GdR) en Robotique Adresse : http://www.gdr-robotique.org/ Description : réseau français d’acteurs académiques (financé par le CNRS), liste des entreprises et des laboratoires français de robotique (inscription gratuite obligatoire pour y accéder), liste de diffusion, offres de stages et d’emplois IEEE Robotics & Automation Society Adresse : http://www.ieee-ras.org/ Description : réseau international d’acteurs académiques, liste de diffusion (inscription payante) 85 86 ANNEXE A. SITES WEB, BLOGS, RÉSEAUX D’INFORMATIONS ET SALONS INDUSTRIELS Innorobo Adresse : http://www.innorobo.com/ Description : salon industriel à Lyon International Federation of Robotics Adresse : http://www.ifr.org/ Description : fédération internationale d’acteurs industriels et académiques Robohub Adresse : http://robohub.org/ Description : réseau international d’acteurs industriels et académiques, liste de diffusion Robocaliser Adresse : http://www.robotcaliser.com/ Description : site de promotion de la robotique à destination des industriels français ROBOT Start PME Adresse : http://www.robotstartpme.fr/ Description : programme de soutien aux PME primo-accédantes à la robotisation mis en place en 2013 The Robot Report Adresse : http://www.therobotreport.com/ Description : blog Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet Annexe B Logiciels et bibliothèques libres Cette annexe propose une sélection de quelques logiciels et bibliothèques libres permettant de simuler ou de commander des robots. B.1 Logiciels V-REP Adresse : http://www.coppeliarobotics.com/ Description : simulateur de robots articulés sériels/parallèles et de robots mobiles Distributions : Windows, Linux, Mac OS Gazebo Adresse : http://www.gazebosim.org/ Description : simulateur de robots articulés sériels/parallèles et de robots mobiles Distribution : Linux OpenSYMORO Adresse : https://github.com/symoro/symoro Description : logiciel de calcul symbolique des différents modèles (géométriques, cinématiques et dynamiques) de robots articulés sériels/parallèles Distribution : Windows, Linux, Mac OS (développé en Python) B.2 Bibliothèques Robotics Toolbox (de Peter Corke) Adresse : http://petercorke.com/Robotics_Toolbox.html Description : bibliothèque permettant de modéliser des robots articulés sériels Contenu : transformations homogènes, quaternions, DH, modélisation géométrique, modélisation cinématique, modélisation dynamique, génération de trajectoire et planification Langage : Matlab 87 88 ANNEXE B. LOGICIELS ET BIBLIOTHÈQUES LIBRES Robotics Library (RL) Adresse : http://www.roboticslibrary.org/ Description : bibliothèque permettant de modéliser des robots articulés sériels Contenu : transformations homogènes, quaternions, DH, modélisation géométrique, modélisation cinématique, modélisation dynamique, génération de trajectoire, planification, détection de collision, affichage 3D via la bibliothèque COIN. Langage : C++ Distributions : Windows, Linux, Mac OS Robot Operating System (ROS) Adresse : http://www.ros.org/, Description : ROS permet d’interfacer un grand nombre de robots et de capteurs en vue de leur commande. ROS utilise la bibliothèque de traitement d’image OpenCV pour la vision. Langage : C++ Distribution : Linux Visual Servoing Platform (ViSP) Adresse : http://www.irisa.fr/lagadic/visp/visp.html, Description : ViSP est une bibliothèque dédiée à l’asservissement visuel. Langage : C++ Distributions : Windows, Linux, Mac OS Université de Bourgogne Franche-Comté – UFC – ENSMM Guillaume Laurent et Nicolas Chaillet