OpenEdv-开源电子网

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

关于mpu9250 Yaw飘逸问题和归0

[复制链接]

3

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-11-1
在线时间
12 小时
发表于 2019-11-29 09:52:40 | 显示全部楼层 |阅读模式
在M4上调试近一个月的9250,分享下成果与存在的问题。
最早是想一口吃个胖子,先从网上机械的找一些结贴文章,弄下他们分享的代码进行移植,过后发现他们的代码都是从官方库演变下来,在我的设备上总是存在两个问题:
1、Yaw上电后归0
2、Yaw静止时很稳定。其实官方库RPY三个角度都很稳定,但是一旦转动设备,Yaw开始出现偏差:实测转动恢复原位置Yaw就变了很多。
开始怀疑是校准问题,使用了一些上位机软件进行磁力计校准补偿,并纠结了自检很长时间,因为我的9250的三个自检全不过。。。
磁力计校准也没有纠结问题,最明显一点是Yaw每次上电会归0。
按我搜集到的资料理解欧拉角,Yaw是偏航角,怎么说Yaw都应该是个南北磁场角度绝对值,每次上电归0就说不通了吧。
所以预期想把Yaw做到Roll和Pitch一样,板子倾斜上电时能不归0

中期自己找到原始官方库进行重新移植,结果一样。那我就开始怀疑官方库有没有融合磁力计了,怀疑的还是两个原因:
Yaw上电归0,运动时Yaw出现偏差。也许是对官方库缺少了什么配置,但我实在找不出了。。。为此搁置了一段时间

之后换了思路,通过git翻出了不少开源代码,最终筛选了一个,他实现是拿原始数据自行解算,工程下包含了不同的解算方法,我使用了其中的EKF
发现上面问题算是有突破。但是解算的角度不太稳定,静止时数值会浮动。
我现在的解决方法是官方库和git库一起使用,由于git库支持了DMP fifo读取,所以两个库可以硬生生何在一起,取了官方库Roll和Pitch,取git库的Yaw,
现在Yaw在0-360之间变动,测试转动时暂时没有偏差。只要设备位置不动 每次上电Yaw值不变化。

最后附上两个库:
git链接不知能不能放出,后续贴过来吧





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2020-2-3
在线时间
14 小时
发表于 2020-11-10 19:37:30 | 显示全部楼层
搞了2个周,终于攻破官方库,使用硬件IIC,连续测试几个小时,没出任何问题。主要功能:真9轴融合输出,自动校准磁力计,yaw不飘了,随你怎么转,最后还是这个角度,禁止条件yaw有正负波动,但都保持在1度以内,主要因为磁力计在飘。有磁场干扰自动屏蔽磁力计,5秒后自动检测是否重新启用9轴
回复 支持 2 反对 0

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-11-1
在线时间
12 小时
 楼主| 发表于 2019-12-16 10:24:18 | 显示全部楼层
最近又看了下官方库资料,发现还是可以融合磁力计的,只是每次要校准。我使用了下面办法关掉校准。
初始化时:
inv_disable_magnetic_disturbance();

磁力计数据送入mpl:
        compass[0] = s16Mag2[0] * 65536;
        compass[1] = s16Mag2[1] * 65536;
        compass[2] = s16Mag2[2] * 65536;
        inv_build_compass(compass, INV_CALIBRATED|3, ulTimeStamp);
回复 支持 1 反对 0

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-11-1
在线时间
12 小时
 楼主| 发表于 2019-11-29 09:59:39 | 显示全部楼层
官方库有点大

stm32f4_mpu9250-master.zip

7.45 MB, 下载次数: 749

git

回复 支持 反对

使用道具 举报

0

主题

65

帖子

0

精华

高级会员

Rank: 4

积分
523
金钱
523
注册时间
2017-12-21
在线时间
76 小时
发表于 2019-12-18 10:33:28 | 显示全部楼层
我也是Yaw总是0,很烦
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-11-1
在线时间
12 小时
 楼主| 发表于 2020-1-4 16:10:23 | 显示全部楼层
俺已经搞定,至于校准就是最大最小值和/2。校准完成判断使用_test = atan2(_mag[0],_mag[1])/(2*acos(-1))*360; --公式,计算采集点和x轴角度,铺满360°就算结束。mpl合入磁力计方法见----三楼----
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-11-1
在线时间
12 小时
 楼主| 发表于 2020-1-4 16:11:08 | 显示全部楼层
