sujet - Université de Picardie Jules Verne

Université de Picardie Jules Verne
M1 EEAII ViRob
2014-2015
Robotique Industrielle
TP 3 – Découverte du robot Stäubli TX60
Durée: 3h + 1h pour le compte rendu
Le but de ce TP est de donner un aperçu sur un robot industriel Stäubli, de décrire
ses principaux composants (partie I), la façon de le contrôler à l'aide du boîtier
d'apprentissage (partie II) et enfin comment programmer hors ligne et exécuter une
application développée sur le robot (partie III).
Un compte rendu avec les programmes développés ainsi que les résultats
intermédiaires obtenus dans la partie III est à rendre à la fin de la séance par chaque
groupe d'étudiants.
Partie I : Architecture globale
Le système robotique est composé de quatre éléments principaux (Figure 1):
(1)
(2)
(3)
(4)
Le robot
Le contrôleur (CS8)
Le boîtier d'apprentissage (SP1)
La Stäubli Robotics Suite dans un PC
Le dispositif de commande est l'élément central relié au reste des composants.
L'opérateur peut envoyer des commandes au manipulateur directement en utilisant le
boîtier d'apprentissage (ou "teach pendant"), qui envoie les opérations demandées au
PLC, qui, à son tour, envoie l'ordre au robot.
Cependant, un meilleur procédé consiste à programmer avec le langage VAL3 en
utilisant la Stäubli Robotics Suite (ou Studio dans les versions plus anciennes), qui est
un éditeur de développement (programmation). Le code développé est transféré à l'unité
de contrôle et, enfin, envoyé au robot.
Figure 1 : Système robotique Stäubli.
Fabio Morbidi
Page 1/10
Université de Picardie Jules Verne
M1 EEAII ViRob
2014-2015
Robotique Industrielle
(1) Le robot
Le robot Stäubli TX60 (Figure 3) est un manipulateur anthropomorphe avec
poignet sphérique à 6 DDL (RRRRRR), dont les caractéristiques et les avantages
principaux sont:
•
Structure mécanique rigide
•
Volume de travail sphérique
•
Poignet compact et robuste
•
Connexions à proximité de l'outil
(par exemple air comprimé pour une
pince de préhension pneumatique)
•
Hautes vitesses et accélérations
•
Haute précision et répétabilité
•
Encombrement réduit
•
Haute fiabilité et faible entretien
Figure 2 : Volume de travail du robot
(vue de dessus).
Le manipulateur est constitué de éléments
reliés entre eux par des articulations.
Les mouvements sur les articulations du robot
sont générés par des servomoteurs couplés avec
des capteurs de position: chacun de ces moteurs
est équipé d'un frein de stationnement. Il s'agit
d'un système fiable et robuste qui permet de
connaître la position absolue du robot à tout
moment.
La Figure 2 montre le volume de travail du
robot. Les 6 DDL sont présentés dans la Figure 3,
ainsi que les différents éléments du robot:
(A) la base, (B) l'épaulement, (C) le bras, (D) le
coude, (E) l'avant-bras, et (F) le poignet.
Les principales spécifications du robot sont
données dans le tableau suivant.
Modèle
Nombre de DDL
Charge nominale
Charge maximale
Rayon d'action
Répétabilité
Mode de fixation
Fabio Morbidi
TX60
6
3.5 kg
9 kg
670 mm
± 0.02 mm
Sol, mur ou plafond
Figure 3 : Schéma du robot.
Page 2/10
Université de Picardie Jules Verne
M1 EEAII ViRob
2014-2015
Robotique Industrielle
(2) Le contrôleur:
Le contrôleur CS8C (Figure 4) se compose d'un dispositif de calcul, qui est la
partie intelligente du système. Ce dispositif guide le robot à travers des
amplificateurs de puissance dédiés pour
chaque axe du manipulateur. Le cycle de
l'unité de commande du robot se comporte
comme suit:
• Lecture des entrées
• Exécution d’un cycle du programme
• Ecriture des sorties
• Attente de la fin de cycle d'une
durée définie
Figure 4: Contrôleur CS8C.
(3) Le boîtier d'apprentissage
Le boîtier d'apprentissage est un terminal portable pour la commande du robot qui
offre un moyen pratique pour faire le déplacement du robot, l’apprentissage des
points, et l’exécution des programmes. Le terminal de programmation est un outil
très utile, qui permet à l'utilisateur de s’éloigner du terminal de l'ordinateur hôte et
de contrôler le robot à distance.
Typiquement, une application du robot est programmée avec des variables prises
par l'apprentissage et utilisées par la suite dans le langage de programmation.
La Figure 5 montre le boîtier d'apprentissage, ainsi que dans l'image de gauche
l'interrupteur de corps mort (#). Lorsque le boîtier est activé, il faut appuyer sur
cet interrupteur de sécurité pour autoriser les mouvements. En le relâchant, le
robot s'arrête immédiatement: c’est également le cas lors d’un appui sur le bouton
rouge d'arrêt d'urgence (voir la partie II, ci-dessous, pour plus d'informations).
Noter que le robot s'arrête également lorsque l'interrupteur du corps mort est trop
comprimé par l’opérateur.
Figure 5 : Le boîtier d'apprentissage. Recto (à droite) et verso (à gauche).
Fabio Morbidi
Page 3/10
Université de Picardie Jules Verne
M1 EEAII ViRob
2014-2015
Robotique Industrielle
(4) Stäubli Robotics Suite
La Figure 6 montre la Stäubli Robotics Suite qui est la suite logicielle PC de
Stäubli regroupant tous les outils disponibles pour développer et maintenir une
application robotique.
Les fonctionalités de base sont listées ci-après:
• Transfert de fichiers entre le contrôleur de robot et le PC de développement
•
Réalisation de sauvegarde de l’intégralité du système robot vers un PC distant
(backups), soit manuellement, soit en automatique, sur la base d’une tâche
planifiée
•
Visualisation et manipulation du bras robotique dans la scène 3D (cellule)
•
Exécution/modification des programmes VAL 3 dans le contrôleur
CS8C émulé
•
Présentation
de
type
fenêtre
unique
à
l’agencement
entièrement
personnalisable
Figure 6 : Stäubli Robotics Suite.
VAL3 est un langage destiné à la commande des robots Stäubli dans toutes
sortes d'applications. VAL3 combine les caractéristiques de base d'un langage
informatique temps réel standard de haut niveau, et les fonctionnalités spécifiques
du contrôle d'une cellule de robot industriel:
Fabio Morbidi
•
Outils de contrôle du robot
•
Outils de modélisation géométrique
•
Outils de contrôle d'entrées/sorties
Page 4/10
Université de Picardie Jules Verne
M1 EEAII ViRob
2014-2015
Robotique Industrielle
Partie II : Utilisation du boîtier d’apprentissage
La Figure 7 montre l'image du terminal
de
programmation, avec tous les
boutons et ses fonctions. Ceux qui seront
utilisés
dans
ce
TP
sont
décrits
ci-dessous.
Figure 7 : Le boîtier d’apprentissage.
(1)
Sélection du mode
Mode Automatique (Production)
Mode local
Mode déporté
Le robot exécute une
application stockée dans
le contrôleur
Le robot est
commandé par un
programme déporté
(sur un PC)
Mode Manuel
Mode lent
Mode test
Let robot est
contrôlé par
l’opérateur
qui a le boîtier
à la main
L'opérateur peut
exécuter une
certaine tâche étape
par étape
(2)
Bouton de power on/off
Cette touche permet d'activer/couper l'alimentation électrique
du robot.
(3)
Bouton d'arrêt d'urgence
L'arrêt d'urgence doit être poussé afin de bloquer
le robot, peu importe la tâche qu'il accomplit ou
la configuration réelle.
(4)
Boutons de mouvement
Ces touches permettent à l’utilisateur de déplacer le robot en fonction du mode de
déplacement (voir (5) ci-dessous).
Fabio Morbidi
Page 5/10
Université de Picardie Jules Verne
M1 EEAII ViRob
2014-2015
Robotique Industrielle
(5) Sélection du mode de déplacement
Joint
Frame
Tool
Déplacer le robot
par rapport aux
axes des
articulations
Déplacer le robot
par rapport à son
repère de base
(Z vers le haut)
Déplacer le robot
par rapport au
repère outil mobile
(Z vers l’extérieur)
Point
Déplacer le robot
jusqu'à un certain
point ou position
articulaire (déjà
enregistré)
(6) Contrôle de vitesse
Pour contrôler la vitesse du robot manuellement (en pourcentage).
(7) Le menu contextuel
Utilisé pour valider l'information donnée sur l'écran juste en haut des boutons.
(8) Clavier alpha-numérique
Utile pour entrer des données de l'application.
(9) Boutons d'interface et de navigation
Une interface typique avec les boutons de haut, bas,
droite, gauche ainsi que les boutons sélection de
menu, Esc, Aide.
(10) Les boutons de l’application
Ils sont les boutons qui permettent d'exécuter une application
programmée.
- Move/Hold : bouton de lecture/pause.
- Run : bouton pour charger l'application à exécuter.
- Stop : bouton pour mettre fin à l'application courante.
Fabio Morbidi
Page 6/10
Université de Picardie Jules Verne
M1 EEAII ViRob
2014-2015
Robotique Industrielle
Partie III : Simulation
(1) Création d’une cellule de simulation
Suivez les étapes suivantes pour créer une cellule de simulation pour le robot
Stäubli TX60 (Attention: sélectionner la version à 64 bits de Windows au
démarrage de votre ordinateur):
•
Ouvrir le logiciel Stäubli Robotics Suite 2013
•
À partir de l’onglet « New » du menu principal, choisir la création d’une
nouvelle cellule à l’aide de « Assistant Nouvelle Cellule »
•
Spécifier le nom de la cellule et le chemin du répertoire pour la sauvegarde
•
Ajouter un contrôleur local « Controller » de version s7.6.1
•
Choisir le type du robot: Stäubli TX60 fixé au sol (TX60 HB WS)
•
Ne changer pas les options du contrôleur local
•
Appuyer sur « finish » pour créer votre cellule
•
Dans la barre horizontale, appuyer sur « Afficher la vue 3D » pour voir le robot
(2)
Test des modes de déplacement
Le but de cette partie est de tester les différents modes de déplacement
(présentés dans la partie II-(5)) sur le robot Stäubli:
•
Naviguer dans le menu « Cell Explorer » à droite et lancer l’émulateur du
contrôleur en faisant un clic droit sur « Controller »
•
Dans l’onglet « Simulation » de la barre à outils en haut, démarrer la
synchronisation avec le robot en appuyant sur le bouton « play » (⊳)
•
Démarrer le robot en appuyant sur le bouton correspondant de l’émulateur.
Le bouton se met en vert pour indiquer que le robot a démarré
•
Dans l’émulateur, tester les différents modes de déplacement (décrits dans la
partie II-(5))
•
Déterminer et noter les butées articulaires de chaque articulation (clic droit sur
« TX60 » sur le « Cell Explorer »)
•
Utiliser le mode « Frame » pour déplacer l’organe terminal du robot vers la
position [100, 300, 400]T dans le repère de la base du robot avec une
orientation [0, -π/6, 0]T. Trouver la valeur de la position articulaire
correspondante
•
Utiliser le mode « Tool » pour déplacer l’organe terminal du robot vers la
position [400, -100, 300]T dans le repère de la base du robot avec une
orientation [π/3, -π/6, π/6]T. Trouver la valeur de la position articulaire
correspondante
•
Commenter sur la facilité des mouvements dans chaque mode
Remarque: les positions du robot sont données en mm et les angles en degrés
Fabio Morbidi
Page 7/10
Université de Picardie Jules Verne
M1 EEAII ViRob
(3)
2014-2015
Robotique Industrielle
Création d’une application à partir de l’émulateur
Le but de cette partie est de créer une nouvelle application de votre cellule.
Cette application sera utilisée dans les parties suivantes pour définir des points
de l’espace et des trajectoires du robot
•
Dans l’émulateur, créer une nouvelle application Val à partir de « Menu »
 « Application Manager »  « Val application »  « New ».
Nommer l’application « TP3 »
•
L’application « TP3 » se trouve alors sous les « Val3 applications ». Vous
trouvez ici « Librairies », « User types », « Global data », « Programs » et
« Parameters »
•
La partie « Global data » comprend plusieurs types de variables représentées
dans la Figure 8 ci-dessous
Figure 8 : Types de variables globales dans le gestionnaire d’application.
(4) Définition des variables à partir de l’émulateur
Cette partie consiste à définir plusieurs variables de différents types (position
articulaire, cartésienne, etc.)
•
Définir un nouvel outil « flange » nommé « stylo » qui se trouve à 200 mm
selon l’axe Z
•
Définir une nouvelle position articulaire « j0 » qui correspond à la position du
robot en vertical
•
Définir un nouveau descripteur de mouvement « mdesc » nommé « mlent » qui
fait déplacer le robot à 20% (désactiver le mode « blend » pour éviter de lisser
la trajectoire)
•
Définir un point « p0 » de votre choix dans le repère de la base « world ».
Attention à choisir le bon robot (n'utiliser pas les variables avec extension "Rs"
qui sont dédiées au robot SCARA à 4 DDL, mais plutôt les variables "Rx") et à
que le point soit accessible par l’organe terminal du robot
Remarque : Pour la suite, avant toute manipulation de points, il faut
impérativement sélectionner l’outil de travail. L’outil « stylo » sera
alors utilisé.
Fabio Morbidi
Page 8/10
Université de Picardie Jules Verne
M1 EEAII ViRob
2014-2015
Robotique Industrielle
(5) Création et apprentissage de points
Le but de cette partie est de faire l’apprentissage de la pose de plusieurs points de
l’espace du robot. Ces points seront utilisés dans la suite pour définir la trajectoire
du robot.
•
Déplacer le robot dans un mode de votre choix pour arriver à une nouvelle
pose de l’outil
•
Définir un point « pA » avec l’outil « stylo » qui est définit dans le repère de
base « world ». Laisser des valeurs nulles pour la position et l’orientation
•
Appuyer sur la touche qui correspond a « Here » (F2) pour faire correspondre
la pose actuelle du robot au point sélectionné
« pA » (voir Figure 9)
•
Définir alors six autres points « pB », « pC »,
« pD », « pE », « pF », « pG » de la même
manière que « pA »
•
Attention aux symboles qui s’affichent à coté de
Figure 9 : Définition des points.
chaque point. Voir la Figure 10 ci-dessous pour
la signification des symboles
Figure 10: Apprentissage de points.
(6) Ecriture d’un programme en langage VAL3
Le but de cette dernière partie est de faire la découverte de la syntaxe du langage
VAL3 et d’apprendre quelques fonctions simples. En plus, développer un
programme qui fait déplacer le robot pour réaliser une trajectoire en segments de
droites entre les points définis dans la partie III-(5).
•
Dans la partie « Application manager » du menu principal, passer dans la
section « Programs » pour créer votre programme et écrire votre code
•
Ouvrir le programme « start » pour pouvoir le modifier
Fabio Morbidi
Page 9/10
Université de Picardie Jules Verne
M1 EEAII ViRob
•
2014-2015
Robotique Industrielle
Notes sur l’édition des programmes :
o Utiliser « Ins » pour insérer une nouvelle ligne après la sélection
o Ecrire une seule instruction par ligne
o Utiliser la touche « ENTREE » pour rééditer une ligne existante
o Utiliser la touche « ESC » pour annuler les modifications d’une ligne en
cours d’édition
o La syntaxe de chaque ligne doit être correcte, c'est-à-dire toutes les
variables doivent être définies
o Utiliser la touche « VAL3 » pour choisir dans la liste des instructions
o Saisie semi-automatique des mots: taper les premières lettres du mot et
appuyer sur une touche pour sélectionner dans une liste, presser la touche
« ENTREE » pour valider
o Utiliser la touche « Glo. » pour renseigner les paramètres des instructions
à partir de la liste des variables déjà définies.
•
Les fonctions suivantes seront utilisées dans cette partie :
o Movej(point, tool, mdesc) ou Movej(joint, tool, mdesc) pour déplacer
l’effecteur « tool » du robot en mouvement courbe vers le point « point »
ou la position articulaire « joint » avec une vitesse et accélération décrite
par le descripteur de mouvements « mdesc »
o Movel(point, tool, mdesc) pour déplacer l’effecteur « tool » du robot en
en ligne droite vers le point « point » avec une vitesse et accélération
décrite par le descripteur de mouvements « mdesc »
•
Ecriture du programme :
o Utiliser la fonction « movej » pour déplacer l’outil « stylo » vers la
position articulaire « j0 » avec la vitesse « mlent »
o Utiliser la fonction « movel » pour déplacer l’outil vers le point « pA »
avec la vitesse « mlent »
o Utiliser la fonction « movel » pour déplacer l’outil ensuite vers les points
définis plus haut: « pB », « pC », « pD », « pE », « pF » et « pG »
o Finir le programme avec l’instruction « waitEndMove() »
•
Exécution du programme :
o Sauvegarder le programme en appuyant sur la touche correspondante
o Lancer le programme en mode manuel en utilisant la touche « Run »
du boitier d’apprentissage
o Relancer le programme en mode automatique
Fabio Morbidi
Page 10/10