OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
楼主: wszdxmh

分享我的MPU6050+卡尔曼+一阶互补+二阶互补滤波

    [复制链接]

25

主题

281

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2504
金钱
2504
注册时间
2015-8-17
在线时间
383 小时
 楼主| 发表于 2017-3-19 23:22:37 | 显示全部楼层
destinyy 发表于 2017-3-17 21:56
求助一下楼主,最近开始学习mpu6050,有没有不上操作系统C8T6的程序

自己拿我那个STM32F103VE那个工程改一下吧,应该不难,最近好忙,没空帮你改。
做事的原则:
1.每个问题重复三遍、研究三遍后再提问,直接得到答案的人什么都没学会。
2.做事要有始有终,感谢那些帮助自己解决问题的人,把解决的方法总结起来。
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

2

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
193
金钱
193
注册时间
2017-2-14
在线时间
21 小时
发表于 2017-3-21 15:25:21 | 显示全部楼层
wszdxmh 发表于 2017-3-19 23:22
自己拿我那个STM32F103VE那个工程改一下吧,应该不难,最近好忙,没空帮你改。

我自己也编了一个程序,不过没成功,所以想对比一下,不知道问题出在哪了
技术不行的技术宅
回复 支持 反对

使用道具 举报

KID杜宾 该用户已被删除
发表于 2017-3-28 16:45:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

25

主题

281

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2504
金钱
2504
注册时间
2015-8-17
在线时间
383 小时
 楼主| 发表于 2017-3-28 18:59:05 | 显示全部楼层
KID杜宾 发表于 2017-3-28 16:45
下载总是莫名其妙的中断,希望楼主重发一下,谢谢

STM32F103C8T6Model-UCOSIII.zip (1.65 MB, 下载次数: 374)
做事的原则:
1.每个问题重复三遍、研究三遍后再提问,直接得到答案的人什么都没学会。
2.做事要有始有终,感谢那些帮助自己解决问题的人,把解决的方法总结起来。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2017-2-13
在线时间
9 小时
发表于 2017-4-2 11:52:48 | 显示全部楼层
二阶滤波的公式怎么算的?
回复 支持 反对

使用道具 举报

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-4-5 08:47:19 | 显示全部楼层
long2016 发表于 2016-8-5 23:27
**** 作者被禁止或删除 内容自动屏蔽 ****

你好,你的意思是DMP的最大速率200HZ太慢了吗,这个速率是相对于调整姿态的更新速率吗?那一般姿态更新的速率要求多大呢?然后这个速率太慢了的话就只有自己进行滤波才能达到要求的速率吗?
回复 支持 反对

使用道具 举报

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-4-5 09:07:01 | 显示全部楼层
guoshanjing0808 发表于 2016-8-23 00:03
**** 作者被禁止或删除 内容自动屏蔽 ****

你好,就是能够通过DMP把6050的数据读出来,如果6050外加一个磁力计的话,应该怎样滤波把9轴数据融合呢
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2017-3-22
在线时间
20 小时
发表于 2017-4-8 22:34:43 | 显示全部楼层
哥,我的用匿名就是出不来波形,难道还要设置啥嘛?我用的是GY-25,望提点两句
回复 支持 反对

使用道具 举报

25

主题

281

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2504
金钱
2504
注册时间
2015-8-17
在线时间
383 小时
 楼主| 发表于 2017-4-9 09:40:29 | 显示全部楼层
五氧化二钒 发表于 2017-4-8 22:34
哥,我的用匿名就是出不来波形,难道还要设置啥嘛?我用的是GY-25,望提点两句

应该是你的通信协议不对。你看一下我的ANO-Tech.c吧。你可以选用串口打印一下数据,看一下有没有变化,然后再看一下与上位机的通信协议。
做事的原则:
1.每个问题重复三遍、研究三遍后再提问,直接得到答案的人什么都没学会。
2.做事要有始有终,感谢那些帮助自己解决问题的人,把解决的方法总结起来。
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2017-3-12
在线时间
32 小时
发表于 2017-4-12 11:04:25 | 显示全部楼层
大侠我想问下,我移植你的卡尔曼滤波程序,上位机通信协议是v2.6的,但是不管怎么弄,最终出来的波形总是mpu6050原始波形,和卡尔曼滤波前的波形几乎一样,我这是什么情况?谢谢你了!
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-4-6
在线时间
4 小时
发表于 2017-4-12 16:02:11 | 显示全部楼层
本帖最后由 qq763014046 于 2017-4-12 16:49 编辑

