Vous êtes sur la page 1sur 23

1

Travaux Pratiques de Robotique


ISIFC 3èmeAnnée

Nicolas C HAILLET - Micky R AKOTONDRABE - Nicolas A NDREFF

document téléchargeable sur


http://www.femto-st.fr/˜micky.rakotondrabe/teaching.php
Table des matières

1 Règles de sécurité 4

2 Notions fondamentales de repères 5


2.1 Définition des repères fondamentaux des robots . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Concaténation de repères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Saisie de repères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 TP1 - Programmation du robot S TA ÜBLI RX90 8


3.1 But de la manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Matériels utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3 Programmation d’une tâche de pick-and-place . . . . . . . . . . . . . . . . . . . . . . . 9
3.4 Programmation d’une tâche dans un repère relatif à une palette . . . . . . . . . . . . . . 9
3.5 Changement d’outil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 Sujet de TP2 - Etude de la robotisation d’une tâche de pick-and-place de composants


d’horlogerie pilotée par un système de vision artificielle : robot Pocket-Delta 10
4.1 But de la manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 Programme de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2.1 Etude du système web embarqué dans le robot destiné à son pilotage . . . . . . . 11
4.2.2 Programmation du capteur de vision . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2.3 Ecriture de la tâche de pick-and-place du robot . . . . . . . . . . . . . . . . . . 11
4.2.4 Conclure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.3 Fichiers utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5 Sujet de TP3 - Programmation du robot ABB IRB 340 12


5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2 Matériels utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.3 Programmation simple pour se familiariser . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.4 Programmation de trajectoire complexe . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.5 Prise au vol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

6 Sujet de TP4 - Programmation du robot M ITSUBISHI RP-1AH : assemblage de composant

2
d’une montre 14
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2 Matériels utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.3 Programmation du robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

7 Sujet de TP5 - Programmation en ligne du robot FANUC : cellule de contrôle 16


7.1 But de la manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.2 Matériels utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.3 Question 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.4 Question 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

A Quelques commandes de V+ 17

B Quelques commandes de RAPID 19

C Quelques commandes de MELFA BASIC 4 22

3
Chapitre 1

Règles de sécurité

RÈGLE 1

Veiller à ce qu’il n’y ait personne dans l’enveloppe de travail d’un robot en fonctionnement.

RÈGLE 2

Lors de l’exécution d’un programme, démarrer toujours le robot en vitesse lente. Après le déroulement
complet d’un cycle, il y a toujours l’opportunité d’augmenter la vitesse progressivement jusqu’à la valeur
finale désirée. Toutefois, une vitesse moniteur supérieure à 30% de la capacité maximale est interdite.

RÈGLE 3

Lors de la mise au point d’un programme, l’opérateur devra toujours se tenir prêt à appuyer sur le bouton
poussoir qui provoque l’arrêt immédiat du bras et, en dernière ressource, appuyer sur un des boutons
”ARRÊT D’URGENCE”. Le premier essai d’un programme doit toujours se faire sous la direction de
l’enseignant et donc avec son approbation. Dans la mesure du possible, il est fortement conseillé de
l’exécuter en pas à pas dans ce cas.

RÈGLE 4

Chaque fois que l’on déplace le robot à l’aide du pendant d’apprentissage, sélectionner une vitesse faible.

RÈGLE 5

(Interdit aux étudiants) Avant toute intervention sur le bras, couper, si possible, l’alimentation du bras.

RÈGLE 6

(Interdit aux étudiants) Avant toute intervention dans l’armoire de l’unité de commande, couper
l’alimentation générale.

4
Chapitre 2

Notions fondamentales de repères

2.1 Définition des repères fondamentaux des robots


L’espace de travail d’un robot est défini par rapport à un repère inhérent au robot, son repère de base
(Fig. 2.1). Les explications données ici le sont en langage V+, mais les idées restent génériques.

F IG . 2.1: Repère associé à la base du robot (WORLD).

Aussi tous les objets, emplacements, trajectoires seront-ils définis dans ce repère. Ainsi, l’instruction
HERE fournit la position et l’orientation du repère outil (TOOL) dans le repère de base (WORLD).
exemple :
X Y Z y p r
500 10 100 180 30 0
Cela signifie que pour retrouver le repère outil, il faut translater le repère de base de 500 mm suivant
X, de 10 mm suivant Y, de 100 mm suivant Z, puis tourner de 180 degrés suivant Z, 30 degrés suivant Y,
0 degré suivant Z (les axes X, Y et Z indiqués ici étant ceux du repère fixe WORLD).
Par ailleurs, comme l’objectif est de faire suivre une trajectoire à l’outil, il est nettement plus simple
d’associer les mouvements au repère outil. Ainsi les fonctions de mouvement (APPRO, DEPART ...)
sont directement définies dans le repère outil (Fig. 2.2).

Exemple :
DEPART 50, s’écarte de la position actuelle de 50 mm suivant l’axe Z du repère outil.
Il faut noter qu’à la mise sous tension du robot, le repère outil est défini comme étant un repère
propre au dernier axe. Le robot ”ignore” le type d’outil qu’il possède et bien sûr ses caractéristiques
géométriques. Afin que la commande soit ”consciente” de la présence d’un outil et donc fournisse la
position dans l’espace du bout de l’outil réel, il faut lui indiquer les caractéristiques de cet outil. Cette
opération s’effectue en utilisant la commande TOOL TRANS(x,y,z,α,β,γ). Après avoir effectué cette

5
F IG . 2.2: Repère associé à l’outil du robot (TOOL).

commande, l’ensemble des instructions de mouvement s’applique au centre de l’outil.

2.2 Concaténation de repères


Lorsque l’on programme un robot pour une tâche répétitive, comme poser un objet sur un emplacement
d’un magasin par exemple, il est nettement plus confortable de travailler dans le repère R1 du magasin
que dans le repère de base du robot.
Il est ainsi nettement plus confortable de donner l’ordre :
”Aller à la position P1 définie dans le repère R1 (lui-même défini dans le repère de base).”
Cette opération est réalisée par l’ordre :
MOVE R1:P1

- 6
- ?
6
-
R1
- P1

WORLD

F IG . 2.3: Concaténation de repères.

Bien sûr on peut concaténer plusieurs repères successivement


MOVE R1:R2:R3:P1
mais au détriment du temps de calcul, ce qui quelquefois peut poser des problèmes. Dans l’exemple
précédent, R2 est bien sûr défini dans R1 et R3 dans R2 etc...

2.3 Saisie de repères


Il existe trois façons de définir un repère. La première consiste à positionner (position et orientation)
le repère outil du robot sur le repère que l’on veut saisir. L’instruction HERE rep1, donnera à rep1 les
coordonnées du repère.
Noter que la concaténation de repères peut aussi servir lors de la saisie. Par exemple HERE A:B
définit le repère B dans le repère A.

6
Cette méthode est rapidement entachée d’erreurs. En effet, le moindre écart sur l’orientation pro-
voque une grande erreur si le point à atteindre est éloigné du centre du repère.
La deuxième méthode, beaucoup plus précise et donc à préférer, consiste à définir un repère par trois
points. C’est l’instruction FRAME qui réalise cette opération.
Enfin la troisième méthode consiste à définir manuellement la position de ce repère dans le repère
WORLD en entrant directement ses coordonnées au clavier. En pratique, cette méthode est souvent
inemployable car on ne connait pas a priori les coordonnées du repère à définir par rapport au repère
WORLD du robot.
Noter que l’instruction ”MOVE A” ne veux pas dire ”aller au point A” mais ”positionner le repère
outil du robot en coı̈ncidence exacte (position et orientation) sur le repère A”.

7
Chapitre 3

TP1 - Programmation du robot S TA ÜBLI


RX90

3.1 But de la manipulation


Le but de cette manipulation est d’acquérir les notions de base de programmation en ligne du robot
anthropomorphe RX90 (6 axes), en utilisant le langage V+, par :

• la réalisation de programme de pick-and-place,

• l’utilisation de repère relatif à une palette et de faire une tâche de pick-and-place dans ce repère,

• le changement de repère outil.

L’expression pick-and-place est synonyme de prise-dépose.

3.2 Matériels utilisés


• Le robot S TA ÜBLI RX90 (Fig. 3.1). Quelques fonctions qui peuvent être utilisées sont données
en annexe- A.

Les robots Staübli RX90 est un robot à 6 axes (à poignet à trois axes concourants) et 6 degrés de
liberté. Les performances techniques de ce robot (Stäubli Unimation) permettent de couvrir un grand
nombre d’applications telles que manutention, assemblage, contrôle, etc . . .
La charge transportable nominale est de 2,5 kg pour le RX90. A vitesse rédute, la charge transpor-
table maximale est de 4,5 kg. Le rayon d’action du RX90 est de 985 mm et sa répétabilité est de 0,02
mm. Son langage de programmation est le V+.

8
F IG . 3.1: Robot Stäubli RX90.

3.3 Programmation d’une tâche de pick-and-place


Pour vous habituer aux matériel et logiciel, réaliser une tâche de pick-and-place de goupille. Les notions
de APPROCHE et DEPART d’un point seront particulièrement appliquées.

3.4 Programmation d’une tâche dans un repère relatif à une palette


• Créer d’abord un repère relatif à la palette-1.

• Faites ensuite la tâche de pick-and-place de quelques goupilles placées dans cette palette en utili-
sant les mouvements relativement au repère nouvellement crée.

3.5 Changement d’outil


• Ajouter un nouvel outil, une pointe mise à votre disposition, à la pince (organe terminal) du robot.

• Réaliser le décalage du repère outil en prenant 4 points puis en utilisant un fichier de calcul .xls
mis à votre disposition. Vérifier ensuite si le décalage du repère outil est convenable.

9
Chapitre 4

Sujet de TP2 - Etude de la robotisation


d’une tâche de pick-and-place de
composants d’horlogerie pilotée par un
système de vision artificielle : robot
Pocket-Delta

4.1 But de la manipulation

Le but de la manipulation qui est proposée ici est de mettre en uvre une tâche de manipulation d’un rubis
de montre, pilotée par un système de vision artificielle (COGNEX). Les interactions entre le système de
vision, le robot pocket delta (société ASYRIL - CH) et le PC de programmation se font par ETHERNET.
Le système de vision, une fois programmé est autonome, de même que le robot.

10
4.2 Programme de travail
4.2.1 Etude du système web embarqué dans le robot destiné à son pilotage
Etudier le système d’interface web du robot. Quelle sont vos conclusions ?

4.2.2 Programmation du capteur de vision


Calibration du système vision + robot

Apprendre au système de vision à reconnaı̂tre la ventouse du robot Exécuter la procédure de calibration


- A quoi sert-elle ?

Apprentissage du modèle d’une pièce (rubis de montre) et test

Décrire l’utilité et la fonction des différents paramètres du modèle. Expliquer pourquoi le modèle en
question est stocké sur le disque du PC ?

4.2.3 Ecriture de la tâche de pick-and-place du robot


Vous pourrez vous inspirer des autres programmes qui ont été déjà réalisés. Pour accéder aux ordres
disponibles dans la bibliothèque du robot, taper le mot-clé ”robotinterface” et les options disponibles
apparaı̂tront dans une fenêtre pop-up. L’explication des paramêtres et leur type se fait de la même
manière. Il en va de même pour accéder aux ordre du système de vision (”visioninterface”).

4.2.4 Conclure

4.3 Fichiers utilisés


Utiliser le fichier correspondant au programme 2 dans l’environnement de programmation C Sharp du
PC. Pour cela, renommer au depart le fichier original program2 TPs ARIA.cs en program2.cs. En fin
de TPs, le sauvegarder sous un nom qui permettra d’identifier le l’annee, le groupe et le binome.

11
Chapitre 5

Sujet de TP3 - Programmation du robot


ABB IRB 340

5.1 Introduction
On désire, par l’intermédiaire de ce TP, aborder les deux aspects suivants :

• l’utilisation d’un robot delta (structure parallèle),

• réaliser un mouvement complexe (trajectoire complexe) du robot,

• introduction à une application complète de prise-dépose (pick-and-place) au vol avec reconnais-


sance visuelle du vrac 2D d’entrée.

5.2 Matériels utilisés


Il s’agit ici d’une structure cinématique parallèle (Fig. 5.1-a). C’est une structure de type Delta, à 4
axes, générant 4 degrés de liberté opérationnels identiques à ceux des structures SCARA. Intégré dans
sa cellule (convoyeurs et systèmes de vision), ce robot est bien adapté aux tâches de prise-dépose à la
volée.
Avec une charge transportable nominale de 1 kg et une répétabilité de ±50 µm, ce robot est capable
de travailler à 150 prises par minute (temps de cycle de 0,4 seconde). Son espace de travail est donné par
la figure Fig. 5.1-b.
Le langage de programmation de ce robot est le langage RAPID. Quelques fonctions de ce langage
qui peuvent être utiles sont données en annexe- B.

