API RoboDK

L’API Robodk (Application Program Interface) représente un ensemble de routines et de commandes que RoboDK propose à travers un langage de programmation. L’API RoboDK vous permet de programmer n’importe quel robot en utilisant l’un des langages de programmation pris en charge, tels que C#, Python ou C++.

Par rapport à la programmation de robots spécifiques vendu par les fournisseurs, avec l’API Robodk, il est possible de simuler et de programmer n’importe quel robot en utilisant un langage de programmation unique/universel comme Python. Le lien fournit un aperçu et une vidéo montrant la programmation hors ligne avec l’API.

L’API RoboDK est disponible pour Python, C#, C++, Visual Basic (.NET) et Matlab. N’importe lequel de ces langages de programmation peut être utilisé pour simuler et programmer n’importe quel robot.

L’API de RoboDK peut être utilisé pour les taches suivantes :

1.Automatiser la simulation: Créer des macros pour automatiser des tâches précises dans le simulateur Robodk, comme les objets en mouvement, les repères ou les robots.

2.Programmation hors ligne: Programmation de robots hors ligne à partir d’un langage de programmation universel. Robodk générera des programmes spécifiques pour un contrôleur de robot spécifique lorsque l’API est utilisée (comme un programme en Python ou C#). Le programme robot est généré selon le post-processeur sélectionné pour un robot spécifique. La section Programmation hors ligne avec Python de ce document fournit plus d’informations et des exemples.

3.Programmation en ligne: Programmation de robots en ligne en utilisant un langage de programmation universel: Il est possible de déplacer les robots et de récupérer leur position actuelle à partir de l’API Robodk. Robodk pilotera les robots en utilisant des pilotes de robot. La section Programmation en ligne avec Python de ce document fournit plus d’informations et des exemples.

En d’autres termes, le même programme qui est utilisé pour la simulation (1) peut être utilisé pour générer des programmes de robot (2, Programmation hors ligne) et pour déplacer le robot en temps réel (3, Programmation en ligne).

Ce document couvre les sujets suivants :

L’API Python avec des exemples de Simulations, Programmation Hors-Ligne et En Ligne.

L’API en C# avec des exemples de simulations, Programmation Hors-Ligne et En Ligne.

L’API Matlab avec un exemple de simulation Simulink.

Les options de Ligne de commande afin de démarrer RoboDK

Python API

Python est un langage de programmation de haut niveau largement utilisé pour la programmation. Python est un langage de programmation qui vous permet de travailler plus rapidement et d’intégrer plus efficacement vos systèmes. La syntaxe de Python permet aux programmeurs d’exprimer des concepts en moins de lignes de code par rapport à d’autres langages, ce qui le rend convivial et facile à apprendre.

La section précédente explique les avantages de l’utilisation de l’API RoboDK avec un langage de programmation largement utilisé pour la programmation de robots tels que Python.

Python est installé automatiquement et intégré avec RoboDK par défaut. Sélectionner OutilsOptionsAutres pour changer les paramètres par défauts. (Localisation de Python et Python Editor).

RoboDK API - Image 1

L’API Robodk pour Python est divisée en deux modules :

Le module robolink (robolink.py) : Le module robolink est l’interface entre Robodk et Python. Tout objet de l’arborescence de la station Robodk peut être récupéré à l’aide d’un objet Robolink et est représenté par l’objet Item. Il est possible d’effectuer des opérations différentes sur cet élément selon la classe de Robolink.Item

Le module robodk (robodk.py) : Le module robodk est une boîte à outils robotique pour Python qui permet d’effectuer des transformations de pose et d’obtenir des angles d’Euler pour différentes marques de robots. Tous les post-processeurs dépendent de ce module robodk.

Les modules Python sont situés dans le dossier C:/Robodk/Python/ et ils sont copiés automatiquement dans le chemin du dossier Python lorsque Robodk est installé ou lorsque les paramètres Python par défaut sont sélectionnés (voir l’image précédente).

Les sous-sections suivantes montrent comment créer un programme simple pour la simulation, la programmation hors ligne et la programmation en ligne. D’autres exemples sont disponibles sur la page de l’API Python pour Robodk. De plus, la bibliothèque Robodk contient des exemples de macros Python dans le dossier C:/Robodk/Library/Macros/.

Simulation Python

Suivre ces étapes pour démarrer un projet exemple en utilisant un robot UR et simuler un mouvement avec le robot.

1.Sélectionner FichierRoboDK API - Image 2 Ouvrir

2.Ouvrir le robot UR10

3.Sélectionner FichierRoboDK API - Image 3 Ouvrir

4.Ouvrir Paint_gun.tool

5.Ouvrir l’exemple de programme Python SampleOfflineProgramming.py depuis C:/RoboDK/Library/Macros/

6.Double cliquer sur RoboDK API - Image 5SampleOfflineProgramming pour démarrer la simulation. Le robot doit dessiner un hexagone autour de la localisation actuelle et la trajectoire de l’outil TCP sera dessiné en jaune. (Clic droit sur le programme et choisir RoboDK API - Image 6Run Python Script)

7.Faire un clic droit sur RoboDK API - Image 7 SampleOfflineProgramming et sélectionner Modifier programme Python. Le programme doit apparaitre dans une fenêtre tel que montre l’image suivante.

La macro Sampleofflineprogramming dessinera un polygone de côté n_sides et de rayon R à l’emplacement actuel du robot, par rapport au repère du robot. Si vous le souhaitez, déplacer le robot vers un emplacement différent en changeant les dimensions du polygone et relancer le programme.

Cet exemple est similaire au programme montré dans la section de Programmation hors-ligne sur le site internet (avec vidéo).

RoboDK API - Image 8

Python OLP

Les programmes Python peuvent être générés hors ligne en utilisant le même code Python utilisé pour simuler le robot (comme indiqué dans la section précédente de Python Simulation). La programmation hors ligne permet de générer des programmes de robot qui peuvent être exécutés sur un contrôleur de robot spécifique :

1.Faire un clic droit sur un programme RoboDK API - Image 9Python

2.Sélectionner Générer programme robot (F6)

Dans ce cas, le programme n’est pas simulé mais exécuté rapidement pour obtenir le résultat : un programme robot spécifique à un contrôleur robot.

harsRoboDK API - Image 10

RDK = Robolink()

RDK.setRunMode(RUNMODE_MAKE_ROBOTPROG)

Programmation En Ligne Python

Les programmes Python peuvent être exécutés directement sur le robot en utilisant le même code Python utilisé pour la simulation robot (comme indiqué dans la section Simulation Python). La programmation en ligne permet d’exécuter un programme générique sur un contrôleur de robot spécifique en utilisant un Pilote/Drivers Robot :

1.Faire un clic droit sur RoboDK API - Image 11 le programme Python

2.Sélectionner Run on robot

Le programme s’exécutera sur le robot pendant que le programme Python est en train de s’exécuté.

RoboDK API - Image 12

RDK = Robolink()

RDK.setRunMode(RUNMODE_RUN_ROBOT)


C# API

L’API Robodk pour le langage C# est un fichier source Robodk.cs contenant la classe Robodk (similaire à la classe Robolink de Python), la classe Robodk.Item (similaire à l’API de classe Robolink.Item de Python) et d’autres outils pour la robotique tels qu’une classe Matrix (Robodk.Mat) pour les opérations matricielles à opérer avec des transformations de posage.

Le langage C# (prononcé "C sharp") est un langage de programmation développé par Microsoft et conçu pour construire une variété d’applications qui s’exécutent sur le NET Framework. C# est simple, puissant et orienté objet. La section principale de ce document explique les avantages de l’utilisation de l’API Robodk avec un langage de programmation largement utilisé comme C# pour la programmation robotisée.

L’API Robodk pour C# est fournie avec un exemple de projet comme indiqué dans l’image suivante (le code source complet est inclus). Il est également possible de l’utiliser comme un package NuGet pour l’intégrer dans n’importe quel projet .Net.

RoboDK API - Image 13

Sélectionner Load File pour ouvrir une station Robodk ou tout autre fichier pris en charge par Robodk. Si un robot est chargé, la variable ROBOT sera mis à jour en conséquence (comme avec Select Robot).

Simulation C#

Les programmes C# sont simulés par défaut lorsque des commandes de robot sont utilisées (comme Movej, Movel ou setDO). Lorsque le projet exemple C# est lancé, le mode de simulation est également sélectionné par défaut.

RoboDK API - Image 14

Cela signifie que les mouvements du robot seront simulés dans Robodk. Par exemple, nous pouvons déplacer le robot par pas de 10 mm en sélectionnant les boutons à droite (+Tx, -Tx, …), ou nous pouvons sélectionner Run Test Program pour exécuter un mouvement hexagonal autour de l’emplacement actuel du robot.

Vous pouvez définir les points d’arrêt pour déboguer votre application et inspecter les cibles du robot. Les cibles de robot peuvent être définies comme des coordonnées articulaires ou des variables Mat (matrices de pose 4x4) et peuvent être inspectées au format XYZWPR pour résoudre les problèmes de programme. Plus d’informations sur les repères dans la section Repères de référence.

RoboDK API - Image 15

Il est aussi possible de changer le Mode d’exécution à Programmation Hors Ligne ou Programmation en Ligne (Démarrer au Robot), tel que décrit dans la section suivante.


C# OLP

Les programmes C# peuvent être générés hors ligne en utilisant le même code C# utilisé pour simuler le robot (programmation hors ligne). Suivre ces étapes pour tester cette fonctionnalité :

1.Sélectionner Offline Programming dans la section Run Mode

2.Sélectionner Run Test Program ou n’importe quelles autres combinaisons de mouvements

3.Sélectionner Generate Prog afin d’obtenir le programme robot spécifique à la marque.

Dans ce cas le programme n’est pas simulé mais exécuté rapidement pour obtenir le résultat : un programme de robot spécifique à un contrôleur de robot. Une fois le programme généré, le Run mode redevient Simulation.

RoboDK API - Image 16


C# Programmation En Ligne

Les programmes C# peuvent être exécutés directement sur le robot en utilisant le même code C# utilisé pour la simulation. La programmation en ligne permet d’exécuter un programme générique sur un contrôleur de robot spécifique en utilisant Robot Drivers. Suivre les étapes suivantes pour mettre à l’essai cette fonction à l’aide du projet exemple C# :

1.Sélectionner Run on Robot depuis la section Run Mode

2.Sélectionner n’importe quelles autres commande qui pourra faire bouger le robot

Les mouvements fonctionneront sur le vrai robot et le simulateur synchronisera les mouvements avec le robot.

RoboDK API - Image 17

RDK = Robolink();

RDK.setRunMode(RUNMODE_RUN_ROBOT);

Matlab API

L’API Robodk pour Matlab est disponible dans le dossier d’installation Robodk. Elle se trouve généralement dans C:/Robodk/Matlab/. L’API Robodk pour Matlab est fournie sous forme de fichiers m.

Matlab est un langage de programmation propriétaire développé par MathWorks. Entre autres, MATLAB permet des manipulations matricielles, le traçage de fonctions et de données et la mise en œuvre d’algorithmes.

La section principale de ce document explique les avantages de l’utilisation de l’API Robodk avec un langage de programmation largement utilisé comme Matlab pour la programmation robot

L’API Robodk pour Matlab comprend :

Robolink.m est une classe qui interagit avec Robodk. Tout objet dans l’arborescence de la station Robodk peut être récupéré à l’aide de l’objet Robolink et il est représenté par l’objet Robolinkitem (comme la classe Robolink de Python).

Robolinkitem.m est une classe qui représente un élément Robodk dans l’arborescence de la station. Il est possible d’effectuer différentes opérations sur cet élément (comme la classe Robolink.Item de Python).

transl.m, rotx.m, roty.m et rotz.m sont des fonctions qui créées des posages matricielles donnant un XYZ en vecteur de translation ou rotation le long d’un axe spécifique.

Pose_2_XYZRPW.m et XYZRPW_2_Pose.m permettent de convertir les position XYZ et RPW des angles d’Euler et vice versa. Plus d’information dans la section Repères de référence.

L’exemple de code est disponible à la page suivante : https://robodk.com/Matlab-API

Exemple Simulink

Un projet Simulink est disponible à titre d’exemple. Dans la simulation, le robot est déplacé le long d’un ensemble de coordonnées XYZ générées arbitrairement.

La vidéo suivante montre le résultat de l’exécution de la simulation :         
https://www.youtube.com/watch?v=7DDBMwa0-Oc

RoboDK API - Image 18

Options de Ligne de Commande

Cette section décrit les options de ligne de commande disponibles au démarrage de RoboDK. Les options de ligne de commande peuvent également être passées en utilisant la fonction de commande de l’API.

L’appel suivant représente un appel générique avec quelques arguments :

RoboDK.exe -[option1] -[option2] open_fileA -[option3] open_fileB ...

Tous les formats de fichiers pris en charge par RoboDK peuvent être fournis comme arguments. Y compris les formats suivants :

RDK    fichier station RoboDK : ce fichier comprend tout le projet, incluant toutes les dépendances (robots, outils, fichiers CN, …).

robot    fichier Robot : charger un fichier robot créera aussi un repère pour ce robot.

tool      fichier outil : Attaché automatiquement au dernier robot ajouté.

stl/wrl/step/stp/iges/igs/sld Objet (géométrie 3D): un Objet peut facilement être  convertis en outils.

apt/gcode/cnc fichier programme CN : RoboDK prépare automatiquement un projet d’usinage (Utilitaires Projet d’usinage).

RDK = Robolink(args='-ADDFRAME "-RENAME=Main Ref " load_object.stl')

Options de ligne de commande disponible :

-NOSPLASH

Supprime l’image d’ouverture RoboDK au démarrage.

-DEBUG

Crée un fichier Robodk.debug.txt dans le dossier bin qui permet de déboguer l’application.

-SETTINGS=filepath

Charge les arguments à partir d’un fichier texte. Chaque ligne de ce fichier texte est considérée comme un seul argument.

-NOSHOW

Masque toutes les fenêtres pendant que RoboDK charge les fichiers et met à jour les programmes.

-HIDDEN

Évite le /SHOW automatique une fois que RoboDK a terminé le chargement. La seule façon d’afficher la fenêtre par la suite est en utilisant l’API.

-NO_WINDOWS

Masque toutes les fenêtres qui sont habituellement affichées automatiquement lors du chargement d’un fichier CN.

-NOUI

Démarrer RoboDK sans l’interface utilisateur (Fenêtre et vue 3D). Utiliser cette option pour exécuter RoboDK en arrière-plan à l’aide de l’API.

-PORT=20501

Force la communication de l’API par le port donné (protocole TCP/IP). Le port par défaut est 20500.

-TREE_STATE=-1

N’affiche pas l’arborescence de la station.

-TREE_STATE=6

Afficher l’arborescence de la station ancrée sur le côté gauche de la fenêtre et opaque.

-ADDFRAME

Ajoute un nouveau repère de référence. Tout nouvel objet chargé sera placé dans ce repère.

-RESET

Force que si un nouvel objet est chargé, il sera placé dans le repère de référence de la station (et non dans le dernier repère ajouté).

-RENAME=Name

Change le nom du dernier repère de référence ou de l’objet qui a été ajouté.

-MOVE=x;y;z;rx;ry;rz

Déplace le dernier repère de référence ajouté (en mm et en degrés).

-UPDATE_APT=YES

Annulera tous les projets d’usinage de robots qui ont le même fichier APT

-UPDATE_APT=NO

N’annulera pas les projets d’usinage robots (créera des projets en double s’il y a une correspondance de nom).

-UPDATE=file.apt

Charge ou met à jour le fichier APT et génère le programme robot s’il n’y a pas de problème.

-REPLACE_ITEMS=YES

Met à jour les outils et objets existants lorsque de nouveaux fichiers sont chargés et qu’il y a une correspondance de nom.

-REPLACE_ITEMS=NO

N’annule jamais les outils et les objets lorsque de nouveaux fichiers sont chargés.

-SETCOLOR=blue

Définir la couleur du dernier objet chargé (objet, outil, robot ou mécanisme). La couleur peut être une couleur nommée ou une couleur hexadécimale (comme #RRGGBBAA, exemple : #88112288).

-AUTOGEN_MAINPROG=Prog

Génère un programme principal qui appelle les programmes liés aux fichiers APT chargés séquentiellement.

-SELECTTOOL=#1

Définir le premier outil robot (ou le numéro correspondant) disponible comme outil actif (l’outil utilisé lorsqu’un nouveau programme est chargé).

-SELECTTOOL=”tool name”

Sélectionner l’outil actif à l’aide d’une correspondance de nom.

-ADDCUTTER=length|path/cutter name.stl

Addcutter permet d’ajouter la géométrie d’un outil par rapport à un porte-outil. Une fraise est traitée comme un outil dans Robodk, gardant la géométrie de la fraise. La géométrie de l’outil doit être un fichier STL (ASCII ou binaire) avec l’origine à l’extrémité de l’outil. La longueur doit être indiquée en mm par rapport au porte-outil (l’axe Z positif du porte-outil doit pointer vers l’extérieur).

-SELECTCUTTER=”cutter name”

Selectcutter a le même effet que SELECTTOOL, les « cutters » sont traités comme des outils.

-SHOW

Affiche la fenêtre RoboDK. Cela se fait automatiquement lorsque tous les fichiers ont été chargés et que les projets d’usinage ont été mis à jour.

L’utilisation de l’une des options suivantes modifiera la visibilité provoquée par la commande /SHOW.

-QUIT

Quitte le programme s’il n’y a pas de message d’erreur.

-END

Quitte le programme même s’il y a des messages d’erreur.