智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 17551|回复: 16
打印 上一主题 下一主题

被MPU6050 DMP坑过的朋友看过来

  [复制链接]

4

主题

24

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2377
QQ
威望
1198
贡献
769
兑换币
779
注册时间
2015-8-12
在线时间
205 小时
毕业学校
成都信息工程大学
跳转到指定楼层
1#
发表于 2018-1-6 11:41:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    做十二届直立的时候用了6050,开始没有用他自带的DMP,用原始数据自己融合的,越到后面越发现在快速加减速的时候,由于加速度计受到外界干扰较大,解算出的角度会稍微偏离真实角度,几种常用的方式都测试过,均会受不同程度影响。后来用了DMP以后发现稳的变态,无论如何用力晃动,角度都没有明显偏离真实角度。我直立控制是用了串级,内环角速度500Hz,外环角度100Hz,用了DMP以后虽然角度上更准了,但明显的可以感觉到内环效果变了,单独调试内环角速度,与不开启DMP时的效果完全不同,当时也查了很多资料没能搞明白原因,之前发的一个帖子中也有提到。这个库是基于正点原子移植好的,应该有相当大一部分朋友是用了正点原子的这个库。
    今天帮学弟做这届的车,重新移植DMP的时候突然发现了一个坑,

开始我还不以为然,我觉得我已经把库初始化的一些地方改过了,后来想想还是再去看看,结果就在DMP最后一个使能函数里发现了一个隐藏的很深的深坑

注意看标出的这三个函数,第一个是设置采样率为1K,然后是加载固件,最后使能,我们先进到使能里面看

他竟然又重新设置了一遍采样率,那么反过来再看这个st.chip_cfg.dmp_sample_rate在哪里被改变过,搜索发现是在加载固件的时候



那么最后配置成功的采样率显然就是宏定义的DMP_SAMPLE_RATE  200Hz,而这个原本是用来配置DMP的输出速率的,并不是陀螺仪的采样率,然而正点原子移植的库里就是这么写了。如果移植了正点原子移植好的DMP程序且完全没有改动就更坑了,默认的只有50Hz,我这个还是自己改成了最大的200Hz。控制频率500Hz,但数据更新只有200Hz,那么PID的微分项的效果就被大大降低了,那么这个控制就是有问题的。
    不得不说写这个库的程序猿思想和我等渣渣不太一样,既然最后一步又重新配置了,那么前面又装模做样一本正经的配置又有什么意义?逗我们玩呢?再感慨一遍,最后使能函数里的这个坑实在是太深了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

2

查看全部评分

回复

使用道具 举报

9

主题

115

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3741
威望
1755
贡献
1086
兑换币
1166
注册时间
2017-3-6
在线时间
450 小时
2#
发表于 2018-1-6 12:20:27 | 只看该作者
本帖最后由 ggchasing 于 2018-1-6 12:21 编辑

从官方库里面移植过来的,看样子都比较粗糙。不过DMP也不至于稳的夸张,感觉使用起来也存在一定的加速度的影响
回复 支持 反对

使用道具 举报

4

主题

24

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2377
QQ
威望
1198
贡献
769
兑换币
779
注册时间
2015-8-12
在线时间
205 小时
毕业学校
成都信息工程大学
3#
 楼主| 发表于 2018-1-6 12:57:31 | 只看该作者
ggchasing 发表于 2018-1-6 12:20
从官方库里面移植过来的,看样子都比较粗糙。不过DMP也不至于稳的夸张,感觉使用起来也存在一定的加速度的 ...

影响也有一点,它的内部应该还是对这种情况处理了的,比起我们自己融合不做处理还是有点优势的,缺点就是速度略慢
回复 支持 反对

使用道具 举报

7

主题

135

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2813
威望
1378
贡献
859
兑换币
812
注册时间
2015-11-3
在线时间
288 小时
毕业学校
地高
4#
发表于 2018-1-6 13:16:40 | 只看该作者
MPU6050最快就是200Hz
回复 支持 反对

使用道具 举报

18

主题

538

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3571

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

QQ
威望
2352
贡献
593
兑换币
1447
注册时间
2016-8-9
在线时间
313 小时
5#
发表于 2018-1-6 15:07:47 | 只看该作者
萌小凡 发表于 2018-1-6 13:16
MPU6050最快就是200Hz

不是的。
回复 支持 反对

使用道具 举报

56

主题

4914

帖子

3

精华

顶级版主

北京科技大学智能汽车队公共主页管理员

Rank: 11Rank: 11Rank: 11Rank: 11

积分
56131

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
19568
贡献
13933
兑换币
3365
注册时间
2010-7-22
在线时间
11315 小时
6#
发表于 2018-1-6 16:50:48 | 只看该作者
这就是不亲自写底层的坏处
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
110
威望
56
贡献
36
兑换币
38
注册时间
2018-1-3
在线时间
9 小时
7#
发表于 2018-1-6 19:45:49 | 只看该作者
当时自己写的算法不行,为了将原版DMP库(MSP430的)改为TM4C的,一边对照这正点原子的来改,改了好几天一点点改,当时。。。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2783
威望
1339
贡献
866
兑换币
880
注册时间
2014-12-10
在线时间
289 小时
毕业学校
北交大
8#
发表于 2018-1-7 13:58:34 | 只看该作者

那请问多少
回复 支持 反对

使用道具 举报

8

主题

21

帖子

0

精华

高级会员

Rank: 4

积分
767
QQ
威望
454
贡献
207
兑换币
174
注册时间
2016-10-29
在线时间
53 小时
毕业学校
安徽中医药大学
9#
发表于 2018-1-10 19:26:57 | 只看该作者
卡尔曼滤波不行么
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
25
威望
13
贡献
10
兑换币
9
注册时间
2017-10-9
在线时间
1 小时
10#
发表于 2018-1-11 12:09:12 | 只看该作者
但是有点慢啊用dmp的话,周期是5ms.还不如自己解算姿态了
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-25 14:13 , Processed in 0.494882 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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