IMU自动校准论文与代码实现A Robust and Easy to Implement Method for IMU Calibration without External Equipments

PART1 摘要

  • 低成本的惯性测量单元会受到系统误差的影响,系统误差由标度因子和轴偏差造成,这会降低位置和姿态估计的精度。
  • 本文提出了一种无需任何外部设备的,鲁棒性强,易于实现的IMU校准方法。
  • 该程序基于多放置方案,再估计传感器偏差的同时,为加速度和陀螺仪三轴的尺度和偏差系数。我们的方法只需要用手移动传感器,并将其放置在一组不同的静态位置(姿态)。
  • 论文描述了一个鲁棒的快速校准协议,该协议利用有效的无参数静态滤波器来可靠的检测传感器中的静态间隔,其中假设重力大小和稳定温度的局部稳定性。
  • 首先在静态时间间隔内对加速度计进行校准,然后利用这些结果校准陀螺仪,采用稳定的数值积分技术。
  • 通过大量的仿真和实际的实验,以一个具有校准证书的商用IMU为参考数据,评价了该校准技术的性能。

PART2 导言

 

  • 商业IMU是工厂校准的,每个传感器都有自己的校准参数集,提供现成的精确测控。低成本的IMU校准不良,导致不可忽略的系统误差。
  • 本文提出了一种有效且易于实现的校准方案,该方案只需要按照图1所示的流程图中的简单步骤收集IMU数据。在没有运动的初始化周期之后,操作员应该将IMU移动到不同的位置,以便生成一组不同的,暂时稳定的旋转。
  • 收集的数据用于校准加速度计和陀螺仪。
  • 和其他技术一样,忽略了交叉轴灵敏度的影响,因为对于小偏差和小交叉轴灵敏度误差,很难区分。
  • 程序中利用了[7]中提出的加速度校准的多位置的基本思想:在静态位置,测量加速度的标准值等于重力的大小加上多源误差因子(即,它包括偏差、偏差、噪声等)。所有这些量都可以通过一组静态姿态上的最小化来估计。
  • 加速度计三轴标定后,可以利用加速度计测得的重力矢量位置作为参考来标定陀螺仪三轴。将两个连续静态位置之间的角速度积分,可以估计出新方向上的重力位置。最后将这些估计值与标定加速度计给出的重力参考值之间的误差降到最小。
  • 在这个过程中,陀螺仪的校准精度在很大程度上取决于加速度计的校准精度,作为参考。
  • 信号噪声和偏差会对校准精度和用于检测校准中实际静态间隔的算法的可靠性产生负面影响。
  • 最后,一个一致的数值积分过程是必要的,以减轻信号离散化的影响,通常在100赫兹采样。
  • 如[8]所述,我们用Allan方差估计了一段时间内陀螺仪的偏置漂移
  • 我们采用龙格-库塔数值积分法来提高陀螺仪校准的精度
  • 传统上,IMU的校准是通过使用特殊的机械平台(如机械手)来完成的,在一组精确控制的方向上以已知的转速移动IMU[9]、[10]、[11]。在每个方向上,加速度计的输出与预先计算的重力矢量相比较,而在旋转过程中,陀螺仪的输出与预先计算的转速相比较。然而,用于校准的机械平台通常非常昂贵,导致校准成本常常超过IMU硬件的成本。
  • Lotters等人首次提出了多位置法。[7] :他们建议使用静态加速度的大小必须等于重力的大小这一事实来校准加速度计的偏差和比例因数。
  • 这项技术在[14]和[15]中得到了扩展,以包括加速度计轴未对准。他们提出的陀螺仪的误差模型与加速度计的误差模型相似,但这种情况下的标定过程需要单轴转台提供强转速信号,提供高的标定精度。不幸的是,这些方法不仅需要一个机械设备,而且这两个三元组是独立校准的,它们之间的偏差无法检测。
  • 在[8]和[16]中,作者提出了两种不需要任何外部机械设备的校准方案。与我们的方法类似,在第一项工作中,作者利用重力矢量量级的高局部稳定性对加速度计进行校准,然后将校准后的加速度计所感测的重力矢量与积分角速度所得的重力矢量进行比较,获得陀螺仪校准。在第二项工作中,作者还研究了磁场的局部稳定性。

PART3 传感器误差模型

