Ansteuerung des UR3 Roboters mit Matlab und URSim mittels Realtime Schnittstelle: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 27: | Zeile 27: | ||
== Herstellung der Verbindung und einfache Bewegung mit Matlab == | == Herstellung der Verbindung und einfache Bewegung mit Matlab == | ||
Um mit dem Roboter über eine Ethernet-Verbindung kommunizieren zu können, muss ein TCP Port geöffnet werden. Der Port für die Realtime Kommunikation zum Roboter ist 30003. Die IP des Roboters muss gegebenenfalls auf statisch festgelegt werden anstatt DHCP. | Um mit dem Roboter über eine Ethernet-Verbindung kommunizieren zu können, muss ein TCP Port geöffnet werden. Der Port für die Realtime Kommunikation zum Roboter ist 30003. Die IP des Roboters muss gegebenenfalls auf statisch festgelegt werden anstatt DHCP. | ||
Für das Erzeugen einer Bewegung gibt es im Skripthandbuch von UR bestimmte Befehle. So ist eine Bewegung aller Achsen des Roboters auf bestimmte Zielwinkel q mit der Funktion „movej(q, a, v, t=0, r=0)“ möglich. Die zu übergebenden Variablen sind hier ebenfalls beschrieben, wobei in diesem Beispiel „a“ die Beschleunigung und „v“ die maximale Geschwindigkeit der Achsen sind. Dieser Befehl muss als String, also nicht als Variablen, an die Steuerung des Roboters übergeben werden. Dies kann in Matlab mit „num2str“ so umgesetzt werden: | Für das Erzeugen einer Bewegung gibt es im Skripthandbuch von UR bestimmte Befehle. So ist eine Bewegung aller Achsen des Roboters auf bestimmte Zielwinkel "q" mit der Funktion „movej(q, a, v, t=0, r=0)“ möglich. Die zu übergebenden Variablen sind hier ebenfalls beschrieben, wobei in diesem Beispiel „a“ die Beschleunigung und „v“ die maximale Geschwindigkeit der Achsen sind. Dieser Befehl muss als String, also nicht als Variablen, an die Steuerung des Roboters übergeben werden. Dies kann in Matlab mit „num2str“ so umgesetzt werden: | ||
== Einleitung == | == Einleitung == |
Version vom 6. Januar 2021, 21:53 Uhr
→ zurück zur Seite Praktikum Produktionstechnik
Autor: Jan Pinter und Rina Mucaj
Betreuer: Prof. Dr. Mirek Göbel & Marc Ebmeyer
Einleitung
In diesem Artikel wird die Ansteuerung des UR3 Roboters mit Matlab und URSim mittels Realtime Schnittstelle beschrieben. Das Projekt fand im Rahmen des Praktikum Produktionstechnik im Wintersemester 20/21 statt. Die Aufgabe bestand darin, den UR3 Roboter so zu programmieren, dass er Legoteile aus einem Ablageort greift und diese auf eine Legoplatte platziert. Außerdem musste er durch wiederholsichere Bewegungen die Legoteile in verschiedenen Stellen platzieren. Zusätzlich wurde noch ein Magazin als Entnahmeort entwickelt, an dem der Roboter die Legosteine abnehmen kann.
Funktionaler und technischer Systementwurf
Mithilfe vom funktionalen (schwarz) und technischen Systementwurf (orange) konnten wir genau das Verhalten des Roboters darstellen. Der UR3 Roboter muss nach einer erfolgreichen Ethernet-Verbindung mit der Matlabsteuerung erstmal zu einer Startposition fahren. Durch Anfahren der Sicherheitspositionen und Einstellung der Geschwindigkeit nimmt er die Legoteile aus dem Magazin ab und platziert diese auf die Legoplatte.
Ansteuerung des Roboters
Das Ansteuern des UR3 mit Matlab ist möglich, jedoch nicht einfach. Bereits nach 2 Stunden war es möglich, ohne Matlab mit der Programmierung des Polyscopes einen LEGO Stein wiederholt aufzunehmen und auf der Platte zu platzieren. Die Programmierung in Matlab erwies sich als schwierig, da viele Funktionen, die es im Polyscope gibt, nicht direkt in Matlab gibt. Die Verwendung der Robotic Toolbox von Peter Corke schafft zwar eine Lösungsmöglichkeit, jedoch muss man hier bereits genau wissen, wie die einzelnen Befehle anzuwenden sind, da es sonst zu Fehlern oder Abbrüchen des Programms kommt. Ebenso werden einige nützliche Polyscopebefehle nicht unterstützt. Abhilfe muss hier über andere Wege geschafft werden, wie über die Variablentabelle der Realtime TCP Verbindung. Sind alle Befehle bekannt und lassen sich alle Funktionen umsetzen, bietet die Programmierung über Matlab jedoch den Vorteil, weitere Funktionalitäten aus Matlab einzubeziehen, wie das Auslesen einer Excel Tabelle für die Steinkoordinaten. Eine Simulation der Bewegungen kann in Matlab auch erfolgen. Diese wäre jedoch auch ohne Matlab mit URSim möglich. Durch die Verwendung von Matlab erlernt man den Umgang mit Skripthandbüchern, die für die Anwendung von nicht selbst programmierten Befehlen nötig sind.
Herstellung der Verbindung und einfache Bewegung mit Matlab
Um mit dem Roboter über eine Ethernet-Verbindung kommunizieren zu können, muss ein TCP Port geöffnet werden. Der Port für die Realtime Kommunikation zum Roboter ist 30003. Die IP des Roboters muss gegebenenfalls auf statisch festgelegt werden anstatt DHCP. Für das Erzeugen einer Bewegung gibt es im Skripthandbuch von UR bestimmte Befehle. So ist eine Bewegung aller Achsen des Roboters auf bestimmte Zielwinkel "q" mit der Funktion „movej(q, a, v, t=0, r=0)“ möglich. Die zu übergebenden Variablen sind hier ebenfalls beschrieben, wobei in diesem Beispiel „a“ die Beschleunigung und „v“ die maximale Geschwindigkeit der Achsen sind. Dieser Befehl muss als String, also nicht als Variablen, an die Steuerung des Roboters übergeben werden. Dies kann in Matlab mit „num2str“ so umgesetzt werden:
Einleitung
Dieser Artikel ist eine Vorlage für einen Wiki-Artikel. Tipp: Kopieren Sie den gesamten Quelltext und ändern Sie ihn so, dass er Ihr Projekt beschreibt.
Dieser Artikel ist aus der Kategorie "How-To".
Inhalt
Die Gliederung des Inhalts hängt stark von Ihrem individuellen Projekt ab. Benutzen Sie einen leicht nachvollziehbaren roten Faden und gliedern Sie nach gesundem Menschenverstand!
Unterabschnitt
- Nutzen Sie Aufzählungen
- mit verschiedenen Schachtelungen
- und so weiter
- zweite Ebene
- mit erneuter Unterebene
Bilder
Bauen Sie Bilder ein, am besten mit darin gekennzeichneten Stellen, die Sie dann im Text erklären.
Bilder in den Text einbetten
Wenn Sie Bilder anzeigen möchten, ohne das der Artikel links oder rechts weiter läuft, können Sie den Textfluss mit dem Befehl <br clear=all> stoppen.
Alternativ können Sie das Bild in einer "wikitable" anzeigen lassen. Dadurch wird das Bild auch auf Bildschirmen mit einer anderen Auflösung in der richtigen Darstellungsart angezeigt.
Hier geht es weiter mit dem Text.
Tabellen
Eine tolle Tabelle ist hier dargestellt.
Spalte 1 | Spalte 2 | Spalte 3 |
---|---|---|
blabla | sowieso | sowieso |
test | sowieso | test1 |
Formeln
Für Formeln nutzen Sie die <math>-Umgebung.
Dieser Quelltext
<math> y = \int\limits_0^2 {\sin \frac{x}{2}dx}</math>
wird dann so dargestellt .
Eine Übersicht über die Befehle findet sich z. B. hier: Gleichungen in math.
Formatierung
Nutzen Sie zur Formatierung Beispiele, z. B. aus dem weltbekannten Wikipedia selbst (das ist die gleiche Syntax!) oder anderer Hilfeseiten wie z. B. [2].
Quelltext
Details siehe: Quelltext_einbinden.
Bei lang= muss die richtige Sprache eingetragen werden (matlab, c,...).
for i=1:10
% try
% image = CAMERA_DumpFrame(s);
% catch err
% error('MATLAB:RWTHMindstormsNXT:Sensor:unknown', 'An unknown Error occured while fetching the image. Please check that the Camera is connected and try again');
% end
image = CAMERA_GetImage(com);
handle = imshow(image);
%pause(0.1)
currTime(i) = toc(startTime);
disp(['Aktuelle Zeit: ',num2str(currTime(i))])
%imwrite(image,sprintf('NXTCamImage%03d.png',i));
%imwrite(img,fullfile(workingDir,sprintf('HexBug%03d.png',n)));
% ca. alle 4.8 Sekunden ein Bild
end;
Zusammenfassung
Was ist das Ergbnis? Das Ergebnis dieses Artikels ist eine Vorlage, mit der Nutzer des Wikis schnell und leicht eigene Artikel verwirklichen können. Diese Vorlage ist Bestandteil der Anleitungen aus den How-To's.
Ausblick
Was kann/muss noch verbessert werden?
Literaturverzeichnis
- ↑ Eigenes Foto
- ↑ Hilfeseite des Wikimedia-Projekts