Koordinatentransformation (Geodäsie/Vermessung)

Kai Westermann @, Tuesday, 25.01.2011, 18:51 (vor 4832 Tagen) @ MichaeL

Moin!

ich kann Dir immer nicht ganz folgen, da mit Deine Theologie nicht ganz geläufig ist - umgekehrt trifft dies vermutlich auch zu. Lass uns etwas früher einsteigen und kleiner Schritte machen, vielleicht führt das dann zum Ziel.

OK

Der Ursprung der Maschine ist immer T0 = [0 0 0]. An dieser Maschine ist ein Arm dran, welcher die Koordinaten T2 = [675 0 -512] hat und an diesem Arm ein Werkzeug (Deine Kugel) mit den Koordinaten T32 = [0 0 200]. Wir haben derzeit also drei Punkte im Raum. Beziehen diese drei Punkte sich alle auf das selbe Koordinatensystem?

Nope!
Der Ursprung der Maschine ist [0 0 0]
Der Arm wird auf die Koordinaten gefahren, er ist ja beweglich und kann in einem Zylinder um diesen Ursprung alle möglichen Punkte erreichen.
Wenn nun zum Beispiel der Punkt P1 = [1000 1500 1800] angefahren wird, dann wird dieser Punkt auch so angegeben. Der Roboterflansch stünde dann [675 0 512] versetzt davon.
Meine angenommene Werkzeugkugel wiederum steht von letzterem Punkt [0 0 200] und von P1 [675 0 312] entfernt.

Eine grundsätzliche Anmerkung:
Zu den Abkürzungen: Du verwendest mal Rx, Ry, Rz und mal A, B, C. Es handelt sich aber immer um Drehwinkel, oder? Drehwinkel sind wie zB. Maße ohne Einheiten nutzlos, wenn man nicht den Drehsinn und die Reihenfolge der Drehungen kennt. Es gibt drei Rotationsmatrizen. Es lassen sich also 12 Kombinationen finden, diese zu multiplizieren. Ums schon mal vorweg zunehmen, ich werde es nicht für Dich austesten, welche Kombination Du benötigst - ich hoffe, Du verstehst das.

Keep your shirt on, das hätte ich auch nicht erwartet. Die Rotationsmatrix ist bekannt.
Zuerst wird um Z um den Betrag A, dann um Y um den Betrag B und hernach um X um den Betrag C gedreht. Daher die Angaben A,B und C. Ich habe versucht mich Eurer Schreibweise Rx, Ry, Rz anzunähern, das aber nicht konsequent genug getan, pardon.

Etwas Theorie:
Die Transformationsgleichung lautet:
P = T + R\cdot p

P ... Punkt im Zielsystem P = [x y z]
p ... selber Punkt im Startsystem p = [x y z]
T ... Translation (Verschiebung)
R ... Rotationsmatrix

R resultiert dabei aus Deinen drei Drehwinkeln. Hierzu werden drei Achsdrehungen hintereinander druchgeführt. Das kann zB so aussehen: Als erstes drehst Du um die X-Achse, anschließend um die neue Y-Achse und abschließend um die neue Z-Achse. Mit "neue Achse" meine ich immer die nach der vorherigen Drehung entstandene Achse. In jeder Drehung wird also das System geändert. Das Verketten der Drehungen erreichst Du durch Multiplikation. Für das genannte Beispiel wäre es:

P = T + R\cdot p  = T + R_z \cdot R_y \cdot R_x \cdot p

So weit kann ich folgen...

Wie das Produkt von R ausmultipliziert aussehen kann (einer der 12 Varianten) siehst Du auf Seite 44 in der Mitte.

Äääääh................ja............damit hört's dann auf.
Ich kann halt keine Matritzenrechnung. Wobei mir durchaus klar ist, daß man die Rotationen halt zurückdrehen und in der Rotationsmatrix die mathematische Beschreibung hierfür zu finden ist.

Ich hoffe Dir wird damit auch klar, dass Du nicht einfach ein paar Differenzen bestimmen kannst. Auch bin ich mir noch nicht Sicher, ob wir überhaupt zu einem zufriedenstellenden Ergebnis kommen. :-(

Ist klar. Aber es gibt Kollegen, die schreiben mal eben ein Programm, das so was erledigt und die werden auch nur mit Wasser kochen. Das sind aber alles Mathematiker und mit Wissensverbreiterung haben die das komischerweise nicht so.

Ein Beispiel am Ende noch:

Es muss am Anfang eine Anfangsposition geben. Nehmen wir an, der Arm steht am Anfang auf
[10 20 30] und hat ein Werkzeug, das 50 nach oben ragt - also [10 20 80]. Jetzt Dreht der Roboter den Arm um 45° um die X-Achse, 0° um die Y-Achse und 0° um die Z-Achse. Nach dieser Drehung verschiebt er den Arm um T = [30 70 90]. Folgende Position hat nun der Arm: [40 62.9289 125.3553] und das Werkzeug [40 27.5736 160.7107]. Kannst Du das nachvollziehen?

Jep, gute Vorlage:
Gegeben sind bei meiner Aufgabenstellung der Raumpunkt des Werkzeuges [40 27.5736 160.7107] und die Verschiebung/Drehung desselben im Bezug auf den Arm [0 0 50].
Dann bekomme heraus den Raumpunkt an dem der Arm steht [40 62.9289 125.3553].

Dann habe ich ein neues Werkzeug, welches 10 nach oben ragt und die Position, an der dieses neue Werkzeug steht, will ich wissen.

Oder anders:
Das ist der mir bekannte Raumpunkt [40 62.9289 125.3553] im Tool 2
Das ist die resultierende Verschiebung von Tool 2 zu Tool 32 [0 0 40]
Und ich hätte gern den Punkt, an dem Tool 32 steht.

P.S. ich habe gesehen, dass Du Werte korrigiert hast aber es hapert nicht an den Zahlen - mehr am erfassen Deines Problems, sodass ich nicht weiter drauf eingegangen bin.

Hätte ja sein können, daß Du irgendwas nachrechnest und dann wären falsche Werte doof.

Gruß

Kai


gesamter Thread:

 RSS-Feed dieser Diskussion