我有一个6自由度传感器3 axiz x,y,z和3个角度偏航,俯仰和滚动。使用距离公式3轴距离很简单,但如何计算3个角距离? 谁能在这里请帮助我???
答案 0 :(得分: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(theta / 2)
q1 = sin(theta / 2)A
q2 = sin(theta / 2)B
q3 = sin(theta / 2)C
其中[A B C]是指定旋转轴的XYZ系统中的矢量,θ是您要查找的旋转角度。
所以theta = 2 * acos(q4)