Winkel aus Drehmatrix in globalen Koordinaten

Neue Frage »

Sundström Auf diesen Beitrag antworten »
Winkel aus Drehmatrix in globalen Koordinaten
Meine Frage:
Hallo zusammen,

ich stehe vor einem kleinen Problem bzgl. Drehungen im 3D-Raum.
Ich habe ein globales Koordinatensystem gegeben und drehe einen Körper zuerst um die globale x-Achse um den Winkel alpha und anschließend um die globale y-Achse um den Winkel beta.

Mein Ziel ist nun, den Körper aus dieser Prosition um 90° um die LOKALE y-Achse zu drehen. Er soll also senkrecht stehen.

Wie kann ich nun die Winkel berechnen, um die ich den Körper in der Ausgangslage um die GLOBALEN Achsen drehen muss, damit ich sofort auf meine gewünschte Ziellage komme?

Ich hoffe, ihr versteht was ich meine und könnt mir Tipps dazu geben.

Viele Grüße

Nun das Problem. Wie kann ich die Winkel berechnen, die erforderlich sind, um den Körper aus de Ausgangslage um die globalen Achsen in die gewünschte Endlage zu drehen?

Meine Ideen:
Für die Zwischenlage kann ich die Drehmatrix aufstellen, in dem ich den Körper aus der Ausgangslage einmal um die x- und einmal um die y-Achse drehe. Diese Matrix kann ich auch in globalen Koordinaten ausdrücken.
Nun fehlt mir der Übergang zu den lokalen Koordinaten.

Generell erhält man die Drehmatric in globalen Koordinaten durch Multiplikation der einzelnen Transformationsmatrizen von links.
D.h. die Zwischenlage ergibt sich durch

T = Ty*Tx.

Auch die Trafo-Matrix für die noch erforderliche Drehung um die lokale y-Achse kann man in globalen Koordinaten ausdrücken:

Ty_lok = Tx*Ty*Ty*Ty^-1*Tx^-1 = Tx*Ty*Tx^-1.

D.h. die gesamte Drehmatrix müsste ich doch erhalten, indem ich beide Matrizen miteinander von links mutlipliziere:

T_ges = Tx*Ty*Tx^-1*Ty*Tx

Wie kann ich nun aus dieser Drehmatrix die Winkel berechnen, um die ich den Körper um die globalen Achsen drehen muss, damit er direkt aus der Ausgangs- in die Ziellage überführt wird?
Leopold Auf diesen Beitrag antworten »

Ich weiß nicht genau, was du mit "lokaler y-Achse" meinst. Ich nehme einmal an, daß das das Bild der y-Achse nach den den beiden Drehungen ist.

Ist es nicht dasselbe, wenn man den Körper am Ende um die lokale y-Achse dreht, wie wenn man ihn zu Anfang um die globale y-Achse dreht?
Sundström Auf diesen Beitrag antworten »

Mit lokaler y-Achse meine ich die y-Achse des körperfesten Koordinatensystems.
Wenn ich den Körper um die globalen Achsen drehe, dreht sich entsprechend auch das körperfeste Koordinatensystem (in meiner Skizze rot dargestellt). Daher ist auch eine Drehung um die globale y-Achse eine andere als um die lokale Achse...
RavenOnJ Auf diesen Beitrag antworten »
RE: Winkel aus Drehmatrix in globalen Koordinaten
Du kannst nicht einfach schreiben, da noch der Winkelparameter fehlt. Also wenn schon, dann

Dass du mit deiner verkürzten Schreibweise in Teufels Küche kommst, kannst du daran merken:
Zitat:
Original von Sundström
Auch die Trafo-Matrix für die noch erforderliche Drehung um die lokale y-Achse kann man in globalen Koordinaten ausdrücken:

Ty_lok = Tx*Ty*Ty*Ty^-1*Tx^-1 = Tx*Ty*Tx^-1.

D.h. die gesamte Drehmatrix müsste ich doch erhalten, indem ich beide Matrizen miteinander von links mutlipliziere:

T_ges = Tx*Ty*Tx^-1*Ty*Tx

Abgesehen davon, dass , liegt dein Fehler noch woanders.

Hättest du von Anfang an die globale x-Drehung um mit anschließender globaler y-Drehung um als geschrieben, wäre dir klar, wo es hakt. An sich war nämlich dein Gedanke richtig: Die -Drehung um die lokale y-Achse nach Drehung ist äquivalent zu einer Drehung , anschließender y-Drehung und zuletzt wieder um . Also


Wenn du allerdings die Drehung haben willst, die zuerst durchführt und anschließend eine -Drehung um die lokale y-Achse, so ist dies dasselbe, als hättest du zuerst eine GLOBALE y-Drehung um mit anschließender GLOBALER Drehung vollführt, also . Dies wurde ja auch schon von Leopold angedeutet.
Leopold Auf diesen Beitrag antworten »

