Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

1

15.08.2018, 16:09

Basistransformation einer Rotation um 3 Achsen

Hallo Leute,

ich habe zwei Koordinatensysteme A und B, die durch die gegebene Transformationsmatrix R (beinhaltet Skalierung, Rotation und Spiegelung von A nach B) ineinander umgerechnet werden können. Nun habe ich drei Rotationswinkel Ax, Ay und Az gegeben, die jeweils Rotationen um die Achsen von A angeben. Gesucht sind die Winkel Bx, By und Bz, die die Rotation aus Sicht des Koordinatensystems B um dessen Achsen beschreiben. Frage: Wie bestimme ich diese drei Winkel mit möglichst wenig Rechenaufwand?

Die Strategie, die ich mir überlegt habe wäre, für jeden Winkel die Drehachse mit R transformieren und eine Rotatationsmatrix, die mit dem jeweiligen Winkel um die transformierte Achse dreht aufzustellen. Dann habe ich drei Rotationsmatrizen, die mulitpliziere ich miteinander und müsste die drei Winkel Bx, By und Bz dann aus dieser Matrix rausrechnen. Erscheint mir aber sehr kompliziert... Mir schwebt eher soetwas wie: "Die drei Winkel in einen Vektor schreiben, diesen Vektor mit R mulitplizieren und dann hat man die drei "B-Winkel" vor. Wie macht man das?

Schonmal danke für alle, die drüber nachdenken und versuchen zu helfen! :)
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

2

20.08.2018, 16:11

Gibt es niemanden, der sich damit auskennt? Oder sind die alle im Urlaub? 8)
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

equinox

Frischling

Beiträge: 56

Beruf: Student

  • Private Nachricht senden

3

21.08.2018, 09:43

Was ist denn das Ziel dieser Rechenübung? Für mich klingt das alles ein bisschen nach einer Implementierung einer LookAt Matrix, liege ich da richtig?

CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

4

21.08.2018, 12:15

Das ist keine Rechenübung... es geht um einen Industrieroboter, der eine Basistransformation zwischen zwei Koordinatensystemen berechnet. Positionen kann ich nun umrechnen, aber es fehlt noch die Transformation der Rotationen. Diese Rotationen habe ich als Yaw-Pitch-Roll Winkel vorliegen (hat ein bisschen gedauert das rauszukriegen, sonst hätt ichs in Post #1 schon geschrieben, die Doku vom Roboter ist schrecklich) und möchte diese auch wieder in Yaw-Pitch-Roll Winkel transformieren. Es gibt eine fertige 3x3 Transformationsmatrix zwischen den beiden Systemen, die Rotation, Spiegelung und Skalierung beinhaltet. Mit dieser Matrix möchte ich die neuen Winkel ausrechnen.

Mein bisheriger Weg, den ich in GeoGebra simuliert hab, sieht vor die drei Winkel in Matrixform zu notieren, die dann mit der obigen Matrix zu transformieren und dann die neuen Winkel aus dieser Matrix herauszurechnen. Nun stellt sich mir die Frage ob es auch einfacher geht.
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

Jonathan

Community-Fossil

  • Private Nachricht senden

5

21.08.2018, 13:56

Bestimmt geht das einfacher. Man könnte sich jetzt mal ne Stunde hinsetzen und das durchrechnen, aber sollte man das? Es hört sich erstmal nicht so an, als würdest du Probleme mit Speicher oder Laufzeit bekommen, das dreimal hin- und herrechnen sollte ziemlich unkritisch sein. Und es könnte sogar die Les- und Wartbarkeit des Codes erhöhen, wenn man eine mehrstufige Lösung hat, bei dem jedem sofort klar ist, dass es zu eigentlich funktionieren sollte. Wenn du eine kompakte Matheformel hast, ist das von außen erstmal schwarze Magie und man muss sich richtig anstrengen um den Code wirklich zu verstehen.
Lieber dumm fragen, als dumm bleiben!

CeDoMain

Alter Hase

  • »CeDoMain« ist der Autor dieses Themas

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

6

21.08.2018, 14:40

Für die Leuts, die da nachher mit arbeiten müssen ist die gesamte Transformation schwarze Magie, aber daran kann ich nix ändern... :D Dann werde ich das mal so machen.
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

Werbeanzeige