- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                MPU6050 姿态融合
                    MPU6050 姿态融合首先要明确,MPU6050 是一款姿态传感器,使用它就是为了得到待测物体(如四轴、平衡小车) x、y、z 轴的倾角(俯仰角 Pitch、滚转角 Roll、偏航角 Yaw) 。我们通过 I2C 读取到 MPU6050 的六个数据(三轴加速度 AD 值、三轴角速度 AD 值)经过姿态融合后就可以得到 Pitch、Roll、Yaw 角。
主要介绍三种姿态融合算法:四元数法 、一阶互补算法和卡尔曼滤波算法。
一、四元数法
关于四元数的一些概念和计算就不写上来了,我也不懂。我能告诉你的是:通过下面的算法,可以把六个数据转化成四元数(q0、q1、q2、q3),然后四元数转化成欧拉角(P、R、Y 角)。
虽然 MPU6050 自带的 DMP库可以直接输出四元数,减轻 STM32 的运算负担, 这里在此没有使用,因为我是用 STM32 的硬件 I2C 读取 MPU6050 数据的(/forum.ph ... 4page=1#pid3625735),DMP库需要对 I2C 函数进行修改,如 DMP 库中的 I2C 写:i2c_write(st.hw-addr, st.reg-pwr_mgmt_1, 1, (data[0]));有4个输入变量,而 STM32 硬件 I2C 的 I2C 写为:void MPU6050_I2C_ByteWrite(u8 slaveAddr, u8 pBuffer, u8 writeAddr),只有 3 个输入量(这之间的差异好像是由于 MPU6050 的 DMP 库是针对 MSP430?单片机写的),所以必须进行修改,但是改固件库是一件很痛苦的事,你们应该都懂。当然,如果你用模拟 I2C 的话,是容易实现的,网上的 DMP 移植几乎都是基于模拟 I2C 的。
复制代码
#includemath.h
#include stm32f10x.h
//
// 变量定义
#define Kp 100.0f? ?? ?? ?? ?? ?? ?? ?? ?// 比例增益支配率收敛到加速度计/磁强计
#define Ki 0.002f? ?? ?? ?? ?? ? // 积分增益支配率的陀螺仪偏见的衔接
#define halfT 0.001f? ?? ?? ?? ?? ? // 采样周期的一半
float q0 = 1, q1 = 0, q2 = 0, q3 = 0;? ?? ?? ? // 四元数的元素,代表估计方向
float exInt = 0, eyInt = 0, ezInt = 0;? ?? ???// 按比例缩小积分误差
float Yaw,Pitch,Roll;??//偏航角,俯仰角,翻滚角
void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az)
{
? ?? ???float norm;
? ?? ???float vx, vy, vz;
? ?? ???float ex, ey, ez;??
? ?? ???// 测量正常化
? ?? ???norm = sqrt(ax*ax + ay*ay + az*az);? ?? ?
? ?? ???ax = ax / norm;? ?? ?? ?? ?? ?? ? //单位化
? ?? ???ay = ay / norm;
? ?? ???az = az / norm;? ?? ?
? ?? ???// 估计方向的重力
? ?? ???vx = 2*(q1*q3 - q0*q2);
? ?? ???vy = 2*(q0*q1 + q2*q3);
? ?? ???vz = q0*q0 - q1*q1 - q2*q2 + q3*q3;
? ?? ???// 错误的领域和方向传感器测量参考方向之间的交叉乘积的总和
? ?? ???ex = (ay*vz - az*vy);
? ?? ???ey = (az*vx - ax*vz);
? ?? ???ez = (ax*vy - ay*vx);
? ?? ???// 积分误差比例积分增益
? ?? ???exInt = exInt + ex*Ki;
? ?? ???eyInt = eyInt + ey*Ki;
? ?? ???ezInt = ezInt + ez*Ki;
? ?? ???// 调整后的陀螺仪测量
? ?? ???gx = gx + Kp*ex + exInt;
? ?? ???gy = gy + Kp*ey + eyInt;
? ?? ???gz = gz + Kp*ez + ezInt;
? ?? ???// 整合四元数率和正常化
? 
                您可能关注的文档
- EGFR突变在非小细胞性肺癌发生和化疗反应性中的作用及其分子机制.pdf
- ELESA+GANTER德国制造ELESA电子位置指示器DD51-E.pdf
- EMS便携式茎流观测仪.pdf
- EM_MWD系统无线传输技术探讨.pdf
- EM算法_online.pdf
- EO4Urban:哨兵-1A SAR和全球城市服务哨兵-2A MSI数据.docx
- EP2AGX125DF25I3N中文资料(Altera)中文数据手册「EasyDatasheet - 矽搜」.pdf
- EP4SGX530HH35I4N中文资料(Altera)中文数据手册「EasyDatasheet - 矽搜」.pdf
- EP4SGX360NF45I3中文资料(Altera)中文数据手册「EasyDatasheet - 矽搜」.pdf
- EPG535光刻胶氧离子刻蚀工艺的研究.pdf
- 2026秋季国家管网集团西部管道公司高校毕业生招聘考试备考试题(浓缩500题)及参考答案详解.docx
- 2026秋季国家管网集团福建公司高校毕业生招聘笔试备考试题(浓缩500题)带答案详解(达标题).docx
- 2026秋季国家管网集团甘肃公司高校毕业生招聘考试备考试题(浓缩500题)及答案详解【各地真题】.docx
- 2026年演出经纪人之演出市场政策与法律法规考试题库200道含答案【夺分金卷】.docx
- 2026年试验检测师之交通工程考试题库300道有完整答案.docx
- 2026年中级注册安全工程师之安全实务化工安全考试题库300道附完整答案(有一套).docx
- 2026年国家电网招聘之通信类考试题库300道【夺冠】.docx
- 2026年国家电网招聘之人力资源类考试题库300道附完整答案【典优】.docx
- 2026年演出经纪人之演出市场政策与法律法规考试题库200道完整参考答案.docx
- 2026年试验检测师之交通工程考试题库300道【考点提分】.docx
 原创力文档
原创力文档 
                         
                                    

文档评论(0)