智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 17781|回复: 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

查看全部评分

回复

使用道具 举报

7

主题

21

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1227
威望
623
贡献
400
兑换币
404
注册时间
2018-7-24
在线时间
102 小时
17#
发表于 2019-5-12 11:55:53 | 只看该作者
角度读取过慢对其他控制有影响吗
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1088
威望
551
贡献
353
兑换币
350
注册时间
2016-3-23
在线时间
92 小时
毕业学校
山东科技大学
16#
发表于 2018-3-17 17:12:59 | 只看该作者
高速时的角度偏移可以通过调大矫正系数解决,虽然牺牲了一些静止直立的稳定性,但是动态效果没影响。角度的偏移是因为高速过弯时产生了直立方向的角速度分量,会造成跑圈时一个方向加速,一个方向减速。
回复 支持 反对

使用道具 举报

4

主题

24

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2377
QQ
威望
1198
贡献
769
兑换币
779
注册时间
2015-8-12
在线时间
205 小时
毕业学校
成都信息工程大学
15#
 楼主| 发表于 2018-3-14 15:03:56 | 只看该作者
安于现状 发表于 2018-2-15 14:01
我仔细翻看了一下正点原子的MPU6050,默认的50HZ我怎么没找到?
#define DMP_SAMPLE_RATE     (200)
#def ...

不好意思这里是我说错了,但总的来说这里头还是有很多坑的
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2422
威望
1188
贡献
772
兑换币
785
注册时间
2014-6-19
在线时间
231 小时
毕业学校
地球
14#
发表于 2018-3-6 11:53:22 | 只看该作者
用软件解算吧,很快的
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
威望
113
贡献
72
兑换币
74
注册时间
2017-12-1
在线时间
17 小时
13#
发表于 2018-2-20 11:23:12 | 只看该作者
虽然不懂是什么,但是还是感觉很有用
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
威望
113
贡献
72
兑换币
74
注册时间
2017-12-1
在线时间
17 小时
12#
发表于 2018-2-20 11:23:15 | 只看该作者
虽然不懂是什么,但是还是感觉很有用
回复 支持 反对

使用道具 举报

0

主题

39

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2730
威望
1375
贡献
929
兑换币
909
注册时间
2016-10-9
在线时间
213 小时
11#
发表于 2018-2-15 14:01:25 | 只看该作者
我仔细翻看了一下正点原子的MPU6050,默认的50HZ我怎么没找到?
#define DMP_SAMPLE_RATE     (200)
#define GYRO_SF             (46850825LL * 200 / DMP_SAMPLE_RATE)
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

注册会员

Rank: 2

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

使用道具 举报

8

主题

21

帖子

0

精华

高级会员

Rank: 4

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-20 15:01 , Processed in 0.047367 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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