Es gibt Kamerasysteme, die die Position von Gegenst�nden in x- und y-Koordinaten ausgeben. Da sich der Roboter aber im dreidimensionalem Raum befindet, ben�tigt man dazu noch die Z-Koordinate. Ist sowohl die Kamera als auch der Roboter und die Ebene, die die Kamera erfasst, perfekt parallel zur Z-Koordinate des Weltkoordinatensystems, so ist dieser Wert nat�rlich immer fest. Sobald dies nicht der Fall ist, muss Z ermittelt werden.
Vorgehen
Um die Z-Koordinate ermitteln zu k�nnen, muss erstmal eine Referenzebene eingelernt werden. Daher werden hier zwei Funktionen beschrieben. Eine zum Einlernen der Ebene und eine zum Ermitteln der Z-Koordinate anhand einer XY-Koordinate.
Einlernen der Ebene
Die Ebene wird mit der Funktion teachPlane() eingelernt. Diese Funktion hat 12 Parameter. Diese Parameter sind jeweils die x,y und z-Koordinate von 4 Punkten. Diese kann man ermitteln, indem man mit dem TCP an die Eckpunkte der zu definierenden Ebene f�hrt.
teachPlane(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4)
Wichtig:
Die 4 Punkte m�ssen entweder im oder gegen den Uhrzeigersinn angegeben werden. Verbindet man die 4 Punkte zu einem Viereck, so darf Punkt 1 nicht mit Punkt 3 verbunden sein!
Hier ein Beispiel:
Es wird an vier verschiedene Punkte gefahren (z.b. �ber die Aktion Wegpunkt definieren) und sich dort jeweils die aktuelle Position ausgeben gelassen.
Von der Position beachten wir nur die Position, nicht die Rotation. Die Positionen dieser vier Punkte �bergeben wir nun der Methode teachPlane().
joints(0.000000, 0.000000, 0.000000, 0.000000, 85.220371, 0.000000, 1.000000, "Wegpunkt 1", false);
var one = getCurrentPose();
joints(-22.290554, 5.129221, 3.172679, 1.856705, 77.280641, -22.629531, 1.000000, "Wegpunkt 2", false);
var two = getCurrentPose();
joints(-17.163997, 26.062826, -27.035683, 1.411788, 86.406272, -17.196313, 1.000000, "Wegpunkt 3", false);
var three = getCurrentPose();
joints(16.878389, 25.613710, -22.733409, -1.398059, 82.547275, 17.004389, 1.000000, "Wegpunkt 4", false);
var four = getCurrentPose();
teachPlane(one.x, one.y, one.z, two.x, two.y, two.z, three.x, three.y, three.z, four.x, four.y, four.z)
Nun ist eine Ebene eingelernt und anhand von xy-Koordinaten kann die z-Koordinate berechnet werden.
Ermitteln der Z-Koordinate
Nachdem die Ebene mit der Funktion teachPlane() eingelernt wurde, kann nun anhand von x- und y-Koordinaten die auf der Ebene befindliche z-Koordinate berechnet werden. Dazu dient die Funktion getZByTeachedPlane().
Diese Funktion ben�tigt als Parameter die x und die y-Position eines Punktes. Als R�ckgabewert erh�lt man die z-Koordinate, die sich auf der zuvor definierten Ebene befindet und die �bergebenen x- und y-Koordinaten besitzt.
var z = getZByTeachedPlane(x,y)