Converting differences of Euler Angles
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi, I have a series of data points collected with the position (X, Y, Z) and orientation (RotZ, RotY, RotX). Just as I will be using the 3d distance formula to look at overall position differences between points, I'm looking to describe the overall orientation differences. How do I convert my Euler angle representation of orientation differences into overall rotational differences. (My coordinate axes are arbitrary, so I would prefer not to describe orientation changes as rotation about those axes.) Any help or suggestions for useful functions would be appreciated. Thanks in advance! - MG
0 Kommentare
Antworten (1)
Matt J
am 15 Mär. 2013
Bearbeitet: Matt J
am 15 Mär. 2013
You could convert your Euler angles to a rotation matrix R and then find the overall axis about which R rotates. This is given by the eigenvector of R with eigenvalue 1, e.g.,
>> R=Rz(45)*Rx(30)*Rz(20) %A rotation matrix based on z-x-z Euler angles
R =
0.4550 -0.8173 0.3536
0.8739 0.3336 -0.3536
0.1710 0.4698 0.8660
>> [V,D]=eig(R);
>> d=diag(D); [~,idx]=min(abs(d-1)); rotaxis = V(:,idx)
rotaxis =
0.4357
0.0966
0.8949
Siehe auch
Kategorien
Mehr zu Interpolation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!