5.3 Programmation simple pour se familiariser


Dans un premier temps, pour se familiariser avec le robot et le langage, réaliser le programme suivant :

• lors de l’appui du bouton poussoir, départ du robot d’un point initial en même temps le tapis-1
ainsi que l’éclairage se mettent en marche,

• prise d’un objet sur le tapis-2 en utilisant l’aspiration pneumatique,

12
(a) (b)

F IG . 5.1: Espace de travail du robot ABB IRB 340.

• dépose de l’objet sur le tapis-1 en utilisant le souffle pneumatique,

• retour vers le point initial puis le tapis-1 ainsi que l’éclairage s’arrêtent.

5.4 Programmation de trajectoire complexe


Dans certaines applications, il est nécessaire que les robots suivent des trajectoires complexes :
mouvement intra-tubulaire, suivi de contour d’une surface complexe, enroulement de bobines par le
robot, etc. Dans ces cas, une programmation hors ligne est souvent utilisée afin d’éviter de calculer à
la main la trajectoire. Dans ce TP, nous allons programmer en ligne le suivi de trajectoire complexe du
robot.

Réaliser un programme qui fait une trajectoire de spirale du robot.

5.5 Prise au vol


Cette partie sera seulement une démonstration faite par l’assistant TP. Il s’agit d’une prise-dépose
d’objets sur les tapis en fonctionnement. Les caméras sont utilisés pour détecter la présence des ob-
jets.

13
Chapitre 6

Sujet de TP4 - Programmation du robot


M ITSUBISHI RP-1AH : assemblage de
composant d’une montre

6.1 Introduction
Le but de ce TP est :

• de découvrir la manipulation des objets avec un robot SCARA à bras joints,


• de découvrir la manipulation de composant d’une montre par une goutte d’eau, appelée également
manipulation par adhésion.

La manipulation utilise la force capillaire pour effectuer l’assemblage d’un pignon d’une montre
avec le corps de ce dernier. La goutte d’eau mise en place sur l’outil permettra de prendre (par adhésion)
le pignon. En effet, lorsqu’on manipule des objets dont les dimensions sont petites (les micro-objets),
les forces d’adhésions deviennent prépondérantes par rapport à la force gravitationnelle. Ces forces
d’adhésion, appelées également forces surfaciques, sont :

• la force électrostatique (exemple : une vis qui adhère à un tourne-vis),


• la force capillaire,
• et les forces de Van Der Waals qui sont plus reliées .

Si dans la plupart des cas ces forces sont sources de difficulté à faire du microassemlage ou de la
micromanipulation, dans certaines situations, elles peuvent être utilisées pour réussir des tâches parti-
culières.

6.2 Matériels utilisés


Le robot Mitsubishi RP1-AH possède 4 axes et une cinématique de type ”SCARA double bras” (Fig. 6.1-
a). C’est un robot de pick & place et d’assemblage de très petite taille qui allie précision et rapidité et qui
permet notamment des opérations de manipulation de très petites pièces. Les performances techniques
du RP1-AH sont résumées par la Fig. 6.1-b. Son langage de programmation est le ”MELFA BASIC IV”.
Quelques fonctions du langage MELFA BASIC 4 qui peuvent être utiles sont données en annexe- C.

14
(a) (b)
F IG . 6.1: Robot Mitsubish RP1-AH.

6.3 Programmation du robot


• réaliser une tâche de pick-and-place d’une goupille sur une palette,

• créer un nouveau projet et réaliser le programme qui permet de prendre un mini-pignon grâce à
une goutte d’eau puis de le déposer sur le corsp d’une montre,

• s’il vous reste du temps, réalisation d’une tâche de pick-and-place d’une palette à une autre palette
en utilisant la fonction PLT (palette).

15
Chapitre 7

Sujet de TP5 - Programmation en ligne du


robot FANUC : cellule de contrôle

7.1 But de la manipulation


...........

7.2 Matériels utilisés


.................

7.3 Question 1
.................

7.4 Question 2
.................

16
Annexe A

Quelques commandes de V+

La Table A.1 donne quelques commandes utilisée en V+. D’autres commandes sont disponibles dans la
documentation qui vient avec la baie de commande.

