ast145 发表于 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方向的加速度呢

登云钓月 发表于 2015-9-18 08:42:29

不懂,也帮顶。

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

zouyf12 发表于 2015-9-19 00:42:07

看不是很懂你的问题,
简单谈一下我的看法,希望对你有用,   
首先, 3个坐标系: 机体、地理和惯性, 做四轴只需要得到机体坐标系和地理坐标系的差距就可以了,惯性坐标系已经是发射卫星才用的了。

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

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

不知道解释的清楚不?

qwe2231695 发表于 2015-9-19 10:53:33

每次只取一点点误差,所以是一个长期的修正,和你取的滤波KP合KI有关

ast145 发表于 2015-9-20 13:33:19

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

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

chiying 发表于 2016-7-24 21:01:33

请问您,两个向量的叉乘,是什么误差,是通过陀螺测得姿态角转换得到机体下重力向量,与加表实测重力向量间的误差?但是相关文中描述互补滤波应该是加表测得和陀螺积分姿态角间的误差,不太明白,向您请教下这个问题。

wswj 发表于 2016-7-28 17:29:59

这是一个融合的过程,陀螺仪也在起作用,在加速度的和与G偏差过大时,可以只使用陀螺仪不使用加计

helislayer 发表于 2016-7-28 19:12:23

加速度的影响被忽略了。
这是个简化的假定,并不科学。
有经验的飞手是可以感觉出来的。
不停做同一个方向水平绕圈动作
飞机就以为重力方向偏了。

页: [1]
查看完整版本: 在四元数下的用加速度计值修正陀螺仪的问题