Matroids Matheplanet Forum Index
Moderiert von Fabi Dune ligning
Lineare Algebra » Matrizenrechnung » Ermittlung einer Rotationsmatrix mittels eines Vektors und Winkeln
Druckversion
Druckversion
Antworten
Antworten
Autor
Beruf Ermittlung einer Rotationsmatrix mittels eines Vektors und Winkeln
Uebe
Neu Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 03.08.2020
Mitteilungen: 2
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2020-08-04


Hallo Zusammen,

Ich stecke gerade Beruflich in einem Projekt , in dem es darum geht die Position eines Fahrzeugs zu bestimmen.
Ich bin leider kein Mathematiker und komme zu keiner wirklichen Erkenntnis.

Das Fahrzeug besitzt ein Lokales Koordinaten-System nach DIN70000.
Darin existiert eine Vorwärts-Kinematik aus verschiedensten Gelenken.

Nun geht es darum das erste Gelenk richtig zu rotieren und zu positionieren.

Auf dem Fahrzeug sitzen quer zur Fahrtrichtung 2-Positionssensoren.

Diese geben die Position in Weltkoordinaten an. Weiterhin besitzt das Fahrzeug einen Neigungssensor der den Winkel in Y (Pitch) und X( Roll) misst.

Also gegeben:
( Pos1:[x0,y0,z0] , Pos2:[x1,y1,z1] , Pitch:p , Roll:r )

Ich bin zuerst davon ausgegangen man könnte den tangens von dx /dy nehmen . Das funktioniert aber nur wenn das Fahrzeug auf einer Geraden Ebene steht.

Normalerweise bilde ich meine Rotationsmatrizen folgendermaßen:
sin_y = sinf(yaw);
cos_y = cosf(yaw);
sin_p = sinf(pitch);
cos_p = cosf(pitch);
sin_r = sinf(roll);
cos_r = cosf(roll);
 
m11 = cos_y * cos_p;
m12 = (cos_y * sin_p * sin_r) - (sin_y * cos_r);
m13 = (cos_y * sin_p * cos_r) + (sin_y * sin_r);
 
m21 = sin_y * cos_p;
m22 = (sin_y * sin_p * sin_r) + (cos_y * cos_r);
m23 = (sin_y * sin_p * cos_r) - (cos_y * sin_r);
 
m31 = -sin_p;
m32 = cos_p * sin_r;
m33 = cos_p * cos_r;
 

Mein aktuelle Stand:
VGnns.x = Pos[0].World_x - Pos[1].World_x;
VGnns.y = Pos[0].World_y - Pos[1].World_y;
VGnns.z = Pos[0].World_z - Pos[1].World_z;
 
Vector3_normalize(&VGnns,&VGnns);
 
cos_r = cosf(vehicle_roll)
sin_r = sinf(vehicle_roll)
 
cos_p = cosf(vehicle_pitch)
sin_p = sinf(vehicle_pitch)
 
m11 = ???
m12 = VGnns.x
m13 = ???
 
m21 = ???
m22 = VGnns.y
m23 = ???
 
m31 = -sin_p
m32 = sin_r * cos_p 
m33 = cos_p * cos_r   
 


Aktuell weiss ich nicht wie ich auf das Ergebnis von m11,m13,m21 und m23 komme.

In allen Beispielen die ich dazu gefunden habe wird immer ein zweiter Vektor benötigt. Leider weiss ich auch nicht wie ich diesen bilden könnten.

Ich hoffe ihr könnt mir weiterhelfen.




 



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Uebe
Neu Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 03.08.2020
Mitteilungen: 2
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, vom Themenstarter, eingetragen 2020-08-04


Zur Hilfe nochmal ein paar Zahlen

Hier der Input:

Vektor VGnns nach der Normierung:

VGnns.x = 0.595062
VGnns.y = 0.677053
VGnns.z = 0.751123

cos_r =  0.89187
sin_r = -0.452292

cos_p =  0.957375
sin_p = -0.288849


Das erwartete Ergebnis:

M11 = 0.80311615965521999
M12 = 0.59506231747820471
M13 = 0.030087745314606423

M21 = -0.52112464975812001
M22 =  0.6770530517906278
M23 =  0.51964243906312291

M31 =  0.28884863426217577
M32 = -0.43301270579333395
M33 =  0.85385388861702249






Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Uebe wird per Mail über neue Antworten informiert.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2020 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]