TAB . A.1: Commandes V+

HERE A Affectation au point des coordonnées du robot actuel


POINT A Affectation au point A les coordonnées X,Y,Z,Y,P,R
CHANGE ? (seulement en mode commande)
X,Y,Z,Y,P,R
CHANGE ?
SET A=B Affectation au point A les coordonnées du point B
SET B=SHIFT(A BY 150,10,- Le point B est obtenu par décalage de 150, 10 et -10 respective-
100) ment suivant X,Y et Z des coordonnées du point A
MOVE P1 Déplacer vers le point A. Toutes les articulations bougent en
même temsp afin d’optimiser le temps.
MOVES P1 Déplacer vers le point A. L’outil du robot suit une ligne droite
afin d’optimiser la longueur de la trajectoire.
BREAK Assure que l’instruction précédente a été réalisée avant de passer
à la suivante
APPRO P1,50 Instruction, généralement suivie de MOVE, qui permet de
s’approcher de 50mm par rapport au point P1 et ceci suivant l’axe
Z de l’outil
DEPART 50 Permet au robot de partir du point actuel en se déplaçant suivant
l’axe Z-outil d’une valeur de 50mm
OPENI Ouverture immédiate de la pince pneumatique
CLOSEI Fermeture immédiate de la pince pneumatique
SPEED V UNITE ALWAYS Modifie la vitesse en V% si l’UNITE n’est pas indiqué. Unité en
mmps (mm/s) et ips (inch/s)
DELA 180 Permet de s’arrêter pendant le temps stipulé en secondes. Il doit
être supérieur à 16ms
;COMMENTAIRES le ’;’ indique que le texte qui suit est un commenatire
CALL SP3 Appel du sous-programme SP3
GOTO 10 Appel l’étiquette 10

17
TAB . A.2: Commandes V+, suite

IF CONDITION THEN Utiliser avec :


... >
ELSE >= ou =>
... ==
END <> (différent)
<= ou =<
AND, OR, NOT
IF CONDITION GOTO ETI-
QUETTE
FOR T=1 TO 10 STEP 2
...
END
WHILE CONDITION
...
END
DO
...
UNTIL
EX TOTO,N,M Exécution du programme TOTO n fois de suite (un nombre
négatif signifie indéfiniment)à partir du pas de programme N◦ m,
seulement pour la première boucle
XSTEP TOTO,N,M Même principe que le précédent mais pas à pas. Le fait de taper
X suivi de RETURN éxécute le pas suivant
SEE TOTO Créer ou éditer un programme. A l’intérieur du programme, taper
i, pour insertion de commande. r permet de remplacer du texte
existant. F4 permet de quitter le programme
DIR Visualise les titres des programmes
LISTP PROG1,PROG2 Liste le contenu des programmes
LISTL Liste les points et leurs coordonnées
COPY TOTO=TUTU Copie une double du programme TUTU
DELETEP TOTO Supprime le programme TOTO
DELETEL A Supprime le point A
DO INSTRUCTION Exécution d’une instruction en mode commande
TOOL TRANS(DX,DY,DZ) Déplacer le repère outil de 100mm suivant l’axe Z-outil
READY Placer le robot dans la position de repos
LOAD A:TOTO.LC Charge le fichier TOTO.LC de la disquette vers la RAM
EN PO Mise en puissance de la partie opérative (ENable POwer)
DIS PO Extinction de la puissance de la partie opérative (DISable POwer)
WHERE Permet de connaı̂tre la position actuelle du robot et du préhenseur
ZERO Vide le contenu total de la RAM
SET Crée un repère appelé REP1 dont l’axe X passe par P1 et P2, l’axe
REP1=FRAME(P1,P2,P3,P4) Y perpendiculaire à l’axe X et passant par P3, P4 étant l’origine
MOVE REP1:A Se déplacer relativement au repère REP1. Les coordonnées du
point A sont donnés dans ce dernier.
MOVE REP1:A,50 MOVE REP1:REP2:A

18
Annexe B

Quelques commandes de RAPID

L’exemple suivant donne la structure d’un programme en langage RAPID.

-------------------------------------------------------------
%%%
VERSION:1
LANGUAGE:ENGLISH
%%%

MODULE ESSAI
% toutes les declarations sont faites dans cette parties

CONST num imax:=50;


