Robot Calibration (Laser Tracker)

Introduction

Les robots industriels sont très répétables mais pas précis, la précision d’un robot industriel peut être améliorée grâce à l’étalonnage du robot. La précision nominale d’un robot dépend de la marque et du modèle du robot. Avec l’étalonnage du robot, il est possible d’améliorer la précision du robot par un facteur de 2 à 10.

En option, un test ballbar (test circulaire) ou les tests ISO9283 peuvent être réalisés pour valider la précision du robot.

Robot Calibration LaserTracker - Image 1

Un système de mesure est nécessaire pour étalonner un robot. RoboDK peut être utilisé pour calibrer les robots ainsi que pour générer des programmes précis (ce qui inclut le filtrage des programmes et l’utilisation du système de programmation hors ligne de RoboDK). RoboDK peut également être utilisé pour tester la précision du robot avant et après l’étalonnage grâce à des tests ballbar ou bien de fraisage robot.

L’étalonnage des robots peut considérablement améliorer la précision des robots programmés hors ligne, également connu sous le nom Off-Line Programming (OLP). Un robot étalonné a une précision de positionnement absolue et relative plus élevée qu’un robot non étalonné.

Besoins

Les éléments suivants sont nécessaires pour installer RoboDK et effectuer correctement l’étalonnage du robot:

1.Un ou plusieurs robots industriels

2.Un système de mesure : système de suivi laser Leica, API ou Faro et ou CMM optique ou bien la stéréocaméra C-Track de Creaform.

3.Le logiciel RoboDK doit être installé et une licence appropriée pour les tests d’étalonnage du robot est requise. Pour les licences réseau, une connexion Internet est nécessaire pour une connexion de votre licence avec notre gestionnaire de licences. Pour installer ou mettre à jour RoboDK pour l’étalonnage du robot :

a.Télécharger RoboDK depuis la section de téléchargement
https://robodk.com/download

b.Configurer le pilote pour le système de mesure (non requis pour le CMM optique Creaform).
Décompresser et copier le dossier approprié:          

API Laser tracker:      
https://robodk.com/downloads/private/API.zip (OTII et Radian trackers)       
Faro Laser Tracker:   
https://robodk.com/downloads/private/Faro.zip (tous les Faro Trackers)        
Leica Laser Tracker:  
https://robodk.com/downloads/private/Leica.zip (tous les Leica Trackers)       
dans le dossier : C:/RoboDK/api/


Configuration hors ligne

Il est recommandé de créer un environnement virtuel de configuration du robot dans RoboDK (configuration hors ligne) avant de commencer à prendre des mesures. Cette section explique comment préparer la station RoboDK hors ligne. Cela peut être fait avant d’avoir le robot et le tracker, seulement en utilisant un ordinateur avec RoboDK installé dessus.

Les exemples de configuration de l’étalonnage RoboDK peuvent être téléchargés à partir du dossier suivant :      
https://www.robodk.com/downloads/calibration/

Cette section peut être sautée si vous avez déjà une station hors ligne. Les repères de référence et les repères d’outils peuvent être estimés approximativement. Une station exemple est montrée dans l’image suivante.

C:\Users\geral\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\TempState\Downloads\NewRDKRobot Calibration LaserTracker - Image 2

Station RoboDK

Une station RoboDK est l’endroit où la station d’environnement virtuelle et les informations d’étalonnage sont stockées. La station est enregistrée en tant que fichier RDK. Suivre les étapes suivantes pour créer une station robot pour l’étalonnage du robot à partir d’un projet vierge (aperçu vidéo) : https://youtu.be/Nkb9uDamFb4):

1.Sélectionner un robot :

a.Sélectionner FichierOuvrir Bibliothèque en ligne. La bibliothèque va s’ouvrir dans RoboDK.

b.Utiliser les filtres pour trouver la marque du robot, la charge admissible, ...

c.Sélectionner Download et le robot apparait automatiquement dans la station.

d.Il est aussi possible de télécharger les fichiers robot (extension .robot) séparément depuis  http://www.robodk.com/library et de les ouvrir avec RoboDK.

Robot Calibration LaserTracker - Image 3

2.Modéliser la station virtuelle

a.Ajouter un repère en sélectionnant ProgrammeAjouter un repère.

i.Un repère de « référence des mesures » doit être ajouté par rapport au repère de base du robot.

ii.Un « repère de suivi » doit être ajoutée en ce qui concerne le « repère référence des mesures » que nous venons d’ajouter.

iii.Une autre « repère d’outil » peut être ajoutée par rapport au repère « Référence des mesures » pour visualiser la position de l’outil vue par le tracker.

Astuce 1 : Glisser-déposer des éléments dans l’arborescence pour reconstruire la dépendance qui existe dans le monde réel. Par exemple, la référence du pointeur doit être placée par rapport à la « Référence des mesures ».

Astuce 2 : Déplacer n’importe quel repère de référence ou repère d’outil en maintenant la touche ALT enfoncée et la touche SHIFT+ALT enfoncées. Il est possible également de double-cliquer sur le repère de référence et de saisir les coordonnées.

Astuce 3 : Renommer tous les éléments sélectionnables dans l’arborescence en appuyant sur F2.

b.Ajouter l’objet outil (les fichiers STL, IGES et STEP sont des formats pris en charge) et le glisser-déposer sur le robot (à l’intérieur de l’arborescence des éléments), ce qui convertira l’objet en un outil. Plus d’informations disponibles ici.

