打印

[小应用]GD32F103+MPU9150 四轴飞行器第一步:9DOF姿态融合

[复制链接]
楼主: zkcaptain
手机看帖
扫描二维码
随时随地手机跟帖
241
zkcaptain|  楼主 | 2014-6-4 11:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
本帖最后由 zkcaptain 于 2014-6-4 11:40 编辑
sra098 发表于 2014-6-4 09:57
楼主好:是这样的 我最终要用姿态角做控制,而四元数不能直观的表示姿态,因此最后将四元数转换成pitch y ...

查一查“全姿态欧拉角”或者百度如何解决欧拉角奇异点的相关信息,我暂时没用到过这些,也不了解

使用特权

评论回复
242
sra098| | 2014-6-4 11:41 | 只看该作者
还有一个问题,请问楼主在做倾角补偿时效果怎么样,我的倾角补偿总是有问题,初步怀疑是z轴的数据有问题,请问对磁力计做了灵敏度调整后还需要做乘以那个0.3ut么 需不需要进一步x,y,z轴的校准

使用特权

评论回复
243
sra098| | 2014-6-4 11:42 | 只看该作者
zkcaptain 发表于 2014-6-4 11:32
查一查“全姿态欧拉角”或者百度如何解决欧拉角奇异点的相关信息,我暂时没用到过这些,也不了解 ...

哦哦 谢谢楼主啊

使用特权

评论回复
244
marvin_xin| | 2014-6-4 13:34 | 只看该作者
收藏

使用特权

评论回复
245
zkcaptain|  楼主 | 2014-6-4 15:54 | 只看该作者
sra098 发表于 2014-6-4 11:41
还有一个问题,请问楼主在做倾角补偿时效果怎么样,我的倾角补偿总是有问题,初步怀疑是z轴的数据有问题, ...

磁力计做完灵敏度调整需要校准,灵敏度调整跟校准没关系,0.3那个系数是转化单位用的,看你想要什么样的单位,类似于你想要速度(m/s)还是位移(m),具体看datasheet

使用特权

评论回复
246
bpp15802963098| | 2014-6-5 16:32 | 只看该作者
楼主我拿M4的去做,把代码移植过去后,串口发回来是 mpu initialization error......

使用特权

评论回复
247
zkcaptain|  楼主 | 2014-6-5 16:49 | 只看该作者
bpp15802963098 发表于 2014-6-5 16:32
楼主我拿M4的去做,把代码移植过去后,串口发回来是 mpu initialization error......
...

I2C时序问题,调一调I2C的延迟

使用特权

评论回复
248
bpp15802963098| | 2014-6-6 09:31 | 只看该作者
zkcaptain 发表于 2014-6-5 16:49
I2C时序问题,调一调I2C的延迟

调好了,谢谢回答

使用特权

评论回复
249
bpp15802963098| | 2014-6-6 09:39 | 只看该作者
再问一个问题,为什么偏航角测出来一直是259.63,无论旋转到哪个方向等稳定后都是这个值

QQ截图20140606094011.png (659 Bytes )

QQ截图20140606094011.png

使用特权

评论回复
250
zkcaptain|  楼主 | 2014-6-6 11:02 | 只看该作者
bpp15802963098 发表于 2014-6-6 09:39
再问一个问题,为什么偏航角测出来一直是259.63,无论旋转到哪个方向等稳定后都是这个值 ...

这个问题比较宽泛,从软件到硬件都有可能,你先好好找找,直接移植代码未必能用

使用特权

评论回复
251
bpp15802963098| | 2014-6-6 11:44 | 只看该作者
本帖最后由 bpp15802963098 于 2014-6-8 10:38 编辑
zkcaptain 发表于 2014-6-6 11:02
这个问题比较宽泛,从软件到硬件都有可能,你先好好找找,直接移植代码未必能用 ...

楼主,你好,硬件不应该有问题, 就是俯仰和横滚角都对着呢,就是偏航角(Yaw)由初始化好的90多度,一直增加到 259多度,然后就不变了,不知道是什么原因,还有就是首先收到的是Compass not found.,不知道是什么原因

