-1

我有一个具有 6 个自由度 3 个轴 x、y、z 和 3 个角度偏航、俯仰和滚动的传感器。3轴距离使用距离公式很简单,但如何计算3个角距离?这里有人可以帮我吗???

4

1 回答 1

3

偏航、俯仰和滚动表示一组欧拉角,它们指定从一个坐标系 XYZ 到另一个坐标系 X'Y'Z' 的旋转。这种变换也可以表示为围绕任意轴的单次旋转。如果我正确理解你的问题,你想知道这个单一的旋转角度是什么。

可以将一组欧拉角转换为称为四元数的四元素结构。

q4 = cos(yaw/2) cos(pitch/2) cos(roll/2) + sin(yaw/2) sin(pitch/2) sin(roll/2)

q1 = cos(yaw/2) cos(pitch/2) sin(roll/2) - sin(yaw/2) sin(pitch/2) cos(roll/2)

q2 = cos(yaw/2) sin(pitch/2) cos(roll/2) + sin(yaw/2) cos(pitch/2) sin(roll/2)

q3 = sin(yaw/2) cos(pitch/2) cos(roll/2) - cos(yaw/2) sin(pitch/2) sin(roll/2)

(来源:http ://www.resonancepub.com/quaterni.htm )

一旦你有了四元数,旋转轴和旋转角度很容易从四元数分量中计算出来。使用上述作者的符号,

q = [q4 q1 q2 q2]

q4 = cos(θ/2)

q1 = sin(theta/2)A

q2 = sin(theta/2)B

q3 = sin(theta/2)C

其中 [ABC] 是 XYZ 系统中指定旋转轴的向量,theta 是您要查找的旋转角度。

所以 theta = 2*acos(q4)

于 2009-08-10T06:25:33.523 回答