Vous êtes sur la page 1sur 14

Programmation des robots

Introduction
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:

- L'apprentissage.
- Les méthodes informatiques.

Page 9
République Algérienne Démocratique et Populaire
‫وزارة التعليـــــم العــــــــــالي والبحـــــث العلمـــــي‬
Ministère de l’enseignement supérieur et de la recherche scientifique
‫المركـــز الجــــــــــامعي بـــرج بوعريريــــج‬
Centre Universitaire de Bordj Bou Arréridj

Institut des Sciences et Technologie

Département d’Electronique
Exposé

Thème :

La Programmation des Robots

Réalisé par : Dirigé par :

SAOUD Ayoub TAlBI


SID AHMED Soumia
BRAHAM CHAOUCHE Yacine Fethallah

Année universitaire: 2010/2011


I.La programmation par apprentissage
La programmation par apprentissage impose à un opérateur de faire évoluer le robot
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érent selon le type de tâche. On distingue deux classes
d'enregistrement des points qui induisent des méthodes d'apprentissage différentes:

• L'apprentissage en continu.
• L'apprentissage point par point.

1. L’apprentissage en continu ?
1.1 L’apprentissage direct
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.

Fig.1 L’apprentissage direct

Page 9
1.2 L’apprentissage Par pantin
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.

Fig.2 L’apprentissage par pantin


1.3 L’apprentissage Par telecommande
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.

Fig.3 L’apprentissage Par télécommande

Page 9
II.La programmation point par point
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:

• exécution sous forme de sous-programme


• exécution conditionnelle
• comptage d'événements ou de trajectoires
• etc ...

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:

• quelconque:
o soit chaque actionneur évolue indépendamment
o soit les actionneurs évoluent linéairement (ils sont mis sous tension au
même moment et s'arrêtent au même moment)
• sous contraintes: la trajectoire est décrite par une forme géométrique (droite, arc
de cercle ...)

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.

Page 9
1. Commande axe par axe
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.

Fig.4 Boite de commande

2. Commande cartésienne
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:

• en translation en X, Y et Z
• en rotation autour de X, de Y et de Z

Par rapport au repère cartésien de base et ceci simultanément ou indépendamment.


Un module de transformation de coordonnées assure la transcription de l'ordre en
coordonnées cartésiennes vers l'espace des variables articulaires.

Page 9
II.Les méthodes informatiques de programmation
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:

• par langage
• par CAO

1. Programmation par langage


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.
1.1 Le niveau actionneu
Les langages de ce niveau sont compatibles aux langages de machines à commandes
numériques. Ils consistent à 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.
1.2 Le niveau effecteur
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'effecteur par rapport à un système de coordonnées. Exemple de
langages: LM, AM, MAL, REX, WAVE.
1.3 Le niveau objet
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:


Code : Autre
PLACE objet1 ON objet2

INSERT objet1 IN objet2

LIFT objet

MOVE position_origine TO position_finale VERIFY condition_d'inspection


liste_d'actions

Page 9
1.4 Le niveau objectif
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.

Exemple de langage: LM

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:

• non spécifiques à la robotique


• spécifique à la robotique

Caractères non spécifiques à la robotique

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 procédures, etc... . Les opérations de
fonctions mathématiques sont disponibles et gérées par les instructions classiques.

Exemple d'instructions:
Code : Autre
TANTQUE expression FAIRE instruction instruction
FINFAIRE
ITERER instruction instruction1
jusqua expression_booléenne instruction
FINITERER
etc...

Page 9
Prenons un exemple de programme pour illustrer ce langage en calculant une
exponentielle par utilisation de séries.

Code : Autre
CO ceci est un commentaire;

PROGRAMME SERIE8EXPO; CO entête de programme;

CO définition des variables;

ENTIER EXPOSANT;

REEL VALEUR, RESULTAT, VALEUR_TEMPO, FACTORIEL;

CO début du programme;

DEBUT

LIRE VALEUR;

RESULTAT:=1.; FACTORIEL:=1.; VALEUR_TEMPO:=1.;

CO boucle de calcul;

POUR EXPOSANT:=1 JUSQUA 5

FAIRE

DEBUT

VALEUR_TEMPO:=VALEUR_TEMPO*VALEUR;

FACTORIEL:=FACTORIEL*EXPOSANT;

RESULTAT:=RESULTAT+VALEUR_TEMPO/FACTORIEL;

FIN;

FINFAIRE;

ECRIRE RESULTAT; FIN;

LM fournit quelques fonctions standards et notamment la fonc EXP(x) qui rend


l'exponentielle de x.

Page 9
Caractères spécifiques à la robotique

En plus des éléments de langage informatique classique, LM dispose de données et


opérations particulières utilisées couramment en robotique:

• définitions de variables de type:


o VECTEUR: constituée par trois variables réelles
o REPERE: constituée par une matrice de rotation 3×3 et d'un vecteur de 3 composantes
désignant une translation. Cet ensemble représente les coordonnées homogènes du repère
désigné par rapport à un repère de base appelé STATION
o TRANSFORMATION: matrice de 3×4 variables réelles désignant une matrice de
transformation en coordonnées homogènes.
• définitions d'opérations particulières sur les variables citées

exemples:
sur vecteurs:
PSCALA: produit scalaire
PVECTO: produit vectoriel
sur transformation:
T1*T2: composition de deux transformations
INV: inversion de transformation sur repère:
DISTANCE: distance euclidienne entre repères
ANGLE: distance angulaire entre repères

LM assure la manipulation de données caractérisant l'état du robot et de son


environnement:

• variables proprioceptives:
ex:
ECART: distance entre mors
ROBOT: cette fonction rend une variable de type repère désignat l'organe terminal du
robot.
• variables extéroceptives qui rendent l'état de l'environnement (exemple: le torseur des
efforts de contact). Ces variables sont dépendants des capteurs utilisés

Page 9
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 condition, d'attente etc... que
nécessite la manipulation d'objets.
Prenons un exemple de programme de manipulation simple de pièces:

Fig.5 Manipulation simple de pièces

Code : Autre
PROGRAMME TRANSFERT_PIECE;

CONSTANTE REEL RAPIDE =0.9, REDUITE=0.05;

REPERE POS_DEBUT, PIECE1, PIECE2;

DEBUT

CO initialisation de la position origine du robot;

POS_DEBUT:=ROBOT;

CO déplacement du robot avec vitesse rapide au dessus de la pièce1;

DEPLACER ROBOT A PIECE1*TRANSLAT(VZ,100.) EN MODE CARTESIEN

AVEC VITESSE = RAPIDE;

CO déplacement lent vers repère pièce1 avec pince ouverte;

OUVRIR PINCE;

DEPLACER ROBOT A PIECE1 EN MODE CARTESIEN

Page 9
AVEC VITESSE = REDUITE;

CO prise de la pièce de déplacement vers le lieu de dépose;

FERMER PINCE;

DEPLACER ROBOT A PIECE1*TRANSLAT(VZ,100.) EN MODE CARTESIEN

AVEC VITESSE = REDUITE;

DEPLACER ROBOT A PIECE2*TRANSLAT(VZ,100.) EN MODE CARTESIEN

AVEC VITESSE = RAPIDE;

DEPLACER ROBOT A PIECE2 EN MODE CARTESIENR

AVEC VITESSE = REDUITE;

CO dépose pièce et retour origine;

OUVRIR PINCE;

DEPLACEMENT ROBOT A POS_DEBUT AVEC VITESSE = RAPIDE;

FIN;

2. Programmation par CAO


Revenons brièvement sur la programmation par langage. L'écriture d'un programme 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

Page 9
Fig.5 Un système de CAO robotique

Un système de CAO robotique est constitué:

• d'un module de description des tâches:


o par graphiques interactifs
o par langage
• d'un module de description du robot et de l'environnement en 3D d'exécution
• d'un module de téléchargement vers le robot

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'éventuelles collisions.

Page 9
Conclusion
Les systèmes de programmation doivent satisfaire des contraintes de production toujours
plus exigeantes :
— diminuer, voire supprimer, les temps d’immobilisation des robots sur site en
permettant une programmation en temps masqué ;
— améliorer la qualité ;
— diminuer les temps de cycle ;
— assurer la sécurité des personnels et des matériels ;
— être indépendants du robot pour permettre, par exemple, de dupliquer une tâche sur
plusieurs cellules, de remplacer un robot en cas de panne...

Bien que les méthodes par apprentissage ne répondent pas complètement à ces
spécifications, elles ont pris une place que l’on ne leur prédisait pas il y a une dizaine
d’années. Elles permettent à des utilisateurs non-informaticiens de programmer bon
nombre d’opérations qui ne pouvaient l’être à l’époque qu’avec les langages textuels.
On notera aussi l’émergence de la programmation hors ligne à partir de bases de
données CAO-robotique et la mobilisation qu’elle suscite pour passer à une véritable mise
en œuvre industrielle. Celle-ci exigera des avancées méthodologiques et
organisationnelles qui conduiront à rationaliser la chaîne conception-production, à l’instar
de ce qui existe déjà pour les machines outils à commande numérique.

Page 9