Vielleicht hilft dir Folgendes.

Für einen festen Vektor mit definiert man die Abbildung



Die Vektoren seien hierbei als Spalten geschrieben. Mit ist das Transponierte von gemeint, hier also ein Zeilenvektor.

ist die 90°-Drehung um die durch bestimmte Ursprungsgerade . Die beiden Vorzeichen berücksichtigen die möglichen Drehrichtungen.
Man kann das leicht einsehen. Für gilt wegen (das Matrizenprodukt entspricht dem Skalarprodukt) und speziell



Und für einen Vektor , der auf senkrecht steht, also erfüllt, gilt



Der Vektor hat dieselbe Länge wie (wegen ) und steht sowohl auf als auch auf senkrecht. Er geht aus also durch eine 90°-Drehung um hervor.
Die Abbildungsmatrix für ist



wobei die kanonischen Einheitsvektoren seien.
Sundström Auf diesen Beitrag antworten »

Vielen Dank für eure Antworten.
Wenn ich jetzt also die Drehmatrix nach folgendem Zusammenhang aufstelle:
,
wie kann ich nun aus dieser Drehmatrix die Winkel berechnen, um die ich den Körper um die globalen Achsen drehen muss, damit er direkt aus der Ausgangs- in die Ziellage überführt wird?
 
 
Ehos Auf diesen Beitrag antworten »

Der Drehwinkel ergibt sich aus den Diagonalelementen der Drehmatrix T wie folgt



Die Drehachse ergibt sich übrigens aus den Nichtdiagonalelementen.
Sundström Auf diesen Beitrag antworten »

Hallo Ethos,

mein Ziel ist nicht, EINEN Winkel um EINE Drehachse zu berechnen.
Vielmehr möchte ich DREI Winkel für DREI aufeinanderfolgende Drehungen um die globale x-, die globale y- und die globale z-Achse berechnen.
Kannst du mir dafürauch das Vorgehen schildern?
Ehos Auf diesen Beitrag antworten »

Wenn du die Gesamtdrehung als Hintereinanderausführung von 3 Einzeldrehunungen verstehst, also , so musst du die einzelnen Drehwinkel für jede einzelne Drehung bestimmen, indem du die oben genannte Formel verwendest.
Sundström Auf diesen Beitrag antworten »

Tut mir leid, ich kann dir noch nicht ganz folgen.
Ich habe eine Drehmatrix nach oben geschildertem Zusammenhang:


Das ergibt mit und

folgende Matrix



Kann ich aus dieser Matrix die entsprechenden Winkel einfach durch "Koeffizientenvergleich" mit meiner gewünschten Drehmatrix (bestehend aus 3 aufeinanderfolgenden Elementardrehungen)



ermitteln?
RavenOnJ Auf diesen Beitrag antworten »











Aus kannst du jetzt gewinnen, dann aus oder und aus oder . Es ist also:
Ehos Auf diesen Beitrag antworten »

Mir ist noch nicht ganz klar, was du willst. Ich schreibe die Drehungen nochmals auf, so wie ich es verstanden habe, wobei ich die unbeweglichen Achsen des Laborsystems mit X, Y, Z bezeichne. Die mitbewegten Achsen des körpereigenen Systems werden mit Strichen gekennzeichnet
-----------------------------------------------------
1.Schritt: Drehung um die feste Achse X um den Winkel . Die Drehmatrix bezeichnen wir mit . Die mitbewegten Achsen lauten danach

(unverändert)



2. Schritt: Drehung um die feste Achse Y um den Winkel . Die Drehmatrix bezeichnen wir mit . Die mitbewegten Achsen lauten danach





3. Schritt: Drehung um die neue körpereigene Achse Y'' um den Winkel . Die Drehmatrix bezeichnen wir mit . Die mitbewegten Achsen lauten danach


(unverändert)

-------------------------------------
Willst du den Drehwinkel der gesamten Drehung wissen, wobei die Winkel beliebig sein dürfen und . Ich melde mich erst morgen wieder.
Sundström Auf diesen Beitrag antworten »

Perfekt!
Vielen, vielen Dank für die ausführliche Beschreibung, euch allen!
Jetzt kommt es hin.
Bei mir gab es einen Vorzeichenfehler, den ich dank eurer detaillierten Darstellungen ausfindig machen konnte.
RavenOnJ Auf diesen Beitrag antworten »

Ich schreib dann die Rechnung zum verminderten Stundensatz von 45 € + MWSt Augenzwinkern .
Neue Frage »
Antworten »



Verwandte Themen

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