Baumer - XF200

Die XF200M03W10EP von Baumer ist ein Vision-System f�r die 2D-Teilelokalisierung. Auf die Kamera kann �ber die Software VeriSens Aplication Suite zugegriffen und eingerichtet werden.

1. Einleitung

Nachdem die Kamera eingerichtet wurde, wird die Software VeriSens nicht weiter ben�tigt und horstFX kann direkt mit der Kamera kommunizieren. 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. F�r die Erkennung wird in den Beispielen hier ein kleiner Elefant gew�hlt.

2. Einrichtung VS XF200

2.1. Kamerainstallation

Neue Kameras haben standardm��ig eine voreingestellte IP. Diese wird, falls n�tig, beim Starten der Software in eine tempor�re IP umgewandelt. In den Einstellungen kann diese jedoch angepasst werden.

Sobald der Laptop und die Kamera im selben Netzwerk sind, kann auf die Kamera �ber die Software VeriSens Application Suite zugegriffen werden. Ein schlichtes Webinterface ist vorhanden und kann durch Aufrufen der IP im Browser angezeigt werden.

Unter Ger�teeinstellung muss das Protokoll auf TCP und keine Endekennung eingestellt werden.

2.2. Ablauf Kalibrierung der Kamera

Zuerst sollte die Kamera auf Parametrieren gestellt werden, in diesem Modus lassen sich alle Einstellungen �ndern.

Im Men�punkt Bild einstellen - Bildaufnahme k�nnen anschlie�end erste Bilder zum Testen aufgenommen werden. Ebenso k�nnen Belichtungszeit, Aufl�sung und Kantenerkennung eingestellt werden.

Sobald die Kamera ausgerichtet ist, muss diese kalibriert werden.

Hierf�r muss in den Unterpunkt Koordinaten gewechselt werden.

F�r die Kalibrierung wird ein bekanntes Muster mit Abst�nden ben�tigt. In diesem Beispiel ist es das Millimeterpapier, das man oben links im Bild erkennen kann.

F�r eine eindeutige Kalibrierung werden 4 Punkte auf dem Muster platziert, deren Position durch die Millimeter genau angeben werden kann. Die Werte werden unten f�r die X- und Y-Position angegeben. Hierbei ist der 1. Punkt der Referenzpunkt und alle weiteren Werte referenzieren auf diesen Punkt.

Bei einer erfolgreichen Kalibrierung leuchten die vier Punkte gr�n.

Im Unterpunkt Fokussierung kann der Rahmen f�r den Fokus-Bereich eingestellt werden.

2.3. Merkmale und Angleichung

Anschlie�end sollte auf den Punkt Merkmale pr�fen gewechselt werden.

Hier lassen sich nun diverse Merkmale einf�gen und einstellen. In diesem Fall wird erstmal eine Lagenachf�hrung an Konturen eingef�gt. Mit der Form �Rechteck� markieren wir den zu teachenden Bereich und k�nnen dabei noch Einstellung bez�glich Kontrast-�berg�nge oder die Genauigkeit der Kanten treffen. Sollten sich mehrere Teile auf dem Feld befinden, so kann man den Suchbereich aktivieren und ein weiteres Feld einf�gen, in dem dann die Teile gesucht werden. In diesem Fall den ganzen Kamera-Bereich. Anschlie�end rechts auf teachen dr�cken. Danach sollte die �bereinstimmung bei 100% liegen, mit dem Slider kann man den Grenzwert bestimmen.

Bei erfolgreichem Einteachen kann man auf den Modeleditor wechseln und die Konturenerkennung verbessern. In diesem Fall wurde das �Auge� wegradiert.

Bei der Auswertung kann man nun den Mittelpunkt der Kontur ausgeben lassen. In diesem Fall leider nicht sehr praktisch, da der Elefant nicht symmetrisch ist. Um nun die Position und Rotation eindeutig zu bestimmen ben�tigt man ein Referenzpunkt, der nach der Kontur ausgerichtet wird.

Hierf�r wird ein geometrischer Punkt am Fu� des Elefanten platziert und bei Berechnungsmethoden �Relativ zu Referenz� eingestellt. Auf der rechten Seite muss die �Lagenachf�hrung an Kontur 1� ausgew�hlt werden. Hat man den Punkt und die Rotation genau eingestellt, kann man den Punkt teachen und anschlie�end die Slider komplett an den Rand schieben, damit jede Position und Rotation erlaubt sein darf. Der nun eingeteachte Punkt ist der absolute Nullpunkt und stellt hiermit die Referenz f�r den Roboter dar.

Anschlie�end muss der Roboter mit seinem TCP den Referenzpunkt anfahren.

Die Position des Roboters muss gespeichert werden, da diese sp�ter f�r die Positionssch�tzung der Objekte ben�tigt wird.

2.4. Schnittstelle einlernen

Im Men�punkt �Schnittstellen konfigurieren� k�nnen die zu �bertragenden Parameter eingestellt werden.

Zu Beginn kann zur �bertragung eine Start-Kennung eingetragen werden (FX). Ebenso ist die Eingabe von Trennung und Endung individuell. Neben der �bereinstimmung des Objekts werden die X- und Y-Positionen und die Rotation �bertragen. Im rechten Feld sieht man die eingestellte �bertragung von Daten.

Um nun die Kamera zu nutzen, muss man diese aktivieren, der Job wird gespeichert und auf die Kamera �bertragen.

3. Testen

Mittels einer simulierten SPS im Programm selbst kann man die Befehle und empfangenen Daten �berpr�fen. Hier ist zu sehen, dass das Objekt noch exakt auf der Stelle liegt, in der es geteacht wurde.

Im folgenden Bild wurde das Objekt um 20mm nach rechts bewegt.

Im folgenden Bild wurde das Objekt um 90� gedreht.

Eine �bersicht aller Befehle befindet sich in der Dokumentation der Kamera.

4.  Ansteuerung der Kamera

Eine Beispielanwendung f�r horstFX ist in der Datei Baumer_Vision.js angeh�ngt.

4.1. 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 mit dem Sensorsystem aus horstFX heraus kommuniziert werden kann.

4.1.1. Verbindung zum Sensorsystem herstellen

Eine Verbindung von horstFX zu einer PLOC2D wird �ber einen Socket hergestellt. Jenachdem wie das Netzwerk eingerichtet ist, muss die IP-Adresse und der Port ggf. angepasst werden.

function initCamera() {
        return new java.net.Socket("192.168.178.1", 23);

4.1.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("TR"); //Trigger um ein Bild auszuloesen
sleep(100);
writeToSocket("GD"); // Datensendung veranlassen (GetData)

4.1.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 horstPANEL 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. Beispielprogramm

Baumer_Vision