ÃCOLE DE TECHNOLOGIE SUPÃRIEURE
Transcription
ÃCOLE DE TECHNOLOGIE SUPÃRIEURE
ÉCOLE DE TECHNOLOGIE SUPÉRIEURE DÉPARTEMENT DE GÉNIE DE LA PRODUCTION AUTOMATISÉE Chargé de cours: Ahmed Joubair Session: ÉTÉ 2015 GPA546 Robots industriels PROJET #2 : Simulation d’une tâche d’assemblage 1 - OBJECTIFS - Être capable d'opérer un robot ABB IR1600 en mode manuel; - Être capable de faire la programmation de base d’un robot ABB; - Être capable d'utiliser les référentiels « objet » (wobjdata) dans la programmation des robots. 2 - DESCRIPTION DU LABORATOIRE Description générale. Ce projet consiste à programmer un robot ABB pour simuler une tâche de palettisation. Les pièces en acier sont initialement disposées dans un magasin (une glissoire) situé sur une table. La présence et l’orientation (trou à gauche ou à droite) d'une pièce sont détectées à l'aide de deux capteurs situés en bas du magasin (DI09_ZS0101 et DI10_ZS0102). Un vérin pneumatique (DO09_FV0101) pousse la pièce pour permettre sa préhension avec la pince du robot. Une palette remplie contient N blocs déposés à plat et formant une forme régulière (voir annexe) autour d’un point centre. Les blocs doivent être déposés avec les trous circulaires orientés vers le même sens. La valeur de N peut varier de quatre à sept. Les blocs doivent être aussi près que possible. Séquence de travail. Le programme remplit une seule palette en effectuant les séquences suivantes : a) Avant d'effectuer ses mouvements, le robot doit faire les initialisations appropriées (paramètres de mouvement par défaut pour un mouvement rapide, etc. b) Le système doit s’assurer qu’il est à moins de 5 cm du robtarget « Repos » avec une divergence d’angle de l’outil par rapport à ce même robtarget d’un maximum de 2 degrés. Ainsi qu’une « configuration moteur » identique entre les deux positions comparées. Si la validation est réussie alors le système passe au point suivant, sinon le programme avorte en affichant un message approprié décrivant en détail le pourquoi de l’échec. c) Le système demande le nombre de côtés à la forme en affichant un menu similaire au menu suivant sur l'écran de votre « FlexPendant » : d) Le programme effectue les calculs des positions de travail (« robtargets ») selon le nombre de côtés choisi. Ce calcul doit se faire de façon itérative avec des boucles (while, for) et non de façon conditionnelle (if, else, elseif, switch) pour chaque cas différent. e) Le robot passe par une position décalée (lors de l’approche et lors du dégagement), lors de la prise dans la glissoire et lors du dépôt sur la feuille. Pour pouvoir faire une prise d’un bloc, le robot doit détecter la présence de ce bloc dans la chute avant de démarrer la séquence de prise. Sinon, le robot attend le bloc. Si l’attente est de plus de 5 secondes, le robot retourne à Repos, affiche un message d’avertissement et continu l’attente nécessaire; *Important : la pince doit toujours prendre le bloc avec les suces du côté du trou. f) Le robot dépose le premier bloc au centre de l’arrête (long coté) de la feuille sur la table en le mettant parallèle aux axes du référentiel de la feuille (Système de coordonnées objet) et répète l’étape e) pour mettre les N-1 blocs suivants. L’espace entre les blocs doit être constant. Le dépôt doit se faire de façon itérative avec des boucles (while, for) et non de façon conditionnelle (if, else, elseif, switch) pour chaque cas différent. *Important : la grosseur de vos formes doit s’ajuster en fonction du nombre de côtés de façon à ce que l’espacement entre les blocs soit toujours le même. uFrame oFrame Figure 1 Repère objet : WobjFeuille g) Après que le dernier bloc a été placé sur la table, le robot retourne à la localisation Repos et le programme s'arrête de lui-même. Points importants à considérer : - - Vous devez seulement enseigner les 3 éléments suivants : WobjTable, GLISSOIRE et REPOS. Les positions de dépôt doivent être calculées. Votre programme doit être concis avec des noms de variables significatifs. Vous ne devez pas répéter des lignes de code inutilement. Lorsque vous interagissez avec l’opérateur, vous ne devez pas faire de fautes de français. Vos procédures et vos fonctions doivent accomplir une seule tâche. Par exemple, vous ne devez pas avoir une fonction qui s’appelle CalculerVolumeSphere qui calcule le volume d’une sphère et qui déplace le robot en même temps. Elle doit seulement faire la tâche que son nom indique. Vous devez bien découper votre programme. Vous devez respecter vos propres conventions de programmation. Avant d'exécuter le programme. * Le programme utilise trois persistantes de type wobjdata ou robtarget, enseignées avec le boîtier de commande : 1) WobjTable, qui est un système de coordonnées de type wobjdata; a. la partie « UFrame » est utilisée pour définir la table, b. la partie « OFrame » est utilisée pour définir la feuille sur la table. 2) GLISSOIRE représente l'endroit où le robot prend la pièce dans le magasin. 3) REPOS représente l'endroit où le robot est dégagé, soit environ 60 cm au-dessus du centre de la table avec une pince qui pointe vers le sol. REPOS et GLISSOIRE doivent être enseignés par rapport au repère atelier (wObj0). Afin d’avoir un programme sécuritaire, les approches et les retraits pour les prises et les dépôts doivent être de 20 cm avec une interpolation maximale de 10 cm. Pour définir le système de coordonnées objet, vous devez utiliser la méthode « définition par 3 points » à l’aide du « FlexPendant ». Ces localisations enregistrées doivent s'enseigner rapidement et efficacement par un opérateur. Vous devez tenir compte que la feuille ou la table peuvent bouger entre deux sessions de travail. Les positions des blocs sont calculées par le programme par rapport au référentiel WobjTable.oframe qui est situé sur la feuille. Vous ne devez pas assumer que l’axe Z du référentiel de l’atelier est perpendiculaire à la surface de la table. Toutes les localisations doivent être de type PERS. Après avoir exécuté le programme en mode automatique, le robot effectue la séquence de travail demandée. En tant que spécialiste en robotique, vous devez : - Respecter les consignes de sécurité émises au laboratoire #1 ; - Faire en sorte que l’opérateur ait un minimum de travail à faire pour enseigner les trois objets; - Minimiser le temps d’exécution du programme tout en respectant les contraintes suivantes : 1) Vitesses d’approche et de retrait à une vitesse RÉELLE de 300 mm/s (avec VelSet 25,1000, si vous utilisez 300 mm/s dans votre speeddata, la vitesse RÉELLE sera de 75 mm/s); 2) Distances d’approche et de retrait de 200 mm; 3) Le programme gère certaines conditions limites : manque de pièce, mauvais choix entré par l’opérateur, etc. ; 4) Vous devez suivre la procédure décrite dans le document « Procédures au laboratoire A-0610 ». Les fonctions RAPID suivantes peuvent être utiles : CRobT CWobJ MoveJDO OFFS TPReadFK wobjdata TestDI WaitUntil DefFrame OrientZYX WaitDI Distance RelTool WaitTime Vous devez examiner le manuel de référence technique « RAPID Instructions, fonctions et types de données » dont une copie électronique est disponible dans la section Documents du site web du cours. 3 - FONCTIONNEMENT La durée du projet est de quatre séances (avec présence d’un chargé de laboratoire). La première séance est consacrée à écrire un programme sans erreurs de syntaxe avec le logiciel de simulation « RobotStudio » au local A-3608 (en contexte industriel, la programmation hors ligne permet d'éviter l'arrêt de la production pour écrire le programme). Au début de la deuxième séance, vous devrez remettre un programme de base fonctionnel et sans erreurs de compilation incluant les étapes a), b) et e) complétées sans quoi vous vous verrez attribuer la note 0 pour l’approbation. De plus, tant que vous n’aurez pas produit un programme de base et obtenu l’approbation écrite de votre chargé de laboratoire, l'utilisation de votre robot vous sera interdite. Les deuxième et troisième séances vous permettront de mettre au point votre programme. À la quatrième séance, vous devrez faire une démonstration de votre travail et remettre votre programme final. Aucune extension ne sera accordée sous prétexte que votre séance (par exemple, mardi soir) est plus tôt que la séance d’une autre équipe (mercredi soir). GPA-546 ROBOTS INDUSTRIELS Barème de correction pour les laboratoires Noms : Approbation........................................................................................................................ 3 points Vous devez transmettre votre programme AVANT votre deuxième séance selon les consignes mentionnées et imprimer cette page. Démo sur le robot et programme final ........................................................................... 17 points Le programme final doit être transmis électroniquement au chargé de laboratoire AVANT la quatrième séance. Expliquez votre programme en mettant des commentaires appropriés. En se basant sur les quatre éléments mentionnés ci-dessous, la correction se fait de façon progressive. Par exemple, un zéro à l’élément 2 entraîne un zéro pour les éléments suivants. 1 - Démo fonctionnel dans son ensemble 2 - Connaissance du programme 3 - Respect des contraintes imposées 4 - Mouvements appropriés, commentaires appropriés, concision du programme. Note pour le laboratoire .............................................................................................................. /20 Consignes pour la transmission électronique de votre programme par courriel. Aucune copie papier ne sera corrigée. Adresse courriel : martin.gaudreault.2@ens.etsmtl.ca Titre du courriel* : GPA546 – Remise du laboratoire XX Nom du fichier .zip à transmettre* : LabXX - ÉquipeXX - Prénom Nom - Prénom Nom *Il est important de respecter la casse, les accents et l’ordre des éléments demandés. Le fichier .zip doit contenir les éléments suivants : Fichier(s) .mod de votre programme complet Fichier .pdf de votre programme complet Vous devez transmettre votre programme AVANT le début de la deuxième séance pour l’approbation et AVANT la quatrième séance pour le programme final, sans quoi vous perdrez 10% sur la note du laboratoire. Annexe – Formes demandées Figure 2: Carré Figure 3: Pentagone Figure 4: Hexagone Figure 5: Heptagone