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苏珥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 zurOfflineProgrammierung 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ähltenPostprozessorerzeugt. Der AbschnittOfflineProgrammierung mit Pythondieses 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 vonRobotertreibern. Der AbschnittOnlineProgrammierung mit Pythonin 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:
●DiePython API麻省理工学院Beispielen裘皮仿真,Offline-Programmierung und Online-Programmierung
●DieC# API麻省理工学院Beispielen裘皮仿真,Offline-Programmierung und Online-Programmierung
●DieMatlab APImit einem Simulink-Beispiel für die Simulation
●DieBefehlszeilenzum Starten von RoboDK
Tip:Visit the RoboDK API from the在GitHub RoboDK API库to get the latest versions
.
Pythonist 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.
ImvorherigenAbschnittwurde 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 Extras➔Optionen➔Anderes, um die Standardeinstellungen (Python-Speicherort und Python-Editor) zu ändern.
Die RoboDK-API für Python ist in die folgenden zwei Module unterteilt:
●DasRobolink-Modul (robolink.py): DasRobolink-Modul ist die Schnittstelle zwischen RoboDK und Python. Jedes Objekt in der RoboDK-Stationsstruktur kann mit einem Robolink-Objekt abgerufen werden und wird durch einElementrepräsentiert. Abhängig von der Robolink Objekt-Klasse können verschiedene Operationen für dieses Element ausgeführt werden.
●Dasrobodk-Modul (robodk.py): Dasrobodk-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 diesemrobodk-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 oderStandard-Python-Einstellungen festlegenausgewä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 SeitePython API für RoboDK. Außerdem enthält die RoboDK-Bibliothek Python-Beispielmakros im Ordner C:/RoboDK/Library/Macros/.
Folgen Sie diesen Schritten, um ein Beispielprojekt mit einem UR-Roboter einzurichten und eine Bewegung mit diesem zu simulieren.
1.Wählen SieDatei➔Öffnen
2.Öffnen Sie denUR10Roboter
3.Wählen SieDatei➔Öffnen
4.Öffnen Sie die DatePaint_gun.tool
5.Öffnen Sie anschließend das Beispiel-Python-ProgrammSampleOfflineProgramming.pyvon C:/RoboDK/Library/Macros/
6.Doppelklicken Sie auf den EintragSampleOfflineProgrammierung, 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 SiePython-Skript ausführenaus.
7.Klicken Sie mit der rechten Maustaste auf das ElementSampleOfflineProgrammierung, und wählen SiePython-Skript bearbeitenaus. Sie sollten nun das Programm wie in der folgenden Abbildung sehen.
Das Makro SampleOfflineProgrammierung zeichnet ein Polygon mitn_Seitenund demRadius Ran 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 AbschnittOfflineProgrammierungder Website angezeigt wird (Video enthalten).
Python-Programme können offline mit demselben Python-Code generiert werden, der zur Simulation des Roboters verwendet wurde (wie im vorherigen AbschnittPython Simulationgezeigt). Offline-Programmierung ermöglicht das Generieren von Roboterprogrammen, die auf einer Robotersteuerung ausgeführt werden können:
1.Klicken Sie mit der Rechtstaste auf einPython Programm
2.Wählen SieRoboterprogramm 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.
RDK = Robolink()
RDK.setRunMode(RUNMODE_MAKE_ROBOTPROG)
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 derPythonsimulationgezeigt). 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 einPython-Programm
2.Wählen SieAuf Roboter ausführen
Das Programm wird auf dem Roboter ausgeführt, während das Python-Programm ausgeführt wird.
RDK = Robolink()
RDK.setRunMode(RUNMODE_RUN_ROBOT)
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.
ImHauptteildieses 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 derRobolink-Klasse von Python), die RoboDK.Item-Klasse (ähnlich der Python-API-KlasseRobolink.Item)国际制裁ls 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).
Wählen SieDatei 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 vonRoboter 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 isavailable here.
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.
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 AbschnittBezugssysteme.
Es ist auch möglich, den Ausführmodus inOffline ProgrammierungoderOnline Programmieirung(auf Roboter ausführen) zu ändern, wie in den folgenden Abschnitten gezeigt
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 SieOffline-Programmierungim Abschnitt Ausführungsmodus
2.Wählen SieTestprogramm ausführenoder eine andere Kombination von Bewegungen
3.Wählen SieTestprogramm ausführenoder 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.
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 Sieauf 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.
RDK = Robolink();
RDK.setRunMode(RUNMODE_RUN_ROBOT);
Matlab ist eine Programmiersprache, die vonMathWorksentwickelt wurde. MATLAB ermöglicht unter anderem Matrixmanipulationen, das Zeichnen von Funktionen und Daten sowie die Implementierung von Algorithmen.
ImHauptteildieses 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 derRobolinkKlasse 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 derRobolink.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 AbschnittBezugssysteme.
Ein Beispielcode ist auf der folgenden Seite verfügbar:
//www.sinclairbody.com/Matlab-API
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
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 einfachinWerkzeuge umgewandeltwerden.
●apt/gcode/cnc➔NC-Programmdatei: RoboDK bereitet automatisch ein Fräsprojekt vor (Dienstprogramme➔Frä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) alsaktivesWerkzeug (das Werkzeug, das beim Laden eines neuen Programms verwendet wird)
/SELECTTOOL=tool name
Wählen Sie dasaktiveWerkzeug 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.