QQ截图20140606160253.png (4.17 KB )

QQ截图20140606160253.png

使用特权

评论回复
252
baoliguo| | 2014-6-6 13:27 | 只看该作者
算法的学习,是不是要看秦永元的书呢?

使用特权

评论回复
253
bpp15802963098| | 2014-6-8 10:30 | 只看该作者
baoliguo 发表于 2014-6-6 13:27
算法的学习,是不是要看秦永元的书呢?

这个上面讲四元素讲的比较清楚

使用特权

评论回复
254
bpp15802963098| | 2014-6-8 11:16 | 只看该作者
本帖最后由 bpp15802963098 于 2014-6-8 11:18 编辑

楼主,你好,我把代码移植到f4中,只有偏航角不对,首先收到的是Compass not found,磁力计的xyz是(附件中的那个值),无论在那个方向都没变化,急需各位仁兄帮个忙,谢谢了

QQ截图20140608111629.png (3.31 KB )

QQ截图20140608111629.png

使用特权

评论回复
255
gxliu08| | 2014-6-8 14:05 | 只看该作者
学习学习,感谢分享!

使用特权

评论回复
256
zkcaptain|  楼主 | 2014-6-9 09:32 | 只看该作者
bpp15802963098 发表于 2014-6-8 11:16
楼主,你好,我把代码移植到f4中,只有偏航角不对,首先收到的是Compass not found,磁力计的xyz是(附件中 ...

读取compass的时序不对,我记得这个帖子里我好像贴过一个代码,你找找,找不到的话你把读取compass时的那个dalay慢慢往大了加,不过这样频率就慢了,最好用我后来发的那个代码,磁力计数据大概7-10ms读一次就行

使用特权

评论回复
257
bpp15802963098| | 2014-6-9 10:49 | 只看该作者
本帖最后由 bpp15802963098 于 2014-6-9 11:10 编辑
zkcaptain 发表于 2014-6-9 09:32
读取compass的时序不对,我记得这个帖子里我好像贴过一个代码,你找找,找不到的话你把读取compass时的那 ...

楼主,这可能是i2c_read()这个函数的问题,但为什么读俯仰和横滚角也是这个这个函数,他们两个是对的,楼主读取compass说的那个delay可不可以详细的说一下

在setup_compass(void)函数中读出来的data[0] == AKM_WHOAMI不成立,

aa.png (16.67 KB )

aa.png

使用特权

评论回复
258
jayelva2003| | 2014-6-10 11:18 | 只看该作者
请问下楼主,我使用你的程序,芯片是stm32f103,初始化还有DMP驱动加载以及一些基本的设置没问题,但run_self_test过不了,把自检函数屏蔽了,FIFO里也读不到数据,请问下式什么原因

使用特权

评论回复
259
zkcaptain|  楼主 | 2014-6-10 11:34 | 只看该作者
jayelva2003 发表于 2014-6-10 11:18
请问下楼主,我使用你的程序,芯片是stm32f103,初始化还有DMP驱动加载以及一些基本的设置没问题,但run_sel ...

看下自检哪没过去,单步调试一下。
还有ST的只能到72Mhz,你看下你用的我哪个程序,我有一个是GD用的跑108M的

使用特权

评论回复
260
jayelva2003| | 2014-6-10 12:30 | 只看该作者
zkcaptain 发表于 2014-6-10 11:34
看下自检哪没过去,单步调试一下。
还有ST的只能到72Mhz,你看下你用的我哪个程序,我有一个是GD用的跑10 ...

我执行到mpu_run_self_test函数里面的accel_self_test、gyro_self_test函数不成功,这两个函数执行完以后返回值不为零;我STM32相关的部分是自己写的,频率是72M,DMP驱动部分用的是你的程序。
还想问下,你能否留个QQ或者什么的联系方式,可以方便联系你,现在的项目里用到MPU9150来计算角度,时间很紧张,之前又没有用姿态传感器,所以还要多请教一下你。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则