Die PLOC2D von SICK ist ein Vision-System f�r die 2D-Teilelokalisierung. Die Kamera bietet eine leicht zu bedienende Weboberfl�che und kann ohne externe Rechenkapazit�t schnell und zuverl�ssig Teile lokalisieren.
1. Einleitung
Das Sensorsystem kann entweder fest neben dem Roboter montiert werden, oder mit einer passenden Halterung direkt am Flansch des Roboters montiert werden. In dem folgenden Artikel wird das Sensorsystem eingerichtet und kalibriert. Anschlie�end wird eine Teilelokalisierung mit Zahnr�dern vorgenommen.
F�r weitere Informationen �ber die SICK Kamera PLOC2D siehe SICK Benutzerinformation
2. Einrichtung SICK PLOC2D
2.1. Kamerainstallation
Neue Kameras haben standardm��ig die IP 192.168.0.1, diese kann sp�ter in den Einstellungen jedoch angepasst werden. DHCP muss deaktiviert werden!
Sobald der Laptop und die Kamera im selben Netzwerk sind, kann auf die Kamera �ber ein Webinterface zugegriffen werden.
2.2. Ablauf Kalibrierung der Kamera
Zuerst sollte der Benutzer auf �Service� ge�ndert werden. Nur dieser kann neue Gegenst�nde einlernen und die Kamera kalibrieren.
Der Benutzer kann oben rechts ge�ndert werden.
F�r Service ist das Passwort �servicelevel�.
Im Men�punkt Installation k�nnen anschlie�end erste Bilder zum Testen aufgenommen werden.
Hier l�sst sich ebenfalls ein Richtlaser f�r die Positionierung hinzuschalten. Ebenso k�nnen Belichtungszeit, Helligkeit und Kontrast eingestellt werden.
Sobald die Kamera ausgerichtet ist, muss diese Kalibriert werden.
Hierf�r muss in den Men�punkt Kalibrierung gewechselt werden.
F�r die Kalibrierung wird ein CalibrationTarget ben�tigt. Diese gibt es in verschiedenen Gr��en.
Die vorhandene Gr��e muss oben rechts ausgew�hlt werden. Zus�tzlich muss hier auch die Brennweite der Kamera angegeben werden.
F�r eine gute Sch�tzung der Kamera sollten mindestens 10 Bilder aufgenommen werden.
Mit einem Klick auf �Bild� wird ein erstes Bild f�r die Kalibrierung aufgenommen.
Anschlie�end sollte ein �hnliches Bild wie dieses erscheinen.
Nach jedem Bild sollte das CalibrationTarget etwas verschoben und rotiert werden.
Mit einem Klick auf �Bild� wird ein zweites Bild f�r die Kalibrierung aufgenommen.
Danach sollte ein �hnliches Bild wie das Folgende erscheinen.
Mit jedem aufgenommen Bild werden die kleinen Rechtecke etwas gr�nlicher und ausgef�llter.
Der Vorgang muss nun wiederholt werden, bis keine Rechtecke mehr vorhanden sind.
Das Bild sollte dann �hnlich wie das folgende Aussehen.
Auch wenn der Erfassungsbereich bei 100% liegt, der Kreis komplett gr�n ist und keine Rechtecke mehr zu sehen sind, sollten f�r eine gute Kalibrierung trotzdem mindestens 10 Bilder aufgenommen werden.
Mit einem Klick auf Kalibrieren kann der Vorgang abgeschlossen werden.
Je nach Anzahl der aufgenommenen Bilder berechnet die Kamera etwa 1 Minute die Kalibrierung aus.
2.3. Angleichung
Anschlie�end sollte auf den Punkt �Angleichung� gewechselt werden.
Hier wird das Referenzkoordinatensystem bestimmt. F�r den gr��tm�glichen Bildbereich sollte die Kalibrierplatte m�glichst nicht verdreht unter der Kamera liegen.
Mit einem Klick auf "Angleichen" wird die Angleichung vorgenommen.
Sollte das Bild zu stark verzerrt sein, kann dieser Schritt beliebig oft wiederholt werden.
Anschlie�end muss der Roboter mit seinem TCP den Referenzpunkt anfahren.
Dieser ist �ber das Rot-Gr�ne Koordinatensystem gekennzeichnet.
Diese Position muss gespeichert werden, da diese sp�ter f�r die Positionssch�tzung der Objekte ben�tigt wird.
Das folgende Bild ist ein Negativbespiel. Sollte das Ergebnis dementsprechend aussehen, muss die Kalibierplatte rotiert werden.
3. Ablauf Objekte einlernen
Im Men�punkt �Job� k�nnen neue Gegenst�nde eingelernt werden.
Zuerst sollte oben rechts ein Job ausgew�hlt werden. Ein Job entspricht einem Objekt.
Dazu muss das zu erkennende Objekt in den Sichtbereich der Kamera gelegt und anschlie�end �ber den Button �Bild aufnehmen� ein Bild aufgenommen werden.
Hierbei ist drauf zu achten, dass die Werte f�r Beleuchtungszeit, Kontrast und Helligkeit aus den Einstellungen am Anfang hierher �bertragen werden, da dies nicht automatisch erfolgt.
Wenn man mit den Einstellungen zufrieden ist, kann der Bereich ausgew�hlt werden, welcher sp�ter erkannt werden soll. Daf�r muss der Button �Pinsel� gedr�ckt werden und anschlie�end der Bereich markiert werden.
Das Webinterface reagiert manchmal etwas tr�ge, daher warten bis der Pinsel wirklich ausgew�hlt wurde (gleiches gilt f�r den Radierer, Zoom und die �Objekt Referenzposition�).
Beim Markieren ist es wichtig darauf zu achten, dass keine Spiegelungen markiert werden. Diese sind nicht auf jedem Gegenstand und an jeder Stelle gleich. Ebenfalls sollten Kanten gew�hlt werden, welche klar zu erkennen und gut zu unterscheiden sind. F�r ein genaueres Markieren kann an das Objekt herangezoomt werden.
Der transparente orange Bereich zeigt den Bereich an, der markiert wurde. Die orangenen Linien zeigen die Kanten an, welche sp�ter f�r die Erkennung genutzt werden. (Bereich des Musterteils)
Anschlie�end kann der Greifer Freiraum eingelernt werden, dies funktioniert �hnlich zu zum Einlernen des Bereiches des Musterteils. Hier kann mit dem Radierer die innere Kontur entfernt werden (siehe Bild unten).
Damit Teile, welche am Randbereich liegen nicht gegriffen werden, kann dieser Bereich als gesperrt definiert werden.
Im n�chsten Schritt muss die �Objekt Referenzposition� gesetzt werden. Diese Position wird sp�ter an den Roboter gesendet. Die Referenzposition sollte somit m�glich mittig innerhalb des Objektes platziert werden. Die Orientierung ergibt sich aus der Kontur des Bauteils (im Beispiel gibt es keine Orientierung, deshalb sind die Linien parallel zum globalen Koordinatensystem)
Zum Schluss kann noch ein Schwellwert gesetzt werden. Dies gibt die ben�tigte �bereinstimmung f�r eine g�ltige Erkennung an.
Der Wert muss experimentell ermittelt werden, da dieser stark vom Hintergrund, Belichtung, dem Objekt und weiteren Faktoren abh�ngt.
4. Testen
Im Men�punkt �Run� kann das System getestet werden.
Oben rechts kann das Objekt ausgew�hlt werden, welches sp�ter erkannt werden soll.
Nach einem Klick auf �Lokalisieren� wird ein Bild aufgenommen und alle Objekte, die vorher ausgew�hlt wurden, werden nun gesucht.
�ber die zwei Button �Vorheriges� und �N�chstes� k�nnen die verschiedenen Objekte angeschaut werden, falls mehr als 1 erkannt wurde.
Die Tabelle im Abschnitt �Log� zeigt die Ergebnisse.
Von links nach rechts stehen dort:
Der erkannte Gegenstand, die Erkennungszeit, die gesch�tzte �bereinstimmung, die X- sowie Y-Verschiebung und um wieviel Grad das Objekt rotiert ist.
5. Ansteuerung der Kamera
Die Kamera kommuniziert direkt �ber TCP/IP. Hierf�r werden einzelne Packages gesendet.
Der Inhalt muss im XML- oder CSV-Format vorliegen.
Wenn die Kamera gut kalibriert wurde, werden nur zwei Befehle f�r die Objekterkennung ben�tigt.
5.1. Run.Locate, [Job number]
Zur Aufnahme eines neuen Bildes und zur Lokalisierung der Teile aus dem angegebenen Job.
In den folgenden Beispielen sollen jeweils die Objekte (Job) 1 und 3 erkannt werden.
5.1.1. XML-Beispiel
<message><name>Run.Locate</name><job>1 3</job></message>
5.1.2. CSV-Beispiel
Run.Locate,1 3
5.2. Run.Locate, [Job number],[Match]
Gibt ein Ergebnis vom vorherigen Run.Locate-Befehl zur�ck. Das zur�ck-zugebende Ergebnis wird durch den Parameter �Match� (Treffer) bestimmt.
In diesem Beispiel soll von dem Objekt �3� der zweite erkannte Gegenstand zur�ck geliefert werden.
5.2.1. XML-Beispiel
<message><name>Run.Locate</name><job>3</job><match>2</match></message>
5.2.2. CSV-Beispiel
Run.Locate,3,2
Weitere Befehle k�nnen aus der Quickstartanleitung der PLOC2D Kamera entnommen werden.
5.3. Beispielprogramm
Das beigef�gt Programm zeigt in einem einfachen Beispiel wie mit der Kamera kommuniziert werden kann.
Im folgenden werden die grundlegendsten Funktionen erkl�rt, mit denen das Sensorsystem aus horstFX heraus kommuniziert werden kann.
5.3.1. Verbindung zum Sensorsystem herstellen
Eine Verbindung von horstFX zu einer PLOC2D wird �ber einen Socket hergestellt. Je nachdem wie das Netzwerk eingerichtet ist, muss die IP-Adresse und der Port ggf. angepasst werden.
function initCamera() {
return new java.net.Socket("192.168.0.10", 14158);
}
5.3.2. Daten an das Sensorsystem senden
�ber einen PrintWriter k�nnen dem Sensorsystem Daten gesendet werden um Beispielsweise ein neues Bild zu erzeugen und dies auszuwerten.
function writeToSocket(nachricht) {
var printWriter =
new java.io.PrintWriter(
new java.io.OutputStreamWriter(
socket.getOutputStream()));
printWriter.print(nachricht);
printWriter.flush();
}
writeToSocket("Run.Locate,1");
5.3.3. Daten vom Sensorsystem lesen
�ber einen BufferedReader k�nnen Daten welche vom Sensorsystem gesendet werden ausgelesen werden. Die Daten des Sensorsystems kommen als String und k�nnen somit anschlie�end beliebig weiterverarbeitet werden. In diesem Codeausschnitt werden die Daten in einer Infomeldung auf dem PANEL ausgegeben.
function readFromSocket() {
var bufferedReader =
new java.io.BufferedReader(
new java.io.InputStreamReader(
socket.getInputStream()));
var charArrayType = Java.type("char[]");
var buffer = new charArrayType(1000);
var anzahlZeichen = bufferedReader.read(buffer, 0, 1000);
var nachricht = new java.lang.String(buffer);
return nachricht;
}
var cam_result = readFromSocket();
show_info(cam_result);
5.4 Einstellungen Kamera
Hier ist ein Beispiel f�r die Einstellung der IP-Adresse und der Roboterkommunikationseinstellungen auf der SICK PLOC2D. Es wurde das CSV-Protokoll verwendet.
6. Download-Dateien
Textuelles Basis-Programm:
Grafisches Basis-Programm f�r Softwarestand 2023.11:
SICK Vision horstFX-grafisch Softwarestand 23.11
7. Zu beachten
- Sofern Sie die bereitgestellten Dateien als Grundlage f�r Ihr eigenes Programm nutzen m�chten, sollten Sie die Bezeichnung der Ein-/Ausg�nge aus der Konfigurations-Datei: "PartSeparation_2311_public_2.io" �bernehmen. Die Datei liegt im Ordner ioconfig ab. F�r Produkte von fruitcore robotics sind diese Bezeichnungen ab Werk eingestellt.
- "Locate" liefert nur die Differenz zu der Position, die im Abschnitt Angleichung angefahren wurde.
- Die Koordinatensysteme der Kamera und des Roboters k�nnen verdreht sein -> muss beim Addieren der Differenz beachtet werden.
- Die Kamera liefert keine H�he. Die H�he muss vorher einmal von Hand angefahren, oder langsam angen�hert werden.