从pitch角谈欧拉角

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

看代码的时候,发现出现了两种不同的求pitch的函数的计算方式,于是开始了追溯。


一、浅谈欧拉角

1 前因

首先,这套代码由接入了第三方库。本身主要使用四元数表示旋转,而第三方库使用欧拉角进行计算(Z-X-Y外旋),这就涉及到了旋转表示方式的转换;而且不巧的是用了欧拉角这种虽然贴近人的认知但是理解上容易混淆、计算上容易出错的表示方式。

正如我特意标出来的“Z-X-Y外旋”,我的疑问就出在这儿。代码对第三方库的接入其实比较简单,按照“Z-X-Y外旋”的方式定义好四元数和欧拉角的转换关系就可以了,类似于借助旋转矩阵R=RyRxRz关于角度的展开式,利用反三角函数求欧拉角角度。问题是本体代码其实用的X-Y-Z外旋,但是直接使用了Z-X-Y外旋获取当前pitch,明显是不一致的两套转换,这有点危险。

2 欧拉角

为什么欧拉角会产生这种风险呢?
答案:绕轴方式和旋转顺序的多样性,且得到的姿态结果是不同的。

欧拉角的绕轴方式有两种:外旋–绕固定轴旋转(如自定义的世界坐标系)和内旋–绕动轴旋转(自身的本体轴)。前者坐标轴固定不变,后者随着旋转坐标轴不断变换位置。控制变量法,我们先固定旋转顺序为X-Y-Z。那么:
外旋求得的旋转矩阵:R=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值