Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Drehung von Koordinatensystemen

92 views
Skip to first unread message

Daniel Schramm

unread,
Jun 3, 2004, 9:18:31 AM6/3/04
to

Hallo,

ich suche eine Loesung zu folgendem Problem:
Alles 3-Dimensional.

Ich messe einen Punkt in einem Koordinatensystem und noch einmal denselben
Punkt in einem neuen Koordinatensystem.

Der Punkt ist jeweils gegenueber den beiden Koordinatensystemen als ein
Einheitsvektor beschrieben.
Es handelt sich also um eine reine Drehung.

Die Frage ist nun, um welche Winkel die Koordinatensysteme zueinander
verdreht sind. (Yaw, Pitch und Roll Darstellung)
Beziehungsweise, wie ich auf eine Abbildungsmatrix kommen kann, die die
Drehung der Koordinatensysteme ausdrueckt.

Vielen Dank fuer Eure Hilfe

Daniel

--
.~. Daniel Schramm Phone: +49 231 6108112 Mail:daniel....@gmx.de
/V\ Bruehlweg 36 Mobile:+49 178 8839848 ICQ: 35816985
// \\ 44379 Dortmund Fax: +49 231 96989961 WWW: pinguin.sauerland.de
/( )\ Germany
^`~'^

Stefan Müller

unread,
Jun 3, 2004, 11:19:46 AM6/3/04
to
Du hast also eine Punkt P, der im 1. Koordiantensystem die Koordinaten
P1=(x1,y1,z1)^t und im 2. Koordinatensystem die Koordinaten
P2=(x2,y2,z2)^t hat. Nun ist bekannt, dass es sich bei der
Transformation der Koordinaten um eine Rotation handelt, d. h. eine
lineare Abbildung mit einer orthogonalen Matrix R.

Da P2 aus P1 hervorgeht muss gelten:
P2=R*P1 (*)
mit der Nebenbed.: R ist orthogonal (d.h. die Spalten- bzw.
Zeilenvektoren bilden ein Orthonormalsystem) ergeben sich 6 weitere
Gleichungen
Bezeichne r_i die i-te Zeile von R muss also noch gelten
r_i*r_i^t = 1 , i =1, 2, 3
r_i*r_j^t = 0 , i,j = 1, 2, 3 und i!=j

Somit hast Du ein nichtlineares Gleichungssystem mit 9 Gleichungen und 9
Unbekannten, dass man lösen kann.

Mir ist noch ein weitere Ansatz bekannt, der das Problem in eine
Eigenwertaufgabe umwandelt. Stichwort hierzu sind Quaternionen.

Gruß
Stefan

Hermann Kremer

unread,
Jun 3, 2004, 5:19:27 PM6/3/04
to
Daniel Schramm schrieb in Nachricht <news:40bf...@olaf.komtel.net>...

>Hallo,
>ich suche eine Loesung zu folgendem Problem:
>Alles 3-Dimensional.
>Ich messe einen Punkt in einem Koordinatensystem und noch einmal denselben
>Punkt in einem neuen Koordinatensystem.
>Der Punkt ist jeweils gegenueber den beiden Koordinatensystemen als ein
>Einheitsvektor beschrieben.
>Es handelt sich also um eine reine Drehung.
>Die Frage ist nun, um welche Winkel die Koordinatensysteme zueinander
>verdreht sind. (Yaw, Pitch und Roll Darstellung)
>Beziehungsweise, wie ich auf eine Abbildungsmatrix kommen kann, die die
>Drehung der Koordinatensysteme ausdrueckt.

Deine Euler-Winkel findest Du in
http://mathworld.wolfram.com/EulerAngles.html --> Gl. 43 ff
Siehe auch
http://mathworld.wolfram.com/RotationMatrix.html

Grüße
Hermann
--

Thomas Mautsch

unread,
Jun 4, 2004, 8:38:21 AM6/4/04
to
In news:<c9o4ll$e31$1...@online.de> schrieb Hermann Kremer:

> Daniel Schramm schrieb in Nachricht <news:40bf...@olaf.komtel.net>...

>>ich suche eine Loesung zu folgendem Problem:


>>Alles 3-Dimensional.
>>Ich messe einen Punkt in einem Koordinatensystem und noch einmal denselben
>>Punkt in einem neuen Koordinatensystem.
>>Der Punkt ist jeweils gegenueber den beiden Koordinatensystemen als ein
>>Einheitsvektor beschrieben.
>>Es handelt sich also um eine reine Drehung.
>>Die Frage ist nun, um welche Winkel die Koordinatensysteme zueinander
>>verdreht sind. (Yaw, Pitch und Roll Darstellung)
>>Beziehungsweise, wie ich auf eine Abbildungsmatrix kommen kann, die die
>>Drehung der Koordinatensysteme ausdrueckt.

> Deine Euler-Winkel findest Du in
> http://mathworld.wolfram.com/EulerAngles.html --> Gl. 43 ff
> Siehe auch
> http://mathworld.wolfram.com/RotationMatrix.html

...oder in diesem Dokument:
http://wwwbruegge.in.tum.de/pub/DWARF/DwarfTutorial/maths3D.pdf

Schau nach unter

Q38. How do I generate a rotation matrix to map one vector onto another?
und
Q37. How do I generate a rotation matrix for a selected axis and angle?


Michael Koch

unread,
Jun 4, 2004, 10:51:37 AM6/4/04
to
Hallo Daniel,

> Ich messe einen Punkt in einem Koordinatensystem und noch einmal denselben Punkt in einem neuen Koordinatensystem.

Bist du sicher dass es dafür nur eine Lösung gibt und nicht
unendlich viele? Ich meine man bräuchte in jedem
Koordinatensystem zwei Punkte um die Drehung eindeutig
berechnen zu können. Bin aber kein Mathematiker.

Michael

Thomas Mautsch

unread,
Jun 4, 2004, 1:15:58 PM6/4/04
to
In news:<40C08C79...@gmx.net> schrieb Michael Koch:

Wenn man freie Drehungen im Raum betrachtet,
benoetigt man zwei Original- und Bildpunkte.
Wenn man wie der OP
um eine Gerade durch den Ursprung des Koordinatensystems drehen will,
benoetigt genuegt es, einen Originalpunkt A und sein Bild A' zu kennen
(solange beide verschieden sind). -
Die Drehachse ist muss senkrecht auf den Ortsvektoren A und A' stehen
(also parallel zu A x A'), und der Drehwinkel ist gleich dem Winkel
zwischen A und A'.

Michael Koch

unread,
Jun 4, 2004, 2:03:46 PM6/4/04
to
Hallo Thomas,

> Wenn man freie Drehungen im Raum betrachtet,
> benoetigt man zwei Original- und Bildpunkte.
> Wenn man wie der OP
> um eine Gerade durch den Ursprung des Koordinatensystems drehen will,
> benoetigt genuegt es, einen Originalpunkt A und sein Bild A' zu kennen
> (solange beide verschieden sind). -

Da stimme ich dir zu. Aber von einer Drehung "um eine Gerade
durch den Ursprung" war beim OP nicht die Rede, jedenfalls
hab ich's nicht so verstanden.

Gruss
Michael

Stefan Müller

unread,
Jun 5, 2004, 6:31:37 AM6/5/04
to

Er dreht das Koordinatensystem. Und Koordinatensysteme dreht man
meistens um ihren Ursprung (d.h. Gerade durch den Ursprung), wenn nichts
anderes angegeben.

Stefan

Michael Koch

unread,
Jun 5, 2004, 7:34:53 AM6/5/04
to
Hallo Stefan,

> Er dreht das Koordinatensystem. Und Koordinatensysteme dreht man
> meistens um ihren Ursprung (d.h. Gerade durch den Ursprung), wenn nichts anderes angegeben.

Die erste Drehung bildet den Vektor 1 auf den Vektor 2 ab.
Man könnte danach noch eine zweite Drehung mit Vektor 2 als
Drehachse anwenden. Das ändert nichts daran dass Vektor 1
auf Vektor 2 abgebildet wird, führt aber dazu dass das es
beliebig viele Lösungen gibt.
Es sei denn die Aufgabe soll mit einer Drehung um nur EINE
Achse gelöst werden.

Gruss
Michael

Daniel Schramm

unread,
Jun 6, 2004, 5:52:37 AM6/6/04
to
Thomas Mautsch wrote:


Hallo Thomas, Hallo Michael,

Bisher finde ich wiederspruechliche Angaben, ob es moeglich ist, oder nicht.

In Scripten zur Robotik finde ich Loesungsansaetze um aus der Darstellung
Drehwinkel+Drehachse eine Drehmatrix aufzustellen und auch, wie ich aus
einer Drehmatrix auf die 3 Winkel Yaw, Pitch und Roll schliessen kann.
(sofern beide Koordinatensysteme den gleichen Ursprung haben)

Wenn ich aus den 3 Winkeln auf die Matrik komme, kann ich auch die Winkel
aus der Matrix wieder berechnen.

Wenn ich aus der Achse/Winkel-Darstellung auf die Matrix schliesse und dann
die Winkel wie zuvor berechnen will, kommen leider falsche Ergebnisse
heraus.


Aus einer Arbeit der Stanford University habe ich jetzt das "Geruecht", dass
es mit nur mit 2 Vektoren eindeutig sein kann, wobei fuer 2 Vektoren auf
eine Loesung ueber das "Wahba-Problem" verwiesen wird.

Kann irgendwelche Literatur dieses "Geruecht" belegen?

Auf einen 2. Vektor kann ich (wiederwillig) zurueckgreifen, muss dann aber
belegen koennen, warum ich den 2.Vektor auch zur Lagebestimmung nutze und
nicht die auf den 2. Vektor ueberlagerten Informationen gewinnen kann.

Danke fuer die Anregungen.

Daniel Schramm

unread,
Jun 6, 2004, 6:20:41 PM6/6/04
to
Daniel Schramm wrote:

> Kann irgendwelche Literatur dieses "Geruecht" belegen?

Das Problem hat sich erledigt, ich habe einen anschaulichen Beweis gefunden,
der bestaetigt, dass die Drehmatrix nicht auf eindeutige Yaw, Pitch und
Roll Winkel zurueckgefuehrt werden kann.

Danke fuer Eure Zeit und Ideen.

Thomas Mautsch

unread,
Jun 7, 2004, 8:26:23 AM6/7/04
to
In news:<40c3...@olaf.komtel.net> schrieb Daniel Schramm:

>
> Das Problem hat sich erledigt, ich habe einen anschaulichen Beweis gefunden,
> der bestaetigt, dass die Drehmatrix nicht auf eindeutige Yaw, Pitch und
> Roll Winkel zurueckgefuehrt werden kann.

Hi Daniel!
Die Information, dass die Drehung eindeutig durch
Angabe eines Vektors und seines Bildes gegeben ist,
war natuerlich falsch,
denn man kann als Drehachse *jeden* Vektor in der Ebene benutzen,
die senkrecht zur Verbindunglinie der beiden gegebenen Vektoren liegt.

Was Du mit "dass die Drehmatrix nicht auf eindeutige Yaw, Pitch und Roll
zurueckgefuehrt werden kann" ausdruecken willst, ist mir allerdings unklar.

Gruss
Thomas

Dirk Noack

unread,
Jun 7, 2004, 11:30:10 AM6/7/04
to
Daniel Schramm wrote:
Daniel Schramm wrote:

  
Kann irgendwelche Literatur dieses "Geruecht" belegen?
    
Das Problem hat sich erledigt, ich habe einen anschaulichen Beweis gefunden,
der bestaetigt, dass die Drehmatrix nicht auf eindeutige Yaw, Pitch und
Roll Winkel zurueckgefuehrt werden kann.

Danke fuer Eure Zeit und Ideen.

Daniel

  
Hallo Daniel, Newsgroupies, etc.

Ich hänge schon mehrere Tage an einem mir scheint ähnlichen Problem. Ich habe jeweils 3 Punkte in 2 Koordinatensystemen und soll das an einer Maschine vorliegende Maschinenkoordinatensystem (MKS) über vorhandene Drehfunktionen (RPY) in ein CAD-Koordinatensystem überführen, d.h. es ist jeweils eine Ebene im MKS und eine im CAD-KS vorhanden, die nach der Koordinatentransformation identisch sein müssen. Zu gut deutsch ich soll irgendwie die 3 Drehwinkel (und die Verschiebung) ermitteln, damit die Steuerung im CAD-Koordiantensystem "fährt".

Nun hab ich schon mehrere Tage, die mathmat. Formelsammlungen "gefressen", Google gequält und sehe nun dein Posting, das Du einen anschaulichen Beweis gefunden hast, der besagt, dass es keine eindeutige Lösung gibt. Ein Link dazu (falls Du es im Netz gefunden) hast wäre nicht schlecht. Die (Rück-)Transformation mit gegebenen Drehwinkeln ist ja kalter Kaffee und findet sich in einschlägigen Formelsammlungen sowie im Netz an jeder Stelle. Zum umgekehrten Fall (Drehwinkel gesucht) schweigen allerdings die Geister. Ist es absolut nicht möglich die Drehwinkel zu ermittelnn, selbst unter bestimmten Kriterien nicht? Mit numerischen (Annäherungs-)Verfahren werd ich wohl auch bei der Auflösung der DGL's, die aus dem alten Punkt, dem neuen Punkt und der parameterbehafteten (die Winkel) Drehmatrix entstehen, auch nich viel weiterkommen.
-- 
MfG

Dirk Noack

" ... Wenn man's richtig macht, geht's gleich ... "   :-)

em@il:  d {dot} n o a ck {at} i b s {dash} a u t o m a t i o n {dot} d e
http:   w w w {dot} i b s {dash} a u t o m a t i o n {dot} d e

Thomas Mautsch

unread,
Jun 7, 2004, 1:15:37 PM6/7/04
to
In news:<ca21on$t0p$1...@anderson.hrz.tu-chemnitz.de> schrieb Dirk Noack:
><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
><html>
><head>
> <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
> <title></title>
></head>
><body text="#000000" bgcolor="#ffffff">
> Daniel Schramm wrote:<br>
><blockquote type="cite" cite="mid40...@olaf.komtel.net">
> <pre wrap="">Daniel Schramm wrote:
>
> </pre>
> <blockquote type="cite">
> <pre wrap="">Kann irgendwelche Literatur dieses "Geruecht" belegen?
> </pre>
> </blockquote>
> <pre wrap=""><!---->

> Das Problem hat sich erledigt, ich habe einen anschaulichen Beweis gefunden,
> der bestaetigt, dass die Drehmatrix nicht auf eindeutige Yaw, Pitch und
> Roll Winkel zurueckgefuehrt werden kann.
>
> </pre>
></blockquote>
> Hallo Daniel, Newsgroupies, etc.<br>
><br>
> Ich h&auml;nge schon mehrere Tage an einem mir scheint &auml;hnlichen Problem.

> Ich habe jeweils 3 Punkte in 2 Koordinatensystemen und soll das an
> einer Maschine vorliegende Maschinenkoordinatensystem (MKS) &uuml;ber

> vorhandene Drehfunktionen (RPY) in ein CAD-Koordinatensystem
> &uuml;berf&uuml;hren, d.h. es ist jeweils eine Ebene im MKS und eine im CAD-KS

> vorhanden, die nach der Koordinatentransformation identisch sein
> m&uuml;ssen. Zu gut deutsch ich soll irgendwie die 3 Drehwinkel (und die

> Verschiebung) ermitteln, damit die Steuerung im CAD-Koordiantensystem
> "f&auml;hrt".<br>
><br>

> Nun hab ich schon mehrere Tage, die mathmat. Formelsammlungen
> "gefressen", Google gequ&auml;lt und sehe nun dein Posting, das Du einen

> anschaulichen Beweis gefunden hast, der besagt, dass es keine
> eindeutige L&ouml;sung gibt.
[ Rest gestrichen, da irrelevant... ]

Hi Dirk! Du postest in HTML.
Ausserdem hast Du Daniel wahrscheinlich missverstanden,
denn sein Problem und Deines sind grundverscheiden. -
Waehrend Du jeweils die Koordinaten von DREI Punkten gegeben hast,
hatte Daniel nur jeweils EINEN Punkt gegeben, was ein grosser Unterschied ist.

Ich kann nur das tun, was ich schon einmal in diesem Thread getan habe,
naemlich "The Matrix and Quaternions FAQ" empfehlen:
http://wwwbruegge.in.tum.de/pub/DWARF/DwarfTutorial/maths3D.pdf
ab Seite 7.

Dich interessiert:

"Q37. How do I generate a rotation matrix for a selected axis and angle?"


Falls die Daten, die Dir gegeben sind, moeglicherweise etwas ungenau sind,
solltest Du in Betracht ziehen, das Zuviel an Information,
das Dir zur Verfuegung steht
(bis zu 9 "unabhaengige" Parameter statt der drei benoetigten)
zum Ausgleich von Fehlern zu benutzen. -
Frag dazu am besten http://groups.google.de
nach "procrustes rotation" oder "procrustes algorithm".

></pre>
></body>
></html>

Schalte beim naechsten Mal bitte Textmodus ein! Danke vorab.

Stefan Müller

unread,
Jun 8, 2004, 11:36:05 AM6/8/04
to
Oh tatsächlich...
das hab ich doch glatt nicht bedacht, die Erklärung mit den zwei
hintereinandergeschalteten Rotationen ist gut, aber:
Du drehst zuerst um einen Achse mit Rotationsmatrix R1, damit Du v1 auf
v2 abbildest. Danach kannst Du beliebig um v2 rotieren mit einer
Rotationsmatrix R2. v2 bleibt nach der Rotation um sich selbst natürlich
gleich.

Jetzt kann man aber eine neue Rotation R_neu mit
R_neu=R2*R1 definieren.

Da der Rotationswinkel bei R2 beliebig ist (es ist ja nur die Achse
festgelegt) gibt es beliebig viele solche R2 und somit beliebig viele
R_neu. Jedes R_neu legt aber wiederum eine Drehung um eine Achse mit
einem bestimmten Winkel fest.

Das bedeutet aber, dass eine Rotation um nur EINE Achse auch nicht
ausreicht um eine eindeutige Rotation festzulegen. Es muss also nicht
nur eine (bzgl. der Anzahl), sondern eine bestimmte Achse sein.

Oder hab ich wieder etwas übersehen?

Gruss
Stefan

Michael Koch

unread,
Jun 9, 2004, 3:30:48 AM6/9/04
to
Hallo Stefan,

> Jetzt kann man aber eine neue Rotation R_neu mit
> R_neu=R2*R1 definieren.
>
> Da der Rotationswinkel bei R2 beliebig ist (es ist ja nur die Achse
> festgelegt) gibt es beliebig viele solche R2 und somit beliebig viele
> R_neu. Jedes R_neu legt aber wiederum eine Drehung um eine Achse mit
> einem bestimmten Winkel fest.

Die Rotation R_neu entspricht aber einer hintereinander
Ausführung von zwei Drehungen.
Es wird im Allgemeinen keine Drehung um EINE Achse geben die
R_neu entspricht.

Gruss
Michael

Alois Steindl

unread,
Jun 9, 2004, 4:44:34 AM6/9/04
to
Michael Koch <astroel...@gmx.net> writes:

Da wär ich mir nicht so sicher!
Kennst du die Formel von Rodrigues?

Alois

Michael Koch

unread,
Jun 9, 2004, 4:56:25 AM6/9/04
to
Hallo Alois,

> Da wär ich mir nicht so sicher!

Ich hab nochmal darüber nachgedacht, und vielleicht hast du
Recht.



> Kennst du die Formel von Rodrigues?

Nein, wo finde ich die?

Michael

Alois Steindl

unread,
Jun 9, 2004, 7:09:02 AM6/9/04
to
Michael Koch <astroel...@gmx.net> writes:

> > Kennst du die Formel von Rodrigues?
>
> Nein, wo finde ich die?
>

zB. in "Einführung in die Mechanik und Symmetrie" von Marsden und
Ratiu.
Sie stellt eine sehr elegante Formel für die Berechnung der
Rotationsmatrix aus ihrem infinitesimalen Generator dar. Für unsere
Zwecke muss man sie natürlich noch invertieren, keine triviale
Angelegenheit.

Alois

Thomas Mautsch

unread,
Jun 9, 2004, 11:43:44 AM6/9/04
to
In news:<u77juhx...@mch2pc28.mechanik.tuwien.ac.at> schrieb Alois Steindl:

> Michael Koch <astroel...@gmx.net> writes:
>
>> > Kennst du die Formel von Rodrigues?
>>
>> Nein, wo finde ich die?
>>
> zB. in "Einführung in die Mechanik und Symmetrie" von Marsden und
> Ratiu.
> Sie stellt eine sehr elegante Formel für die Berechnung der
> Rotationsmatrix aus ihrem infinitesimalen Generator dar.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

> Für unsere
> Zwecke muss man sie natürlich noch invertieren, keine triviale
> Angelegenheit.

Das brauchen wir doch gar nicht!??
Was man braucht ist,
dass die Hintereinanderausfuehrung zweier Drehungen
um Drehachsen, die sich schneiden, wieder eine Drehung ist.

Das ist einfach einzusehen, sobald man weiss,
dass man jede Drehung als Hintereinanderausfuehrung zweier
Spiegelungen darstellen kann,
an Ebenen, die sich in der Drehachse schneiden,
wobei man eine der beiden Ebenen auch noch frei waehlen kann
(einzige Bedingung: die Drehachse muss in dieser Ebene liegen).

Hat man jetzt zwei Drehungen nacheinander auszufuehren,
o.B.d.A. beide nicht-trivial und nicht um die gleiche Drehachse,
teilt man die zuerst ausgefuehrte Drehung in zwei Spiegelungen auf,

D1 = S2 * S1

wobei die zweite Spiegelung S2 an der Ebene von *beiden* Drehachsen
aufgespannten Ebene erfolgen soll.
Die zweite Drehung teilt man auch auf, diesmal so

D2 = S3 * S2

dass die *erste* Spiegelung wieder an der Ebene durch beide Drehachsen erfolgt.
Fuehrt man beide Drehungen D1 und D2 hintereinander aus,
kuerzen sich die Spiegelungen S2 heraus,
da eine Spiegelung, zweimal hintereinander ausgefuehrt,
die identische Abbildung ergibt:

D2 * D1 = S3 * S2 * S2 * S1 = S3 * Id * S1 = S3 * S1

D2 * D1 ist damit eine Hintereinanderausfuehrung von zwei Drehungen
und muss damit eine Drehung sein und zwar um die Achse,
die sich durch Schnitt der Spiegelungsebenen S3 und S1 ergibt
und mit dem doppelten Schnittwinkel dieser beiden Ebenen als Drehwinkel.

Stefan Müller

unread,
Jun 9, 2004, 2:13:04 PM6/9/04
to
Hallo Michael,

Doch: R_neu ist eine Rotationsmatrix und jede Rotationsmatrix beschreibt
eine Drehung um EINE Achse a mit einem gewissen Winkel alpha.

Achse/Winkel lassen sich auch leicht berechnen:
Ein EW von R_neu ist 1, die anderen beiden haben die Form
cos(alpha)+i sin(alpha) und cos(alpha)-i sin(alpha).
alpha oder -alpha ist dabei der Drehwinkel und die Achse entspricht dem
EV a von R, der mit dem EW 1 korrespondiert.
Ob alpha oder -alpha der "richtige" Winkel ist hängt davon ab, ob man um
a oder -a dreht.

Stefan

Stefan Müller

unread,
Jun 9, 2004, 2:13:43 PM6/9/04
to
Hallo Michael,

Michael Koch wrote:

0 new messages