Robot Calibration LaserTracker - Image 4Robot Calibration LaserTracker - Image 5

Optionnel : Sélectionner ProgrammeAjouter outil pour ajouter des TCP qu’il est alors possible de visualiser dans la station (pour vérifier les collisions ou autres). Pour définir une valeur approximative du TCP :

i.Double-cliquer sur le nouvel outil.

ii.Paramétrer une valeur approximative du TCP. copier/coller les 6 valeurs à la fois en utilisant les deux boutons à droite.

iii.Il est recommandé de renommer les TCP utilisés pour l’étalonnage avec le nom « Calibtool id », où id est le numéro cible de l’étalonnage.

Robot Calibration LaserTracker - Image 6

c.Ajouter d’autres fichiers CAO 3D (STL, IGES, STEP, SLD, ...) pour modéliser la station virtuelle à l’aide du menu Fichier Ouvrir… ou faire glisser et déposer des fichiers dans la fenêtre principale de RoboDK.

Astuce 1 : Importer les fichiers 3D de l’espace de travail de mesure et nommer-le Workspace afin que les mesures du robot soient générées à l’intérieur de l’espace de travail du tracker. Sinon, définir l’espace de travail invisible si vous ne voulez pas restreindre les mesures à l’intérieur de l’espace de travail du tracker. De plus amples renseignements sont disponibles dans la prochaine section.

Astuce 2 : Il est possible de sélectionner CTRL+ALT+Shift+P pour bloquer l’export de fichiers 3D confidentiel importés dans RoboDK.

3.Ajouter le module de calibration dans la station :

a.Sélectionner le menu Utilitaires Calibrer Robot.

b.Sélectionner Laser tracker.

Robot Calibration LaserTracker - Image 7

Puis, la fenêtre suivante va apparaitre.

Robot Calibration LaserTracker - Image 8

Cette fenêtre peut être fermée pour le moment. Vous pouvez l’ouvrir en double cliquant sur Calibration Robot dans l’arborescence.

Robot Calibration LaserTracker - Image 9

4.Enregistrer la station.

a.Sélectionner FichierEnregistrer station.

b.Renseigner un dossier et nom de fichier.

c.Sélectionner enregistrer. Un nouveau fichier RDK sera généré (fichier station RoboDK).

Récupérer les modifications de la station à tout moment en ouvrant le fichier RDK (double-cliquer sur le fichier sous Windows).

En résumé, il est important de vérifier les points suivants :

1.Les outils de calibration sont nommés “CalibTool id” et l’id est un nombre démarrant à 1 (s’il y a 3 outils de calibration, vous devez avoir “CalibTool 1”, “CalibTool 2” et “CalibTool 3”.

2.Le repère de référence « Référence des mesures » est directement relié au repère de référence de la base du robot

Pour l’instant, utiliser une estimation de ce repère (valeur approximative).

3.La référence Tracker est directement liée à la référence Mesures. La référence du pointeur doit être une position estimée du dispositif de mesure du pointeur par rapport à la référence des mesures.

4.Le projet « Étalonnage du robot » est présent dans la station et toutes les mesures que vous prévoyez de prendre sont exemptes de collision et visibles par le tracker (double-cliquer sur les paramètres d’étalonnage et sélectionner afficher pour chaque groupe de mesures).

5.Vérifier automatiquement les collisions, utiliser la balise de nom « collision » dans chaque objet que vous voulez utiliser pour vérifier les collisions. Il est recommandé d’utiliser un outil d’environ 25 % plus grand que l’outil étalonné pour éviter les collisions en toute sécurité.

Générer des cibles de calibration

Quatre ensembles de mesures sont nécessaires pour réussir l’étalonnage du robot :

1.Base setup : six mesures (ou plus) des axes mobiles 1 et 2 sont nécessaires pour placer la référence d’étalonnage par rapport au robot. Sélectionner Show dans la fenêtre des paramètres d’étalonnage et le robot se déplacera le long de la séquence.

2.Tool setup : sept mesures ou plus sont nécessaires pour étalonner la bride de l’outil et les cibles de l’outil (axes mobiles 5 et 6). Sélectionner Show et le robot se déplacera le long de la séquence.

3.Calibration measurements : 60 mesures ou plus sont nécessaires pour étalonner le robot. Ces mesures peuvent être placées au hasard dans l’espace de travail du robot et être exemptes de collision avec les objets environnants.

4.Validation measurements (optionnelle) : autant de mesures que vous le souhaitez peuvent être utilisées pour valider la précision du robot. Ces mesures servent uniquement à valider la précision du robot et non à l’étalonner.

Les deux premiers ensembles de mesures sont générés automatiquement par RoboDK. Sélectionner Show et le robot suivra la séquence (comme indiqué dans les images suivantes). Si la séquence doit être modifiée, sélectionner Mesurer et exporter les mesures d’étalonnage sous forme de fichier CSV en sélectionnant Exporter les données. Ce fichier peut être modifié à l’aide d’une feuille Excel et réimporté en cliquant sur Importer les données.

Les deux derniers ensembles de mesures (étalonnage et validation) peuvent être générés à l’aide du script macro intitulé Robot Calibration LaserTracker - Image 10 « Create measurements ». Ce script macro est automatiquement ajouté à la station lorsque vous démarrez le projet d’étalonnage du robot. Double-cliquer sur la macro pour l’exécuter. Cette macro est un programme Python qui guide l’utilisateur pour définir les paramètres suivants :

Nombre de mesures : le nombre de mesures à générer. Par défaut, 80 mesures sont utilisées car un minimum de 60 mesures est requis pour l’étalonnage du robot.

Position de référence : La position de référence doit être une position du robot où l’outil fait face au tracker avec des cibles visibles.

Limites des Joints : Les limites inférieures et supérieures des articulations doivent être fournies.

Limites cartésiennes : Nous pouvons définir des limites cartésiennes (valeurs X, Y, Z) par rapport au repère de référence du robot.

Le script génère automatiquement des mesures lorsque l’outil fait face au tracker et également respecte les contraintes articulaires et cartésiennes. Une rotation de +/-180 deg autour de l’outil est autorisée autour de la direction qui fait face au tracker à la position de référence. De plus, la séquence des mouvements des joints/articulations est exempte de collision et à l’intérieur de l’espace de travail de mesure (si l’espace de travail est défini pour être visible). L’image suivante montre le résumé qui est présenté à l’utilisateur avant le démarrage de la séquence automatique. La fin de la séquence peut prendre jusqu’à 5 minutes

Robot Calibration LaserTracker - Image 11

Un nouveau message apparaît une fois l’algorithme terminé. Sélectionner Calibration pour utiliser les 60 mesures pour l’étalonnage du robot. Vous pouvez ré-exécuter le même script pour générer un autre ensemble de mesures à valider. Cette étape est facultative, mais 60 mesures ou plus sont recommandées à des fins de validation.

Si vous le souhaitez, il est possible de modifier le script en faisant un clic droit sur le script Create measurements et en sélectionnant Modifier le script, puis modifier les paramètres supplémentaires de l’algorithme. Le script enregistre automatiquement les données renseignées par l’utilisateur comme paramètres de la station. Vous pouvez afficher, modifier ou supprimer ces paramètres avec un clic droit sur la station et en sélectionnant les paramètres de la station, comme indiqué dans l’image suivante.

Robot Calibration LaserTracker - Image 12

Robot Calibration LaserTracker - Image 13

Enfin, il est également possible d’importer des configurations sélectionnées manuellement en sélectionnant Importer des données (dans le menu Mesure). Vous pouvez importer un fichier CSV ou TXT comme une matrice Nx6, où N est le nombre de configurations.

Robot Calibration LaserTracker - Image 14

Configuration de l’étalonnage du Robot

Il est nécessaire de connecter le tracker laser et le robot à l’ordinateur pour automatiser la procédure de prise de mesures. Il est également recommandé de mesurer un repère de référence à travers trois points si vous déplacez le tracker laser (cette étape est obligatoire si vous voulez récupérer la position de repos pour l’axe 1, voir l’annexe II pour plus d’informations).

Il est nécessaire de fixer au moins une cible SMR (trois cibles ou plus sont recommandées), comme indiqué dans les images suivantes. Il est également pratique d’utiliser 3 nids comme repère de référence si le tracker laser doit être déplacé.

Robot Calibration LaserTracker - Image 15Robot Calibration LaserTracker - Image 16

Les sous-sections suivantes doivent être exécutées de façon séquentielle pour être prêts à commencer à prendre des mesures.

Connect to the tracker

L’adresse IP du tracker laser est nécessaire pour définir correctement la communication dans RoboDK. Suivre les étapes ci-dessous pour vérifier la communication avec le tracker laser :

a.Sélectionner le menu « ConnectConnect laser tracker ». Une nouvelle fenêtre doit s’ouvrir.

b.Renseigner l’adresse IP du tracker laser.

c.Cliquer sur le bouton “Connect”.

Si la connexion est réussie, vous voyez un message vert écrit “Ready”. La fenêtre peut être fermée et la connexion reste active.

Robot Calibration LaserTracker - Image 17

Connexion au robot

L’adresse IP du robot (ou le numéro de port COM pour les connexions RS232) est nécessaire pour régler correctement la communication avec RoboDK. Suivre ces étapes pour vérifier la communication avec le robot :

1.Sélectionner ConnecterConnecter robot. Une nouvelle fenêtre va apparaitre.

2.Définir l’adresse IP et le port du robot (ou le port COM si la connexion est par RS232).

3.Cliquer sur le bouton Connect.

4.Reporte-vous à l’annexe si des problèmes surviennent.

Si la connexion est réussie, vous voyez un message vert affichant Ready. La position du robot virtuel correspond exactement à la position du robot réel en sélectionnant Get current joints. Sinon, sélectionner Move to current joints pour déplacer le robot à la position actuelle définie dans le simulateur. La fenêtre peut être fermée et la connexion reste active

Robot Calibration LaserTracker - Image 18

Measuring the reference targets

Il est recommandé de mesurer un repère de référence d’étalonnage, fixé à la base du robot. Cela est utile si nous voulons déplacer le tracker pendant l’étalonnage ou comparer deux étalonnages de robot. Le repère de référence de l’étalonnage doit être défini par 3 points tangibles.

Sauter cette étape si vous n’allez pas déplacer le pointeur par rapport au robot ou si vous n’avez pas besoin de récupérer la position de repos pour l’axe 1. Dans ce cas, la référence du tracker laser sera utilisée.

Suivre ces étapes chaque fois que le tracker laser change de position :

1.Sélectionner ConnectConnect laser tracker.

2.Définir l’adresse IP du tracker laser et sélectionner Connect (uniquement si le tracker n’est pas connecté).

3.Définir la référence d’étalonnage et la référence du tracker comme montré dans l’image. La référence d’étalonnage est également connue sous le nom de « référence des mesures ».

4.Sélectionner Set Base targets.

Robot Calibration LaserTracker - Image 19

RoboDK guidera l’utilisateur avec les menus affichés dans l’image suivante. La position du tracker laser sera automatiquement mise à jour par rapport à la référence d’étalonnage lorsque la procédure sera terminée.

Robot Calibration LaserTracker - Image 20

Robot Calibration LaserTracker - Image 21Robot Calibration LaserTracker - Image 22Robot Calibration LaserTracker - Image 23


Calibration robot

L’étalonnage du robot est divisé en 4 étapes. Chaque étape nécessite de prendre un ensemble de mesures. Ces quatre étapes doivent être suivies dans l’ordre :

1.Mesures de référence de la base (3 minutes).

2.Mesures de référence de l’Outil (3 minutes)

3.Mesures de Calibration (7 minutes, 60 mesures)

4.Mesures de Validation (7 minutes, 60 mesures).

La vidéo suivante montre comment effectuer cet étalonnage en 20 minutes : https://www.robodk.com/robot-calibration#tab-lt. Les mesures de validation (étape 4) ne sont pas obligatoires pour étalonner le robot, cependant, ils donnent un point de vue objectif des résultats. Il est également possible de voir l’impact de l’étalonnage du robot dans une zone et sa validation dans une autre zone.

Sélectionner le bouton Mesure pour chacun des quatre ensembles de mesures. Cela ouvrira une nouvelle fenêtre qui permet de prendre de nouvelles mesures ainsi que d’importer et d’exporter des mesures existantes dans un fichier texte (format csv ou txt)

Mesurer la base

Ces mesures peuvent être effectuées n’importe où sur la bride de l’outil si vous mesurez la même cible pour les 6 mesures. Pour démarrer les mesures, sélectionner Mesure dans la section Base setup. La fenêtre suivante s’ouvre. Ensuite, sélectionner Start Measure et le robot se déplacera séquentiellement à travers les mesures programmées

Robot Calibration LaserTracker - Image 24

Fermer la fenêtre lorsque les mesures sont terminées et que le repère de référence des mesures est mis à jour par rapport au repère de base du robot. Si vous n’avez pas sélectionné de repère de référence, ajouter une référence (sélectionner Programme Ajouter un Repère) et le placer sous la référence de base du robot (Glisse et dépose dans l’arborescence).

Robot Calibration LaserTracker - Image 25

Le résumé indiquera la position et l’orientation ou le repère de référence du robot par rapport au repère de référence d’étalonnage (format [x,y,z,w,p,r], en mm et radians).

Mesurer l’outil

Ces 6 mesures peuvent être effectuées n’importe où sur la bride de l’outil si vous mesurez la même cible pour les 6 mesures. Après cela, chaque TCP que vous voulez mesurer ajouterons une mesure pour le même TCP. Dans ce cas, il y a 3 TCP, donc 6+3=9 mesures au total. Il est possible de double-cliquer sur une mesure afin de continuer la mesure depuis cette position.

Comme dans la section précédente : sélectionner Measure dans la section Tool setup. La fenêtre suivante s’ouvre. Sélectionner Start Measure et le robot se déplacera de façon séquentielle à travers les mesures planifiées. Double-cliquer sur une mesure pour continuer à mesurer à partir de cette position.

Robot Calibration LaserTracker - Image 26

Le résumé montre les informations du TCP étalonné (position et orientation) lorsque la procédure est terminée. La définition du TCP (dans l’image suivante « CalibTool1 ») sera mise à jour automatiquement. Si vous n’avez pas sélectionné de TCP, vous pouvez en ajouter un nouveau (sélectionner « Programme Ajouter Outil vide ») et sélectionner « Recalculer ». Une nouvelle fenêtre apparait et sélectionner l’id de l’outil en fonction de l’ordre dans lequel les mesures ont été prises. Répéter cette procédure pour mettre à jour autant de TCP qu’il faudra (dans ce cas 3 TCP). L’id de l’outil sera automatiquement détecté si le nom de l’outil termine par un chiffre.

Robot Calibration LaserTracker - Image 27

Calibration du Robot

Sélectionner Measure dans la section Calibration. La fenêtre suivante s’ouvre. Ensuite, sélectionner Start Measure et le robot se déplacera séquentiellement à travers les mesures planifiées. Double-cliquer sur une mesure pour continuer à mesurer à partir de cette position.

Robot Calibration LaserTracker - Image 28

Fermer la fenêtre lorsque les mesures sont terminées. Le robot sera étalonné automatiquement et affichera le message suivant s’il n’y a pas de problème.

Robot Calibration LaserTracker - Image 29

Enfin, l’écran vert affiche certaines statistiques concernant les mesures d’étalonnage et l’amélioration de la précision de ces mesures.

Robot Calibration LaserTracker - Image 30

Validation du robot

Ne pas valider la précision du robot en utilisant les mêmes mesures que vous avez utilisées pour calibrer le robot, par conséquent, il est recommandé de prendre des mesures supplémentaires pour valider la précision (avoir un point de vue plus objectif des résultats).

La même procédure d’étalonnage doit être suivie pour prendre les mesures de validation. Le résumé affichera les statistiques de validation. Voir la section Résultats ci-dessous pour plus d’informations.

Résultats

Une fois l’étalonnage terminé, analyser l’amélioration de la précision en lisant les statistiques fournies par RoboDK. Pour afficher ces statistiques, ouvrir la fenêtre d’étalonnage du robot (double-cliquer sur l’icône Étalonnage du robot). La fenêtre de résumé de la section de validation affiche les erreurs avant l’étalonnage (cinématique nominale) et après l’étalonnage (cinématique étalonnée). Deux tableaux sont fournis, l’un montre les statistiques concernant les erreurs de position et l’autre montre les erreurs de distance :

Erreurs de position : L’erreur de position est la précision que le robot peut atteindre un point par rapport à un repère de référence.

Erreurs de distance : L’erreur de distance est obtenue en mesurant l’erreur de distance de paires de points. La distance entre deux points observés par le robot (obtenue à l’aide de la cinématique étalonnée) est comparée à la distance observée par le système de mesure (mesurée physiquement). Toutes les combinaisons sont prises en compte. Si vous avez pris 315 mesures, vous aurez 315x315/2= 49455 valeurs d’erreur de distance.

Les statistiques fournies sont l’erreur moyenne, l’écart-type (std) et l’erreur maximale. Il est également fourni la moyenne plus trois fois l’écart-type, qui correspond à l’erreur attendue pour 99,98% de toutes les mesures (si l’on tient compte du fait que les erreurs suivent une distribution normale).

Robot Calibration LaserTracker - Image 31

Sélectionner Show stats pour pouvoir afficher deux histogrammes. Ils montrent la distribution des erreurs avant et après l’étalonnage, un histogramme pour la précision de la position et l’autre pour la précision de la distance. Les images suivantes correspondent aux 315 mesures de validation utilisées dans cet exemple.

Robot Calibration LaserTracker - Image 32

Robot Calibration LaserTracker - Image 33

Enfin, sélectionner « Make report » et un rapport PDF contenant l’information présentée dans cette section sera généré.

Filtrage de programme

Une fois que le robot a été calibré, il y a deux options pour générer des programmes en utilisant la précision absolue du robot calibré :

Filtrer les programmes existants : toutes les cibles de robot à l’intérieur d’un programme sont modifiées pour améliorer la précision du robot. Il peut être fait manuellement ou en utilisant l’API.

Utiliser RoboDK pour la programmation hors ligne pour générer des programmes précis (les programmes générés sont déjà filtrés, y compris les programmes générés à l’aide de l’API).

Pour filtrer manuellement un programme existant : glisser et déposer le fichier de programme robot dans l’écran principal de RoboDK (ou sélectionner Fichierouvrir) et sélectionner Filter only. Le programme sera filtré et enregistré dans le même dossier. Le résumé du filtre indiquera s’il y a eu des problèmes avec l’algorithme de filtrage. Vous avez également la possibilité d’importer un programme pour le simuler à l’intérieur de RoboDK. Si le programme a des dépendances (repère d’outils ou définitions de base, sous-programmes, ...) ils doivent être situés dans le même répertoire où le premier programme est importé.

Robot Calibration LaserTracker - Image 34

Robot Calibration LaserTracker - Image 35

Une fois le programme importé à l’intérieur de RoboDK, il est possible de le régénérer avec ou sans précision absolue. Dans les principaux réglages de précision de RoboDK (OutilsOptionsPrécision) vous pouvez décider si vous voulez toujours générer les programmes en utilisant une cinématique précise, si vous voulez demander à chaque fois ou si vous voulez utiliser la cinématique actuelle du robot. La cinématique actuelle du robot peut être modifiée avec un clic droit sur le robot et en activant/désactivant la balise « Utiliser une cinématique précise ». S’il est actif, vous verrez un point vert, s’il n’est pas actif, vous verrez un point rouge.

Robot Calibration LaserTracker - Image 36

Robot Calibration LaserTracker - Image 37

Filtrer les programmes avec l’API

Il est possible de filtrer un programme complet en utilisant RoboDK, avec un robot calibré et le programme de robot, en utilisant l’option FilterProgram:

robot.FilterProgram(file_program)

Un exemple de macro appelé Filterprogram est disponible dans la section Macros de la bibliothèque. Le code suivant est un exemple de script Python qui utilise l’API RoboDK pour filtrer un programme.

from robolink import*# API to communicate with RoboDK

from robodk import*# basic matrix operations

import os                 # Path operations

# Get the current working directory

CWD = os.path.dirname(os.path.realpath(__file__))

# Start RoboDK if it is not running and link to the API

RDK = Robolink()

# optional: provide the following arguments to run behind the scenes

#RDK = Robolink(args='/NOSPLASH /NOSHOW /HIDDEN')

# Get the calibrated station (.rdk file) or robot file (.robot):

# Tip: after calibration, right click a robot and select "Save as .robot"

calibration_file = CWD +'/KUKA-KR6.rdk'

# Get the program file:

file_program = CWD +'/Prog1.src'

# Load the RDK file or the robot file:

calib_item = RDK.AddFile(calibration_file)

ifnot calib_item.Valid():

raise Exception("Something went wrong loading "+ calibration_file)

# Retrieve the robot (no popup if there is only one robot):

robot = RDK.ItemUserPick('Select a robot to filter', ITEM_TYPE_ROBOT)

ifnot robot.Valid():

raise Exception("Robot not selected or not available")

# Activate accuracy

robot.setAccuracyActive(1)

# Filter program: this will automatically save a program copy

# with a renamed file depending on the robot brand

status, summary = robot.FilterProgram(file_program)

if status ==0:

print("Program filtering succeeded")

print(summary)

calib_item.Delete()

RDK.CloseRoboDK()

else:

print("Program filtering failed! Error code: %i"% status)

print(summary)

RDK.ShowRoboDK()

Filtrer les cibles avec l’API

Le code suivant est un exemple de script Python qui utilise l’API RoboDK pour filtrer une cible (poser une cible ou une cible commune), en utilisant la commande FilterTarget:

pose_filt, joints = robot.FilterTarget(nominal_pose, estimated_joints)

Cet exemple est utile si une application tierce (autre que RoboDK) génère le programme de robot en utilisant des cibles de pose.

from robolink import*# API to communicate with RoboDK

from robodk import*# basic matrix operations

defXYZWPR_2_Pose(xyzwpr):

return KUKA_2_Pose(xyzwpr) # Convert X,Y,Z,A,B,C to a pose

defPose_2_XYZWPR(pose):

return Pose_2_KUKA(pose) # Convert a pose to X,Y,Z,A,B,C

# Start the RoboDK API and retrieve the robot:

RDK = Robolink()

robot = RDK.Item('', ITEM_TYPE_ROBOT)

ifnot robot.Valid():

raise Exception("Robot not available")

pose_tcp = XYZWPR_2_Pose([0,0,200,0,0,0]) # Define the TCP

pose_ref = XYZWPR_2_Pose([400,0,0,0,0,0]) # Define the Ref Frame

# Update the robot TCP and reference frame

robot.setTool(pose_tcp)

robot.setFrame(pose_ref)

# Very important for SolveFK and SolveIK (Forward/Inverse kinematics)

robot.setAccuracyActive(False)# Accuracy can be ON or OFF

# Define a nominal target in the joint space:

joints =[0,0,90,0,90,0]

# Calculate the nominal robot position for the joint target:

pose_rob = robot.SolveFK(joints) # robot flange wrt the robot base

# Calculate pose_target: the TCP with respect to the reference frame

pose_target = invH(pose_ref)*pose_rob*pose_tcp

print('Target not filtered:')

print(Pose_2_XYZWPR(pose_target))

joints_approx = joints # joints_approx must be within 20 deg

pose_target_filt, real_joints = robot.FilterTarget(pose_target, joints)

print('Target filtered:')

print(real_joints.tolist())

print(Pose_2_XYZWPR(pose_target_filt))


Master du Robot

Une fois que le robot a été calibré, vous avez généralement besoin de RoboDK pour filtrer les programmes. Une licence RoboDK est nécessaire (une licence OLP de base est suffisante pour générer des programmes de robot précis une fois que le robot a été calibré). Filtrer un programme signifie que les cibles d’un programme sont modifiées/optimisées pour améliorer la précision du robot, en tenant compte de tous les paramètres d’étalonnage (environ 30 paramètres).

Il est possible aussi d’étalonner uniquement les décalages de joint/articulation et les repères de base et d’outil (4 paramètres de décalage de joint plus 6 paramètres pour le repère de base, plus 6 paramètres pour le repère d’outil). L’étalonnage ne sera pas aussi précis que si vous utilisiez l’étalonnage complet par défaut, mais il pourrait permettre de saisir certains paramètres dans le contrôleur du robot et ne pas dépendre de RoboDK pour générer des programmes robot.

Pour obtenir l’étalonnage uniquement pour les décalages de joint/articulation, sélectionner Calib. Param. puis le bouton Mastering (dans le menu d’étalonnage du robot).

Robot Calibration LaserTracker - Image 38

Robot Calibration LaserTracker - Image 39

Après avoir sélectionné Make mastering program, une nouvelle fenêtre apparaîtra. Dans cette fenêtre, sélectionner les axes que vous voulez pour définir la nouvelle position de départ.

Robot Calibration LaserTracker - Image 40

Le bouton Make mastering program apparaîtra dans la fenêtre d’étalonnage du robot. Sélectionner ce bouton pour générer un programme qui amènera le robot à la nouvelle position de départ. Transférer-le au robot et exécuter-le. La nouvelle position de départ peut être enregistrée.

Si le robot et le PC sont connectés, faire un clic droit sur le programme et sélectionner Envoyer le programme au robot pour envoyer automatiquement le programme au robot. Sinon, sélectionner Générer programme robot pour voir de nouvelles valeurs pour la position de départ.

Robot Calibration LaserTracker - Image 41

Ci-dessous un exemple vous permettant de mettre à jour la position d’origine d’un robot Motoman.

Dans un premier temps exécuter le programme maître (“MASTERING”) pour apporter le robot dans sa position d’origine.

Une fois le programme dans le contrôleur, se connecter au mode “Management” (le mot de passe pour les robots Motoman est normalement 99999999) et vous mettre en mode Teach. Les images suivantes montrent les étapes à suivre.

Robot Calibration LaserTracker - Image 42Robot Calibration LaserTracker - Image 43

Robot Calibration LaserTracker - Image 44Robot Calibration LaserTracker - Image 45

Robot Calibration LaserTracker - Image 46Robot Calibration LaserTracker - Image 47

Bien s’assurer de tains de mettre à jour la position d’origine pour tous les joints du robot.

Une fois la position d’origine définie, supprimer le programme qui a positionné le robot dans sa position d’origine.

Repère de reference et repère d’outil

RoboDK fournit quelques utilitaires pour étalonner les repères de référence et les repères d’outils. Ces outils sont accessibles dans Utilitaires Définir Outil (TCP) et Utilitaires Définir Repère (User frame).

Robot Calibration LaserTracker - Image 48

Pour calibrer un repère de référence ou un repère d’outils (également connu sous le nom de repère utilisateur et repère TCP), vous avez besoin de configurations robot touchant 3 points ou plus. Ces configurations peuvent être soit des valeurs joint ou des coordonnées cartésiennes (avec des données d’orientation dans certains cas). Il est recommandé d’utiliser les valeurs de joint au lieu des coordonnées cartésiennes car il est plus facile de vérifier la configuration réelle du robot dans RoboDK (en copiant les valeurs d’articulations du robot sur l’écran principal de RoboDK).

Tool calibration

Sélectionner UtilitairesDefinir Outil (TCP) pour calibrer le TCP en utilisant RoboDK. Il est possible d’utiliser autant de points que vous le souhaitez, en utilisant différentes orientations. Plus il y a de points et de changements d’orientation, et mieux ce sera pour que vous obteniez une meilleure estimation du TCP ainsi qu’une bonne estimation de l’erreur TCP.

Les 2 options suivantes sont disponibles pour calibrer un TCP :

En touchant un point fixe avec le TCP avec différentes orientations.

En touchant un plan avec le TCP (comme une sonde tactile).

Il est recommandé d’étalonner en touchant une référence plane pour étalonner une sonde tactile ou une broche. Cette méthode est plus stable contre les erreurs utilisateur.

Si le TCP est sphérique, le centre de la sphère est calculé comme le nouveau TCP (il n’est pas nécessaire de définir le diamètre de la sphère).

Robot Calibration LaserTracker - Image 49

Les étapes suivantes doivent être suivies pour étalonner le TCP avec un plan (tel que le montre l’image) :

1.Sélectionner l’outil ayant besoin d’être calibré.

2.Sélectionner la méthode de calibration ”Calib XYZ by plane”.

3.Sélectionner Etalonner en utilisant “joints”.

4.Sélectionner le robot en cours d’utilisation.

5.Sélectionner le nombre de poses qui seront nécessaire pour calibrer le TCP (il est recommandé d’utiliser au moins 8 poses).

6.Sélectionner une estimation du plan de référence. Si le plan de référence n’est pas parallèle au plan robot XY (à partir de la référence du robot), ajouter une estimation de ce plan de référence dans une plage de ±20 degrés. La position de ce plan n’est pas importante, seulement l’orientation.

Robot Calibration LaserTracker - Image 50

7.Commencer à remplir le tableau de valeurs des joints. Il est possible de le remplir manuellement ou en faisant des copier-coller avec les boutons (comme le montre l’image). Vous pouvez également utiliser le bouton « Get Jx » pour obtenir les valeurs de joint actuelles du robot dans le simulateur. Si vous obtenez les valeurs des joints/articulations d’un robot connecté, sélectionner « Get current joints » dans le menu de connexion du robot (voir l’image ci-jointe ou l’annexe pour plus d’informations sur la connexion d’un robot avec RobodDK). Il est fortement recommandé de conserver une copie séparée des joints utilisés pour l’étalonnage (comme un fichier texte, par exemple).

Robot Calibration LaserTracker - Image 51

8.Une fois le tableau rempli, vous verrez les nouvelles valeurs TCP (X, Y, Z) comme « TCP étalonné », au bas de la fenêtre. Sélectionner « Mettre à jour » et le nouveau TCP sera mis à jour dans la station RoboDK. L’orientation de la sonde ne peut pas être trouvée en utilisant cette méthode.

9.Sélectionner « Show errors » et vous verrez l’erreur de chaque pose par rapport au TCP calculé (qui est la moyenne de toutes les poses). Vous pouvez supprimer une pose si elle a une erreur plus importante que les autres.

10.Mettre à jour manuellement les valeurs dans le contrôleur du robot (X, Y, Z uniquement). Si le TCP est utilisé dans un programme généré par RoboDK, il n’est pas nécessaire de mettre à jour les valeurs dans le contrôleur de robot.


11.

Calibration du repère de référence

Sélectionner UtilitairesDéfinir repère (user frame) pour étalonner un repère. Il est possible de définir un repère en utilisant différentes méthodes. Dans l’exemple du logiciel, un repère de référence est défini par trois points : les points 1 et 2 définissent la direction de l’axe des X et le point 3 définit l’axe des Y positifs.

Robot Calibration LaserTracker - Image 52

Annexe I – Mastering pour les axes 1 et 6

Vous devez prêter une attention particulière si vous voulez récupérer les valeurs de mastering/origine pour les axes 1 et 6. Ces valeurs sont directement liées au repère de base du robot pour l’axe 1 et au repère du TCP pour l’axe 6. Par conséquent, des mesures externes doivent être prises pour définir correctement ces valeurs. La fenêtre suivante fenêtre s’affiche après avoir sélectionné « Make mastering program » dans le menu d’étalonnage.

Robot Calibration LaserTracker - Image 53

Les deux procédures suivantes doivent être suivies pour définir correctement les paramètres de mastering pour ces deux axes.

Reference de l’Axe 6

Utiliser une cible de référence pour régler correctement la position d’origine de l’axe 6. Le décalage de l’angle sera une rotation autour de l’axe Z de la bride, nécessaire pour adapter au mieux le TCP mesuré (X, Y, Z) à la référence TCP connue. Le TCP mesuré (voir l’image suivante) est l’un des TCP qui a été mesuré à l’étape deux de la procédure d’étalonnage. La référence TCP est une référence connue qui correspond à l’un des TCP de l’outil d’étalonnage utilisé.

Idéalement, le TCP de référence doit être mesuré par le CMM par rapport à la bride de l’outil (une réplique de la bride de l’outil robot serait préférable). Il est possible aussi d’utiliser un nouveau robot pour mesurer (étape deux de la procédure d’étalonnage) le TCP pour la première fois et utiliser un TCP mesuré comme référence. Il est important d’utiliser une goupille de goujon et/ou une bride d’outil appropriée pour s’assurer que l’effecteur est toujours placé à la même position.

Robot Calibration LaserTracker - Image 54

Référence de l’axe 1

Mesurer correctement trois cibles de base avant de commencer un étalonnage de robot pour aligner l’axe 1 avec le repère de base du robot réel. Ces cibles de base doivent être choisies afin que le repère de référence puisse être trouvé par rapport au robot.

La position de « départ » de l’axe 1 dépend directement des trois cibles de base ainsi que de la configuration de la base du robot. La configuration de la base du robot est la première étape d’étalonnage, où le repère de base du système de mesure est placé par rapport au repère de base du robot en déplaçant et en mesurant les axes 1 et 2.

Les cibles de base du système de mesure peuvent être définies en appuyant sur « Définir les cibles de base » (voir l’image suivante). Il s’agit de 3 mesures qui définiront le repère de référence du robot souhaité (les 2 premières mesures définissent l’axe des X et le troisième point l’axe des Y positifs). Vous devriez utiliser des points de référence appropriés liés à la base du robot afin que cette procédure soit reproductible.

L’angle de correction pour l’articulation 1 sera l’angle entre l’axe X de la référence de base mesuré à travers 3 points et la référence de base mesurée en déplaçant les axes 1 et 2 du robot. Bien sûr, les deux vecteurs sont précédemment projetés au plan XY de la référence de base obtenue en touchant les 3 points.

Robot Calibration LaserTracker - Image 55

Annexe II – Test du laser tracker Faro

L’étalonnage du robot exige que des mesures soient prises à partir du robot avec un système de mesure. Pour prendre ces mesures, il est nécessaire d’avoir un tracker laser Faro communiquant avec un ordinateur. La communication se fait via un driver exe qui peut être exécuté en mode console.

Par exemple, Faro offre une application gratuite appelée « Tracker Utilities ». Cette application peut initialiser le tracker laser et peut effectuer entre autres des contrôles de santé.

Pour initialiser le tracker, démarrer l’application « Tracker Utilities », vous connecter à l’aide de l’adresse IP du tracker, puis sélectionner « Startup Checks ». Lorsque le tracker s’initialise, placer une cible SMR de 1,5’’ (pouces) en position d’origine avant l’initialisation. Sinon, le voyant vert clignotera après l’initialisation et les mesures ne seront pas valides.

Lorsque l’initialisation est réalisée, vous pouvez lire le message “Startup complete”, tel que montré dans les images suivantes.

Robot Calibration LaserTracker - Image 56Robot Calibration LaserTracker - Image 57

Si vous avez des problèmes avec le tracker, effectuer des vérifications de santé en appuyant sur « Health Checks… ». Les deux images suivantes montrent respectivement une vérification de réussite et une vérification d’échec. Parfois, les problèmes sont résolus après la reconnexion des câbles et le redémarrage du tracker laser.

Robot Calibration LaserTracker - Image 58Robot Calibration LaserTracker - Image 59

Note:Il est recommandé d’effectuer une auto-compensation du tracker de temps en temps. Cette compensation utilise certains points de référence dans la tête du tracker pour étalonner automatiquement le système de mesure. Il est possible aussi exécuter quelques contrôles de précision angulaire pour valider la précision du tracker laser.

Robot Calibration LaserTracker - Image 60

Pour finir, utiliser le pavé de mesure (Measure pad) pour prendre quelques mesures. Le tracker laser peut suivre une cible et mesurer la position XYZ à une fréquence de 1000 Hz. Si vous définissez 1 échantillon par point et déclencheur continu, le tracker enregistrera 1000 mesures par seconde dans un fichier CSV.
Il est possible d’utiliser cette fonction pour mesurer le parcours d’un robot et utiliser le contrôle de précision du parcours de RoboDK pour vérifier la précision, la vitesse et l’accélération le long du parcours.

Robot Calibration LaserTracker - Image 61