讨论一种IMU加速度数据或者磁罗盘数据的标定方式
现在讨论一种IMU加速度数据或者磁罗盘数据的标定方法。
问题描述
由于IMU传感器的制造工艺和精度的限制,IMU的加速度计和磁罗盘的输出值会存在一定的误差,这些误差会对姿态解算的精度造成影响。IMU数据的误差来源主要有以下几个方面:
- 零偏误差
- 比例误差
- 非正交误差
- 随机误差
- 温度漂移误差
其中,零偏误差、比例误差和非正交误差都可以通过标定得到,随机误差可以通过滤波算法进行抑制,温度漂移误差可以通过温度补偿进行抑制。我们这次主要讨论前三种误差的标定方法。由于原理一致,因此只讨论加速度计的标定方法。
误差模型
根据零偏误差、比例误差和非正交误差的定义,我们可以得到如下的误差模型:
a s = M a ( a m − b a − w a ) (1) \begin{aligned} \mathbf{a}_{s} &=\mathbf{M}_{a}(\mathbf{a}_{m} - \mathbf{b}_a - \mathbf{w}_{a}) \\ \end{aligned} \tag{1} as=Ma(am−ba−wa)(1)
其中, a m \mathbf a_m am 是加速度计的测量值, a s \mathbf a_s as 是加速度计的真实值, M a \mathbf M_a Ma 是加速度计的比例和非正交误差矩阵, b a \mathbf b_a ba 是加速度计的零偏误差向量, w a \mathbf w_a wa 是加速度计的随机误差向量,我们假设它满足高斯分布,即 w a ∼ N ( 0 , Q a ) \mathbf w_a \sim \mathcal N \left(\mathbf 0, \mathbf Q_a\right) wa∼N(0,Qa) ,其中 Q a \mathbf Q_a Qa 是加速度计的随机误差协方差矩阵。
误差模型中的 M a \mathbf M_a Ma 和 b a \mathbf b_a ba 是我们需要标定的参数,其中 M a \mathbf M_a Ma 是一个 3 × 3 3 \times 3 3×3 的矩阵, b a \mathbf b_a ba 是一个 3 × 1 3 \times 1 3×1 的向量。
代价函数
如果我们想得到 M a \mathbf M_a Ma 和 b a \mathbf b_a ba 的最优解,我们需要定义一个代价函数,然后通过最小化代价函数来得到最优解。显然在静态情况下 a s \mathbf a_s as 的模长应该等于重力加速度的模长,即:
∥ a s