用另一个四元数的偏航角部分校正一个四元数的偏航角部分
||
我有以下问题:来自运动捕获设备的四元数(q1)需要通过第二个被跟踪物体派生的另一个方位四元数(q2)的偏航角(并且仅偏航!)进行校正,从而使俯仰和滚动q1的偏向与以前相同,但q1偏向q2。
工作解决方案是将quat转换为矩阵,然后进行计算以提取旋转角度,然后进行航向校正。但这直接在某个轴的方向上(例如在0°至359°之后)会导致“翻转”。还尝试了其他不方便的转换。
是否有可能直接对四元数进行数学运算而无需转换为矩阵或欧拉角(即因此我可以将校正后的四元数设置为跟踪对象的四元数)?
如上所述-校正应仅包括围绕上轴的旋转(偏航)。关于数学类,我编程的可能性不多(不幸的是,Virtools的VSL脚本在这个方向上非常有限)。有人有什么建议吗?
没有找到相关结果
已邀请:
4 个回复
缔恃钨
氮顺
,并且偏航角定义为围绕Z轴(本文中的Euler 123或213)。 请注意,在这些帧中,以四元数
表示围绕Z轴旋转
。 将四元数分解为欧拉角,我们的偏航为:
从中我们可以得出
将四元数角度减半的简单方法是将其添加到四元数恒等式并进行规范化:
要回答您的原始问题-我们想从
开始偏航,并以replace7ѭ来代替。我们可以这样做,如下所示:
梦砍废么
泉秘胁
当然,您可能想检查一种特殊情况,即存在一个正好(或接近)180度的旋转,因为当您尝试对很小的矢量进行归一化时,这会使数值在数值上不稳定。