搜索
bottom↓
回复: 7

在四元数下的用加速度计值修正陀螺仪的问题

[复制链接]

出0入0汤圆

发表于 2015-9-17 19:25:56 | 显示全部楼层 |阅读模式
在软件解算中,我们要首先把加速度计采集到的值(三维向量)转化为单位向量,即向量除以模,传入参数是陀螺仪x,y,z值和加速度计x,y,z值:

<code>void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az) { float norm; float vx, vy, vz; float ex, ey, ez;           norm = sqrt(ax*ax + ay*ay + az*az);       ax = ax / norm; ay = ay / norm; az = az / norm;  
下面把四元数换算成方向余弦中的第三行的三个元素。刚好vx,vy,vz 其实就是上一次的欧拉角(四元数)的机体坐标参考系换算出来的重力的单位向量。

<code>// estimated direction of gravity vx = 2*(q1*q3 - q0*q2); vy = 2*(q0*q1 + q2*q3); vz = q0*q0 - q1*q1 - q2*q2 + q3*q3;
axyz是机体坐标参照系上,加速度计测出来的重力向量,也就是实际测出来的重力向量。

axyz是测量得到的重力向量,vxyz是陀螺积分后的姿态来推算出的重力向量,它们都是机体坐标参照系上的重力向量。

那它们之间的误差向量,就是陀螺积分后的姿态和加计测出来的姿态之间的误差。

向量间的误差,可以用向量叉积(也叫向量外积、叉乘)来表示,exyz就是两个重力向量的叉积。

这个叉积向量仍旧是位于机体坐标系上的,而陀螺积分误差也是在机体坐标系,而且叉积的大小与陀螺积分误差成正比,正好拿来纠正陀螺。(你可以自己拿东西想象一下)由于陀螺是对机体直接积分,所以对陀螺的纠正量会直接体现在对机体坐标系的纠正。

在这段资料里面有个问题不太明白,ax,ay,az是测量得到的重力向量,vxyz是陀螺积分后的姿态来推算出的重力向量,这两个做叉乘,得到误差,但是我感觉只有在机体处于平衡状态时,这样得到的误差才是准确的,如果飞机此刻有三个方向的加速度,那ax,ay,az测得就不仅仅是重力的分量了,与vx,vy,vz的叉乘就是飞机在惯性坐标系下的加速值了(当然,这三个分量要除去重力加速度),就不是机体坐标误差了,还能用来校正陀螺仪吗?
        另外,或者说,是不是加速度计每次采样时都把机体当作一个平衡状态来对待?但是这样的话,加速度计如何得到在惯性坐标系下的X、Y方向的加速度呢

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2015-9-18 08:42:29 | 显示全部楼层
不懂,也帮顶。

感觉现在在论坛上提问压根没人会回答的。

出0入0汤圆

发表于 2015-9-19 00:42:07 | 显示全部楼层
看不是很懂你的问题,
简单谈一下我的看法,希望对你有用,   
首先, 3个坐标系: 机体、地理和惯性, 做四轴只需要得到机体坐标系和地理坐标系的差距就可以了,  惯性坐标系已经是发射卫星才用的了。

然后,加速度计检测的是重力在机体坐标系XYZ里的分量,   

再然后,在你描述的那个方法里,陀螺仪姿态估算得到的结果, 其实是一个从地理坐标系到机体坐标系的旋转矩阵, 然后用在地理坐标系中的重力向量(0,0,1) 乘上这个旋转矩阵,就得到重力向量在机体坐标系上的分量。
这个分量和加速度计检测到的分量是同一个东西, 只是从不同的方式上得到的, 所以就可以拿两个本来应该一样而实际是有偏差的东西做差而得到修正量。

不知道解释的清楚不?

出105入79汤圆

发表于 2015-9-19 10:53:33 | 显示全部楼层
每次只取一点点误差,所以是一个长期的修正,和你取的滤波KP合KI有关

出0入0汤圆

 楼主| 发表于 2015-9-20 13:33:19 | 显示全部楼层
qwe2231695 发表于 2015-9-19 10:53
每次只取一点点误差,所以是一个长期的修正,和你取的滤波KP合KI有关

这几天我仔细看了书本和请教别人,虽说机体有自身加速度影响,但是一般偏差系数取得比较小,而且四轴在自稳状态下时,机体加速度也会比较小,这点误差还能容忍,确实如你所说,是一个长期过程

出0入0汤圆

发表于 2016-7-24 21:01:33 | 显示全部楼层
请问您,两个向量的叉乘,是什么误差,是通过陀螺测得姿态角转换得到机体下重力向量,与加表实测重力向量间的误差?但是相关文中描述互补滤波应该是加表测得和陀螺积分姿态角间的误差,不太明白,向您请教下这个问题。

出0入0汤圆

发表于 2016-7-28 17:29:59 | 显示全部楼层
这是一个融合的过程,陀螺仪也在起作用,在加速度的和与G偏差过大时,可以只使用陀螺仪不使用加计

出0入0汤圆

发表于 2016-7-28 19:12:23 | 显示全部楼层
加速度的影响被忽略了。
这是个简化的假定,并不科学。
有经验的飞手是可以感觉出来的。
不停做同一个方向水平绕圈动作
飞机就以为重力方向偏了。

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

本版积分规则

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

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

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

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