极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 275891381

MPU6050数据采集及其意义和滤波(一阶互补滤波、二阶互补滤波、卡尔曼滤波)

  [复制链接]
发表于 2014-9-11 22:13:27 | 显示全部楼层
看了楼主的程序,自己亲测是可以用而且很准,但是楼主测的是X轴的倾角,我现在想测Y轴的倾角,修改程序如下, 发现 角度不灵敏,滞后至少一秒 ,楼主能帮忙解决下么?
void getangle()
{
    accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);//读取原始6个数据
    angleAy=atan2(ay,az)*180/PI;//计算与x轴夹角 AX全部变成Ay  GY全部变成Gx
    gyroGx=-gy/131.00;//计算角速度
    Yijielvbo(angleAy,gyroGx);//一阶滤波
    Erjielvbo(angleAy,gyroGx);//二阶滤波
    Kalman_Filter(angleAy,gyroGx);   //卡尔曼滤波
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-12 12:05:02 | 显示全部楼层
本帖最后由 275891381 于 2014-9-12 12:06 编辑
慢、节奏 发表于 2014-9-11 22:13
看了楼主的程序,自己亲测是可以用而且很准,但是楼主测的是X轴的倾角,我现在想测Y轴的倾角,修改程序如下 ...


程序你改的没问题  滞后的话 不用滤波直接用 angleAy gyroGx 试试,我估计是滤波参数有关
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2014-9-12 12:08:26 | 显示全部楼层
SproutME 发表于 2014-9-4 07:15
卡尔曼的系数怎么调呢

系数调的话只能了解每个参数的意思,一点点的尝试,给调pid差不多
回复 支持 反对

使用道具 举报

发表于 2014-9-12 21:56:53 | 显示全部楼层
275891381 发表于 2014-9-12 12:05
程序你改的没问题  滞后的话 不用滤波直接用 angleAy gyroGx 试试,我估计是滤波参数有关

你的意思的去掉卡尔曼滤波, 用二阶滤波就好了? 迟点我试下   可以给你答复~
回复 支持 反对

使用道具 举报

发表于 2014-9-16 10:35:53 | 显示全部楼层
很棒的帖子,收藏!
回复 支持 反对

使用道具 举报

发表于 2014-9-19 09:56:13 | 显示全部楼层
赞一个   多谢楼主的分享  十分感谢
回复 支持 反对

使用道具 举报

发表于 2014-9-20 12:14:11 | 显示全部楼层
请帖,马克!
回复 支持 反对

使用道具 举报

发表于 2014-9-22 10:49:11 | 显示全部楼层
275891381 发表于 2014-9-12 12:05
程序你改的没问题  滞后的话 不用滤波直接用 angleAy gyroGx 试试,我估计是滤波参数有关

已经angleAy gyroGx测试,滞后情况在静态是没问题, 但是动态(比如把MPU6050放在一个抖动的小车上), angleAy的抖动太大了,+-15°都有, 楼主能有  Y轴的MPU6050程序?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-22 15:13:02 | 显示全部楼层
慢、节奏 发表于 2014-9-22 10:49
已经angleAy gyroGx测试,滞后情况在静态是没问题, 但是动态(比如把MPU6050放在一个抖动的小车上), a ...

x y 轴 都一样 放车子上都会震动 震动幅度也都很大  这个得找个办法好好滤波 ;数据采集没有问答题的话 就看看滤波的帖子  互补滤波  平滑滤波都可以
回复 支持 反对

使用道具 举报

发表于 2014-9-23 12:13:50 | 显示全部楼层
刚刚入手了一个,按照例程也读出数据了,但是不会解读,不知道什么意思,正在研究学习过程中,感谢普及!
回复 支持 反对

使用道具 举报

发表于 2014-10-7 21:18:17 | 显示全部楼层
进来看看  多谢楼主的分享 十分感谢
回复 支持 反对

使用道具 举报

发表于 2014-10-8 17:38:12 | 显示全部楼层
标记以后看
回复 支持 反对

使用道具 举报

发表于 2014-10-10 01:04:55 | 显示全部楼层
收藏,留着以后学习!
回复 支持 反对

使用道具 举报

发表于 2014-10-22 19:03:06 | 显示全部楼层
请教您,void Kalman_Filter(double angle_m,double gyro_m)函数里,angle_m,gyro_m分别是什么值,angleAx=atan2(ax,az)*180/PI;//加速度计算角度,这个angleAx是不是横滚角pitch呢?
回复 支持 反对

使用道具 举报

发表于 2014-10-24 15:13:51 | 显示全部楼层
这优势在哪里啊?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 03:40 , Processed in 0.043898 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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