首先感谢楼主杰出贡献!
有个小疑问:
请问楼主,这是对原始数据处理得3轴加速度吗?里面那个49152是什么意思呢?麻烦楼主解释一下,感谢!!

if (Accel_x<32768) x = Accel_x / 16384;
else              x = 1 - (Accel_x - 49152) / 16384;

if (Accel_y<32768) y = Accel_y / 16384;
else              y = 1 - (Accel_y - 49152) / 16384;

if (Accel_z<32768) z = Accel_z / 16384;
else              z = (Accel_z - 49152) / 16384;


IMU.png
回复 支持 反对

使用道具 举报

25

主题

281

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2504
金钱
2504
注册时间
2015-8-17
在线时间
383 小时
 楼主| 发表于 2017-4-12 17:55:00 | 显示全部楼层
qq763014046 发表于 2017-4-12 16:02
首先感谢楼主杰出贡献!
有个小疑问:
请问楼主,这是对原始数据处理得3轴加速度吗?里面那个49152是什么 ...

应该是采集出来的原始数据。实在是不好意思,那个地方应该是打错了,应该是65536/2=32768才对。前面的楼有说到这个问题。但是我改了之后也感觉不出来有什么变化。。。当时能用就没有研究他了
做事的原则:
1.每个问题重复三遍、研究三遍后再提问,直接得到答案的人什么都没学会。
2.做事要有始有终,感谢那些帮助自己解决问题的人,把解决的方法总结起来。
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-4-6
在线时间
4 小时
发表于 2017-4-12 21:39:19 | 显示全部楼层
wszdxmh 发表于 2017-4-12 17:55
应该是采集出来的原始数据。实在是不好意思,那个地方应该是打错了,应该是65536/2=32768才对。前面的楼 ...

再打扰一下楼主,原始数据不应该是*ax、*ay、*az里面得数据吗?你得意思是说Accel_x,Accel_y,Accel_z也是原始数据吗?
还一个就是,应该把49152改成32768吗?希望楼主解答,感谢!

原始数据.png
回复 支持 反对

使用道具 举报

25

主题

281

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2504
金钱
2504
注册时间
2015-8-17
在线时间
383 小时
 楼主| 发表于 2017-4-12 22:09:14 | 显示全部楼层
qq763014046 发表于 2017-4-12 21:39
再打扰一下楼主,原始数据不应该是*ax、*ay、*az里面得数据吗?你得意思是说Accel_x,Accel_y,Accel_z也 ...

Accel_x这些就是原理数据啊,只是把采集到的数据暂存在这个变量里。而且这是个指针,我完全可以把我要存放原始数据的变量地址写进去啊。。。我印象中是拿到原始数据,先处理加速度,就是你之前问的那个,然后正切计算夹角,然后分角度和角速度正负,最后进行卡尔曼滤波。过了好久不记得了。。。。
做事的原则:
1.每个问题重复三遍、研究三遍后再提问,直接得到答案的人什么都没学会。
2.做事要有始有终,感谢那些帮助自己解决问题的人,把解决的方法总结起来。
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2019-4-21
在线时间
21 小时
发表于 2017-4-15 15:45:31 | 显示全部楼层
谢谢楼主 给你顶贴喽
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2019-4-21
在线时间
21 小时
发表于 2017-4-18 11:19:42 | 显示全部楼层
LZ问一下,你的板子和地面站的连接方式是什么样的USB还是串口。我用COM口地面站没有接收,下载线的USB连接不上。
回复 支持 反对

使用道具 举报

25

主题

281

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2504
金钱
2504
注册时间
2015-8-17
在线时间
383 小时
 楼主| 发表于 2017-4-19 09:42:47 | 显示全部楼层
老年痴呆 发表于 2017-4-18 11:19
LZ问一下,你的板子和地面站的连接方式是什么样的USB还是串口。我用COM口地面站没有接收,下载线的USB连接 ...

我用的是串口
做事的原则:
1.每个问题重复三遍、研究三遍后再提问,直接得到答案的人什么都没学会。
2.做事要有始有终,感谢那些帮助自己解决问题的人,把解决的方法总结起来。
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2019-4-21
在线时间
21 小时
发表于 2017-4-19 10:27:27 | 显示全部楼层

我解决了,感谢楼主耐心回答
回复 支持 反对

