为什么从四元数与旋转角度转换之后,旋转角度四元数给不同的结果在航空航天工具箱2.2 (R2008b) ?

3视图(30天)
我有一个简单的例子,将一个四元数转换为旋转角度,然后不断改善它回到四元数。复制代码如下:
q = [1 0 1 0];
[偏航、俯仰、滚]= quat2angle (q)
q2 = angle2quat(偏航、俯仰、滚)
0.7071输出(q2)[0.7071 0 0]而输入(q) [1 0 1 0]。我预计第二季度将问一样。

接受的答案

MathWorks支金宝app持团队
这是一个预期行为在航空航天工具箱2.2 (R2008b)旋转角的四元数转换的方式执行。
当调用QUAT2ANGLE, q是规范化的内部使用QUATNORMALIZE函数。输入q是改变秦(q /规范(q))。
然而,当调用使用ANGLE2QUAT将旋转角回四元数,反规范化是没有完成。因此,输出“问”是没有出现输入“q”一样,但实际上是“问”的标准化版本(秦)。
应该作为一个解决方案,一个人可以正规化的输出与输入。
q = [1 0 1 0];
[偏航、俯仰、滚]= quat2angle (q)
q2 = angle2quat(偏航、俯仰、滚)
第三季度= q2 *规范(q);
输出(q3)现在[1 0 1 0],一样的输入(q) [1 0 1 0]。

答案(1)

阿巴斯Arghavani
阿巴斯Arghavani 2015年8月15日
这个问题的原因是,你的四元数不是标准化的。每件事之前你应该规范化。
规范=√(1)^ 2 + q (2) ^ 2 + q (3) ^ 2 + q (4) ^ 2);
(1)= q(1) /规范;(2)= q(2) /规范;问(3)=问(3)/标准;(4)= q(4) /规范;
实际上,angle2quat是规范化的四元数的结果

类别

找到更多的在单位转换帮助中心文件交换

下载188bet金宝搏


释放

R2008b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!