La programmation des robots est un terme général qui englobe les méthodes de communication des tâches par un opérateur au robot. Les tâches constituent l'exécution de mouvements dans un espace atteignable associé à des actions élémentaires en points particuliers. La transmission de l'ordre est réalisée selon des techniques multiples et variées dont la complexité est ralative au type de tâche et aux possibilités du robot utilisé.
Un robot, quel que soit sa complexité, constitue un problème d'automatisme qu'il faut résoudre avec toute les méthodes que nous offrent les technologies électriques, électroniques ou fluidiques. Nous allons, au cours de ce chapitre, décrire les méthodes les plus employées en les classant selon le type de robot à programmer.
Le manipulateur à cycles préréglés, ou robot "tout ou rien" est un système mécanique dont chaque axe n'a que quelques positions stables définies par des butées mécaniques ou des capteurs proprioceptifs. La notion de cycles définit un ensemble de trajectoires qui consiste à activer, en séquence, les différents actionneurs.
En formalisant le problème de la commande, nous nous apercevons que nous sommes en présence de trois espaces de variables de travail:
Avant de résoudre le problème, il faut un outil qui permette de décrire les séquences à générer. L'outil le plus employée, le plus simple à exploiter et le plus adapté est la Graphe de Commande Etape-Transition ou GRAFCET. Rappelons les traits généraux
Tout automatisme est caractérisé par des états stables appelés ETAPES au cours desquels les ACTIONS associées gardent le même état (ex: moteur à l'arrêt, lampe allumée ...). La transition d'une étape à une autre est validée par une combinaison de variables binaires appelée RECEPTIVITE. Des ARCS ORIENTES précisent le séquencement des 2tapes.
La matérialisation des éléments du grafcet est effectuée selon une symbolique définie ci-dessous.
Cing règles régissent l'évolution du grafcet.
Prenons l'exemple d'un robot de transfert de pièce schématisé sur la figure:
L'automatisme est constitué d'un bras articulé muni d'un préhenseur à serrage mécanique. Le système articulé comporte deux mouvements actionnés par deux moteurs.
Notons:
Pour le bras:
Un commutateur assur la mise en route du cycle.
Nous obtenons le grafcet ci-dessous:
Cet exemple simple illustre la mise en application du grafcet. Celui-ci peut être bien plus complexe et comporter des séquences exécutées simultanément selon plusieurs branches indépendantes.
Après la description des objectifs, il faut réaliser physiquement l'automatisme par rapport à la technologie que l'on désire employer.
En analysant un grafcet, nous nous apercevons que chaque étape se trouve dans un état stable en attendant la validation d'une réceptivité. Cette particularité nous permet de matérialiser l'étape par une mémoire binaire qui est:
Trois technologies sont employées pour matérialiser les mémoires et fonctions logiques:
Cette méthode est ancienne et n'est plus guère utilisée dans la conception de nouveaux systèmes.
La logique pneumatique est employée dans la commande de robots pneumatiques évitant ainsi les transformations d'énergie. La cellule mémoire est réalisée par le module à tiroir suivant:

et par la porte ET par:
La fonction mémoire est obtenue par une des bascules disponibles: RS, JK, D ... Cette technologie a l'avantage d'être facile à mettre en oeuvre tout en étant peu volumineuse. L'enterface avec les cellules pneumatiques est aisée par l'emploi de distributeurs électropneumatiques.
Un automate programmable est un système automatique capable de résoudre une catégorie de problèmes d'automatisme. La souplesse d'utilisation repose sur la possibilité de programmation.
Un automate programmable est constitué d'un système informatique minimum (CPU, mémoire, entrées/sorties) qui possède un jeu d'instructions orienté vers la résolution de problèmes séquentiels. On peut considérer que les instructions sont classées en cinq catégories:
La transcription d'un grafcet en langage d'un automate, n'est pas toujours immédiat et demande des adaptations. Néanmoins certains automates dits "à instructions d'étapes" assurent l'écriture directe du programme à partir du grafcet. Prenons un exemple de traduction en langage TSX 80 (Télémécanique).
Un robot industriel possède plusieurs degrés de liberté dont chacun est asservi en position et éventuellement en vitesse. Cette propriété lui assure la possibilité d'évoluer dans un domaine limité par les seules contraintes des butées mécaniques. Ainsi le nombre de trajectoires différentes permettant de relier deux points quelconques de l'espace est infini. Dans le cas du robot industriel, c'est l'opérateur humain qui décrit les trajectoires à exécuter pour réaliser une tâche. Le robot n'a pour seul objectif que l'application des consignes qui lui ont été indiquées. Le robot plus évolué est capable, à l'aide de capteurs extéroceptifs, de prendre l'initiative de modifier la trajectoire en accord avec une modification ou évolution de l'environnement.
Deux méthodes de programmation sont utilisées:
La programmation par apprentissage impose à un opérateur de faire évoluer le robot (ou une replique) comme si celui-ci était en train d'exécuter une tâche réelle. Des points spécifiques de la trajectoire sont mémorisées par un ordinateur et restitués au moment de l'exécution de la tâche. Le programme d'apprentissage assure à l'opérateur un confort de programmation par des opérations du type insertion, suppression et modification des points enregistrés.
Le choix des points particuliers retenus pour définir la trajectoire est guidé par le type de tâche à réaliser. On conçoit que les trajectoires d'un robot de peinture doivent être continues afin de décrire des mouvements couplés alors que celles d'un robot de soudage par points soient ponctuées par de nombreux points d'arrêts.
Une trajectoire est toujours enregistrée sous une forme discrète mais le nombre de points et leur espacement est différents selon le type de tâche. On distingue deux classes d'enregistrement des points qui induisent des méthodes d'aprentissage différentes:
L'apprentissage d'une trajectoire en continu est une méthode qui permet, comme nous l'avons évoqué précédemment, de restituer les trajectoires avec un mouvement sans à coups. Le nombre de points mémorisés doit être le plus élevé possible pour donner l'illusion 'une trajectoire "analogique". Cet aspect pose le preblème de la quantité d'informations qui tend à saturer rapidement la mémoire. Plusieurs méthodes de compression de données assurent la réduction du volume de la représentation des trajectoires enregistrées.
Considérons deux points voisins échantillonnés successivement. Au premier point Pi est associé n données (une par degré de liberté) codées sur m bits. Le point suivant Pi+1 comporte le même nombre de bits pour sa représentation. Prenons pour Pi la représentation suivante:
Pi = (x1, x2, x3, x4, x5, x6)
et Pi+1 = (x1+Δx1, x2+Δx2, x3+Δx3, x4+Δx4, x5+Δx5, x6+Δx6)
avec Δx une valeur faible davant x (petit déplacement entre deux point consécutifs).
Le nombre de bits nécessaire pour coder Δx sera plus faible que pour x. Le rapport Δx/x peut avoisiner 1/1000.
Une autre méthode consiste à prendre Δx constant et à enregistrer une donnée binaire bi telle que:
si xi-1 enregistré ≥ xi-1 réel alors bi = 0
et si xi-1 enregistré < xi-1 réel alors bi = 1
Lors de la restitution des informations:
xi+1 = xi + (biΔx - b‾iΔx)
avec: x0 = origine du déplacement.
Le nombre de bits utiles est réduit de m à 1 et la période d'échantillonage n'est pas modifiée ce qui permet de restituer la trajectoire fidèlement par rapport à celle enregistrée.
L'enregistrement à période d'échantillonnage constante a pour défaut de mémoriser toutes les informations même si celles-ci sont invariantes (cas d'axes bloqués). La méthode de linéarisation constitue un filtrage qui consiste à modéliser une portion de trajectoire par un segment inclus dans une zone entourant la trajectoire réelle bornée par l'erreur maximale admise. Seule l'extrémité du segment est mémorisée.
L'apprentissage direct consiste à faire évoluer le robot manuellement pendant que l'ordinateur effectue l'enregistrement automatique des points. Cette méthode est peu commode pour l'opérateur qui doit déplacer une masse importante ce qui le gêne dans ses mouvements.

Le pantin est une structure légère très maniable qui est la réplique du robot utilisé. La trajectoire est relevée sur les capteurs proprioceptifs du pantin et sera restituée au robot réel. Cette méthode possède l'inconvénient de travailler fictivement sans être en présence du même environnement et sans tenir compte de l'inertie du robot.

L'apprentissage par télécommande consiste à utiliser à la fois le pantin et le robot. L'opérateur manipule le pantin tandis que le robot reproduit le mouvement en temps réel. Cette méthode assure la vérification instantanée du mouvement enregistré par l'ordinateur ce qui permet de faire des corrections immédiates s'il y a lieu.

La technique de l'apprentissage point à point consiste à choisir les points de l'espace par lesquels doit passer la trajectoire du robot. Le choix est réalisé par un opérateur en faisant évoluer le robot à l'aide d'une boite à boutons ou d'une poignée de commande (joystick) puis en mémorisant une position particulière de la structure articulée. Des informations supplémentaires peuvent être associées aux différents points enregistrés (temporisation, émission d'un ordre binaire, attente d'un état particulier de l'environnement, point de passage, modification de la vitesse ...).
L'ordinateur de commande assure l'enregistrement des point et permet, dans le cas de robots évolués, de manipuler un ensemble de trajectoire par l'utilisation de commandes adaptées:
La trajectoire est restituée par l'émission vers les actionneurs des positions de consigne qui ont été mémorisées. Entre la position d'origine et la consigne à atteindre, l'évolution de l'organe terminal est:
L'évolution du robot, lors de l'apprentissage, est réalisée soit par une commande axe par axe, soit par une commande dans un espace cartésien.
La commande axe par axe consiste à faire évoluer chaque axe indépendant jusqu'à ce que le robot se trouve dans la position désirée. Cette méthode a l'avantage d'être simple par rapport à la commande mais demande à l'opérateur un travail de réflexion qui peut être complexe dans certaines configurations de la structure mécanique.
En général, l'opérateur manipule une boite à boutons qui rassemble les ordres de base pour la commande des axes et pour l'enregistrement des points.

La commande cartésienne permet de pallier les inconvénients de la commande axe par axe. L'opérateur fait évoluer le robot par l'intermédiaire d'une boite à boutons ou d'une poignée de commande ayant autant de degrés de liberté que le robot. Dans le cas de six degrés de liberté de la tache, la structure mécanique évolue:
Un module de transformation de coordonnées assure la transcription de l'ordre en coordonnées cartesiennes vers l'espace des variables articulaires.
La programmation des robots par méthodes informatiques consiste à décrire les tâches hors ligne c'est à dire sans faire appel au système mécanique articulé. Ces méthodes se scindent en deux approches:
La programmation par langage consiste à décrire la tâche par une suite d'instruction adaptée à la robotique. Les langages existants se classent en quatre catégorie selon le niveau de description des tâches.
les langages de ce niveau sont compatibles aux langages de machines à commandes numériques. Ils consiste à décrire les mouvements du système mécanique articulé par le comportement des variables articulaires, c'est à dire des différents actionneurs. Exemples de langages: PROMO, APT.
La tâche est décrite par définition d'opérations à réaliser par l'effecteur et de déplacements d'un référentiel lié à l'effecter par rapport à un système de coordonnées. Exemple de langages: LM, AM, MAL, REX, WAVE.
Ce niveau de programmation ne considère pas le robot mais les actions à réaliser sur les objets à manipuler. Peu de langages de ce niveau sont développés. Citons: AUTOPASS, RAPT, LAMA.
Exemples d'instructions AUTOPASS:
Le niveau objectif intègre tous les niveau précédent évoqués. La description des tâches est réalisée en termes d'objectifs sans se soucier des détails propres à la commande du robot et aux objets qui seront manipulés. Ce type de programmation utilise les ressources de l'intelligence artificielle pour générer des plans d'actions.
LM pour Langage de Manipulation est un langage évolué de programmation de robots orienté vers la manipulation et l'assemblage. Nous proposons de décrire sommairement quelques-unes de ses caractéristiques.
Le langage LM propose deux types d'opérations:
LM est un langage informatique à part entière dont la syntaxe rappelle les langages structurés et notamment PASCAL avec ses déclarations de variables (booléennes, entière, réelles, tableaux ...), de constantes, l'utilisation de procedures, etc... . Les opérations de fonctions mathématiques sont disponibles et gérées par les instructions classiques.
Exemple d'instructions:
Prenons un exemple de programme pour illustrer ce langage en calculant une exponentielle par utilisation de séries.
LM fournit quelques fonctions standards et notamment la fonc EXP(x) qui rend l'exponentielle de x.
En plus des éléments de langage informatique classique, LM dispose de données et opérations particulières utilisées couramment en robotique:
exemples:
LM assure la manipulation de données caractérisant l'état du robot et de son environnement:
Enfin le langage assure la gestion des mouvements du manipulateur ainsi que l'outil avec les possibilités de modifications de vitesse, d'arrêt sur consition, d'attente etc... que nécessite la manipulation d'objets.
Prenons un exemple de pragramme de manipulation simple de pièces:
Revenons brièvement sur la programmation par langage. L'écriture d'un pragramme est réalisée hors ligne, c'est a dire sans la présence du robot. Les essais, par essais, par contre, sont effectués sur le robot actif ce qui permet de vérifier si le comportement de la structure mécanique est compatible avec la tâche désirée. Les essais sur site sont dommageables du point de vue productivité puisque le robot est indisponible pour une tâche réelle dans le système de production. la conception des programmes assistée par ordinateur assure la possibilité de conception de programmes depuis la description de la tâche jusqu'aux essais. Le résultat obtenu est téléchargé vers le robot et immédiatement exécutable
Un système de CAO robotique est constitué:
L'avantage d'un système CAO repose sur la possibilité de programmer le robot hors ligne mais surtout d'effectuer des essais en simulation pour visualiser le comportement du robot afin de générer des trajectoires optimales et d'éviter d'eventuelles collistions.
Ce chapitre a permis de passer en revue les différentes techniques employées en descriptions de tâches et en programmations de robots. Les techniques actuellement les plus largement employées sont les méthodes de pragrammation par apprentissage qui rendent accessibles l'utilisation des robots snas compétences trop avancées. Les techniques informatiques, par contre, offrent des possibilités plus étendues et surtout une plus grnade souplesse d'emploi.
|
|