qq215379484 发表于 2019-12-18 10:33
我也是Yaw总是0,很烦

见三楼
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2019-12-10
在线时间
24 小时
发表于 2020-3-13 10:03:59 | 显示全部楼层
楼主,校正后的源码可以给下的吗,谢谢
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2016-4-26
在线时间
16 小时
发表于 2020-3-17 21:54:08 | 显示全部楼层
hy510235506 发表于 2019-12-16 10:24
最近又看了下官方库资料,发现还是可以融合磁力计的,只是每次要校准。我使用了下面办法关掉校准。
初始化 ...

你好,请问关闭磁力计的校准,就可以得到正确的航向角了吗?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2020-5-9
在线时间
0 小时
发表于 2020-5-9 18:31:01 | 显示全部楼层
hy510235506 发表于 2020-1-4 16:10
俺已经搞定,至于校准就是最大最小值和/2。校准完成判断使用_test = atan2(_mag[0],_mag[1])/(2*acos(-1))* ...

我们正需要。方便给个联系方式么?谢谢!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2020-5-9
在线时间
0 小时
发表于 2020-5-9 18:51:57 | 显示全部楼层

git看不到啊~
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2020-7-21
在线时间
17 小时
发表于 2020-10-9 20:56:59 | 显示全部楼层
qq215379484 发表于 2019-12-18 10:33
我也是Yaw总是0,很烦

问题解决了吗
回复 支持 反对

使用道具 举报

0

主题

65

帖子

0

精华

高级会员

Rank: 4

积分
523
金钱
523
注册时间
2017-12-21
在线时间
76 小时
发表于 2020-10-12 14:57:03 | 显示全部楼层

不深究了,直接买个串口模块轻轻松松搞定.虽然贵些但省下很多时间.
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2020-3-10
在线时间
2 小时
发表于 2020-12-30 17:20:36 | 显示全部楼层
ZHAOJIANGZ 发表于 2020-11-10 19:37
搞了2个周,终于攻破官方库,使用硬件IIC,连续测试几个小时,没出任何问题。主要功能:真9轴融合输出,自 ...

你好,可以发一下你的9250代码吗,我用的mpl库yaw角根本不准
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2021-4-25
在线时间
3 小时
发表于 2021-11-27 13:40:19 | 显示全部楼层
能看看代码吗
回复 支持 反对

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2020-7-20
在线时间
14 小时
发表于 2023-6-21 10:47:34 | 显示全部楼层
ZHAOJIANGZ 发表于 2020-11-10 19:37
搞了2个周,终于攻破官方库,使用硬件IIC,连续测试几个小时,没出任何问题。主要功能:真9轴融合输出,自 ...

怎么解决的,我这边卡了好久了
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2023-8-7
在线时间
2 小时
发表于 2023-8-7 14:16:39 | 显示全部楼层
yaw角上电归零没毛病。yaw角不能当指南针用,它没有记忆力。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2021-12-12
在线时间
4 小时
发表于 2023-9-27 22:30:54 | 显示全部楼层
ZHAOJIANGZ 发表于 2020-11-10 19:37
搞了2个周,终于攻破官方库,使用硬件IIC,连续测试几个小时,没出任何问题。主要功能:真9轴融合输出,自 ...

你好可以分享一下代码吗,我的也是yaw漂移
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2024-6-27
在线时间
0 小时
发表于 2024-6-27 15:53:27 | 显示全部楼层
ZHAOJIANGZ 发表于 2020-11-10 19:37
搞了2个周,终于攻破官方库,使用硬件IIC,连续测试几个小时,没出任何问题。主要功能:真9轴融合输出,自 ...

大神,我也遇到了楼主的问题,用MPL库求出来的yaw轴角度上电后都是零度,而且运行的时候一下子就校准完成了,实测运动的时候yaw轴角度不准,有时候会出现漂移的问题求一份代码学习一下
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2021-11-10
在线时间
5 小时
发表于 2024-9-18 13:08:17 | 显示全部楼层
ZHAOJIANGZ 发表于 2020-11-10 19:37
搞了2个周,终于攻破官方库,使用硬件IIC,连续测试几个小时,没出任何问题。主要功能:真9轴融合输出,自 ...

大佬 能看看你的代码吗 现在用mpl库发现就是yaw角不准 其他都是准的
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 11:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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