Hallo Zusammen,
ich bin relativ neu in der Materie und habe ein großes Verständnisproblem.
Vorab Infos zur Roboterzelle und Steuerung:
- Steuerung: KUKA KR C5 dualcab AC
- Roboter: KUKA KR 120
- Drehtisch: KUKA KP1-V 1000
Ich wähle am SmartPad das Werkezug tool = [1] "Greifer" und die Basis base = [1] "Drehtisch"
Zudem greife ich via OPC UA auf die folgenden Daten der Robotersteuerung zu:
- $ACT_POS (X, Y, Z, A, B, C)
- $TOOL (X, Y, Z, A, B, C)
Nun müsste ich nach meinem Verständnis durch die Informationen von $ACT_POS und $TOOL,
über Transformationsmatrizen auf die Roboterposition von der Basis base = [1] "Drehtisch" zum Roboterflansch tool = [0] "$NULLFRAME"
rückrechnen können.
Schematisch.png
Die Transformationsmatrix berechne ich jeweils wie im folgenden Beitrag beschrieben in der Drehreihenfolge ZY'X''.
Going from KUKA Euler angles to transformation matrix.
Aus $ACT_POS lässt sich die folgende Transformationsmatrix berechnen: robo_pos_trafo_B1W1
Aus $TOOL lässt sich die folgende Transformationsmatrix berechnen: FLANSCH2TOOL_trafo_W1
B1_W1.JPG
Mittels Matrizenmultiplikation sollte ich doch dann wie folgt auf die Roboterposition von der Basis base = [1] "Drehtisch"
zum Roboterflansch tool = [0] "$NULLFRAME" rückrechnen können:
robo_pos_trafo_B1W0 = inverse(FLANSCH2TOOL_trafo_W1) * robo_pos_trafo_B1W1
Wenn ich das allerdings so mache mit den Beispieldaten (Siehe Bild B1_W1.JPG) komme ich nicht auf das Ergebnis,
wie wenn ich in der Steuerung auf Werkzeug tool = [0] "$NULLFRAME" wechsle.(Siehe Bild B1_W0.JPG)
B1_W0.JPG
Das Python-skript wie ich die Berechnung durchführe habe ich mit angehängt.
Ich bin wirklich langsam am verzweifeln, wäre um jede Hilfe sehr dankbar.