STM32如何处理陀螺仪MPU6050送出的数据?
本帖最后由 彬彬啡礼 于 2013-2-5 13:38 编辑四轴飞行器卡在了飞行姿势调整上。。。不知怎样计算陀螺仪数据,原先还以为像安卓的API一样直接会输出角度数值。。。{:3_60:}
这是模块静止水平放置时输出的数据:
我使用的MPU6050模块:
收到的数据跳动很厉害,谷歌搜索了两天了,到现在还是不知道怎样把这些数据转换成角度、加速度和温度数值。求方法,另外说明本人不会微积分。。。
附上我的程序源码:
{:sweat:}加速度计和陀螺仪的融合算法
你可以在坛子搜索两轮平衡车。里面有讲解融合算法 quzhanguang1 发表于 2013-2-5 14:14 static/image/common/back.gif
加速度计和陀螺仪的融合算法
你可以在坛子搜索两轮平衡车。里面有讲解融合算法 ...
好吧我找找 四轴的话要用的四元数算法 这是最底层的东西安卓的API已经是底层做了融合上层的东西了 quzhanguang1 发表于 2013-2-5 14:14 static/image/common/back.gif
加速度计和陀螺仪的融合算法
你可以在坛子搜索两轮平衡车。里面有讲解融合算法 ...
找了本融合算法的PDF,够我消化几天的了。。。 把陀螺仪数据代入龙格库塔方程做积分 当然,我说的陀螺仪数据是指校正过的陀螺仪数据,不是直接使用的。 zywei_09 发表于 2013-2-5 15:24 static/image/common/back.gif
当然,我说的陀螺仪数据是指校正过的陀螺仪数据,不是直接使用的。
当然要做矫正,不过我一个高中生看到这些微积分表示压力巨大,只能复制粘贴。。。。{:sweat:} 学习 彬彬啡礼 发表于 2013-2-5 15:32 static/image/common/back.gif
当然要做矫正,不过我一个高中生看到这些微积分表示压力巨大,只能复制粘贴。。。。...
用现成的结论,不学懂也可以。MPU6050有好多输出模式,比如我做的飞控里设置的量程是正负2000°,那么看手册上说,这个模式下陀螺仪的灵敏度是16.4LSB,所以把陀螺仪输出的数据除以16.4就是角速度,单位是°/s,然后除以57.3就变成弧度制。 同理,加计你在手册上也可以查到这个灵敏度。我设置的量程是±8g,灵敏度是4096,把加计读出是数值除以4096变成单位为g,然后乘以9.81就变成m/s^2 zywei_09 发表于 2013-2-5 15:52 static/image/common/back.gif
同理,加计你在手册上也可以查到这个灵敏度。我设置的量程是±8g,灵敏度是4096,把加计读出是数值除以4096 ...
谢谢指导,我先用用你说的方法吧 彬彬啡礼 发表于 2013-2-5 15:32 static/image/common/back.gif
当然要做矫正,不过我一个高中生看到这些微积分表示压力巨大,只能复制粘贴。。。。...
我说的校正时用观测值做数据融合。。。不是初始化时候的校正。。。初始化的校正要采集好多数据然后拟合算偏移量什么的。 zywei_09 发表于 2013-2-5 15:54 static/image/common/back.gif
我说的校正时用观测值做数据融合。。。不是初始化时候的校正。。。初始化的校正要采集好多数据然后拟合算 ...
之前的确误解了你说的“校正”的含义,不过现在看了些融合算法说明,已经明白了。感谢! zywei_09 发表于 2013-2-5 15:24 static/image/common/back.gif
把陀螺仪数据代入龙格库塔方程做积分
既然这个传感器折腾起来这么麻烦,我计划把安卓手机放到飞行器上面,直接用蓝牙串口输出当前飞行器的姿势,STM32根据手机传感器的数据来保持飞行姿势怎么样? 刚测试了一下安卓手机,发现在运动时重力传感器数据也不准确,看来没捷径走。还是慢慢折腾MPU6050吧 但用安卓手机的传感器在低速低空无风的情况下还是勉强可以的,我先用安卓手机做出来,成功之后再进一步研究MPU6050 彬彬啡礼 发表于 2013-2-5 16:40 static/image/common/back.gif
但用安卓手机的传感器在低速低空无风的情况下还是勉强可以的,我先用安卓手机做出来,成功之后再进一步研究 ...
建议还是用MPU6050,毕竟手机上的传感器不是专门做这个的,而且重量上就不划算。其实MPU6050用起来挺简单的。 zywei_09 发表于 2013-2-5 20:05 static/image/common/back.gif
建议还是用MPU6050,毕竟手机上的传感器不是专门做这个的,而且重量上就不划算。其实MPU6050用起来挺简单 ...
最终当然要用MPU6050,但是寒假假期很短,我得在这短暂的时间里先把基本的雏形做出来{:lol:} 剩下算法什么的等开学了再研究,毕竟在学校不好折腾硬件 高中生就做这些了,这让我等大学生情何以堪啊! 彬彬啡礼 发表于 2013-2-5 22:45 static/image/common/back.gif
最终当然要用MPU6050,但是寒假假期很短,我得在这短暂的时间里先把基本的雏形做出来 剩下算法什 ...
恩恩,加油~高中就做这些,让大四学长情何以堪,想想我高中的时候那叫一个管得严啊,哪里敢看这些课外的东西。。。哎,应试教育。。。。 LZ我和你读到的数据一样,很奇怪为什么模块静止不动,加速度值却这么大,而且就算断电在上电,加速度值和掉电前一样,而且数据会由模块角度变化而变化。。。迷乱中。。。{:mad:} 骚黄 发表于 2013-2-7 03:15 static/image/common/back.gif
LZ我和你读到的数据一样,很奇怪为什么模块静止不动,加速度值却这么大,而且就算断电在上电,加速度值和掉 ...
你把我的代码移植到你的开发板上试试看 彬彬啡礼 发表于 2013-2-7 03:51 static/image/common/back.gif
你把我的代码移植到你的开发板上试试看
我看你发的代码了,和我参考的主程序部分一模一样,今天又搜了点资料和视频看了下,发现了个问题,所谓的角加速度,貌似并不是沿轴转动的加速度,你可以发现,哪个轴垂直向上,哪个轴的数据就最大,平放的话Z轴向上,所以是最大的。 我的数据也是跳动比较大,基本上低八位没什么价值了~~ 本人已经懂得四元数方法,会姿态更新了,现在一直卡在精度上(加速度)。而且自己写的加速度修正姿态的算法不太好,求交流 陀螺读数0和±1,多么完美啊!{:sweat:} zywei_09 发表于 2013-2-5 15:24 static/image/common/back.gif
把陀螺仪数据代入龙格库塔方程做积分
是不是理想的情况下,陀螺仪积分出来的角度就能当状态数据来使用 智涅 发表于 2013-2-21 15:54 static/image/common/back.gif
本人已经懂得四元数方法,会姿态更新了,现在一直卡在精度上(加速度)。而且自己写的加速度修正姿态的算法 ...
是参考网上的程序还是,自己研究出的。我一直整不懂四元数
MrLCL 发表于 2013-3-5 11:10 static/image/common/back.gif
是不是理想的情况下,陀螺仪积分出来的角度就能当状态数据来使用
是的, 在陀螺仪不存在误差的情况下,但实际上由于误差,并且一直在积分,最后得到的累积误差会比较大,所以需要加速度计校正。 zywei_09 发表于 2013-3-5 12:12 static/image/common/back.gif
是的, 在陀螺仪不存在误差的情况下,但实际上由于误差,并且一直在积分,最后得到的累积误差会比较大, ...
可是现在存在绕一个轴旋转的时候,其他的轴有分量啊。安装的时候不可能放到物体的中心去安装。是不是三个姿态角度,都是正负180,或者0到360 MrLCL 发表于 2013-3-6 09:41 static/image/common/back.gif
可是现在存在绕一个轴旋转的时候,其他的轴有分量啊。安装的时候不可能放到物体的中心去安装。是不是三个 ...
不清楚你表达什么意思。。。在大地坐标系下来看,机体绕一个轴旋转时在其他轴上有分量,这就需要坐标变换,把机体坐标系下的转动转化到大地坐标系下的转动。 zywei_09 发表于 2013-3-6 18:16 static/image/common/back.gif
不清楚你表达什么意思。。。在大地坐标系下来看,机体绕一个轴旋转时在其他轴上有分量,这就需要坐标变换 ...
哦,那我就明白了大概意思了
。 共同学习中。。。 楼主啊,“iic_analog.c”,此模拟非彼模拟也……应该是simulate... 越看越复杂了 正在学习MPU6050,不知道楼主的漂移问题是怎么解决的,能共享下吗? 怎么在串口上显示加速度等数据啊?楼主 线怎么接?int接口还用接吗? 彬彬啡礼 发表于 2013-2-5 14:27 static/image/common/back.gif
好吧我找找
为什么我没有找到呢,是在阿莫里面找吗? 彬彬啡礼 发表于 2013-2-5 15:32 static/image/common/back.gif
当然要做矫正,不过我一个高中生看到这些微积分表示压力巨大,只能复制粘贴。。。。...
表示看到高中生,表示压力山大。。。。。。。。 骚黄 发表于 2013-2-7 03:15 static/image/common/back.gif
LZ我和你读到的数据一样,很奇怪为什么模块静止不动,加速度值却这么大,而且就算断电在上电,加速度值和掉 ...
我们俩的数据比较类似,不知道你最后怎么处理的。。。。。。。。。。。。 mark一下
看到高中生三个字,俺也表示压力巨大。但同时也应该庆幸,高中就懂这个,楼主,地球的和平以后就要靠你了!{:lol:} 论坛里有用库的 {:biggrin:} zywei_09 发表于 2013-2-5 15:45
用现成的结论,不学懂也可以。MPU6050有好多输出模式,比如我做的飞控里设置的量程是正负2000°,那么看 ...
大神请问一下你,按照数据手册把Gyroscope读出来,除以LSB,得到的是每个轴的旋转角速度是吧?这个角速度有正负么?请问能加一下您的qq就这个问题稍微请教下么?读了很多遍没看到相关的内容,又很迷惑。求大神指导!我的QQ是474465933. 因为等级不够不能发站内,麻烦您了。 高中生都能这么强啊,汗~ {:smile:}{:sad:}{:smile:} zywei_09 发表于 2013-2-5 15:45
用现成的结论,不学懂也可以。MPU6050有好多输出模式,比如我做的飞控里设置的量程是正负2000°,那么看 ...
太好了,我也弄懂了{:lol:} 骚黄 发表于 2013-2-7 03:15
LZ我和你读到的数据一样,很奇怪为什么模块静止不动,加速度值却这么大,而且就算断电在上电,加速度值和掉 ...
很正常啊,因为有个重力加速度,可以去理解下输出的数据有什么含义先。 js200300953 发表于 2013-2-21 17:00
陀螺读数0和±1,多么完美啊!
大神,总是很低调。 我陀螺仪(MPU6050)Yaw方向如何进行卡尔曼滤波。 ( pitch,roll 可以根据重力的分量直接由加速度计计算出角度, 而yaw 不行呀) , 我在做直升飞机,只用到一个yaw。 表示之前做四轴读了您很多帖子,方便加好友吗?
看看,O(∩_∩)O谢谢 自古王道 来自2楼啊 问楼主一个问题,加速度计+陀螺仪 最后可以得到运动物体的姿态,能知道当前的速度值不?
Mark 一下
页:
[1]