四元数解算姿态完全解析及汇总_第1页
四元数解算姿态完全解析及汇总_第2页
四元数解算姿态完全解析及汇总_第3页
免费预览已结束,剩余1页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、从上面我们知道了四的定义,可这四个数和我们要求的三个姿态角有什么关系呢?下面是详细的推导,同样摘自惯性导航-秦P292-297。四与姿态阵间的关系摘自惯性导航-秦P292-297二、四与姿态阵间的关系呃,粘了这么多其实就是为了想知道推导过程小伙伴好理解,真正有用的就是(9.2.34)这个公式。这个公式把四欧拉角。就求解除了姿态!转换成了方向余弦矩阵中的几个元素,再用这几个元素转换为先从四q0q3 转成方向余弦矩阵:x𝑏𝑞2+𝑞2 𝑞2 𝑞22(𝑞1𝑞2 𝑞0w

2、902;3)2(𝑞1𝑞3 + 𝑞0𝑞2)𝑥0123𝑦𝑏 = 2(𝑞1𝑞2 + 𝑞0𝑞3)𝑛𝑞2𝑞2 + 𝑞2 𝑞22(𝑞2𝑞3 𝑞0𝑞1) 𝑦𝑛0123𝑧𝑏𝑧𝑛𝑞2&#

3、119902;2 𝑞2 + 𝑞22(𝑞1𝑞3 𝑞0𝑞2)2(𝑞2𝑞3 + 𝑞0𝑞1)0123再从方向余弦矩阵转换为欧拉角:𝜃 = sin1( 𝑇32) 俯仰角𝑝𝑖𝑡𝑐𝜃 = tan1 ( 𝑇31 ) 横滚角𝑟𝑜𝑙𝑙𝑇33ҵ

4、79; = tan1 ( 𝑇12 ) 航向角𝑦𝑎𝑤𝑇22好的,公式原理都讲清楚了,下面来看一下的代码:对比余弦矩阵转换为欧拉角的公式很容易理解了吧,注意一下,红色是原版的代码,和公式还是有出入的,细心观察一下吧。被注释了的黑色代码是我根据上面的公式写的。但黑色的求解出来的欧拉角反映出来的姿态是不对的,具体表现为俯仰(pitch)和横滚(roll)是相反的,为啥根据公式写的是不对的?群里的小伙伴给与了我热心的解答。这个错误主要是由于方向余弦矩阵的旋转顺序不一样,也就是公式(9.2.39)不一样,这是由于旋转的先后顺序

5、不同引起的,具体大家参考惯性导航绪论来看就能明白,因为这一点小弟还有点,就点到这为止。以上就是四求解欧拉角的方法。通过公式可以看到,要求欧拉角需要求得四的方向余弦矩阵;要求得四下来详细介绍。方向余弦矩阵,需要求得四q0q3,那么如何求得 q0q3?接/四转欧拉角,这里四是q1q4 和公式里 q0q3 相对应。void Quaternion:to_euler(float *roll, float *pitch, float *yaw)if (roll) *roll = degrees(atan2f(2.0f*(q1*q2 + q3*q4),1 - 2.0f*(q2*q2 + q3*q3);/*roll = degrees(atan2f(-2.0f*(q2*q4 - q1*q3),1 - 2.0f*(q2*q2 + q3*q3);if (pitch) / 使用 safe_asin()来处理 pitch 接近 90/-90 时的奇点*pitch = degrees(safe_asin(2.0f*(q1*q3 - q2*q4);/*pitch = degrees(safe_asin(2.0f*(q3*q4 + q1*q2);if (yaw) *yaw = degrees(atan2f(2.0f*(q2*q3 - q1*q4), 2.0f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论