Springen naar inhoud

Roll pitch and yaw.


  • Log in om te kunnen reageren

#1

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 17 juli 2008 - 08:53

Hoe bepaal je de rotatie matrix behorend bij de roll pitch and yaw hoeken? Groeten.

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

TD

    TD


  • >5k berichten
  • 24052 berichten
  • VIP

Geplaatst op 17 juli 2008 - 09:27

Zie hier.
"Malgré moi, l'infini me tourmente." (Alfred de Musset)

#3

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 17 juli 2008 - 11:51

stel je hebt de coördinaten X=(x,y,z) je wil deze transformeren eerst wil je draaien rond de z as dus de nieuwe coördinaten worden dan Y=AX je bekomt een nieuwe x en y as. maar de coördinaten van Y liggen in het verlengde van deze nieuwe x en y as
dus we hebben Y=(x',y',z) of nog door een transformatie A door te voeren gaan we over naar het coördinatie stelsel (x',y',z) die hier genormaliseerd zijn.

Stel dat je nu een rotatie wil uitvoeren rond de nieuwe x as dus een rotatie over x' dan kan dit gemakkelijk door opnieuw een rotatie matrix B op te stellen en zodoende Z=BAX. dit omdat na AX de nieuwe coördinaatsassen gekend zijn.

Ik denk dus een manier te hebben om de rotatie matrix op te stellen indien men achtereenvolgens roteert tov nieuwe assen, klopt dit?

Bij roll pitch and yaw roteert men altijd ten opzichte van oude assen, de eerste keer is dit geen probleem, analoog aan bovenstaande kan je gemakkelijk roteren over Z je bekomt dan ook Y=AX maar je bekomt nu toch ook nieuwe coördinaten?
Als je nu wil gaan roteren tov de oude x-as hoe kan dat, dat dit gewoon kan door opnieuw te vermenigvuldigen met een matrix?

Ik begrijp dus eigenlijk niet dat men zomaar onafhankelijk van mekaar drie rotatie matrixen kan opstellen en ze dan achtereen met elkaar kan vermenigvuldigen volgens mij kan dat in geval van nieuwe assen maar waarom kan het ook bij rotatie over oude assen?

Voorbeeld ik schrijf een computer program met daarin de variabele A achtereenvolgens wil ik die met 2 vermenigvuldigen dan optellen met zichzelf en nadien delen door drie. Dit kan ik zonder probleem oplossen maar als ik deze drie stappen wil doen op het oorspronkelijke getal a dan gaat er toch wat mis na de eerste keer ben ik de waarden van a verloren hoe ga ik dan verder?

Iemand enig idee? Groeten.

#4

TD

    TD


  • >5k berichten
  • 24052 berichten
  • VIP

Geplaatst op 18 juli 2008 - 09:12

Ik denk dus een manier te hebben om de rotatie matrix op te stellen indien men achtereenvolgens roteert tov nieuwe assen, klopt dit?

Inderdaad, in dat geval kan je gewoon vermenigvuldigen (telkens langs links).

Bij roll pitch and yaw roteert men altijd ten opzichte van oude assen, de eerste keer is dit geen probleem, analoog aan bovenstaande kan je gemakkelijk roteren over Z je bekomt dan ook Y=AX maar je bekomt nu toch ook nieuwe coördinaten?

Volgens de link die ik gaf is het telkens roteren over de nieuwe assen...
Misschien gebruik jij een andere definitie van de RPY-hoeken dan zij?
"Malgré moi, l'infini me tourmente." (Alfred de Musset)

#5

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 18 juli 2008 - 09:23

Wij gebruiken de definitie dat men roteert tov de oude assen hoe stelt men de rotatie matrix op? Groeten.

#6

TD

    TD


  • >5k berichten
  • 24052 berichten
  • VIP

Geplaatst op 18 juli 2008 - 09:36

Bij rotatie om de oorspronkelijke assen moet je de nieuwe rotatiematrix niet links vermenigvuldigen, maar rechts.
"Malgré moi, l'infini me tourmente." (Alfred de Musset)

#7

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 18 juli 2008 - 10:31

