搜索
bottom↓
回复: 16

请教一个纯陀螺仪求姿态四元数问题。。。。。。

[复制链接]

出0入0汤圆

发表于 2014-6-11 19:02:54 | 显示全部楼层 |阅读模式
我试过了 毕卡解法,还有 三子样的等效旋转矢量 方法
来对姿态四元数进行积分,在低动态的情况下效果还可以。
但在高动态下,特别是做圆锥运动时,发现积分偏差好大,运动后放回原来的位置欧拉角的偏差有时候有几十度,
整个过程没有用其他传感器,就用MPU6050的陀螺仪,采样率设置为1kHz,三子样方法中的三个样本采集间隔1ms
整个姿态更新过程为3ms
陀螺仪静态漂移很小,基本上一分钟才漂移几度
请问各位,有什么好的建议呢?

出0入0汤圆

发表于 2014-6-11 20:02:48 | 显示全部楼层
我的驱动程序刚刚弄好,最近工作忙,有时间交流一下,呵呵

出0入0汤圆

 楼主| 发表于 2014-6-14 19:57:26 | 显示全部楼层
有人研究过吗???

出0入0汤圆

发表于 2014-6-15 15:05:47 | 显示全部楼层
靜態一分鐘幾度,那動態時呢?~~~

出0入0汤圆

 楼主| 发表于 2014-6-15 15:23:30 | 显示全部楼层
g921002 发表于 2014-6-15 15:05
靜態一分鐘幾度,那動態時呢?~~~

静态是只飞行器放着不动。
运动时,大概十几二十度以上吧,一般十几秒就能飘十几度。。。
当然是在晃动很剧烈的情况下。
电机没有工作,单纯的用手抓着飞行器摇动。。。
这么大的漂移正常吗?

出0入0汤圆

发表于 2014-6-15 15:28:26 | 显示全部楼层
我来给段MATLAB代码吧
  1.     sx = t*X_GYRO(i);
  2.     sy = t*Y_GYRO(i);
  3.     sz = t*Z_GYRO(i);
  4.     s = 0.25*(sx^2+sy^2+sz^2);
  5.    
  6.     ac = 1-0.5*s+s^2/24;
  7.     as = 0.5*(1 - s/6 + s^2/120);
  8.    
  9.     A(1,1) =  ac;
  10.     A(1,2) = -as*sx;
  11.     A(1,3) = -as*sy;
  12.     A(1,4) = -as*sz;
  13.    
  14.     A(2,1) =  as*sx;
  15.     A(2,2) =  ac;
  16.     A(2,3) = -as*sz;
  17.     A(2,4) =  as*sy;
  18.    
  19.     A(3,1) =  as*sy;
  20.     A(3,2) =  as*sz;
  21.     A(3,3) =  ac;
  22.     A(3,4) = -as*sx;
  23.    
  24.     A(4,1) =  as*sz;
  25.     A(4,2) =  as*sy;
  26.     A(4,3) = -as*sx;
  27.     A(4,4) =  ac;
  28.    
  29.     %time updata
  30.     X = A*X;
复制代码

X是四元数。

出0入0汤圆

 楼主| 发表于 2014-6-15 15:47:41 | 显示全部楼层
笑笑我笑了 发表于 2014-6-15 15:28
我来给段MATLAB代码吧

X是四元数。

这是一个四阶近似的毕卡解法吧。。。
我直接用三角函数运算,效果好像也差不多。

出0入0汤圆

发表于 2014-6-15 15:58:38 | 显示全部楼层
mruio 发表于 2014-6-15 15:23
静态是只飞行器放着不动。
运动时,大概十几二十度以上吧,一般十几秒就能飘十几度。。。
当然是在晃动很 ...

正常,不過這樣的表現在MEMS陀螺算不錯囉。

出0入0汤圆

发表于 2014-6-15 16:30:16 | 显示全部楼层
mruio 发表于 2014-6-15 15:47
这是一个四阶近似的毕卡解法吧。。。
我直接用三角函数运算,效果好像也差不多。 ...

对,和直接用三角函数差不多。我觉得改进空间在旋转角的获取上。毕竟直接角速度乘时间太简单了吧。

出0入0汤圆

 楼主| 发表于 2014-6-15 17:31:30 | 显示全部楼层
笑笑我笑了 发表于 2014-6-15 16:30
对,和直接用三角函数差不多。我觉得改进空间在旋转角的获取上。毕竟直接角速度乘时间太简单了吧。 ...

我用三子样的方法,想当于每次使用三个陀螺仪的数据,进行对角速度进行抛物线拟合,出来的效果也就好一点点而已。
估计算法漂移不是主要原因。
提高姿态更新周期应该可以好一点,但我用MPU6050在开低通滤波的情况下,频率只能是1Khz不能再快了。
或许可以试试在飞控板上在加低通滤波,陀螺仪采样率达到8kHz
不过,可能最主要原因还是陀螺仪本身的问题。


同时,想问一下,跟加速度计与电子罗盘数据融合用什么方法比较好呢?
电子罗盘好像在电机高转速的时候,受影响很大啊。。。

出0入0汤圆

发表于 2014-6-17 15:55:44 | 显示全部楼层
mruio 发表于 2014-6-15 17:31
我用三子样的方法,想当于每次使用三个陀螺仪的数据,进行对角速度进行抛物线拟合,出来的效果也就好一点 ...

我目前还是用的卡尔曼滤波,仅用了加速度计和陀螺仪。等卡尔曼滤波搞完了之后会尝试下梯度下降法。LZ最好每种方法都试下嘛。

出0入0汤圆

发表于 2015-5-12 20:00:08 | 显示全部楼层
笑笑我笑了 发表于 2014-6-17 15:55
我目前还是用的卡尔曼滤波,仅用了加速度计和陀螺仪。等卡尔曼滤波搞完了之后会尝试下梯度下降法。LZ最好 ...

姿态解算的算法给我参考下好么?卡住了

出0入0汤圆

发表于 2015-5-18 16:00:23 | 显示全部楼层
mruio 发表于 2014-6-15 17:31
我用三子样的方法,想当于每次使用三个陀螺仪的数据,进行对角速度进行抛物线拟合,出来的效果也就好一点 ...

不用6050开低通滤波,直接算法加低通滤波,这样子快很多!楼主能否分享下你的算法,可以交流下!

出0入0汤圆

发表于 2015-5-19 19:25:54 | 显示全部楼层
笑笑我笑了 发表于 2014-6-17 15:55
我目前还是用的卡尔曼滤波,仅用了加速度计和陀螺仪。等卡尔曼滤波搞完了之后会尝试下梯度下降法。LZ最好 ...

我现在在用MPU9250做惯性导航的解算,想问您是否愿意做。如果您愿意做,请联系QQ:731001811,谢谢。

出0入0汤圆

发表于 2015-10-12 16:41:05 | 显示全部楼层
这个我发现不是陀螺仪的问题

出0入0汤圆

发表于 2015-10-12 16:41:36 | 显示全部楼层
我也碰到了这个问题,请问楼主解决了么?

出0入0汤圆

 楼主| 发表于 2015-10-20 18:09:29 | 显示全部楼层
陀螺仪性能问题
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 03:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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