Montage der Legosteine mit dem UR3-Roboter: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 65: Zeile 65:
=== (SPS Schnittstelle) ===
=== (SPS Schnittstelle) ===


Gute Literatur findet sich unter: [https://www.phoenixcontact.com/online/portal/us?uri=pxc-oc-itemdetail:pid=2400361SPS Schnelleinstieg] --> downloads.
Gute Literatur findet sich unter: [https://www.phoenixcontact.com/online/portal/de?uri=pxc-oc-itemdetail:pid=2400361&library=dede&tab=1 Schnelleinstieg] --> downloads.  
 
 
 


Oder alternativ nach einem Schnelleinstieg für "axc 1050 pn starter kit" suchen.


=== Ansteuerung des Roboters mithilfe von MATLAB ===
=== Ansteuerung des Roboters mithilfe von MATLAB ===

Version vom 12. Februar 2018, 18:35 Uhr

Autoren: Alexander Rips und Tim Kolem

Noch in Bearbeitung!

In diesem Kapitel wird erklärt, wie mit dem UR3 Greifarmroboter und mit Hilfe eines geeigneten Programms Legosteine montiert werden können.

UR3 Greifarmroboter zu Beginn des Praktikums [1]

Einleitung

Dies ist der Wiki Artikel zur Dokumentation der Arbeitsergebnisse der Gruppe "Montage der Legosteine mit dem UR3-Roboter". Innerhalb dieses Artikels wird erläutert, wie der UR3 Roboter mithilfe von MATLAB angesteuert werden kann, und wie die Kooridinaten der zu platzierenden Legosteine errechnet werden können.



-Kategorie ergänzen!


Inhalt

UR3 Greifarmroboter

Der UR3 besitzt 6 Achsen und hat vorne am Werkzeugende einen RG2 Gripper montiert, mit welchem die Legosteine gegriffen werden können müssen.

Gute Literatur findet sich unter: UR3 User Manual En UR3 Service Manual En Script Programming Language En .

Teilweise gibt es auch in deutsche übersetzte Versionen, aber diese waren nicht immer eindeutig erklärt. Die englischen Skripte sind gut zu verstehen.


Der UR3 arbeitet mit einem 500 mm Arbeitsradius und einer maximalen Nutzlast von 3 kg. Bewegungen nah am Fuß des Roboters sollten vermieden werden, da selbst kleine Bewegungen des Werkzeugs große Bewegungen in den Achsen verursachen können und so den Sicherheitsstopp auslösen.


Gesteuert werden kann dieser unter anderem direkt von dem Control Panel aus, welches am Tisch montiert ist. Es wird ein neues Programm gestartet und dort unter dem Reiter "Struktur" Bewegungen / Wegpunkte hinzugefügt. Unter "URCaps" kann der Greifer bedient werden. Unter dem Reiter "Bewegung" kann die aktuelle Position und Pose des UR3 abgelesen werden. Beachte: Rechts die Tabellenansicht auf "Fuß" stellen.


Zur Bewegung gibt es drei wesentlich interessante Bewegungen: MoveL, MoveJ und MoveP. Hierfür wird die PDF Script Programming Language En, S. 14f empfohlen.

RG2 Gripper

Gute Literatur findet sich unter: RG2 User Manual En .


Der Greifer ist bereits montiert und hat einen Klemmschutz installiert. Beim Bedienen des Grippers gilt es gewisse Punkte zu beachten:

  1. unter "Installation" - "RG2 Configuration" - "Settings" den Fingertip Offset richtig einstellen!
  2. unter "Installation" - "RG2 Configuration" - "Mounting" die richtige Ausrichtung überprüfen.


Dem Skript können die Dimensionen des Greifers entnommen werden und anhand dieser neue Fingertips in SolidWorks entworfen werden. Dies ist notwendig, da die mitgelieferten Fingertips die Legosteine weder gut greifen, noch gut platzieren können.

Beim Entwerfen der Fingertips muss darauf geachtet werden, dass der Legostein gut platziert werden kann und der Legostein vorzugsweise in einer einzigen möglichen definierten Position zwischen den beiden Fingertips liegt.

Das Problem dabei ist, dass beim eindeutigen Greifen der Legosteine dieser umschlossen wird von den Fingertips und dadurch zu allen Seiten hin etwas Abstand braucht und somit nicht an anliegende Steine angebaut werden kann. Es müssen also 2 verschiedene Fingertips entworfen werden. Mit den einen kann eine genaue Legosteinaufnahme durchgeführt werden, mit den anderen Fingertips können die Steine platziert werden, auch an anliegende andere Steine. Die Abbildungen in diesem Abschnitt zeigen Beispiele für Fingertips zum Kalibrieren und Platzieren. Eventuell ist es notwendig auch auf die Fingertips zum Kalibrieren Aufdrückflächen anzubringen.


(SPS Schnittstelle)

Gute Literatur findet sich unter: Schnelleinstieg --> downloads.

Oder alternativ nach einem Schnelleinstieg für "axc 1050 pn starter kit" suchen.

Ansteuerung des Roboters mithilfe von MATLAB

Innerhalb dieses Unterabschnittes wird erläutert, wie der UR3-Roboter über MATLAB angesteuert werden kann. Die Ansteuerung des UR3 Greifarmroboters erfolgt über das TCP/IP-Protokoll mithilfe der "tcpip"-Klasse der MATLAB-Standardbibliothek. Es muss beachtet werden, dass der verwendete Computer mit einem Ethernet-Kabel mit dem UR3-Greifarmroboter verbunden werde muss und MATLAB einen Zugriff auf das Netzwerk erhalten muss. Im Falle von Windows 10 können die Netzwerkeinstellungen der einzelnen Anwendungen unter (Systemsteuerung -> System und Sicherheit -> Windows Defender Firewall -> Zugelassene Apps) festgelegt werden. Für diese Operation werden Administratorrechte benötigt.


Umrechnung der logischen Koordinaten in Koordinaten des Roboters

In diesem Unterabschnitt wird thematisiert wie die Koordinaten, welche in der Excel Tabelle hinterlegt werden, zu den realen Koordinaten des Roboters umgerechnet werden können. Dabei erfolgen genau genommen zwei einzelne Transformationen. Zum einen eine Transformation von den in der Excel-Tabelle angegebenen Koordinaten in Legonoppen zu den realen Koordinaten des "Legoplattensystems". Und zum Anderen eine Transformation der Koordinaten des "Legoplattensystems" in das Koordinatensystem des Roboters.


Auslesen der Excel Tabelle

Zunächst einmal muss die hinterlegte Excel-Tabelle ausgelesen werden. Dieser Auslesevorgang wird mithilfe Funktion "xlsread" der MATLAB-Standardbibliothek realisiert. Der genaue Befehl zum Auslesen der xlsx-Datei lautet wie folgt: "xlsread('Robokoords.xlsx',,,'basic');". Dabei ist "Robokoords.xlsx" der Name der hinterlegten xlsx-Tabelle. Der Rückgabewert dieser Funktion ist bei einer fehlerfreien Ausführung der Funktion eine Matrix mit den Tabelleninhalten der mit "Robokoords.xlsx" spezifizierten Excel-Tabelle. Eine genauere Dokumentation des "xlsread"-Befehls befindet sich in der MATLAB-Dokumentation unter [1]. Nachdem die Excel-Tabelle in eine Matrix geladen worden ist, kann durch diese zeilenweise iteriert werden, da jeder zu platzierende Stein eine Zeile in der Tabelle repräsentiert.


Errechnung der realen Koordinaten auf der Legoplatte

Die Koordinaten der einzelnen Legosteine innerhalb der Excel-Tabelle werden in "Legonoppen" ausgehend von der linken unteren Ecke referenziert. Dies bedeutet das ein Stein mit den Koordinaten (0;0) mit seiner linken unteren Noppe auf der ersten Noppe links unten auf der Legoplatte platziert werden soll. Ein Stein mit den Koordinaten (1;0) wird mit seiner unteren linken Noppe eine Noppe weiter rechts von dem (0;0) Stein platziert. Der Stein mit den Koordinaten (0;1) wir eine Noppe über dem (0;0)-Stein platziert.

Die realen Koordinaten bezeichnen den Punkt im Raum, den der TCP des UR3-Roboters einnehmen muss um den Legostein zu platzieren. Selbstverständlich müssen diese Koordinaten später von oben angefahren werden.

Die Koordinaten auf der Legoplatte werden wie folgt berechnet:

Anzahl der Noppen * Abstand zweier Noppen + Länge des Steins

Dies gilt analog für die x-Koordinate und die y-Koordinate.


Es muss zusätzlich noch ein Noppenabstand von der x-Koordinate als auch von der y-Koordinate abgezogen werden. Der Grund für diese Subtraktion ist darin begründet, dass nur Punkte innerhalb eines 2x2 Noppenfeldes exakt mit dem Roboter ermittelt werden können und bei der Kalibrierung unter anderem dieser Punkt aufgenommen werden soll.

-hier mit Bild zeigen


Berechnung der Roboterkoordinaten mithilfe der Legoplattenkoordinaten

In diesem Unterabschnitt wird erläutert, wie die Koordinaten der Legoplatte zu Koordinaten des Roboterkoordinatensystems umgerechnet werden können. Um die Koordinaten zu Transformieren wird die homogene Transformation angewendet.

Damit die Tranformation durchgeführt werden kann, muss zunächst einmal die Transformationsmatrix ermittelt werden. Vereinfachend wird angenommen, dass nur eine Drehung um die z-Achse durchgeführt wird.

-hier Bild mit Matrix von der homogenen Transformation A * x_ut = x_t

Diese Matrix kann durch das Lösen eines linearen Gleichungssystems bestimmt werden. Hierfür müssen mindestens zwei Punkte aufgenommen werden. Zur Kalibrierung wird der Stein im Greifer des UR3-Roboters platziert und dieser so auf die Legoplatte geführt, dass sich der Stein an der gewünschten Position befindet. Anschließend können die Koordinaten von der Polyscope Oberfläche des UR3-Benutzerterminals abgelesen werden.

WICHTIG: Im Vorfeld muss das Terminal auf das richtige Koordinatensystem konfiguriert werden. Dieses muss von "Ansicht" auf "Fuß" gestellt werden. Andernfalls werden nicht die gewünschten Koordinaten angezeigt.

Das Gleichungssystem mit welchem die Transformationsmatrix ermittelt werden kann

Um den Roboter zu kalibrieren müssen zwei Punkte des Legofeldes "eingeteacht" werden. Es bietet sich an, einen Stein so zu platzieren, dass sein Mittelpunkt im Mittelpunkt des 2x2 Feldes der unteren linken Ecke ist. In diesem Fall ist auch der Translationsvektor der homogenen Transformation bekannt. Um die Transformationsmatrix möglichst einfach bestimmen zu können, wird als zweiter einzulernender Punkt ein Punkt gewählt, welcher vom ersten aufgenommenen Punkt aus gesehen, eine feste Distanz nach rechts verschoben ist.

Schnittstelle zur vorigen Gruppe (Legostein Aufnahme)

Damit der Roboter Legosteine greifen kann, ist es wichtig, dass diese am immer selben Aufnahmepunkt ankommen und innerhalb des Arbeitsradius des UR3 Greifers sind.

Bilder

Bauen Sie Bilder ein, am besten mit darin gekennzeichneten Stellen, die Sie dann im Text erklären.

Beispielbild mit Quelle [5]

Tabellen

Eine tolle Tabelle ist hier dargestellt.

Spalte 1 Spalte 2 Spalte 3
blabla sowieso sowieso
test sowieso test1

Formatierung

Nutzen Sie zur Formatierung Beispiele, z. B. aus dem weltbekannten Wikipedia selbst (das ist die gleiche Syntax!) oder anderer Hilfeseiten wie z. B. [6].

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.

" ******DER LINK GEHT NICHT?*******"

Liste der How-To's

Ausblick

Zum aktuellen Zeitpunkt arbeitet das Programm noch nicht genau genug, dies kann folgende Gründe haben:

  • Die Kalibrierung ist nicht genau genug. Wenn der Roboter auf die Legoplatte kalibriert wird und sich der Stein nicht genau genug im Greifer befindet, kann die abgelesene Position des TCP´s variieren.

Wenn eine Position mit großem Fehler ausgelesen wird, so wird auch die resultierende Transformationsmatrix fehlerhaft sein.


Zudem muss die Anbindung an die SPS-Steuerung implementiert werden. Diese besteht aus zwei Bestandteilen:

  • Zum einen muss die SPS mit dem Roboter verbunden werden. Dies beinhaltet die Verkabelung der Ein- und Ausgänge.
  • Zum anderen muss eine Schnittstelle vom Roboter zum MATLAB-Programm erstellt werden. Zum momentanen Zeitpunkt ist es nur möglich Befehle vom Computer zum Roboter zu senden.

Jedoch kann der Roboter keine Daten an den Computer senden. Dies ist jedoch zwingend erforderlich, weil die gesamte Logik auf dem MATLAB-Programm ablaufen soll und dieses mit der SPS kommunizieren muss.

Folglich ist es notwendig ein Programm für den Roboter zu erstellen, welches Anweisungen des MATLAB-Programmes empfangen kann, diese verwertet und ausführt. Zusätzlich muss es die Zustände der SPS-Eingänge abfragen und dem MATLAB-Programm über TCP/IP senden, damit das MATLAB Programm entscheiden kann, welcher Stein als nächstes gesetzt werden soll.

Literaturverzeichnis

[1] https://de.mathworks.com/help/matlab/ref/xlsread.html?s_tid=doc_ta

  1. Eigenes Foto
  2. Eigenes Foto
  3. Eigenes Foto
  4. Eigenes Foto
  5. Eigenes Foto
  6. Hilfeseite des Wikimedia-Projekts