You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于从旋转矩阵/欧拉角/四元数中提取不含偏航的横滚与俯仰旋转值的技术咨询

从旋转矩阵/欧拉角/四元数中提取不含偏航的横滚与俯仰旋转值的技术咨询

我现在碰到个棘手的问题:需要从旋转矩阵、欧拉角或者四元数(这些输入格式可以互相转换)里,只提取**横滚(Roll)俯仰(Pitch)**的旋转值,完全排除偏航(Yaw)的影响。

先明确下我的坐标系规则:

  • X轴指向左侧
  • Y轴指向上方
  • Z轴指向前方
  • 绕本地X轴的旋转为Pitch(俯仰)
  • 绕本地Y轴的旋转为Yaw(偏航)
  • 绕本地Z轴的旋转为Roll(横滚)

之前直接用欧拉角处理的时候,偶尔会得到错误的数值。我推测这是因为同一个旋转状态可以对应多种欧拉角组合,当绕X轴(Pitch)和Z轴(Roll)的旋转被错误地通过Y轴(Yaw)来表达时,就会导致结果出错。

这里有个演示动图能说明问题:

动图内容:当前实际运行效果 | 预期效果(核心需求是完全去除偏航轴的旋转)

另外,我的算法是实时运行的,所以如果是基于增量旋转计算的解决方案,我也是可以接受的。

备注:内容来源于stack exchange,提问作者Kaneko Qt

火山引擎 最新活动