CONST robtarget p1:=[[0,0,-862],[0,-1,0,0],
[0,0,0,0],[9E+09,9E+09,9E+09,0,0,0]];
VAR num i:=0;
VAR robtarget p2;

PROC main()
% la procédure principale est insérée dans cette patrie

MOVEL p1,vmax,z10,tool0;
WHILE i<imax DO
p2:=OFFS(p1,i,0,0);
MOVEL p2,vmax,z10,tool0;
i:=i+5;
ENDWHILE

ENDPROC % fin de la procédure principale

ENDMODULE % fin du programme


-------------------------------------------------------------

Outre le programme principal, il est possible de faire des sous-programmes. Ces sous-programmes
peuvent être appelés dans le programme principal. Voici quelques commandes pouvant être utiles pour
le TP.

19
CONST robtarget p1:=[[x,y,z],[q1,q2,q3,q4],[0,0,0,0],[9E+09,9E+09,9E+09,0,0,0]];
→ déclaration d’une constante de position de robot . Les coordonnées du point sont donnés par
[x,y,z] et [q1,q2,q3,q4] (orientation sous forme quaternion).

VAR robtarget p1;


→ déclaration d’une variable de position de robot.

CONST num alfa=:1;


→ déclaration d’une constante numérique.

VAR num i;
→ déclaration d’une variable numérique.

MOVEL p1,vmax,z10,tool0;
→ permet de positionner le robot, vers la position p1, suivant une trajectoire linéaire. Le déplacement
se fait avec une vitesse vmax, des données de la zone z10 et l’outil tool10.

MOVEJ p1,vmax,z10,tool0;
→ permet de positionner le robot, vers la position p1, plus rapidement (pour l’optimisation du
temps, toutes les articulations1 bougent en même temps). Le déplacement se fait avec une vitesse vmax,
des données de la zone z10 et l’outil tool10.

WHILE i<x max DO


.....
ENDWHILE
→ utilisation des conditions.

p2:=OFFS(p1,50,50,-50);
→ le point p2 est obtenue par un décalage des coordonnées du point p1 de X=50; Y=50 et Z=-50.

WAITTIME 10;
→ délai de 10 secondes.

WAITDI SensorCP,1;
→ attente d’un appui sur le bouton poussoir SensorCP.

WAITDI SensorCP,0;
→ attente d’un relâchement du bouton poussoir SensorCP.

SETDO doPICK1B ACK, 1;


→ mise en marche de l’éclairage.

1
MOVEJ : J comme Joint qui veut dire articulation.

20
SETDO doPICK1B ACK, 0;
→ arrêt de l’éclairage.

SETDO doPICK1S T ART, 1;


→ mise en marche du tapis-1.

SETDO doPICK1S T ART, 0;


→ arrêt du tapis-1.

SETGO VACBLOW,0;
→ arrêt de la pneumatique sur l’effceteur.

SETGO VACBLOW,1;
→ aspiration pneumatique sur l’effceteur, utilisée pour une prise d’objet.

SETGO VACBLOW,2;
→ souffle pneumatique sur l’effceteur, utilisé pour une dépose d’objet.

Les fonctions mathématiques tels que cos(.), sin(.), abs(.) ainsi que les opérations arithmétiques +,
−, / et ∗ sont utilisables dans RAPID.

21
Annexe C

Quelques commandes de MELFA BASIC 4

COSIROP est un environnement de développement qui prend en compte notamment l’écriture de pro-
gramme en .MB4 (l’interpréteur MELFA BASIC 4) et l’enregistrement de coordonnées de robots en
.POS (base de données). La Table C.1 donne quelques commandes de base en MELFA BASIC 4.

TAB . C.1: Commandes MELFA BASIC 4

base (,,,,,,,) Utilisation du repère WORLD


ou base P Nbase
servo on mise à un de la baie de commande
spd 50 mettre la vitesse à 50% de la valeur maximale
mvs p1 aller vers le point p1
mvs p1,10 aller à distance 10mm du point p1 suivant l’axe Z de l’outil
dly 2 délai de 2s
gosub *SP1 aller au sous programme subprog
*SP1 début d’un sous-programme subprog
return fin du sous-programme subprog
M out(4)=1
M out(5)=0 ouverture de la pince pneumatique
M out(4)=0
M out(5)=1 fermeture de la pince pneumatique
end fin du programme principal

22