Ce document montre comment préparer une station dans RoboDK dans le cadre de programmation Hors-Ligne (PHL) et d’une simulation de robot 6 axes. Dans cet exemple, un robot Universal Robots est simulé et programmé pour une application générique de peinture robotisée.
Tous les éléments d’un projet RoboDK sont sauvegardés dans une station RoboDK (fichier avec extension .RDK). Une station RoboDK contient tous les robots, outils, repères, objets ainsi que les autres paramètres nécessaires pour créer une simulation.
Tout est contenu dans une station et il n’est pas nécessaire de garder une copie séparée des fichiers robots, outils et de tous les autres objets associés.
La section examples montre des exemples pour plusieurs applications (en anglais).
Suivre ces étapes afin de créer un nouveau projet RoboDK (station RoboDK) :
1.Télécharger et installer RoboDK à partir du site web : https://robodk.com/fr/download
2.Double cliquer le raccourci sur le bureau pour démarrer RoboDK
3.Si d’autres stations sont visibles dans le logiciel :
sélectionner Fichier➔ Nouvelle Station (Ctrl+N) pour débuter un nouveau projet
Plusieurs projets RoboDK peuvent être actifs en même temps. Avec un double clic sur l’icône d’une station le projet sélectionné devient actif et s’affiche.
De nouveaux robots peuvent être facilement ajoutés depuis un disque dur local ou depuis la bibliothèque en ligne :
1.Sélectionner Fichier ➔ Ouvrir bibliothèque en ligne (Ctrl+Shift+O). Une nouvelle fenêtre apparaîtra pour afficher la bibliothèque en ligne.
Il est aussi possible de cliquer sur l’icône correspondante dans la barre d’outils
2.Utiliser les filtres pour trouver votre robot par marque, charge, portée etc.
Dans cet exemple, nous utilisons le modèle UR10 de la marque Universal Robot (charge de 10kg et portée de 1.3 m)
3.Sélectionner Télécharger. Le robot apparaît automatiquement dans la station en quelques secondes.
4.La bibliothèque en ligne peut être fermée une fois que le robot est visible dans la station.
Un repère permet de placer des objets par rapport à un robot ou par rapport à d’autres objets dans l’espace 3D (incluant la position et l’orientation).
Pour ajouter un nouveau repère :
1.Sélectionner Programme ➔ Ajouter un Repère
Il est aussi possible de cliquer sur l’icône correspondante dans la barre d’outils.
2.Double cliquer sur le repère (dans l’arborescence ou dans la géométrie 3D dans l’écran principal) pour entrer les coordonnées indiquées dans l’image (position XYZ et angles d’Euler pour l’orientation). La roulette de la souris peut être utilisée au-dessus de chaque valeur pour mettre à jour rapidement la position du repère dans l’écran principal.
Les couleurs suivantes sont utilisées par défaut :
●Coordonnée X ➔ Rouge
●Coordonnée Y ➔ Vert
●Coordonnée Z ➔ Mauve
●1ère rotation Euler➔ Bleu clair
●2ème rotation Euler ➔ Rose
●3ème rotation Euler ➔ Jaune
3.Sélectionner Affichage➔Agrandir les repères (+) pour augmenter la taille des repères.
4.Sélectionner Affichage➔Réduire les repères (-) pour diminuer la taille des repères.
5.Sélectionner Affichage➔Afficher/masquer le texte (/) pour afficher ou masquer le texte sur l’écran.
6.Renommer un repère ou objet dans l’arborescence en appuyant sur F2.
Vidéo : Comment créer un repère de référence (vidéo en anglais) :
https://www.youtube.com/watch?v=ilmJSD-a9bs&list=PLjiA6TvRACQd8pL0EnE9Djc_SCH7wxxXl&index=5.
Lorsque plusieurs repères sont utilisés, il est possible de les faire glisser sur d’autres repères ou robots dans l’arborescence de la station afin de faire coïncider les dépendances qui existent entre elles dans une cellule robotisée réelle. Par exemple, le repère Frame 2 peut être placé par rapport au repère de base du robot. Dans ce cas, si le repère de base de l’UR10 est déplacé, Frame 2 sera aussi déplacé. Il est important de prendre cette dépendance en considération si d’autres robots ou repères sont utilisés. L’image suivante montre la différence entre ces dépendances.
Même si la dépendance est différente, il est aussi possible d’entrer ou de visualiser les coordonnées d’un repère par rapport à tout autre repère, tel que montré dans l’image suivante.
Les repères peuvent aussi être déplacés sur l’écran principal en gardant la touche Alt appuyé ou en sélectionnant l’icône correspondante de la barre d’outils. Ensuite, faire glisser le repère avec la souris sur l’écran. Si un repère est déplacé à la main, les valeurs des coordonnées correspondantes sont aussi mises à jour.
RoboDK supporte la plupart des formats standard 3D, incluant les formats STL, STEP (ou STP) et IGES (IGS), WRML, 3DS ou OBJ. (les fichiers STEP et IGES ne sont pas supportés sur la version Mac et Linux). Pour ouvrir un nouveau fichier 3D :
1.Sélectionner Fichier➔ Ouvrir.
2.Cliquer sur l’objet Object Inspection, disponible dans la bibliothèque RoboDK par défaut :
C:/RoboDK/Library/Object Inspection.stp.
3.Possibilité de faire glisser les fichiers sur l’écran principal pour les importer.
4.Dans l’arborescence de la station, faire glisser l’objet vers le repère Frame 2.
Vidéo : Comment importer des objets et créer des outils (vidéo en langue Anglaise):
https://www.youtube.com/watch?v=ilmJSD-a9bs&list=PLjiA6TvRACQd8pL0EnE9Djc_SCH7wxxXl&index=5.
Astuce: Pour des fichiers STEP ou IGES très volumineux il est possible d’accélérer la vitesse d’importation en sélectionnant Outils➔Options➔CAO➔Paramètres d’importation rapide. Plus d’information sont disponibles dans la Section STEP/IGES.
Un ou plusieurs Centres d’outils robot (TCP) peuvent être créés dans RoboDK. Les outils peuvent être associes à une géométrie importée.
1.Sélectionner Fichier➔ Ouvrir (tel que montré dans la section précédente).
2.Sélectionner le fichier Paint gun.stl afin de l’ajouter comme un objet (il sera ajouté au repère de la station, même position que le repère de base du robot).
3.Dans l’arborescence de la station, faire glisser l’objet vers le robot, tel que montré dans l’image suivante.
Des nouveaux outils peuvent être chargés ou sauvegardés sous format TOOL (.tool).
Par défaut, RoboDK défini le centre de l’Outil (ou TCP) à la position (X,Y,Z) = (0,0,200) mm. Cela peut être modifié en fournissant les coordonnées manuellement et/ou en déplaçant le centre d’outil (TCP) tout en gardant la touche Alt+Shift appuyée tel que montré dans l’image suivante.
1.Garder la touche Alt+Shift appuyée ou sélectionner l’icône correspondante dans la barre d’outils.
2.Sélectionner la surface bleue du repère (surface XZ du TCP) et glisser le TCP de façon approximative vers la surface du pistolet à peinture, tel que montré dans l’image suivante.
3.Sélectionner la flèche verte (rotation autour de l’axe Y) pour faire pointer l’axe vers l’extérieur.
4.Aussitôt qu’une valeur approximative des coordonnées de l’outil apparait, il est possible retoucher ces valeurs manuellement avec un double clic sur le pistolet à peinture ou sur le repère de l’outil. La roulette de la souris peut être utilisée sur chaque champ afin de mettre á jour la position sur l’écran.
A ce stade, la station peut être sauvegardée :
1.Sélectionner Fichier➔ Enregistrer Station (Ctrl+S).
2.Sauvegarder le fichier (par exemple, sous, le nom Test de Peinture.rdk). Le titre de la fenêtre et le nom de la station seront mis à jour avec le nom du fichier.
Il est possible de définir un centre d’outil (TCP) par rapport à un autre outil. Par exemple, ceci permet de définir la distance d’une lame de cutter par rapport à son support.
Ces étapes impliquent qu’un deuxième outil TCP soit défini par rapport au premier : prenons une distance de 150mm le long the l’axe Z :
1.Faire un clic droit sur le robot.
2.Sélectionner Ajouter Outil (TCP). Un nouvel objet appelé Tool 2 apparaîtra.
3.Double cliquer sur ce nouveau TCP
4.Sélectionner TCP par rapport à ➔Paint gun
5.Entrer la coordonnée Z à 150 mm et les autres translations et rotations à 0 deg.
Ce nouvel outil ne sera pas utilisé dans les sections suivantes de cet exemple. Cependant, ceci permet d’ajouter un offset sur le vrai robot pour définir la distance de projection de peinture entre l’objet et la pièce à peindre.
Il se peut que la géométrie de l’outil ne soit pas alignée par rapport à la bride du robot lorsqu’elle est chargée dans RoboDK. Les étapes suivantes montrent qu’une erreur a été réalisée et que l’outil est monté à 180 degrés autour de l’axe Z. Voici les étapes pour corriger cette erreur :
1.Sélectionner Plus d’options … dans la fenêtre Détails de l’Outil.
2.Entrer 180 deg dans la case jaune (rotation Z) de la géométrie du pistolet à peinture, tel que montré dans l’image suivante. La roulette de la souris peut être utilisée en survolant chaque case avec le pointeur de la souris pour mettre à jour la position sur l’écran rapidement.
Les positions d’un robot sont enregistrées sous forme de cibles. Suivre ces étapes pour créer deux cibles : une cible pour une position départ, et une cible pour une position d’approche.
1.Double cliquer sur le robot afin d’afficher le panneau-fenêtre du robot.
2.Sélectionner l’outil Paint gun dans l’onglet Outil. Aussitôt qu’un outil ou qu’un repère devient actif, un point vert s’affichera sur l’icône dans l’arborescence de la station.
3.Sélectionner Frame 2 dans l’onglet du repère.
4.Garder la touche Alt appuyé et déplacer le robot en faisant glisser l’outil (TCP) ou la bride du robot dans une position sécurisée, sans risque de collisions avec d’autres objets. Sinon, entrer les coordonnées de l’outil par rapport au repère.
5.Utiliser la section Autres configurations afin de changer la configuration du robot et être certain qu’aucun axe du robot n’est proche des limites d’axes.
6.Sélectionner Programme➔ Enseigner cible (Ctrl+T), ou l’icône correspondante dans la barre d’outils. La cible sera ajoutée sur le repère actif et elle enregistre automatiquement la position actuelle du robot (position Cartésienne et axes du robot).
Dans cet exemple, la position articulaire du robot utilisée pour la première cible est :
[-150, -75, -90, -60, 70, 110] degrés. Ces valeurs peuvent être copiées directement de ce document et collés dans le Mouvement des joints du panneau-fenêtre du robot, en utilisant le bouton correspondant.
7.Renommer la première cible sous le nom Home en appuyant sur F2 ou en sélectionnant Outils➔Renommer l’objet.
8.Déplacer le robot proche d’une surface au bord de la pièce. Il est possible de garder la touche Alt appuyée et faire glisser l’outil, vous pouvez aussi entrer les coordonnées cartésiennes ou déplacer les axes du robot manuellement.
Dans cet exemple la position articulaire suivante a été utilisée : [-200,-100,-70,-70,90,90] degrés.
9.Sélectionner Programme➔ Enseigner cible (Ctrl+T) ou l’icône correspondante dans la barre d’outils pour créer une nouvelle cible.
10.Renommer la cible à Approche (voir l’étape 7).
11.Sélectionner la cible Home et la cible Approche afin de voir le robot se déplacer entre les deux cibles.
12.Si une position différente doit être enregistrée pour une des cibles, faire un clic droit sur la cible et sélectionner Enseigner la position courante (Alt + double clic).
13.Faire un clic droit sur la cible, et sélectionner Options… (F3) pour ouvrir la fenêtre des options de la cible, tel que montré dans l’image suivante.
Si nécessaire, modifier ces valeurs pour définir la cible.
Suivre ces étapes afin de créer un programme qui fait déplacer le robot de la cible Home à la cible Approche :
1.Sélectionner Programme➔ Ajouter Programme du menu, ou l’icône dans la barre d’outils
2.Renommer le programme à ApproachMove.
3.Sélectionner la cible Home.
4.Sélectionner Programme➔ Instruction Move Joints (ou l’icône correspondante dans la barre d’outils). Deux instructions seront ajoutées automatiquement pour indiquer au robot quels repères et quel outil doivent être utilisés.
5.Sélectionner la cible Approche.
6.Sélectionner Programme➔ Instruction Move Joints à nouveau
Double clic sur le programme ApproachMove et l’exécution de la simulation débutera. La barre de simulation sera affichée.
La fonction Enseigner des Cibles sur une Surface est utile pour les applications comme la peinture et l’inspection :
1.Sélectionner Programme➔ Enseigner cible(s) sur une surface (Ctrl+Shift+T)
2.Déplacer le curseur de la souris au-dessus de la pièce pour voir un aperçu de la position robot.
3.Sélectionner quelques points sur l’objet (clic gauche de la souris). Chaque clic de la souris définira une nouvelle cible en gardant l’axe Z de l’outil (axe bleu) perpendiculaire à la surface.
4.Si nécessaire, ajuster l’orientation autour de l’axe Z en bougeant la roulette du panneau de gauche ou en appuyant sur les touches gauche/droite.
5.Garder la touche Alt appuyé pour de déplacer une cible existante.
6.Garder la touche Alt+Shift appuyé pour déplacer une cible existante en la gardant en contact sur la surface.
7.Sélectionner la touche Esc, ou faire un clic droit sur l’écran et sélectionner Terminé pour sortir du mode de création des cibles sur une surface.
Lorsque les cibles sont créées, suivre les étapes suivantes pour générer une simulation et programme robot :
1.Sélectionner toutes les cibles créées sur la surface et faire un clic droit.
2.Dans le menu qui apparait, sélectionner Renommergroupe.
3.Entrer Top Paint. Toutes les cibles sélectionnées seront renommées automatiquement.
4.Faire un clic droit sur toutes ces cibles à nouveau et sélectionner Nouveau programme. Un nouveau programme sera généré. Le premier mouvement sera un mouvement en mode joints et les mouvements suivants seront en mode linéaire.
5.Sélectionner F2 pour renommer le programme en PaintTop.
6.Double cliquer sur le programme PaintTop pour voir la simulation. Le robot se déplacera entre les cibles.
7.S’il est nécessaire, réorganiser les mouvements en glissant les instructions à l’intérieur du programme
De façon similaire aux opérations précédentes :
1.En ayant le robot placé sur la dernière cible du programme PaintTop, déplacer le robot vers le haut en faisant augmenter la coordonnée Z du centre de l’outil (TCP) par rapport au repère, dans le panneau-fenêtre du robot (montré en rouge dans l’image suivante).
2.Sélectionner Programme➔ Ajouter Programme
3.Sélectionner Programme➔ Instruction Move Linear, ou l’icône correspondante dans la barre d’outils. Renommer cette cible en Retract en appuyant sur la touche F2.
4.Sélectionner la cible Home (le robot bougera à cette position).
5.Sélectionner Programme➔ Instruction Move Joint. Une nouvelle instruction de mouvement sera ajoutée en relation avec la position initiale.
Double cliquer chaque programme individuellement pour le simuler. La simulation peut être accélérée en maintenant la touche Espace ou en sélectionnant le bouton Accélérez la simulation /. Plus d’options sont disponibles dans le menu Outils➔Options➔Mouvement.
On peut facilement générer un programme principal qui permet d’exécuter les programmes d’Approche, Peinture et Rétraction de façon séquentielle :
1.Sélectionner Programme➔ Ajouter Programme.
2.Sélectionner Programme➔ Exécuter une procédure.
3.Enter le nom ApproachMove ou choisir Sélectionner afin d’entrer dans le programme directement.
4.Sélectionner OK.
5.Répéter les mêmes étapes pour PaintTop et Retraction tel que montré dans l’image suivante.
Double cliquer sur le Programme principal exécutera la simulation complète. Faire un clic droit sur Programme Principal et sélectionner Boucle pour que la simulation soit exécutée en boucle.
Si le repère Frame 2 est déplacé (par exemple, en gardant la touche Alt appuyé et en faisant glisser l’axe X rouge du repère), l’objet et les cibles vont suivre. Si les cibles deviennent inaccessibles, une icône d’alerte s’affichera sur l’icône de la cible tel que montré dans l’image suivante.
Il est possible d’exporter des simulations sous format HTML 3D ou PDF 3D ainsi que de distribuer votre projet vers une version simplifiée de RoboDK (RoboDK Viewer).
Des documents HTML 3D et PDF 3D peuvent être générés en suivant ces étapes :
1.Faire un clic droit sur le programme principal (MainProg).
2.Sélectionner Exporter Simulation…
3.Sélectionner Démarrer. Le programme va démarrer et la simulation sera enregistrée jusqu’à la fin.
4.Sauvegarder le fichier.
Les simulations HTML et PDF sont sauvegardées dans un seul fichier. En comprimant un fichier HTML, la taille du fichier peut être réduite. Les simulations PDF doivent être ouvertes dans Acrobat Reader.
Les liens suivants sont des exemples de simulation HTML 3D :
●https://robodk.com/simulations/UR-Paint.html
●https://robodk.com/simulations/Welding-3-Fanuc-Robots.html
●https://robodk.com/simulations/Robot-Drawing.html
Les liens suivants sont des exemples de simulations PDF 3D :
●https://robodk.com/simulations/UR-Paint.pdf
●https://robodk.com/simulations/Welding-3-Fanuc-Robots.pdf
●https://robodk.com/simulations/Milling-with-External-Axes.pdf
Une autre méthode pour exporter des simulations 3D est de générer un fichier EXE ou un fichier ZIP vers une version réduite de RoboDK (disponible sur version Windows seulement), tel que montré dans l’image suivante.
Vidéo : Comment exporter une simulation robot et un programme robot :
https://www.youtube.com/watch?v=38Yzhsom54E&list=PLjiA6TvRACQd8pL0EnE9Djc_SCH7wxxXl&index=6
Afin de générer ce fichier :
1.Sélectionner Fichier➔ Faire une station démo
2.Sélectionner le format d’exportation désiré (ZIP ou EXE)
3.Sélectionner Générer fichier
Après quelques secondes, le fichier désiré est généré (environ 20 MB) et devient une version simplifiée de l’environnement RoboDK. Le projet s’affichera lorsque la version « Lecteur RoboDK » sera chargée.
Le lien suivant montre le résultat d’une extraction du projet Peinture en format .Exe:
●https://robodk.com/simulations/UR-Paint.exe
Il est possible d’exporter des programmes robot individuellement, ou le programme principal incluant les sous-programmes :
1.Faire clic droit sur un programme (MainProg par exemple).
2.Sélectionner Générer programme robot (F6) ou sélectionner Générer programme robot sous… (Shift + F6) pour spécifier l’endroit du (des) fichier(s) généré(s).
3.Le programme SCRIPT pour le robot Universal Robots sera automatiquement affiché dans un éditeur de texte.
Ce fichier est le résultat de la génération du programme robot hors-ligne. Le fichier peut être envoyé au contrôleur robot afin d’exécuter les mouvements simulés dans RoboDK.
Note : Pour plus d’information concernant la génération de programmes SCRIPT et URP visiter les sections : démarrer un programme SCRIPT sur un contrôleur Universal Robots ou générer et modifier un programme URP sur un contrôleur Universal Robots (en anglais).
●Sélectionner Envoyer programme au robot (Ctrl + F6) afin d’envoyer par le biais d’un réseau FTP (programmation hors ligne)
●Vérifier l’option Exécuter au robot afin de faire avancer le programme étape par étape à chaque fois que le programme est démarré (programmation en ligne). Cela permet d’exécuter le programme sur le robot et en même temps de visualiser la simulation. Les drivers du robot sont nécessaires pour la programmation en ligne.
Note : l’option Exécuter au robot nécessite les drivers robot. En fonction de la marque ou du contrôleur robot, cette option nécessite des options spécifiques ou des démarches spécifiques pour le faire fonctionner sur des robots industriels. (Ce n’est pas le cas pour les contrôleurs robots UR).
Il est possible de changer les post processeur et customiser la façon de générer les programmes :
1.Faire un clic droit sur un programme ou un robot.
2.Sélectionner Sélectionner Post Processeur
3.Sélectionner Universal Robots URP
Générer le programme de nouveau. Dans cet exemple, le post processeur d’origine utilise des valeurs joint pour définir chaque mouvement linéaire et le deuxième post processeur utilise des coordonnées cartésiennes pour définir chaque mouvement linéaire.
Note : Plus d’informations sont disponibles dans la section Post Processeurs.
L’interface de programmation (API) de RoboDK vous permet de personnaliser la simulation autant que vous le désirez. Par défaut, RoboDK installe Python et plusieurs exemples de macros dans le répertoire RoboDK/Library. Ceci inclut la simulation du pistolet à peinture, la programmation des robots avec Python, la simulation de cameras 2D, la conversion de fichiers SVG aux programmes robots, comment configurer un outil par rapport à un autre, simuler des événements, etc. D’autres langages de programmations peuvent aussi être utilisées, tel que C#, C++, VB ou MATLAB. Pour plus d’information visiter la section API de RoboDK.
Dans cet exemple, une macro existante va être ajoutée qui va simuler le comportement du pistolet à peinture. Le volume du jet va être coloré avec une couleur transparente (en sélectionnant Outils➔Changer les couleurs (Shift+T) ou en chargeant le modèle existant avec les couleurs appropriées (disponible dans la bibliothèque sous le nom paint_gun.tool ou dans la bibliothèque en ligne, noter que l’instruction de Changement d’Outil doit être mise à jour ou liée au nouveau outil).
1.Sélectionner Fichier➔ Ouvrir pour ouvrir une nouvelle macro faite en Python (fichier py)
2.Naviguer dans C:/RoboDK/Library/Macros/ pour voir quelques exemples de macros.
3.Sélectionner SprayOn.
4.Sélectionner Ouvrir. Un nouvel objet Python sera ajouté. Cette macro permet la simulation de dépôt de particules de peinture et elle modélise le volume de peinture.
5.Double cliquer sur la macro SprayOn pour l’essayer.
6.Sélectionner ON pour l’activer.
7.Garder la touche Alt appuyée, et bouger le robot en l’emmenant par l’outil ou par la bride (flange). En déplaçant le robot proche de la surface avec le pistolet à peinture il est possible de voir la trace de peinture. La couleur et la transparence change en fonction de la distance entre l’outil et la surface de la pièce.
Appuyer sur Esc afin d’enlever la peinture simulée.
8.Double cliquer sur le même programme SprayOn et sélectionner Off pour arrêter la simulation de particules.
Pour mieux comprendre ce qui se passe avec la macro, il est possible de voir ou modifier le programme Python de la manière suivante :
1.Faire un clic droit sur SprayOn
2.Sélectionner Modifier Programme Python.
Une nouvelle fenêtre (éditeur de texte) apparaît et le code qui modélise le comportement du pistolet de peinture devient visible.
Pour prendre en compte la simulation de particules dans le programme principal, suivre ces étapes:
1.Faire un clic droit sur la procédure créé précédemment Appel ApproachMove
2.Sélectionner Ajouter Instruction➔ Exécuter une procédure, une nouvelle instruction est ajoutée après la première exécution du programme et une nouvelle fenêtre s’ouvre pour entrer le nom du programme.
3.Entrer SprayOn(1).
4.Sélectionner OK.
Répéter les mêmes opérations après le programme PaintTop en faisant appel à SprayOn(0), tel que montré dans l’image suivante. Les instructions peuvent être réorganisées en les faisant glisser à l’intérieur du programme.
5.Exécuter le programme MainProg. après deux itérations du programme, le résultat doit ressembler à celui montré dans l’image suivante (simulation à vitesse normale).
Il est aussi possible de créer de nouvelles macros :
1.Sélectionner Programme➔ Ajouter Programme Python.
2.Faire un clic droit sur le nouveau programme et sélectionner Modifier programme Python.
On peut aussi changer la vitesse du robot dans le programme, configurer des sorties numériques (DO), attendre l’état d’entrées numériques (DI), afficher des messages, etc. Ces instructions sont disponibles dans le menu Programme.