姿态解算系列一:经验型卡尔曼数据融合

  • Post author:
  • Post category:其他


链接:

https://blog.csdn.net/haishaoli/article/details/52965457

目的:我们需要得到机器人运动的姿态信息,三个轴的角度以及角速度。

本文大纲:

1、传感器相关模型

2、坐标变换

3、经验型卡尔曼数据融合

4、姿态解算流程

5、DMP

6、数据融合效果

本文出处:http://blog.csdn.net/haishaoli/article/details/52965457

本文内容:

姿态解算总框图(欧拉角方式):



一、数据模型、 噪声模型及曲线

1、欧拉角定义:



2、数据模型:



其中,φ表示的是测量的角度,b表示的是陀螺仪的飘移误差(为常值偏差),ωgyro表示的是陀螺仪的角速度输出值。ωg为陀螺仪测量噪声,φacce为加速度计经过处理后得到的角度值,ωa为加速度计测量噪声。

噪声模型近似为高斯分布,如下图:

A、加速度计噪声图

B、陀螺仪噪声图



二、 坐标变换(欧拉角方式):把陀螺仪角速度变换到加速度计的地理坐标系上

1、陀螺仪数据的使用:

A的逆:其中A矩阵为姿态矩阵。

下面内容来自《惯性导航》:主要是把三轴角速度从机体坐标系换算到地理坐标系上。



使用上述公式,在只使用陀螺仪的条件下,可以求得地理坐标系下的三轴角速度信息。

角速度进行积分,就能得到相应的角度信息。


2、加速度计数据的使用:


使用上述公式,在只使用加速度计的条件下,可以求得俯仰角和横滚角信息。


三、 卡尔曼数据融合

A、 融合效果:本文最后附图。

B、一行代码:

a = (1 – d%) * b + d% * c;

a 是 融合输出 ,b 是预测量,c 是观察量

这是关键的融合代码。

C、提问:

上述代码的含义是什么?

加权平均?互补滤波?低通高通滤波器?

同样的式子,不同的使用过程,有不同的意义。

如果系数是一个固定的值,则有可能是加权平均或者高通低通滤波器。

我讲的是动态的系数。获取数据在变,方差(或协方差)在变,系数就在变。

D、理解:

1、什么情况使用 ?    高斯分布。

单模、零均和、高斯噪声 (高斯白噪声)。之前说明了传感器的噪声属于白噪声。


2、卡尔曼为什么是最佳估计 ?下面使用最小二乘来理解。

推导方式一:

q1 是预测量,q2是观察量,q是估计值,w是权值。下文来自《自主移动机器人导论》。


其中q1和q2的系数之和为1。

利用这种推导方式可说明卡尔曼是最佳估计,但是并不能推出方差的表达式,并且,权值Wi还是我们自己取的。


推导方式二:

运用贝叶斯定理推导:推出融合表达式和方差表达式

3、卡尔曼的核心。 方差,或者说权重。其实就是卡尔曼增益。


方差公式,跟电阻类似,结果比原来两者都小。因此就算是预测量的累积误差较大,也能提高系统的精度,误差通过迭代而减少。这说明了该方法的有效性。

4、获得卡尔曼增益的方式对比:

自动通过统计和计算数据方差 VS 人为经验估计方差  的对比  :

1、自动需要高频数据,人为经验不用。

2、自动具有通用性,人为特定性。

3、自动计算量大,人为的计算量较少。

从5.35可推出:q = (d%) * q1 + (1-d%) * q2;


5、应用:我们的姿态融合,定位融合都是人为给出卡尔曼增益系数的,叫做“经验型卡尔曼滤波”。

经验之谈:

A、参数一般是给的很小,原因跟传感器(数据)的误差模型相关;

参数小的原因:分析卡尔曼增益的式子,预测量的方差较小,观测量的方差较大,不是同一个数量级,因此增益系数一般给的很小;见定位融合图,可看出方差情况。

B、“经验型卡尔曼滤波”的核心思想是变化卡尔曼增益系数;根据经验我们能知道哪些条件下传感器数据的方差大,哪些条件下方差小,从而改变增益系数。

C、融合线程的频率越高越好。频率高,一方面收敛快,另外一方面获得的预测量误差小。

四、 姿态解算流程

以下是以数据流的方式去理解。

1、传感器原始数据输入。

2、传感器标定,方法很多,比如六面法。把标定后的数据换算成标准单位。

3、确定坐标轴和数据符号,符号用右手定则。

4、欧拉角变换或者四元数变换,变换是为了使陀螺仪角速度的坐标系与加速度计的坐标重合。

5、数据融合,减小方差,降低噪声。

6、输出融合后的姿态信息。


五、 DMP

这是MPU6X00芯片的自带功能。不开源。

性能还不错,甚至更好。计算有一部分是利用IMU自身的资源,不过依赖芯片产商。


六、数据融合实验效果:

A、 姿态融合效果:蓝色的线是融合输出。平滑并且响应快。

B、定位融合效果:绿色的线是融合输出,蓝色的线是观测量,红色是预测量。


———————

作者:AutoSlam

来源:CSDN

原文:https://blog.csdn.net/haishaoli/article/details/52965457

版权声明:本文为博主原创文章,转载请附上博文链接!