logo资料库

四元数解算姿态完全解析及资料汇总.pdf

第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
资料共19页,剩余部分请下载后查看
四元数完全解析及资料汇总 本文原帖出自匿名四轴论坛,附件里的资源请到匿名论坛下载: http://www.anobbs.com/forum.php 感谢匿名的开源分享,感谢群友的热心帮助。 说什么四元数完全解析其实都是前辈们的解析, 小弟真心是一个搬砖的, 搬得不好希望大神 们给以批评和指正,在此谢过了。因为本人是小菜鸟一枚,对,最菜的那种菜鸟 ······所以对四元 数求解姿态角这么一个在大神眼里简单的算法, 小弟我还是费了很大劲才稍微理解了那么一点点, 小弟搬砖整理时也是基于小弟的理解和智商的, 有些太基础, 有些可能错了, 大牛们发现了再骂 过我后希望能够给与指正哈。 好,废话到此为止, 开始说主体。 四元数和姿态角怎么说呢?先得给和我一样的小菜鸟们理 一理思路,小鸟我在此画了一个“思维导图” (我承认我画的丑),四元数解算姿态首先分为两 部分理解: 第一部分先理解什么是四元数, 四元数与姿态角间的关系; 第二部分要理解怎么由惯 性单元测出的加速度和角速度求出四元数,再由四元数求出欧拉角。 4. 误差积分 5. 互补滤波 3. 求出姿态 误差 四元数与姿 态间的关系 2. 重力分量 提取 四四 四四 四元数定义 四四四 什么是四元数? 1. 重力加速 度归一化 四四四四四 四四 四元数怎样解算姿态? 6. 解四元数 微分方程 7. 四元数归 一化 8. 四元数求 欧拉角 图 1 渣渣思维导图 在讲解什么是四元数时, 小弟的思维是顺着说的, 先由四元数的定义说起, 说到四元数与姿 态角间的关系。但在讲解姿态解算时,小弟的思维是逆向的,就是反推回来的, 从欧拉角一步步
反推回到惯性器件的测量数据, 这样逆向说是因为便于理解, 因为实际在工程应用时和理论推导 有很大差别。 实际应用时正确的求解顺序应该为图 1 中序号顺序,即 1->2->3- >……. 但在笔者讲解姿态求解时思路是如图 2 的 。 ①四元 数定义 ②求出 姿态角 ③求出 四元数 ④惯性 测量值 融合 图 2 逆向讲解思路 大家在看四元数时最好结合着代码一块看, 小弟看的是 匿名四轴 的代码, 感觉写的非常好也 非常清晰,粘出来大家一块观摩。红色部分是核心代码,总共分为八个步骤,和图 1 中的八个步 骤是一一对应的。 讲解介绍时也是和代码对比起来讲解的。 代码可以去匿名官网上下载, 都是开 源的,不是小弟的,所以小弟不方便加在附件中。 //四元数更新姿态 #define Kp 2.0f #define Ki 0.001f void ANO_IMU::Quaternion_CF(Vector3f gyro,Vector3f acc, float deltaT) { //加速度权重,越大则向加速度测量值收敛越快 //误差积分增益 Vector3f V_gravity, V_error, V_error_I; //1.重力加速度归一化 acc.normalize(); //2.提取四元数的等效余弦矩阵中的重力分量 Q.vector_gravity(V_gravity); //3.向量叉积得出姿态误差 V_error = acc % V_gravity; //4.对误差进行积分 V_error_I += V_error * Ki; //5.互补滤波,姿态误差补偿到角速度上,修正角速度积分漂移 Gyro += V_error * Kp + V_error_I; //6.一阶龙格库塔法更新四元数 Q.Runge_Kutta_1st(Gyro, deltaT); //7.四元数归一化 Q.normalize(); //8.四元数转欧拉角 Q.to_euler(&angle.x, &angle.y, &angle.z); } 好的,下面搬砖开始!。。。。。。。。嘿咻嘿咻!!!!
一 . 什 么 是 四 元 数 ? 关于四元数的定义摘自 秦永元的《惯性导航》 ,里面有非常好的讲解, 大家可以直接 看绪论 和第九章 就可以。下面我粘贴了部分原文,粘贴的比较多比较详细,应为本人比较笨还爱较真, 所以按本人的风格就要详尽一点,大牛们都可以自动忽略。 四元数定义、表达方式及运算方法——摘自《惯性导航》 -秦永元 P289-292
好,关于四元数定义就搬这么多,其他的大家去附件下载《惯性导航》的 pdf 自己看吧。 下面开始搬四元数与姿态解算关系的。。。。。。嘿咻嘿咻 ~~~~
二 、 四 元 数 与 姿 态 阵 间 的 关 系 从上面我们知道了四元数的定义, 可这四个数和我们要求的三个姿态角有什么关系呢?下面 是详细的推导,同样摘自《惯性导航》 -秦永元 P292-297 。 四元数与姿态阵间的关系——摘自《惯性导航》 -秦永元 P292-297
分享到:
收藏