使用道具 举报

3

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2017-4-2
在线时间
28 小时
发表于 2017-4-23 15:57:01 | 显示全部楼层
能不能共享一下滤波算法的代码
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2017-3-12
在线时间
32 小时
发表于 2017-4-24 11:23:39 | 显示全部楼层
哥,我想问下,你的ANO_TECH.C程序里往上位机传送mpu6050的数据是short型的:
[mw_shl_code=applescript,true]void ANO_DT_Send_Senser(s16 a_x,s16 a_y,s16 a_z,s16 g_x,s16 g_y,s16 g_z)
但是最后main函数里向上位机发送的数据应该是Angle_x_temp、Angle_X_Final这些,可是这些变量定义的时候是float型的[mw_shl_code=applescript,true]ANO_DT_Send_Senser(Angle_x_temp,Angle_X_Final,(Angle_y_temp),(Angle_Y_Final),(Angle_z_temp),(Angle_Z_Final));[/mw_shl_code],我太不理解这块,可以直接将float型数据用short的格式发送吗?基础薄弱,望指点一下,万分感谢!
回复 支持 反对

使用道具 举报

25

主题

281

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2504
金钱
2504
注册时间
2015-8-17
在线时间
383 小时
 楼主| 发表于 2017-4-24 12:05:54 | 显示全部楼层
