RoboDK API

Die RoboDK-API (Application Program Interface) ist eine Reihe von Abläufen und Befehlen, die RoboDK über eine Programmiersprache bereitstellt, die es ermöglicht, jeden Roboter mit einer individuellen Programmiersprache zu programmieren.

Im Gegensatz zur herstellerspezifischen Roboterprogrammierung kann mit der RoboDK-API jeder Roboter mit einer universellen Programmiersprache wie Python simuliert und programmiert werden. Die Hauptseite bietet einen Überblick und ein Video zur Offline Programmierung mit der API.

Die RoboDK-API ist für Python, C # und Matlab verfügbar. Jede dieser Programmiersprachen kann zum Simulieren und Programmieren eines Roboters verwendet werden.

Die RoboDK API kann für die folgenden Aufgaben verwendet werden:

1.Automatisieren Sie die Simulation: Erstellen Sie Makros, um bestimmte Aufgaben im RoboDK-Simulator zu automatisieren, z.B. bewegte Objekte, Referenzrahmen oder Roboter.

2.Offline-Programmierung: Roboter offline mit einer universellen Programmiersprache programmieren. RoboDK erzeugt spezifische Programme für eine bestimmte Robotersteuerung, wenn die API verwendet wird (z.B. ein Programm in Python oder C #). Das Roboterprogramm wird entsprechend dem für einen bestimmten Roboter ausgewählten Postprozessor erzeugt. Der Abschnitt Offline Programmierung mit Python dieses Dokuments enthält weitere Informationen und Beispiele.

3.Online-Programmierung: Roboter online mit einer universellen Programmiersprache programmieren: Es ist möglich, Roboter zu bewegen und ihre aktuelle Position aus der RoboDK-API abzurufen. RoboDK bewegt die Roboter mit Hilfe von Robotertreibern. Der Abschnitt Online Programmierung mit Python in diesem Dokument enthält weitere Informationen und Beispiele.

Das gleiche Programm, das für die Simulation (1) verwendet wird, kann somit verwendet werden, um Roboterprogramme (2, Offline-Programmierung) zu erzeugen und den Roboter in Echtzeit zu bewegen (3, Online-Programmierung).

Dieses Dokument behandelt die folgenden Themen:

Die Python API mit Beispielen für Simulation, Offline-Programmierung und Online-Programmierung

Die C# API mit Beispielen für Simulation, Offline-Programmierung und Online-Programmierung

Die Matlab API mit einem Simulink-Beispiel für die Simulation

Die Befehlszeilen zum Starten von RoboDK

Tip: Visit the RoboDK API from the RoboDK API repository on GitHub to get the latest versions

.

Python API

Python ist eine weit verbreitete Programmiersprache, mit der Sie schneller arbeiten und Ihre Systeme effektiver integrieren können. Die Syntax von Python erlaubt es, Konzepte in weniger Codezeilen im Vergleich zu anderen Sprachen auszudrücken, wodurch sie benutzerfreundlich und einfach zu erlernen sind.

Im vorherigen Abschnitt wurde die Vorteile der Verwendung der RoboDK-API mit einer weit verbreiteten Programmiersprache für die Roboterprogrammierung wie Python erläutert.

Python wird automatisch installiert und standardmäßig in RoboDK integriert. Wählen Sie ExtrasOptionenAnderes, um die Standardeinstellungen (Python-Speicherort und Python-Editor) zu ändern.

RoboDK API - Bild 1

Die RoboDK-API für Python ist in die folgenden zwei Module unterteilt:

Das Robolink-Modul (robolink.py): Das Robolink-Modul ist die Schnittstelle zwischen RoboDK und Python. Jedes Objekt in der RoboDK-Stationsstruktur kann mit einem Robolink-Objekt abgerufen werden und wird durch ein Element repräsentiert. Abhängig von der Robolink Objekt-Klasse können verschiedene Operationen für dieses Element ausgeführt werden.

Das robodk-Modul (robodk.py): Das robodk-Modul ist eine Robotik-Toolbox für Python, die es ermöglicht, mit Transformationen zu arbeiten und Euler-Winkel für verschiedene Roboterhersteller zu erhalten. Alle Postprozessoren sind von diesem robodk-Modul abhängig.

Die Python-Module befinden sich im Ordner C:/RoboDK/Python/ und werden automatisch in den Python-Ordner kopiert, sobald RoboDK installiert wurde oder Standard-Python-Einstellungen festlegen ausgewählt ist (siehe vorheriges Bild).

Die folgenden Unterabschnitte zeigen, wie Sie ein einfaches Programm für Simulation, Offline-Programmierung bzw. Online-Programmierung erstellen. Weitere Beispiele finden Sie auf der Seite Python API für RoboDK. Außerdem enthält die RoboDK-Bibliothek Python-Beispielmakros im Ordner C:/RoboDK/Library/Macros/.

Python Simulation

Folgen Sie diesen Schritten, um ein Beispielprojekt mit einem UR-Roboter einzurichten und eine Bewegung mit diesem zu simulieren.

1.Wählen Sie DateiRoboDK API - Bild 2 Öffnen

2.Öffnen Sie den UR10 Roboter

3.Wählen Sie DateiRoboDK API - Bild 3 Öffnen

4.Öffnen Sie die Date Paint_gun.tool

5.Öffnen Sie anschließend das Beispiel-Python-Programm SampleOfflineProgramming.py von C:/RoboDK/Library/Macros/

6.Doppelklicken Sie auf den Eintrag SampleOfflineProgrammierung, um die Simulation auszuführen. Der Roboter sollte ein Sechseck um den aktuellen Standort des Roboters zeichnen und die Spur des TCP wird gelb angezeigt.           
Alternativ klicken Sie mit der rechten Maustaste auf das Programm und wählen Sie
RoboDK API - Bild 5Python-Skript ausführen aus.

7.Klicken Sie mit der rechten Maustaste auf das Element RoboDK API - Bild 6SampleOfflineProgrammierung, und wählen Sie Python-Skript bearbeiten aus. Sie sollten nun das Programm wie in der folgenden Abbildung sehen.

Das Makro SampleOfflineProgrammierung zeichnet ein Polygon mit n_Seiten und dem  Radius R an der aktuellen Position des Roboters in Bezug auf das Roboter Bezugssystem. Verschieben Sie den Roboter bei Bedarf an einen anderen Ort, ändern Sie die Polygonmaße und führen Sie das Programm erneut aus.

Dieses Beispiel ähnelt dem Programm, das im Abschnitt Offline Programmierung der Website angezeigt wird (Video enthalten).

RoboDK API - Bild 7


Python OLP

Python-Programme können offline mit demselben Python-Code generiert werden, der zur Simulation des Roboters verwendet wurde (wie im vorherigen Abschnitt Python Simulation gezeigt). Offline-Programmierung ermöglicht das Generieren von Roboterprogrammen, die auf einer Robotersteuerung ausgeführt werden können:

1.Klicken Sie mit der Rechtstaste auf ein RoboDK API - Bild 8Python Programm

2.Wählen Sie Roboterprogramm generieren (F6)

In diesem Fall wird das Programm nicht simuliert, sondern schnell ausgeführt, um das Ergebnis zu erhalten: ein Roboterprogramm, das für eine Robotersteuerung spezifisch ist.

RoboDK API - Bild 9

RDK = Robolink()

RDK.setRunMode(RUNMODE_MAKE_ROBOTPROG)


Python Online Programmierung

Python-Programme können direkt auf dem Roboter mit dem gleichen Python-Code ausgeführt werden, der zur Simulation des Roboters verwendet wurde (bereits in der Pythonsimulation gezeigt). Die Online-Programmierung ermöglicht das Ausführen eines Programms auf einer bestimmten Robotersteuerung mithilfe von Robotertreibern:

1.Klicken Sie mit der rechten Maustaste auf ein RoboDK API - Bild 10 Python-Programm

2.Wählen Sie Auf Roboter ausführen

Das Programm wird auf dem Roboter ausgeführt, während das Python-Programm ausgeführt wird.

RoboDK API - Bild 11

RDK = Robolink()

RDK.setRunMode(RUNMODE_RUN_ROBOT)


C# API

C# ist eine von Microsoft entwickelte Programmiersprache, die zum Erstellen einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework ausgeführt werden. C# ist einfach, leistungsfähig, typsicher und objektorientiert.

Im Hauptteil dieses Dokuments werden die Vorteile der Verwendung der RoboDK-API mit einer weit verbreiteten Programmiersprache wie C# für die Roboterprogrammierung erläutert.

Die RoboDK-API für C # ist eine RoboDK.cs-Quelldatei, die die RoboDK-Klasse (ähnlich der Robolink -Klasse von Python), die RoboDK.Item-Klasse (ähnlich der Python-API-Klasse Robolink.Item) und andere Tools für Robotik wie eine Matrix enthält Klasse (RoboDK.Mat) für Matrixoperationen, die mit Pose-Transformationen arbeiten.

Die RoboDK-API für C# wird mit einem Beispielprojekt bereitgestellt, wie in der folgenden Abbildung gezeigt (der vollständige Quellcode ist enthalten).

RoboDK API - Bild 12

Wählen Sie Datei laden, um eine RoboDK-Station oder eine andere von RoboDK unterstützte Datei zu öffnen. Wenn ein Roboter geladen ist, wird die ROBOT-Variable aktualisiert (wie bei der Verwendung von Roboter wählen).

Das folgende Video zeigt eine Übersicht des C # -Beispielprojekts mithilfe der RoboDK-API:
https://www.youtube.com/watch?v=1hRRYr9bEsY

Tip: The latest version of this C# example is available here.


C# Simulation

C# Programme werden standardmäßig simuliert, wenn Roboterbefehle verwendet werden (z.B. MoveJ, MoveL oder setDO). Wenn das Beispiel C# Projekt gestartet wird, wird standardmäßig auch der Simulationsmodus ausgewählt.

RoboDK API - Bild 13

Dies bedeutet, dass die Roboterbewegungen in RoboDK simuliert werden. Zum Beispiel können Sie den Roboter in Schritten von 10 mm bewegen, indem Sie die Schaltflächen rechts verwenden (+ Tx, -Tx, ...).

Setzen Sie Haltepunkte, um Ihre Anwendung zu debuggen und Roboterziele zu überprüfen. Roboterziele können als Achswinkel oder Mat-Variablen (4x4 -Matrizen) definiert und als XYZWPR-Format zur Fehlerbehebung von Programmproblemen untersucht werden. Weitere Informationen zu Bezugssystemen finden Sie im Abschnitt Bezugssysteme.

RoboDK API - Bild 14

Es ist auch möglich, den Ausführmodus in Offline Programmierung oder Online Programmieirung (auf Roboter ausführen) zu ändern, wie in den folgenden Abschnitten gezeigt

C# OLP

C# Programme können offline unter Verwendung des gleichen C# Codes erzeugt werden, der zur Simulation des Roboters verwendet wurde (Offline-Programmierung). Befolgen Sie diese Schritte, um diese Funktion zu testen:

1.Wählen Sie Offline-Programmierung im Abschnitt Ausführungsmodus

2.Wählen Sie Testprogramm ausführen oder eine andere Kombination von Bewegungen

3.Wählen Sie Testprogramm ausführen oder eine andere Kombination von Bewegungen

In diesem Fall wird das Programm nicht simuliert, sondern schnell ausgeführt, um das Ergebnis zu erhalten: ein spezifisches Roboterprogramm. Der Run-Modus wird wieder in Simulation geändert, sobald das Programm generiert wurde.

RoboDK API - Bild 15

C# Online Programmierung

C# Programme können direkt am Roboter unter Verwendung des gleichen C# Codes ausgeführt werden, der für die Simulation verwendet wird. Die Online-Programmierung ermöglicht das Ausführen eines Programms auf einer bestimmten Robotersteuerung mithilfe von Robotertreibern. Führen Sie die folgenden Schritte aus, um diese Funktion mithilfe des C# Beispielprojekts zu testen:

1.Wählen Sie auf Roboter ausführen

2.Wählen Sie Befehle aus, mit denen ein Roboter bewegt werden soll

Die Bewegungen laufen auf dem realen Roboter und der Simulator synchronisiert die Bewegungen mit dem Roboter.

RoboDK API - Bild 16

RDK = Robolink();

RDK.setRunMode(RUNMODE_RUN_ROBOT);

Matlab API

Matlab ist eine Programmiersprache, die von MathWorks entwickelt wurde. MATLAB ermöglicht unter anderem Matrixmanipulationen, das Zeichnen von Funktionen und Daten sowie die Implementierung von Algorithmen.

Im Hauptteil dieses Dokuments werden die Vorteile der Verwendung der RoboDK API mit einer weit verbreiteten Programmiersprache wie Matlab für die Roboterprogrammierung erläutert.

Die RoboDK-API für Matlab ist verfügbar, nachdem RoboDK in C: / RoboDK / Matlab / installiert wurde. Die API wird als eine Menge von m Dateien bereitgestellt. Dazu gehören:

Robolink.m ist eine Klasse, die mit RoboDK verbunden ist. Jedes Objekt in der RoboDK-Stationsstruktur kann mithilfe des Robolink-Objekts abgerufen werden. Es wird vom RobolinkItem-Objekt (wie in der RobolinkKlasse von Python) dargestellt.

RobolinkItem.m ist eine Klasse, die ein RoboDK-Objekt im Stationsbaum darstellt. Es ist möglich, verschiedene Operationen für dieses Objekt auszuführen (identisch mit der Robolink.Item-Klasse von Python.

transl.m, rotx.m, ​​roty.m und rotz.m sind Funktionen, die Pose-Matrizen mit einem XYZ-Translationsvektor oder Rotationen entlang einer bestimmten Achse erzeugen.

Pose_2_XYZRPW.m und XYZRPW_2_Pose.m ermöglichen das Konvertieren von Posen in XYZ-Position und RPW-Euler-Winkel und umgekehrt. Weitere Informationen finden Sie im Abschnitt Bezugssysteme.

Ein Beispielcode ist auf der folgenden Seite verfügbar:       
https://robodk.com/Matlab-API

Simulink Beispiel

Ein Simulink-Projekt ist als Beispiel verfügbar. In der Simulation wird der Roboter entlang einer willkürlich erzeugten Menge von XYZ-Koordinaten bewegt.

Das folgende Video zeigt das Ergebnis der Simulation:       
https://www.youtube.com/watch?v=7DDBMwa0-Oc

RoboDK API - Bild 17

Kommandozeilen Optionen

Dieser Abschnitt beschreibt die beim Starten von RoboDK verfügbaren Befehlszeilenoptionen.

Der folgende Aufruf ist ein generischer Aufruf mit mehreren Argumenten

Robodk.exe /[option1] /[option2] open_fileA /[option3] open_fileB ...

Sämtliche von RoboDK unterstützten Dateiformate können als Argumente zur Verfügung gestellt werden. Einschließlich der folgenden Formate:

RDK RoboDK-Stationsdatei: Diese Datei enthält ein ganzes Projekt in einer Datei, einschließlich aller Abhängigkeiten (Roboter, Werkzeuge, NC-Dateien, ...).

Roboter Roboterdatei: Durch das Laden einer Roboterdatei wird auch ein Bezugssystem für diesen Roboter erstellt.

Werkzeug Werkzeug Datei: Diese wird automatisch an den letzten hinzugefügten Roboter angehängt.

stl/wrl/step/stp/iges/igs/sld Objekt (3D-Geometrie): Objekte können einfach in Werkzeuge umgewandelt werden.

apt/gcode/cnc NC-Programmdatei: RoboDK bereitet automatisch ein Fräsprojekt vor (DienstprogrammeFräsprojekt).

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

Verfügbare Kommandozeilen Optionen:

/NOSPLASH

Entfernt das RoboDK-Splash Icon beim Start.

/DEBUG

Erstellt eine RoboDK.debug.txt Datei im bin Ordner. Diese erlaubt ein Debugging der Anwendung.

/SETTINGS=filepath

Lädt die Argumente aus einer Textdatei. Jede Zeile dieser Textdatei wird als ein einzelnes Argument betrachtet.

/NOSHOW

Blendet alle Fenster aus, während RoboDK Dateien lädt und Programme aktualisiert.

/NO_WINDOWS

Blendet alle Fenster aus, die normalerweise beim Laden einer NC-Datei automatisch angezeigt werden.

/PORT=20501

Erzwingt die API-Kommunikation über den angegebenen Port (TCP/IP-Protokoll). Der Standardport ist dabei 20500.

/ADDFRAME

Fügt ein neues Bezugssystem hinzu. Alle neuen geladenen Objekte werden in diesem platziert.

/RESET

Erzwingt, dass beim Laden eines neuen Objekts das Bezugssysstem der Station (nicht der zuletzt hinzugefügte Frame) angezeigt wird).

/RENAME=Name

Ändert den Namen des letzten Bezugssystems oder Objekts, das hinzugefügt wurde.

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

Verschiebt das letzte Bezugssystem, das hinzugefügt wurde (in mm und Grad).

/UPDATE_APT=YES

Überschreibt alle Roboterbearbeitungsprojekte, welche dieselbe APT-Datei haben

/UPDATE_APT=NO

Überschreibt keine Roboterbearbeitungsprojekte (erstellt bei einer Namensübereinstimmung doppelte Projekte).

/UPDATE=file.apt

Lädt oder aktualisiert die APT-Datei und erstellt das Roboterprogramm, wenn keine Probleme auftreten.

/REPLACE_ITEMS=YES

Aktualisiert vorhandene Werkzeuge und Objekte, wenn neue Dateien geladen werden und eine Namensübereinstimmung besteht.

/REPLACE_ITEMS=NO

Überschreibt niemals Werkzeuge und Objekte, wenn neue Dateien geladen werden.

/SETCOLOR=steelblue

Legen Sie die Farbe des zuletzt geladenen Objekts (Objekt, Werkzeug, Roboter oder Mechanismus) fest. Die Farbe kann eine benannte Farbe oder eine hexadezimale Farbe sein.

/AUTOGEN_MAINPROG=Prog

Erzeugt ein Hauptprogramm, das die mit geladenen APT-Dateien verknüpften Programme nacheinander aufruft.

/SELECTTOOL=#1

Verwenden Sie das erste Roboterwerkzeug (oder die entsprechende Nummer) als aktives Werkzeug (das Werkzeug, das beim Laden eines neuen Programms verwendet wird)

/SELECTTOOL=tool name

Wählen Sie das aktive Werkzeug bei einer Namensübereinstimmung aus.

/ADDCUTTER=length|path/cutter name.stl

Addcutter ermöglicht das Hinzufügen der Geometrie eines Fräsers in Bezug auf einen Werkzeughalter/-futter. Ein Fräser wird in RoboDK als Werkzeug behandelt und beinhaltet die Geometrie des Fräsers. Die Geometrie muss eine STL-Datei (ASCII oder Binär) mit dem Ursprung an der Spitze des Werkzeugs sein. Die Länge muss in mm zum Werkzeughalter angegeben werden (die positive Z-Achse des Werkzeughalters muss nach außen zeigen).

/SELECTCUTTER=cutter name

Selectcutter hat den gleichen Effekt wie SELECTTOOL, Cutter werden wie Werkzeuge behandelt.

/SHOW

Zeigt das RoboDK-Fenster an. Dies passiert automatisch, wenn alle Dateien geladen und Projekte aktualisiert wurden.

Wenn Sie eine der folgenden Optionen verwenden, wird die durch den Befehl /SHOW aufgerufene Sichtbarkeit geändert.

/HIDDEN

Vermeidet das automatische /SHOW, sobald RoboDK fertig geladen hat. Die einzige Möglichkeit, das Fenster anschließend anzuzeigen, ist die Verwendung der API.

/QUIT

Beendet das Programm, wenn keine Fehlermeldungen vorliegen.

/END

Beendet das Programm auch bei Fehlermeldungen.