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
© Copyright 2024