hellowmood 发表于 2017-4-24 11:23
哥,我想问下,你的ANO_TECH.C程序里往上位机传送mpu6050的数据是short型的:
[mw_shl_code=applescript,t ...

高精度可以转低精度。
做事的原则:
1.每个问题重复三遍、研究三遍后再提问,直接得到答案的人什么都没学会。
2.做事要有始有终,感谢那些帮助自己解决问题的人,把解决的方法总结起来。
回复 支持 反对

使用道具 举报

3

主题

18

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2016-7-28
在线时间
4 小时
发表于 2017-4-24 15:28:06 | 显示全部楼层
楼主,我开始学滤波,能加个qq吗?互相讨论我的641573672
回复 支持 反对

使用道具 举报

3

主题

18

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2016-7-28
在线时间
4 小时
发表于 2017-4-24 16:00:59 | 显示全部楼层
楼主,我开始学滤波,能加个qq吗?互相讨论我的641573672
回复 支持 反对

使用道具 举报

2

主题

43

帖子

0

精华

高级会员

Rank: 4

积分
694
金钱
694
注册时间
2012-6-26
在线时间
261 小时
发表于 2017-4-25 10:00:24 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2016-8-14
在线时间
17 小时
发表于 2017-5-6 00:17:07 | 显示全部楼层
好贴!学习了,楼主加油
回复 支持 反对

使用道具 举报

4

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2013-7-2
在线时间
17 小时
发表于 2017-5-26 19:33:07 | 显示全部楼层
本帖最后由 linuxcso 于 2017-5-26 19:44 编辑

看了楼主分享的代码,有几个问题请大神指导一下
1 mpu6050自带滤波,同样是降噪,和卡尔曼滤波有什么区别吗?
楼主分享的程序中,在mpu设定速率时定为采样速率的一半,这个应该如何理解呢
mpu6050.c
unsigned char MPU_Set_LPF(uint16_t lpf)
{
        unsigned char data = 0;
        if (lpf >= 188)data = 1;
        else if (lpf >= 98)data = 2;
        else if (lpf >= 42)data = 3;
        else if (lpf >= 20)data = 4;
        else if (lpf >= 10)data = 5;
        else data = 6;
        return MPU_Write_Byte(MPU_CFG_REG, data);//设置数字低通滤波器  
}
2 采样速率问题
原子哥的例程和楼主分享的程序设置加速度计的采样速率为50,手册上说加速度最高400hz,为什么不不适用最快的400hz呢?
3  噪声初始方差是如何设定的
double KalmanFilter(const double ResrcData, double ProcessNiose_Q, double MeasureNoise_R)
ProcessNiose_Q和MeasureNoise_R如何处理呢?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2012-12-11
在线时间
3 小时
发表于 2017-6-13 10:49:20 | 显示全部楼层
谢谢楼主,顶
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
195
金钱
195
注册时间
2016-4-17
在线时间
21 小时
发表于 2017-7-5 14:19:04 | 显示全部楼层
顶一下,楼主辛苦了
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2016-12-30
在线时间
24 小时
发表于 2017-7-11 20:28:39 | 显示全部楼层
我靠,绝对的好贴,收下我的膜拜。
回复 支持 反对

使用道具 举报

2

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
177
金钱
177
注册时间
2017-7-12
在线时间
46 小时
发表于 2017-7-12 12:19:01 | 显示全部楼层
顶贴....
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2017-7-13
在线时间
0 小时
发表于 2017-7-13 17:23:14 | 显示全部楼层
还有人在吗,就是楼主中的42195不知道是什么,如果是原始值,应该要变呀,不知道希望有人帮忙解答下,谢谢了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2017-7-13
在线时间
0 小时
发表于 2017-7-13 17:37:28 | 显示全部楼层
先顶下,嘻嘻
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2017-6-29
在线时间
11 小时
发表于 2017-7-14 22:48:44 | 显示全部楼层
楼主辛苦
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-7-22
在线时间
1 小时
发表于 2017-7-22 17:57:45 | 显示全部楼层
good 顶一个
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2012-12-11
在线时间
3 小时
发表于 2017-7-28 17:36:19 | 显示全部楼层
很有用的MPU6050应用
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2017-3-12
在线时间
19 小时
发表于 2017-7-30 16:58:13 | 显示全部楼层
谢谢楼主,方便学习了
回复 支持 反对

使用道具 举报

11

主题

72

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1197
金钱
1197
注册时间
2017-7-13
在线时间
126 小时
发表于 2017-7-31 14:38:57 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

15

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-12-9
在线时间
1 小时
发表于 2017-8-3 11:43:44 | 显示全部楼层
正在研究陀螺仪,谢谢楼主
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2017-1-10
在线时间
19 小时
发表于 2017-8-5 14:02:43 | 显示全部楼层
wszdxmh 发表于 2016-7-22 15:51
只见下载,不见顶贴。。。

顶顶顶,最近正在学习滤波这一块,多谢老哥的分享啊
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2017-1-10
在线时间
19 小时
发表于 2017-8-5 14:03:34 | 显示全部楼层
wszdxmh 发表于 2016-7-22 15:51
只见下载,不见顶贴。。。

顶顶顶,最近正在搞滤波这一块,多谢老哥的分享
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2017-1-10
在线时间
19 小时
发表于 2017-8-5 14:18:24 | 显示全部楼层
请问一下这个49152是什么意思啊?
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2016-12-13
在线时间
40 小时
发表于 2017-8-7 18:19:06 | 显示全部楼层
不顶不是范佩西
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2016-12-13
在线时间
40 小时
发表于 2017-8-7 18:19:29 | 显示全部楼层
善于分享的人,至少是牛人
回复 支持 反对

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2016-7-27
在线时间
8 小时
发表于 2017-9-11 17:36:47 | 显示全部楼层
正需要这个,先顶一下,后面研究了有问题再来这里讨论讨论
回复 支持 反对

使用道具 举报

3

主题

178

帖子

0

精华

高级会员

Rank: 4

积分
524
金钱
524
注册时间
2016-12-31
在线时间
195 小时
发表于 2017-9-11 17:43:23 来自手机 | 显示全部楼层
顶!!!
回复 支持 反对

使用道具 举报

4

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2017-6-15
在线时间
23 小时
发表于 2017-11-22 19:08:50 | 显示全部楼层
二话不说顶帖啊
回复 支持 反对

使用道具 举报

36

主题

227

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3096
金钱
3096
注册时间
2016-4-15
在线时间
350 小时
发表于 2017-12-29 16:15:26 | 显示全部楼层
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

3

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2017-9-19
在线时间
34 小时
发表于 2018-2-27 11:17:56 | 显示全部楼层
谢谢分享,下来学习学习!
回复 支持 反对

使用道具 举报

6

主题

315

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1669
金钱
1669
注册时间
2018-1-29
在线时间
160 小时
发表于 2018-2-27 21:21:25 | 显示全部楼层
看不懂,很高深的样子!感谢大神分享!
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2018-2-26
在线时间
22 小时
发表于 2018-3-12 21:09:51 | 显示全部楼层
MPU6050 获取速度和位移
各位大侠   请问用加速度一阶滤波是否可以得速度  二阶得位移   

但是 累计误差总是在增大  怎么处理啊  

Vn = Vn-1 + at  ,  a不会变成0  啊    那么 Vn 肯定一直在增加   有没有人用其他办法解决
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 14:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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