Drehmatrix bestimmen

Neue Frage »

BV_Vision Auf diesen Beitrag antworten »
Drehmatrix bestimmen
Meine Frage:
Hallo,

im Rahmen meiner BA im Bereich der industriellen Bildverarbeitung habe ich von einem Bauteil vier Punkte mit bestimmt. Nach Rotation und Translation des Bauteils habe ich die Punkte mit .
Ziel ist es, die Translation und Rotation (speziell die Winkel Rx,Ry,Rz) zu bestimmen.

Meine Ideen:
Für die Berechnung der Translation bilde ich zunächst den Mittelpunkt des Bauteils bzw. den Mittelpunkt/Schwerpunkt der Merkmale.

mit n = 4
mit n = 4

Delta der Verschiebungen ist die Translation zwischen den beiden Mittelpunkten.



Dieses sieht soweit auch gut aus.



Die Rotation kann ich hingegen nicht berechnen. Mein Ansatz ist:

1. Verschieben des Mittelpunktes von in den Ursprung
2. Verschieben des Mittelpunktes von in den Ursprung
3. Lösen der Gleichung (reine Rotation da die Mittelpunkte der Bauteile im Ursprung liegt)



Daraus folgt mit i = 1...4:





Da ich vier Merkmale des Bauteils kenne und nur je drei Unbekannte habe, sollte ich die Koeffizienten berechnen können.

Die Winkel berechne ich mit mit:






Leider stimmen die Winkel nicht. Auch wenn ich mir Werte vorgebe, von denen ich das Ergebnis kenne, kann ich die Winkel nicht bestimmen. Irgendwo wird ein Denkfehler in meinem Ansatz sein. Darum wende ich mich an euch. Ich hoffe ihr könnt mir Helfen
Ehos Auf diesen Beitrag antworten »

Wie findet man den Drehwinkel und die Drehachse?
---------------------------------------------
Seien A, B, C, D bzw. A', B', C', D' die vier Punkte deines Objektes vor bzw. nach der Bewegung. Da du nur den Drehwinkel suchst, der mit der Translation nichts zu tun hat, bilde folgende Differenzvektoren

vor der Bewegung:




nach der Bewegung:




Durch diese Differenzbildung "kürzt" sich die uninteressante Translation heraus. Für die Drehmatrix D muss gelten:





Fasst man die drei Vektoren als Spalten einer Matrix V auf und die Vektoren als Spalten einer Matrix V', dann kann man die letzten 3 Gleichungen zu einer Matrixgleichung zusammenfassen



Umstellen ergibt die gesuchte Drehmatrix D



Diese Drehmatrix entspricht der Drehung um eine gewisse Drehachse mit einem gewissen Drehwinkel. (Du musst die Drehung also gar nicht in 3 einzelne Drehungen zerlegen, was übrigens gar nicht eindeutig ist.) Aus den Diagonalelementen von der Drehmatrix D gewinnt man den Drehwinkel



Die Drehachse ist der Eigenvektor der Drehmatrix D zum Eigenwert 1, also die Lösung des homogenen Gleichungssystems . Dafür gibt es auch eine fertige Formel.
BV_Vision Auf diesen Beitrag antworten »

Vielen Danke für deine Antwort.

Mit deinem Rechenweg bekomme ich das gleiche für die Matrix D heraus wie für die Matrix R über den Ansatz über die Gleichungssysteme. Hier scheint der Fehler bzw. das Problem nicht zu liegen.

Die Ungenauigkeiten kommen wohl durch die Bestimmung der Koordinaten über die Bildverarbeitung.

Ich verstehe alles in deiner Erklärung bis zur Erstellung von der Matrix.

Was bringt mir denn der Winkel phi? Ich benötige für die Roboterpositonierung die Winkel .

Die würden sich ja bereits aus dem Vektoren und mit



Oder sehe ich das Falsch?

Ich muss sowieso erstmal die Koordinaten der Merkmale richtig bestimmen!
URL Auf diesen Beitrag antworten »

@Ehos: Wenn du ein ebenes Werkstück hast, kannst du doch V nicht invertieren verwirrt
Kann allerdings sein, dass das aufgrund von Messfehlern hier keine Rolle spielt.
Ehos Auf diesen Beitrag antworten »

@URL
Ich gehe davon aus, dass das Werkstück 3-dimensional ist, denn nirgends steht, dass es eben sein soll.
---------------------
@BV_Vision
Jede Drehmatrix ist letztlich durch 3 Zahlen eindeutig festgelegt (z.B. 3 Drehwinkel). Diese 3 Zahlen muss man aus den 9 Matrixelemente extrahieren. Das ist aber keinesfalls eindeutig, denn die 3 Zahlen hängen von deren Interpretation ab. (Sie können bei ein und derselben Drehmatrix unterschiedlich sein!) Für die Interpretation dieser 3 Zahlen gibt es unendlich viele Möglichkeiten. Ich gebe mal 3 gebräuchliche Interpretationen an:

Interpretation 1:
Man zerlegt die Drehung in 3 Teil-Drehungen um die 3 festen Koordinaten-Achsen und interpretierst diese 3 Zahlen als die Drehwinkel um diese Achsen. Das ist unter Technikern üblich.

Interpretation 2:
In der Kreiseltheorie zerlegt man die Drehung ebenfalls in 3 Teil-Drehungen - aber nicht um feste Achsen, sondern um mitbewegte Achsen, die mit dem Kreisel fest verbunden sind. Die 3 Zahlen sind ähnlich wie oben die Drehwinkel um diese Achsen (=Eulersche Winkel). Die Motivation für diese "dynamischen" Zerlegung besteht darin, dass dabei die zu lösende Bewegungsgleichug aus mathematischer Sicht einfacher wird.

Interpretation 3:
Man interpretiert die Drehmatrix als eine einzige Drehung um eine "schiefe" Drehachse (also ohne Zerlegung in 3 Teil-Drehungen). Das scheint mir die natürlichste Interpretation. In diesem Falle ist der Einheitsvektor der schiefen Drehachse durch 2 Zahlen festgelegt (theta und phi). Die 3.Zahl entspricht dem Drehwinkel um diese schiefe Achse.
-----------
Deine Frage war, wie man aus den 9 Matrixelementen diese 3 Zahlen bekommt?

Antwort:
Angenommen du benutzt die Interpretation 1. Dann findest du bei WIKIPEDIA unter dem Sucbegriff "Drehmatrix" die explizite Darstellung der 3 Drehamtrizen Dx, Dy, Dz für die 3 Teildrehungen um die Koordinatenachsen. Die Gesamtdrehung ist also das Produkt D=DxDyDz (Reihenfolge beachten, je nach Definition!). Du musst nun deine numerische Matrix D mit diesem Matrixprodukt DxDyDz gleichsetzen und hast somit ein Gleichungssystem aus 9 Gleichungen (für jedes Matrixelememt eine Gleichung). Suche daraus die 3 einfachsten Gleichungen heraus und löse diese nach den 3 Winkeln auf!
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »