找回密码
 注册

QQ登录

只需一步,快速开始

搜索

STM32F429 MPU6050开发空间姿态检测系统C源码

[复制链接]
coolice 发表于 2021-12-13 17:16:52 | 显示全部楼层 |阅读模式
一个基于STM32F429的姿态检测系统,也就是俗称的AHRS,被很多人用来做四轴飞行器的,不过本人对四轴飞行器不是很感兴趣,主要用来检测人体姿态和仿生控制的。采用MPU6050进行数据融合,得到空间姿态信息,从而完成手势检测,动作检测,人体姿态检测。基于MEMS的三轴陀螺仪,加速度计。目前AHRS内部采用的多传感器数据融合进行的航姿解算单元为卡尔曼滤波器。
特点:高精度360 度全方位位置姿态输出,数据融合算法快速动态响应与长时间稳定性(无漂移,无积累误差)
输出:三维全姿态数据(四元数 / 欧拉角 / 旋转矩阵/原始数据)三维加速度 / 三维角速度

完整源码: 空间姿态检测.zip (611.82 KB, 售价: 3 E币)

1.jpg
简介:         
1) 如何计算积分
对角速度积分得到角度,但是会累积误差,dt为积分时间s秒,最好放在中断运行.中断每隔
dt秒进入一次中断并进行计算,必须确保在1个中断周期内能够完成全部计算.
Example:                        
Axis.GyroY = getGyroY();                        //获取Y轴角速度,单位为度
Angle += Axis.GyroY * dt;    //离散信号的积分即为求黎曼和.
               
2) 互补滤波器
原理是取当前倾角和加速度,做差获得倾角差值并进行放大,然后与陀螺仪角速度
叠加后再积分,从而使倾角跟踪为加速度获得的角度.
2为放大倍数,可调节补偿度;0.01为系统周期10ms.
Example:                        
FilterAngle = FilterAngle + (((Gesture.Angle_FY - FilterAngle)*2 + Axis.GyroY)*0.01);
               
3) 卡尔曼滤波器
原理请百度
Example:                        
Kalman_Filter(Gesture.Angle_FY,Axis.GyroY,&FilterAngle);
                        
4) AHRS数据融合
通过四元数矩阵运算把加速度计和陀螺仪的数据进行融合计算出欧拉角.
2.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|ELEOK |网站地图

GMT+8, 2024-12-22 09:52

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表