dus stel dat ik wil roteren om de z as(dit A), de y as (dit B) en de x as (dit C) dan is het voldoende om al deze rotatie matrixen onafhankelijk van mekaar op te stellen en dan XABC geeft me de juiste uitkomst?
Welke logica zit daar achter één maal de eerste geroteerd ben je dan je oude assen niet verloren?

Waar vind ik zo'n voorbeeldje? Groeten.

#8

eendavid

    eendavid


  • >1k berichten
  • 3751 berichten
  • VIP

Geplaatst op 18 juli 2008 - 10:59

Stel dat je gewoon (actief) een vector roteert, 3 keer na elkaar, tov een vast assenstelsel. Dan vermenigvuldig je vanzelfsprekend links:
Y=CBAX
Het roteren van het assenstelsel in deze volgorde (dat is wat jij doet) is vanzelfsprekend de inverse operatie:
LaTeX
Hierbij zijn LaTeX etc de enkelvoudige asrotatie-matrices.

Een dergelijk verband tussen het actief roteren van vectoren, en het passief roteren (dus van het assenstelsel) is trouwens iets dat ik beschouw als één van de meest verhelderende opmerkingen die mij ooit gemaakt zijn (je kan dat veel verder drijven).

#9

TD

    TD


  • >5k berichten
  • 24052 berichten
  • VIP

Geplaatst op 18 juli 2008 - 11:02

Je vector x blijft wel helemaal rechts, dus met x oud en y nieuw: y = Rx, R de rotatiematrix.
Als R een samenstelling is van A en B waarbij je eerst de rotatie van A doet, dan heb je al:

y = Ax

De ververmenigvuldiging met B gebeurt ofwel links van A (je roteert om de nieuwe as; y = BAx), of rechts van A (je roteert om de oude as; y = ABx).

De truc is om de eerste rotatie 'ongedaan te maken', de tweede rotatie om de oorspronkelijke as te doen en dan de eerste rotatie opnieuw doen.
"Malgré moi, l'infini me tourmente." (Alfred de Musset)

#10

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 18 juli 2008 - 11:48

Een dergelijk verband tussen het actief roteren van vectoren, en het passief roteren (dus van het assenstelsel) is trouwens iets dat ik beschouw als één van de meest verhelderende opmerkingen die mij ooit gemaakt zijn (je kan dat veel verder drijven).


War wil je hier mee zeggen?

De ververmenigvuldiging met B gebeurt ofwel links van A (je roteert om de nieuwe as; y = BAx), of rechts van A (je roteert om de oude as; y = ABx).

De truc is om de eerste rotatie 'ongedaan te maken', de tweede rotatie om de oorspronkelijke as te doen en dan de eerste rotatie opnieuw doen.


Hoe ga je, je derde rotatie doorvoeren? als je die dan ongedaan maakt dan heb je die toch niet meer?

#11

TD

    TD


  • >5k berichten
  • 24052 berichten
  • VIP

Geplaatst op 18 juli 2008 - 11:52

Zelfde truc, want de laatste twee (na herstel) kan je zien als één transformatie.
"Malgré moi, l'infini me tourmente." (Alfred de Musset)

#12

eendavid

    eendavid


  • >1k berichten
  • 3751 berichten
  • VIP

Geplaatst op 18 juli 2008 - 12:16

Wat wil je hier mee zeggen?

Ik probeerde mijn enthousiasme over die truc te ventileren, in de hoop dat anderen hem ook snel kunnen toepassen. Misschien moet ik inderdaad wat minderen zagen.

#13

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 18 juli 2008 - 12:25

dus de eerste rotatie y=AX de tweede y=ABX de derde y=ABCX klopt dit?

#14

eendavid

    eendavid


  • >1k berichten
  • 3751 berichten
  • VIP

Geplaatst op 18 juli 2008 - 12:27

ja

#15

Bert F

    Bert F


  • >1k berichten
  • 2588 berichten
  • Ervaren gebruiker

Geplaatst op 18 juli 2008 - 14:06

oké ik begrijp nu hoe het moet maar zit er achter de truck ook nog enige wiskunde, maw waarom is dat zo?





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures