Zitat
jedoch bekomme ich es nicht wirklich aufgelöst. Habe immer am Ende Sinus UND! Cosinus übrig.
Das stimmt. Aber auflösen kann man es aber ja trotzdem...
Jetzt noch einmal zum Prinzip, vielleicht ist es ja doch nicht, was du brauchen kannst:
Ich definiere einen Punkt, das ist in meinem Fall der Einsvektor 0,0,1. Dann drehe ich diesen Punkt um die drei Achsen mit den Rotationsmatrixen, wie es auch der Roboter machen würde. Dann erhalte ich als Ergebnis die neuen Koordinaten des nun gedrehten Punktes.
Fragestellung für mich war damals:
Ich habe einen Punkt im Raum, um welche Werte muss ich die Achsen drehen, damit mein Tool in Richtung dieses Punktes zeigt? Also das Ganze rückwärts rechnen, so erhalte ich durch Vorgabe des Punktes die Achswinkel.
Da ich die Gleichungen mit dem Einsvektor 0,0,1 aufgestellt habe, muss ich für die Rückrechnung auch einen Einsvektor nehmen, ansonsten passt es nicht.
Wenn du also z.B. möchtest, dass dein Werkzeug auf 777,0,0 zeigt, musst du 1,0,0 vorgeben. So änderst du die Richtung nicht, und hast trotzdem einen Einsvektor. Der Punkt, durch den dein Werkzeug zeigen soll, ist immer auf 0,0,0 bezogen. Wenn dein Werkzeug parallel zur X-Achse orientiert werden soll, muss du als Zielpunkt 1,0,0 vorgeben, EGAL wo dein TCP gerade liegt.
In deinem Fall musst du also noch aus deiner TCP-Position und Zielposition den Richtungsvektor ermitteln. Also wie in der Schule Endpunkt-Anfangspunkt. Dann auf Einsvektor normieren und fertig.
Vielleicht kann ichs auch so beschreiben:
Dein Robi hält einen Bleistift. Jetzt soll dein Bleistift in eine beliebige Richtung zeigen. Diese Richtung definierst du durch den Einsvektor. Die Gleichung ermittelt dann für dich die Achswinkel B und C, nach Vorgabe von A. Die Position des TCP ist dabei also völlig egal. Die Richtung in Form des Einsvektors musst du aber vorher noch selbst ermitteln.