亿加合和智能车制作

标题: 被MPU6050 DMP坑过的朋友看过来 [打印本页]

作者: c767831092    时间: 2018-1-6 11:41
标题: 被MPU6050 DMP坑过的朋友看过来
    做十二届直立的时候用了6050,开始没有用他自带的DMP,用原始数据自己融合的,越到后面越发现在快速加减速的时候,由于加速度计受到外界干扰较大,解算出的角度会稍微偏离真实角度,几种常用的方式都测试过,均会受不同程度影响。后来用了DMP以后发现稳的变态,无论如何用力晃动,角度都没有明显偏离真实角度。我直立控制是用了串级,内环角速度500Hz,外环角度100Hz,用了DMP以后虽然角度上更准了,但明显的可以感觉到内环效果变了,单独调试内环角速度,与不开启DMP时的效果完全不同,当时也查了很多资料没能搞明白原因,之前发的一个帖子中也有提到。这个库是基于正点原子移植好的,应该有相当大一部分朋友是用了正点原子的这个库。
    今天帮学弟做这届的车,重新移植DMP的时候突然发现了一个坑,
[attach]91852[/attach]
开始我还不以为然,我觉得我已经把库初始化的一些地方改过了,后来想想还是再去看看,结果就在DMP最后一个使能函数里发现了一个隐藏的很深的深坑
[attach]91853[/attach]
注意看标出的这三个函数,第一个是设置采样率为1K,然后是加载固件,最后使能,我们先进到使能里面看
[attach]91854[/attach]
他竟然又重新设置了一遍采样率,那么反过来再看这个st.chip_cfg.dmp_sample_rate在哪里被改变过,搜索发现是在加载固件的时候
[attach]91855[/attach]
[attach]91856[/attach]
[attach]91857[/attach]
那么最后配置成功的采样率显然就是宏定义的DMP_SAMPLE_RATE  200Hz,而这个原本是用来配置DMP的输出速率的,并不是陀螺仪的采样率,然而正点原子移植的库里就是这么写了。如果移植了正点原子移植好的DMP程序且完全没有改动就更坑了,默认的只有50Hz,我这个还是自己改成了最大的200Hz。控制频率500Hz,但数据更新只有200Hz,那么PID的微分项的效果就被大大降低了,那么这个控制就是有问题的。
    不得不说写这个库的程序猿思想和我等渣渣不太一样,既然最后一步又重新配置了,那么前面又装模做样一本正经的配置又有什么意义?逗我们玩呢?再感慨一遍,最后使能函数里的这个坑实在是太深了。

作者: ggchasing    时间: 2018-1-6 12:20
本帖最后由 ggchasing 于 2018-1-6 12:21 编辑

从官方库里面移植过来的,看样子都比较粗糙。不过DMP也不至于稳的夸张,感觉使用起来也存在一定的加速度的影响
作者: c767831092    时间: 2018-1-6 12:57
ggchasing 发表于 2018-1-6 12:20
从官方库里面移植过来的,看样子都比较粗糙。不过DMP也不至于稳的夸张,感觉使用起来也存在一定的加速度的 ...

影响也有一点,它的内部应该还是对这种情况处理了的,比起我们自己融合不做处理还是有点优势的,缺点就是速度略慢
作者: 萌小凡    时间: 2018-1-6 13:16
MPU6050最快就是200Hz
作者: eagle丶    时间: 2018-1-6 15:07
萌小凡 发表于 2018-1-6 13:16
MPU6050最快就是200Hz

不是的。

作者: aytc100    时间: 2018-1-6 16:50
这就是不亲自写底层的坏处
作者: 飞飞君    时间: 2018-1-6 19:45
当时自己写的算法不行,为了将原版DMP库(MSP430的)改为TM4C的,一边对照这正点原子的来改,改了好几天一点点改,当时。。。
作者: Kim327    时间: 2018-1-7 13:58
eagle丶 发表于 2018-1-6 15:07
不是的。

那请问多少

作者: zijian9665    时间: 2018-1-10 19:26
卡尔曼滤波不行么
作者: 耀龙    时间: 2018-1-11 12:09
但是有点慢啊用dmp的话,周期是5ms.还不如自己解算姿态了
作者: 安于现状    时间: 2018-2-15 14:01
我仔细翻看了一下正点原子的MPU6050,默认的50HZ我怎么没找到?
#define DMP_SAMPLE_RATE     (200)
#define GYRO_SF             (46850825LL * 200 / DMP_SAMPLE_RATE)
作者: lsf电磁    时间: 2018-2-20 11:23
虽然不懂是什么,但是还是感觉很有用
作者: lsf电磁    时间: 2018-2-20 11:23
虽然不懂是什么,但是还是感觉很有用
作者: 腾文飞刀    时间: 2018-3-6 11:53
用软件解算吧,很快的

作者: c767831092    时间: 2018-3-14 15:03
安于现状 发表于 2018-2-15 14:01
我仔细翻看了一下正点原子的MPU6050,默认的50HZ我怎么没找到?
#define DMP_SAMPLE_RATE     (200)
#def ...

不好意思这里是我说错了,但总的来说这里头还是有很多坑的

作者: LIUZHAODONG1224    时间: 2018-3-17 17:12
高速时的角度偏移可以通过调大矫正系数解决,虽然牺牲了一些静止直立的稳定性,但是动态效果没影响。角度的偏移是因为高速过弯时产生了直立方向的角速度分量,会造成跑圈时一个方向加速,一个方向减速。
作者: 卡文迪雨    时间: 2019-5-12 11:55
角度读取过慢对其他控制有影响吗




欢迎光临 亿加合和智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2