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

[复制链接]
130900|549
淘气panda 发表于 2014-5-8 10:15 | 显示全部楼层
向楼主致敬
znwoai123 发表于 2014-5-11 11:27 | 显示全部楼层
非常感谢楼主!
a44416434 发表于 2014-5-12 16:46 | 显示全部楼层
楼主你好,请问dmp的self_test()必须要让z轴指天或指地才能正确自检吗?可否修改dmp的某部分代码让z轴任意指向的时候都能自检成功?如果不行有什么其他的方法吗?
 楼主| zkcaptain 发表于 2014-5-12 17:42 | 显示全部楼层
a44416434 发表于 2014-5-12 16:46
楼主你好,请问dmp的self_test()必须要让z轴指天或指地才能正确自检吗?可否修改dmp的某部分代码让z轴任意 ...

自检检测的是晃动,有晃动自检就失败,因为晃动时得到的bias是错误的。代码可以修改,看你对代码的理解程度了
a44416434 发表于 2014-5-13 08:47 | 显示全部楼层
zkcaptain 发表于 2014-5-12 17:42
自检检测的是晃动,有晃动自检就失败,因为晃动时得到的bias是错误的。代码可以修改,看你对代码的理解程 ...

不知道楼主有没有发现,DMP的初始化只能平放着初始才会准确,如果倾斜一个大一点的角度来初始的话,DMP建立的初始坐标既非是水平坐标系,也不是以机体本身作为坐标系,而是在水平系和本身坐标系之间建立了一个坐标系。这是什么问题导致的呢?
mybao 发表于 2014-5-13 13:35 | 显示全部楼层
GD32F103+MPU9150 四轴飞行器第一步:9DOF姿态融合,顶
a44416434 发表于 2014-5-13 16:27 | 显示全部楼层
zkcaptain 发表于 2014-5-12 17:42
自检检测的是晃动,有晃动自检就失败,因为晃动时得到的bias是错误的。代码可以修改,看你对代码的理解程 ...

还有我想问一下DMP的初始坐标是在哪里建立的,因为我想修改它初始坐标的轴向。
mympu 发表于 2014-5-15 14:36 | 显示全部楼层
好资料,好好的研究研究下。
 楼主| zkcaptain 发表于 2014-5-16 10:30 | 显示全部楼层
a44416434 发表于 2014-5-13 16:27
还有我想问一下DMP的初始坐标是在哪里建立的,因为我想修改它初始坐标的轴向。 ...

DMP是内置的,修改不了
 楼主| zkcaptain 发表于 2014-5-16 10:45 | 显示全部楼层
a44416434 发表于 2014-5-13 08:47
不知道楼主有没有发现,DMP的初始化只能平放着初始才会准确,如果倾斜一个大一点的角度来初始的话,DMP建 ...

就是这么设计的,加速度计与水平坐标系偏差一定范围,就自检失败
doingdd 发表于 2014-5-16 11:07 | 显示全部楼层
zkcaptain 发表于 2013-12-4 09:29
这个函数,当result=0x01时,表示陀螺仪自检完毕;当result=0x02时,表示加速度计自检完毕;当result=0 ...

遇到了同样的问题 之前的都通过了 在这里显示bias has not been .......测得result值为0x04是不是意味着只有磁力计通过了自检?传感器稳定没动 z轴也朝上了 楼主能不能帮忙分析下~
 楼主| zkcaptain 发表于 2014-5-16 11:32 | 显示全部楼层
doingdd 发表于 2014-5-16 11:07
遇到了同样的问题 之前的都通过了 在这里显示bias has not been .......测得result值为0x04是不是意味着 ...

先跳过自检,看看你的加速度计和陀螺仪通信是否正常

不用dmp就没必要用那个自检函数
superdianzifans 发表于 2014-5-19 20:00 | 显示全部楼层
楼主,请问这些算法涉及哪些专业课的知识啊?
 楼主| zkcaptain 发表于 2014-5-20 09:12 | 显示全部楼层
superdianzifans 发表于 2014-5-19 20:00
楼主,请问这些算法涉及哪些专业课的知识啊?

惯性导航,自控原理,MEMS应用
a44416434 发表于 2014-5-21 10:24 | 显示全部楼层
zkcaptain 发表于 2014-5-16 10:45
就是这么设计的,加速度计与水平坐标系偏差一定范围,就自检失败

经过这几天的研究,DMP确实不能以任意空间角度来进行初始化,但是可以修改部分代码,让它可以以水平(重力与z轴重合),侧放(重力与x轴重合),竖直放(重力与y轴重合)来进行初始化。
sra098 发表于 2014-5-30 16:16 | 显示全部楼层
楼主好 : 我想问一个问题,用四元数不是说能解决奇异性的问题么,为什么将四元数转换成欧拉角后,当pitch接近90度时,roll会发生很大的变化?不知道楼主遇到同样的状况没?
 楼主| zkcaptain 发表于 2014-5-30 22:11 | 显示全部楼层
sra098 发表于 2014-5-30 16:16
楼主好 : 我想问一个问题,用四元数不是说能解决奇异性的问题么,为什么将四元数转换成欧拉角后,当pitch ...

四元数能解决奇异性的问题是指直接用四元数来表达姿态,不用欧拉角来表达,你将四元数转成欧拉角,最后不还是用欧拉角来表达的姿态?四元数本身已经包含了姿态的所有信息
骗子的片子 发表于 2014-5-31 23:55 来自手机 | 显示全部楼层
很专业,很牛X
骗子的片子 发表于 2014-5-31 23:59 来自手机 | 显示全部楼层
很威武,赞一个
sra098 发表于 2014-6-4 09:57 | 显示全部楼层
zkcaptain 发表于 2014-5-30 22:11
四元数能解决奇异性的问题是指直接用四元数来表达姿态,不用欧拉角来表达,你将四元数转成欧拉角,最后不 ...

楼主好:是这样的 我最终要用姿态角做控制,而四元数不能直观的表示姿态,因此最后将四元数转换成pitch yaw roll,就出现了pitch在90度附近 roll很快变化的问题 请问楼主这种情况有么有好的解决办法?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部