在第二项工作中,作者还研究

  • 在实际的imu中,由于装配的不精确性,这两个三元组形成两个不同的(即未对准的)非正交帧。
  • 同样,单个传感器也不是完美的:通常用于转换传感器实际物理量数字输出的比例因子对于同一传感器的不同实例是不同的,而制造商仅提供默认的标称比例因子。此外,输出信号几乎总是受到非零、可变偏差的影响。
  • 如上所述,加速度计框架(AF)和陀螺仪框架(GF)通常都是非正交的。我们可以通过以下方式定义两个相关的正交理想帧(分别为AOF和GOF):
  • 在所提出的校准方法中,我们假设车身框架BF与加速计正交框架AOF一致:在这种情况下,角度变为零,因此在加速计情况下
  • 非正交AF(GF)到正交AOF的变换
  • s^{^{B}}=Ts^{S},T=\begin{bmatrix} 1 & -\beta_{yz} &\beta _{zy} \\ \beta _{xz}&1 &-\beta_{zx} \\ -\beta _{xy} &\beta _{yx} &1 \end{bmatrix}
  • 本文的校准方法假设BF和AOF一致,那么上面角度xz,xy,yz项变成0,所以在加速度中上面格式变为
  • a^{O}=T^{a}a^{S},T=\begin{bmatrix} 1&-\alpha _{yz} &\alpha _{zy} \\ 0& 1&-\alpha _{zx} \\ 0 & 0 &1 \end{bmatrix}
  • 同理陀螺仪的三轴角速度变换
  • \omega ^{O}=T^{g}\omega ^{S},T=\begin{bmatrix} 1& -\gamma _{yz}&\gamma _{zy} \\ \gamma _{xz} & 1&-\gamma _{zx} \\ -\gamma _{xy}&\gamma _{yx} &1 \end{bmatrix}
  • 尺度偏差
  • K^{a}=\begin{bmatrix} s_{x}^{a} &0 &0 \\ 0& s_{y}^{a} &0 \\ 0& 0 & s_{z}^{a} \end{bmatrix},K^{g}=\begin{bmatrix} s_{x}^{g} &0 &0 \\ 0& s_{y}^{g} &0 \\ 0& 0 & s_{z}^{g} \end{bmatrix}
  • 零偏
  • b^{a}=\begin{bmatrix} b_{x}^{a}\\ b_{y}^{a} \\ b_{z}^{a} \end{bmatrix},b^{a}=\begin{bmatrix} b_{x}^{g}\\ b_{y}^{g} \\ b_{z}^{g} \end{bmatrix}
  • 完整的加速度校准模型
  • a^{O}=T^{a}K^{a}\left ( a^{S}+b^{a}+v^{a} \right )
  • 完整的角速度校准模型
  • \omega ^{O}=T^{g}K^{g}\left ( \omega^{S}+b^{g}+v^{g} \right )

PART4 基本的校准框架流程

  • 为了校准加速度误差,需要估计下面的参数向量
  • \theta ^{acc}=\begin{bmatrix} \alpha _{yz} &\alpha _{zy} &\alpha _{zx} &s_{x}^{a} &s_{y}^{a} &s_{z}^{a} &b_{x}^{a} &b_{y}^{a} & b_{z}^{a} \end{bmatrix}
  • a^{^{O}}=h\left (a^{S} ,\theta ^{acc} \right )=T^{a}K^{a}\left ( a^{S} +b^{a}\right )
  • 在这里,我们可以忽略测量噪声,因为在我们的校准过程中,我们在每个静态间隔中应用信号平均。
  • 与传统的多位置方案一样,我们将IMU移动成一组M个不同的、暂时稳定的旋转并采样a_{k}^{s}
  • 计算一个短暂窗口内的静态加速度值,代价函数如下
  • L\left (\theta ^{acc} \right )= \sum_{k=1}^{M}\left ( \left \| g \right \|^{2}-\left \| h\left ( a_{k}^{S},\theta ^{acc} \right )\left \right \|^{2} \right )^{2}
  • 为了最小化方程,我们采用了Levenberg-Marquardt(LM)算法。
  • 为了校准陀螺仪三元组,我们可以假设系统是无偏置的,只需在适当的无运动初始周期内平均静态陀螺仪信号。
  • 以下关于艾伦方差的讨论证明了这一点(见第。IV-C段)。此外,由于我们需要使用加速度计作为已知参考,我们使用上面计算的校准参数θ,用公式9校正加速度计读数。
  • 论文定义了函数\psi,将一系列角速度参数和由加速度标定得到的初始重力范u_{a,k-1}数(例如重力方向的单位矢量),最终返回一个重力范数u_{g,k},使用角速度测量在k-1到k之间的静态时间间隔得到。
  • \psi可以是通过积分输入角速度计算最终方向的任何积分算法。校准陀螺仪需要估计的未知参数向量是:
  • \theta ^{gyro}=\begin{bmatrix} \gamma _{yz} &\gamma _{zy} &\gamma _{xz} &\gamma _{zx} &\gamma _{xy} &\gamma _{yx} &s_{x}^{g} &x_{y}^{g} & s_{z}^{g} \end{bmatrix}
  • 代价函数L\left ( \theta ^{gyro} \right )=\sum_{k=2}^{M}\left \| u_{a,k} -u_{g,k}\right \|^{2}
  • 其中M是静态间隔的数量,u_{a,k}是在第k个时间窗口中测得的加速度静态间隔中校准的加速计读数。
  • u_{g,k}是对k-1到k时间间隔中的角速度积分。
  • \theta ^{gyro}是最小化上面两个值差LM算法得到的角速度校准参数

PART5 校准步骤

  • 如第二节所述。一、 所提出的校准框架要求收集一个数据集,其中包含操作员在不同静态位置移动IMU时采集的原始加速度计和陀螺仪读数流,以便产生一组明显的、暂时稳定的旋转。
  • 如第2节所述。三、 为了在将等式10和13最小化的情况下减轻噪声影响,我们需要在适当的时间间隔内对信号进行平均。
  • 这在静态间隔的长度上施加了一个下限(在图1中)。初始化周期(在图1中)没有运动也是必不可少的:这将被用来表征陀螺仪的偏差(秒)。
  • 下面分ABCD四个部分说明校准流程
  • A部分内容:静态检测
  • 图3。静态探测器应用于加速度计数据的一个例子:静态探测器由黑色方波表示,其高电平将一个间隔划分为静态
  • 校准的准确性在很大程度上取决于静态和运动间隔分类的可靠性:为了校准加速度计,我们使用静态间隔
  • 而对于陀螺仪校准,我们还包括两个连续静态间隔之间的运动间隔。
  • 与[8]中使用的准静态检测器一样,基于带通滤波器的算子在实际数据集中的性能很差:检测到的静态间隔通常包含运动的一小部分。此外,它们需要微调,因为它们依赖于三个参数。
  • 我们建议使用基于方差的静态检测器算子,利用上述静态区间长度的下限。我们的探测器以加速度计信号为基础:给定一段时间间隔t_{wait}(见图1),对于每个t时刻的加速度采样\left ( a_{x}^{t},a_{y}^{t},a_{z}^{t} \right ),我们计算方差大小
  • 方差公式如下所示
  • \zeta \left ( t \right )=\sqrt{[var_{t_{w}}(a_{x}^{t})]^{2}+[var_{t_{w}}(a_{y}^{t})]^{2}+[var_{t_{w}}(a_{z}^{t})]^{2}}
  • 其中var_{t_{w}}(a^{t})是计算加速度在时间间隔t_{w}的加速度方差
  • 我们在静态和运动间隔之间进行分类,只需检查不同时间间隔的加速度标准差否小于或大于阈值。
  • 这个阈值整数倍于整个初始化周期T_{init}内的方差\varsigma _{init}
  • 在所有的实验中,在T_{init}中使用Allan方差校准方法中的时间间隔t_{w}为2s
  • 静态检测中不需要调整参数,自动化的校准
  • 图3是一个静态校准的过程,基于真实的数据,这个整数倍是6,也就是说阈值是\varsigma _{init}的六倍
  • B部分内容,龙格库塔积分
  • 如等式11所述,在陀螺仪校准中,我们需要进行离散时间角速度积分:需要一种稳健稳定的数值积分方法,因为它可以提高校准精度。
  • 并且由于我们使用四元数算法来表示旋转,因此在这种设置下,适当的积分算法选择是Runge Kutta 4th(RK4n)。根据我们的经验(没有关于空间约束的实验报告),RK4n优于标准的线性积分过程,提供了更高的精度结果。
  • 四元数运动学的求导方程
  • f\left (q,t \right )=\dot{q}=\frac{1}{2}\Omega \left ( \omega (t)) \right )q
  • \Omega \left ( \omega \right )将所考虑的三维角速度转换为真实的斜对称矩阵表示的四元数变换运算符
  • \Omega (\omega )=\begin{bmatrix} 0& -\omega _{x} &-\omega _{y} &-\omega _{z} \\ \omega _{x}& 0 &\omega _{z} &-\omega _{y} \\ \omega _{y}& -\omega _{z}& 0 &\omega _{x} \\ \omega _{z}& \omega _{y}& -\omega _{x} &0 \end{bmatrix}
  • 龙格库塔四阶四元数算法
  • IMU自动校准论文与代码实现A Robust and Easy to Implement Method for IMU Calibration without External Equipments_第1张图片
  • C部分内容:Alan方差
  • 我们使用Allan方差([20],[8])来描述随机陀螺仪偏差漂移,该方差测量连续间隔平均值之间的差异的方差。
  • Alan方差\sigma _{a}^{2}定义如下
  • \sigma _{a}^{2}=\frac{1}{2}\left \langle (x(\tilde{t},k)-x(\tilde{t},k-1))^{2} \right \rangle
  • =\frac{1}{2K}\sum_{k=1}^{K}(x(\tilde{t},k)-x(\tilde{t},k-1))^{2}
  • 其中x(t,k)是第k个时间间隔的t秒平均值,k是总考虑时间分段的间隔数
  • 分别计算每个转轴的Alan方差,时间范围t_{0}<\tilde{t}<t_{n},其中t_{0}=1s,t_{n}=225s
  • 三个轴的Allan方差收敛到一个小值的时间表示初始化周期T_{init},如图一所示
  • 在初始化阶段,我们计算静态陀螺仪信号的平均值,以正确确定校准中使用的陀螺仪偏差。在Xsens MTi IMU的情况下,良好的初始化周期T_{init}值为50秒(参见图4)。
  • D部分内容:完成步骤
  • 为了避免校准参数估计中的不可观测性,必须收集至少九种不同的姿态[15](例如,图1)。
  • 在我们的经验中,为了获得更好的校准结果,需要更多的不同姿态,同时保持每个静态间隔的持续时间,以保持陀螺仪偏差的时间稳定性假设。
  • 在36≤N≤50和1秒≤twait≤4秒的情况下,我们在校准精度、偏差稳定性和噪声降低之间取得了很好的平衡。
  • 初始化周期的持续时间由Allan方差分析给出(见第。IV-C段)。
  • 图1总结了校准协议,而算法1报告了校准算法的伪代码。

PART6 实验分析

  • 用合成数据和真实数据检验了论文的方法。在模拟中,可以仿真结果的校准参数矩阵与理想的地面真实情况进行比较,即无噪声、无失真的。真实数据校准和IMU的数据集进行比较。
  • A部分内容:仿真数据
  • 我们首先生成一组理想的无噪声信号
  • 加速度计的读数是从基于三个随机调制的不同脉冲正弦的三维信号开始产生的
  • 开始时,我们进行5000个零采样(初始化周期),每次三个信号同时为零时,我们引入400个零采样(静态间隔)。
  • 同时添加了投影到三轴上的三维重力矢量
  • 对于陀螺仪所感测的角速度,其思想是考虑三维角速度矢量ω,该矢量描述上述重力矢量的感知旋转,然后将ω投影到陀螺仪的三个轴上。
  • 通过这种方式,我们将两个不同传感器集群的测量关联起来。
  • 对于每个运动间隔,随机选择不同的天顶和方位角速度,而对于其余时间,这些速度被视为等于零。整个合成数据的采样频率固定在100hz。
  • 对于每个理想信号,我们添加一个高斯白噪声,最后我们使用随机生成的失真参数对数据进行失真,即:
  • a_{synth}^{S}=(T^{a}K^{a})^{-1}a_{synth}^{O}-b^{a}
  • \omega _{synth}^{S}=(T^{g}K^{g})^{-1}\omega _{synth}^{O}-b^{g}
  • 对于角速度。a_{synth}^{S}a_{synth}^{O}分别是非正交传感器帧和相关正交帧中的合成加速度。\omega _{synth}^{S}\omega _{synth}^{O}分别是非正交传感器帧和相关正交帧中的合成角速度。式23和式24来自式6和式7中提出的模型。我们用来评估结果质量的指标是:
  • 1) 将估计值与实际值进行比较;

    2) 比较校准前后理想、无噪声、无失真信号与有噪声信号的平均差值;

    3) 仅适用于加速度计:我们考虑在每个静态间隔期间感测加速度和应用加速度之间的大小和角度误差。由于重力矢量的大小被假定为已知的唯一量,所以这里的角误差是在最坏的情况下计算的,在最坏的情况下,全误差出现在一个完全水平、垂直于重力的加速计轴上矢量。g的误差将导致俯仰角或侧倾角被测量为弧度而不是零;

    4) 仅适用于陀螺仪:我们考虑经校准的加速度计感应到的加速度和积分陀螺仪给出的角速度计算出的加速度之间的大小和角度误差。

  • 论文生成了1200个不同的信号,将40个不同的失真参数集与30个随机生成的理想信号集组合在一起
  • 由于空间的缩减,我们报告一个失真参数集的平均和最坏情况的结果,应用于整个理想信号集。其他畸变参数集的结果非常相似[4]。
  • 经过校准,表一和表二报告了一个可以忽略的误差。表四和五报告了重要的绝对误差衰减。最后,从标签。我们报告在Tab中,散度的大小减少了11.9倍,角度误差减少了12.7倍。VII考虑的散度的大小减少了21.4倍,角度误差减少了21.9倍。在图5中,我们给出了与理想信号比较的校准信号的一些示例。
  • B部分内容:真实数据
  • 如前所述,我们开发了Xsens MTi IMU(图1)作为实验平台。设备数据表提供了工厂校准的未对准矩阵,用于将加速计(AF)和陀螺仪(GF)框架与车身框架BF对齐,同时我们估算了将AF和GF与AOF对齐的矩阵。
  • 为了将我们的结果与工厂校准的结果进行比较,我们需要知道将AOF转换为BF的变换矩阵R_{b}。给定R_{b},我们可以在BF中表示我们的校准矢量。
  • 给定到工厂校准参数,R_{b}可从偏差矩阵中包含的数据(见公式1的讨论)并遵循[14][5]中提出的简单方法轻松估计。
  • 我们获得了一个如图1所示的数据集,初始静态周期约为50秒,然后是一组由2-4秒的静态间隔分隔的37个旋转。我们使用加速度计的理想值(见公式8)作为优化的初始猜测
  • \begin{bmatrix} 1& 0 & 0& 0 &1 & 0 &0 &0 & 1 \end{bmatrix}
  • 同理角速度使用以下值(见公式12)
  • \begin{bmatrix} \frac{1}{r}& 0 & 0& 0 & \frac{1}{r} & 0 &0 &0 & \frac{1}{r} \end{bmatrix},r=\frac{\left ( 2^{n}-1 \right )}{2y}
  • 其中n是AD转换的位数,角速度的测量量程是[-y,+y]rad/s
  • 所实现的校准与数据表中给出的工厂校准参数相当,见VIII开始的表格。对于每个表,我们报告工厂校准参数(在左侧)和我们的校准参数(在右侧)。
  • 必须指出的是,在我们的结果中,我们隐含了一个不能归因于我们的校准方法的误差。这是在计算时由IMU的数据表舍入值(见表)引起的传播错误。
  • 尽管存在这个问题,我们得到的结果与数据表4中报告的参数非常接近。

PART7 总结

本文提出了一种有效的半自动IMU校准方法。校准协议快速、可靠,不需要任何外部设备。该算法易于实现,不需要任何参数调整。综合数据和真实数据的结果表明,真正有可能免费改善低成本、低校准、IMU的性能,这些IMU装备了当前的智能手机。实际上,我们目前正在智能手机级IMU传感器上测试我们的方法。我们还计划将所提出的程序集成到camera IMU系统的校准框架中,包括IMU、cameraIMU框架和时间校准。

PART8 论文的IMU校准代码实现

代码连接 https://github.com/shenshikexmu/IMUCalibration-Gesture

博主介绍 https://blog.csdn.net/shenshikexmu/article/details/80013444

标定要点 https://blog.csdn.net/chenshiming1995/article/details/105107532

采样方法与结果比较 https://blog.csdn.net/qq_29313679/article/details/106001812

注意:论文中假设了IMU的BF(传感器载体坐标系)与AOF加速度正交坐标系的一致性

也就是说并没有考虑IMU自身坐标系与安装车体的坐标系的不一致

 

 

你可能感兴趣的:(传感器融合)