Verfasst am: 28.08.2009, 11:49
Titel: Drehwinkel und -achse aus Roll, Nick- und Gierwinkel...
Hallo liebe Gemeinde,
ich habe folgendes Problem. Mir liegen drei Winkel, die sogenannten Roll-, Nick- und Gierwinkel vor. Aus diesen drei Winkel soll ich eine Drehachse und einen Drehwinkel im Raum ermitteln.
Zur Zeit würde ich das so machen:
* Gesamtdrehmatrix bilden aus Rx*Ry*Rz
* Eigenwerte und Eigenvektoren bestimmen
* Eigenvektor zum Eigenwert = 1 ist meine Drehachse
* belibigen Vektor der Drehebene senkrecht zur Drehachse finden
* cos aus diesen beiden Vektoren ist der Drehwinkel
Gibt es in Matlab Funktionen und Routinen die diese Aufgabe erfüllen oder die mir helfen können? Oder gibt es einen besseren Weg?
% bestimme Gesamtrotationsmatrix % Achtung, Konvention. Nur Rotationen um die gleiche Achse sind % vertauschbar. Hier ist demnmach keine Rotationmatrix beliebig % poristinierbar, deswegen wird grundsätzlich zu erst um x, dann y und dann % z gedreht!
Rxyz = Rx*Ry*Rz
%Rzyx = Rz*Ry*Rx;
% Finde Eigenwert 1 - betrachte nicht die homogene Zeile [r,c] = find(round(Dxyz(1:3,1:3)) == 1);
% Finde Eigenvektor = Drehachse zum Eigenwert 1 axis = Vxyz(1:3,c)
%% Bestimme Drehwinkel % TRACE(A) is the sum of the diagonal elements of A, which is % also the sum of the eigenvalues of A. % sum(diag(A)) ist sehr viel schneller als trace(A), vorallem wenn man Dxyz % kennt!
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.