多传感器融合定位六-惯性导航原理及误差分析
- 1. 惯性技术简介
- 1.1 惯性技术发展历史
- 1.2 惯性器件
- 1.2.1 机械陀螺(几乎没人用了)
- 1.2.2 激光陀螺
- 1.2.3 光纤陀螺
- 1.2.4 MEMS陀螺(常用)
- 1.2.5 加速度计
 
 
- 2. 惯性器件误差分析
- 2.1 信号误差组成
- 2.2 Allan方差分析
 
- 3. 惯性器件内参标定
- 3.1 惯性器件内参误差模型
- 3.1.1 零偏
- 3.1.2 刻度系数误差
- 3.1.3 安装误差
- 3.1.4 惯性器件内参误差模型
 
- 3.2 惯性器件内参误差标定
- 3.2.1 标定方法概述
- 3.2.2 基于转台的标定
- 3.2.2.1 加速度计标定
- 3.2.2.1.1 解析法:
- 3.2.2.1.2 最小二乘法:
 
- 3.2.2.2 陀螺仪标定:
- 3.2.2.2.1 方法思想
- 3.2.2.2.2 解析法
 
 
- 3.2.3 不需要转台的标定
- 3.2.3.1 整体思路
- 3.2.3.2 内参模型
- 3.2.3.3 优化模型--估计加速度计内参
- 3.2.3.4 优化模型--估计陀螺仪内参
- 3.2.3.4 标定方法比较
 
 
 
- 4. 惯性器件温补
- 4.1 物理模型辨识
- 4.2 参数辨识
- 4.3 其他改进方法
- 4.4 关于温补的讨论
 
前面几章讲了怎样用单个传感器把图建出来然后再做定位。接下来就进入了融合的环节,即怎样把图和定位建的更好。
1. 惯性技术简介
1.1 惯性技术发展历史
1687年,伟大的英国科学家牛顿提出力学三大定律,为惯性导航技术奠定了理论基础。
  自20世纪60年代起,出现了挠性陀螺仪和动力谐调陀螺仪,同时平台式惯导系统发展迅速,并大量装备各种飞机、舰船、导弹和航天飞行器。
自20世纪60年代起,出现了挠性陀螺仪和动力谐调陀螺仪,同时平台式惯导系统发展迅速,并大量装备各种飞机、舰船、导弹和航天飞行器。
 
1.2 惯性器件
1.2.1 机械陀螺(几乎没人用了)
- 定轴性: 当陀螺转子以高速旋转时,在没有任何外力矩作用在陀螺仪上时,陀螺仪的自转轴在惯性空间中的指向保持稳定不变,即指向一个固定的方向;同时反抗任何改变转子轴向的力量。
- 进动性: 当转子高速旋转时,若外力矩作用于外环轴,陀螺仪将绕内环轴转动;若外力矩作用于内环轴,陀螺仪将绕外环轴转动。其转动角速度方向与外力矩作用方向互相垂直。
  
1.2.2 激光陀螺
Sagnac效应由法国物理学家 Sagnac 于 1913 年发现,其原理是干涉仪相对惯性空间静止时,光路 A 和 B 的光程相等,当有角速度时,光程不相等,便会产生干涉。
 
1.2.3 光纤陀螺
同样基于Sagnac效应,传播介质改成了光纤。(相比激光陀螺,成本低很多)
 
1.2.4 MEMS陀螺(常用)
科里奥利力(Coriolis force,简称为科氏力),是对旋转体系(比如自传的地球,旋转的圆盘等)中进行直线运动的质点由于惯性相对于旋转体系产生的直线运动的偏移的一种描述。
 如左图所示有一个圆盘,圆盘静止的时候,有一个球从里往外去运动的时候,画出来肯定是一条直线。现在假设这个圆盘它旋转了一下,旋转以后这个球画出来的就不是一条直线了,它是一个弧线。也就是说一个东西往前运动,旋转它的载体时,这个运动的东西会受到一个力,往另一个方向走。
 右图有一个摆动器械,它在一个微机械的器械内来回摆动,在静态不动的时候,它就沿直线运动。但是当它有旋转的时候,因为科里奥利力的存在,它的摆动就会画弧线而不是走直线了。这时,支撑着这个摆的四个构件,就会检测到一个扭动的力,这个扭动力量的大小,就反应了当前角速度的大小。通过这种方式来测量角速度。
 核心就是惯性-------即保持原来的运动状态不变。进动性----不想改变转轴,我要反抗这个旋转。
 
1.2.5 加速度计
当运载体相对惯性空间做加速度运动时,仪表壳体也随之做相对运动,质量块保持惯性,朝着与加速度方向相反的方向产生位移(拉伸或压缩弹簧)。当位移量达到一定值时,弹簧给出的力使质量块以同一加速度相对惯性空间做加速运动,加速度的大小与方向影响质量块相对位移的方向及拉伸量。(在静止不动时,这个东西自己是不摆的,但在给它一个加速度的时候,由于惯性的作用,会产生一个反向的摆动。通过检测摆动的大小,就知道了加速度的大小。)
 
2. 惯性器件误差分析
2.1 信号误差组成
-  量化噪声 
 一切量化操作所固有的噪声,是数字传感器必然出现的噪声;
 产生原因:通过AD采集把连续时间信号采集成离散信号的过程中,精度会损失,精度损失的大小和AD转换的步长有关,步长越小,量化噪声越小。(AD:模拟信号,这个比较好理解,连续信号采集成离散信号,比较采集是有频率的)
  
-  角度随机游走 
 宽带角速率白噪声:陀螺输出角速率是含噪声的,该噪声中的白噪声成分;
 产生原因:计算姿态的本质是对角速率做积分,这必然会对噪声也做了积分。白噪声的积分并不是白噪声,而是一个马尔可夫过程,即当前时刻的误差是在上一时刻误差的基础上累加一个随机白噪声得到的。
 角度误差中所含的马尔可夫性质的误差,称为角度随机游走。(测量出的角速率是有一个白噪声的,因为我们要利用角速率解算,积分成角度,这时的白噪声也包含在积分里面了,那不就算的不准了)
-  角速率随机游走 
 与角度随机游走类似,角速率误差中所含的马尔可夫性质的误差,称为角速率随机游走。而这个马尔可夫性质的误差是由宽带角加速率白噪声累积的结果。(角加速率里面也是有一个白噪声的)
-  零偏不稳定性噪声 
 零偏:即常说的bias,一般不是一个固定参数,而是在一定范围内缓慢随机飘移。
 零偏不稳定性:零偏随时间缓慢变化,其变化值无法预估,需要假定一个概率区间描述它有多大的可能性落在这个区间内。时间越长,区间越大。
 (这玩意好像不是很好描述,但是在工程上,我们需要给它一个近似的模型)
-  速率斜坡 
 该误差是趋势性误差,而不是随机误差。
 随机误差,是指你无法用确定性模型去拟合并消除它,最多只能用概率模型去描述它,这样得到的预测结果也是概率性质的。
 趋势性误差,是可以直接拟合消除的,在陀螺里产生这种误差最常见的原因是温度引起零位变化,可以通过温补来消除。
 (一个角速度,在不考虑之前说的那些随机误差的影响下,那误差就是一个稳定的白噪声。现在它随着时间变化,会有一个趋势性,也就是误差也在飘,但是这个误差是趋势性的。理论上讲这个误差不能叫完全的随机误差,因为趋势性很多时候是有些确定性的模型来影响的,比如说温补------随着温度的升高,误差会变大,这个模型是可以拟合的。但是在随机信号分析的时候,温补的误差是可以分析出来的。)
-  零偏重复性 
 多次启动时,零偏不相等,因此会有一个重复性误差。在实际使用中,需要每次上电都重新估计一次。(意思是,不同次启动时,零偏会发生多大的变化。与前面的所有误差是有区别的,前五项一次充电采集很多信号就可以分析出来。而零偏重复性就需要反复上电断电上电断电,统计一下每次上电断电,这个bias发生了多少变化)
 Allan方差分析时,不包含对零偏重复性的分析。(即Allan方差只能分析前五项,不能分析第六项)
2.2 Allan方差分析
随机信号Allan方差的物理意义及应用在本质上来源于它与功率谱之间的关系。
 功率谱(功率谱密度函数):单位频带内的信号功率,它表示信号功率随着频率的变化情况,即信号功率在频域的分布状况。
假设把随机过程 X α X_\alpha Xα 的功率谱表示为: PSD  [ X α ] = h α f α \operatorname{PSD}\left[X_\alpha\right]=h_\alpha f^\alpha PSD[Xα]=hαfα 其中 f α f^\alpha fα 是频率, h n h_n hn 为相应的系数。(频率和功率之间的关系)
若多个随机过程相互独立,则其满足线性相加性质,即 X = ∑ X a X=\sum X_a X=∑Xa 此时,其功率谱也同样可以线性相加 PSD  [ X ] = ∑ PSD  [ X α ] \operatorname{PSD}[X]=\sum \operatorname{PSD}\left[X_\alpha\right] PSD[X]=∑PSD[Xα](多个功率谱是可以叠加的)
-  Allan方差分析方法的基本思路: 
 在惯性器件随机误差分析中,以上提到的5种误差相互独立,且 α \alpha α 值不同,因此若绘制“时间间隔-方差双对数曲线”(时间间隔是频率的倒数,方差是功率谱的积分),则得到的曲线斜率必不相同。根据曲线斜率识别出各项误差,并计算出对应的误差强度。 
(公式知道就行了,这时信号分析的东西,不属于融合范畴)
 量化噪声 
    
     
      
       
        Q
       
      
      
       Q
      
     
    Q 满足下式
 
     
      
       
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         
          σ
         
         
          
           Q
          
          
           N
          
         
        
        
         (
        
        
         τ
        
        
         )
        
        
         =
        
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         (
        
        
         
          3
         
        
        
         Q
        
        
         )
        
        
         −
        
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         τ
        
       
       
         \log _{10} \sigma_{Q N}(\tau)=\log _{10}(\sqrt{3} Q)-\log _{10} \tau 
       
      
     log10σQN(τ)=log10(3Q)−log10τ角度随机游走 
    
     
      
       
        N
       
      
      
       N
      
     
    N 满足下式
 
     
      
       
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         
          σ
         
         
          
           A
          
          
           R
          
          
           W
          
         
        
        
         (
        
        
         τ
        
        
         )
        
        
         =
        
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         N
        
        
         −
        
        
         1
        
        
         /
        
        
         2
        
        
         ∗
        
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         τ
        
       
       
         \log _{10} \sigma_{A R W}(\tau)=\log _{10} N-1 / 2 * \log _{10} \tau 
       
      
     log10σARW(τ)=log10N−1/2∗log10τ角速率游走 
    
     
      
       
        K
       
      
      
       K
      
     
    K 满足下式
 
     
      
       
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         
          σ
         
         
          
           R
          
          
           R
          
          
           W
          
         
        
        
         (
        
        
         τ
        
        
         )
        
        
         =
        
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         (
        
        
         K
        
        
         /
        
        
         
          3
         
        
        
         )
        
        
         +
        
        
         1
        
        
         /
        
        
         2
        
        
         ∗
        
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         τ
        
       
       
         \log _{10} \sigma_{R R W}(\tau)=\log _{10}(K / \sqrt{3})+1 / 2 * \log _{10} \tau 
       
      
     log10σRRW(τ)=log10(K/3)+1/2∗log10τ零偏不稳定性 
    
     
      
       
        B
       
      
      
       B
      
     
    B 满足下式
 
     
      
       
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         
          σ
         
         
          
           B
          
          
           I
          
         
        
        
         (
        
        
         τ
        
        
         )
        
        
         =
        
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         (
        
        
         2
        
        
         B
        
        
         /
        
        
         3
        
        
         )
        
       
       
         \log _{10} \sigma_{B I}(\tau)=\log _{10}(2 B / 3) 
       
      
     log10σBI(τ)=log10(2B/3)速率斜坡 
    
     
      
       
        R
       
      
      
       R
      
     
    R 满足下式
 
     
      
       
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         
          σ
         
         
          
           R
          
          
           R
          
         
        
        
         (
        
        
         τ
        
        
         )
        
        
         =
        
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         (
        
        
         R
        
        
         /
        
        
         
          2
         
        
        
         )
        
        
         +
        
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         τ
        
       
       
         \log _{10} \sigma_{R R}(\tau)=\log _{10}(R / \sqrt{2})+\log _{10} \tau 
       
      
     log10σRR(τ)=log10(R/2)+log10τ以上公式中,
     
      
       
        
         τ
        
       
       
        \tau
       
      
     τ 为时间间隔。
根据以上公式分析,可知曲线的形状如下:
 
 即各随机噪声对应的斜率分别为 -1, -1/2, 0, 1/2, 1(即上面的
     
      
       
        
         −
        
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         τ
        
       
       
        -\log _{10} \tau
       
      
     −log10τ、
     
      
       
        
         −
        
        
         1
        
        
         /
        
        
         2
        
        
         ∗
        
        
         
          
           log
          
          
           
          
         
         
          10
         
        
        
         τ
        
       
       
        -1 / 2 *\log _{10} \tau
       
      
     −1/2∗log10τ…),找到曲线后,方程就可以求出来了(也就是𝑄、𝑁、𝐾、𝐵、𝑅)
同时,令 
    
     
      
       
        τ
       
       
        =
       
       
        1
       
      
      
       \tau=1
      
     
    τ=1 ,则 
    
     
      
       
        
         
          log
         
         
          
         
        
        
         10
        
       
       
        (
       
       
        τ
       
       
        )
       
       
        =
       
       
        0
       
      
      
       \log _{10}(\tau)=0
      
     
    log10(τ)=0
 其含义是求曲线与 
    
     
      
       
        τ
       
       
        =
       
       
        1
       
      
      
       \tau=1
      
     
    τ=1 的交点,此时有:
| 噪声类型 | 与 τ \tau τ 的交点 | 
|---|---|
| 量化噪声 | 3 Q \sqrt{3}Q 3Q | 
| 角度随机游走 | N N N | 
| 角速率游走 | K / 3 K/\sqrt{3} K/3 | 
| 零偏不稳定性 | 2 B / 3 2B/3 2B/3 | 
| 速率斜坡 | R / 2 R/\sqrt{2} R/2 | 
此时可容易地求出 𝑄、𝑁、𝐾、𝐵、𝑅
现在来说说怎么使用这些误差:
 开源代码:https://github.com/gaowenliang/imu_utils
-  P1:五个误差全用么? 
 不全用,这五个误差更多的是,再生产器件时,知道以哪几个误差为主,来改进生产。但假如是用户,我现在的主要目标是做融合,那么再实际过程中五项误差不全是需要关心的了。
 主要关心的有以下两个:用法(以陀螺仪为例): - 角度随机游走,在融合时作为陀螺仪的噪声使用。(有时也以零偏不稳定性当做噪声,因为很多手册里面都不提供角度随机游走,而零偏不稳定性是必须会给的),对应的是卡尔曼滤波里面的 Q Q Q
- 角速度随机游走,作为陀螺仪微分项中的噪声。(详细内容在介绍融合时介绍)
 
注意:
 1)其他误差项,仅起到了解器件精度水平的作用;
 2)实际融合时,Allan分析的结果,只是作为初值使用,需要在此基础上调参。
 
零偏重复性:之前的几个误差都被计算出来了,但是可以看到所有的模型都在估计一个bias。那么为什么需要估计一个bias出来而不能提前估计出来一直用呢?就是因为零偏重复性的问题,它在每一次上电的时候都不一样。假如我的器件,零偏不稳定性是5°/h,那么它的零偏重复性可能达到500°/h,也就是说bias上面有一个每小时500°的值,而这个值是事先测不出来的,这么大的误差,必然是需要在线估计的。(这概念挺重要)
3. 惯性器件内参标定
内参标定是惯性器件里面非常核心的一个环节,虽然大家在实践过程中可能不需要做这个东西,因为买一个IMU模块,大多数情况下都给标好了。但是这方面的技能还是需要掌握的。
3.1 惯性器件内参误差模型
3.1.1 零偏
误差解释: 陀螺仪或加速度计输出中的常值偏移,即常说的 bias。(注意陀螺仪和加速度计都有一个)
 误差特性: 由于零偏存在不稳定性,因此零偏并不是固定不变的。
 解决办法: 实际使用中,只能一段时间内近似为常值。
 (在多数情况下可以认为是一个常值,在前面说误差分析时,说零偏有随机游走、每次上电还有零偏重复性这类的问题。但是不管怎样,在一次通电的很短的时间内,可以将它认为是一个常值来用,这样可以简化模型,不把模型搞得太复杂。)
加速度计的零偏表示为:
 
     
      
       
        
         
          b
         
         
          a
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               b
              
              
               
                a
               
               
                x
               
              
             
            
           
           
            
             
              
               b
              
              
               
                a
               
               
                y
               
              
             
            
           
           
            
             
              
               b
              
              
               
                a
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         b_a=\left[\begin{array}{lll} b_{a x} & b_{a y} & b_{a z} \end{array}\right] 
       
      
     ba=[baxbaybaz]陀螺仪的零偏表示为:
 
     
      
       
        
         
          b
         
         
          g
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               b
              
              
               
                g
               
               
                x
               
              
             
            
           
           
            
             
              
               b
              
              
               
                g
               
               
                y
               
              
             
            
           
           
            
             
              
               b
              
              
               
                g
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         b_g=\left[\begin{array}{lll} b_{g x} & b_{g y} & b_{g z} \end{array}\right] 
       
      
     bg=[bgxbgybgz]
3.1.2 刻度系数误差
误差解释: 器件的输出往往为脉冲值或模数转换得到的值,需要乘以一个刻度系数才能转换成角速度或加速度值,若该系数不准,便存在刻度系数误差。
 误差特性: 不一定是常值,它会随着输入大小的不同而发生变化,这个就是标度因数的非线性。
 解决办法: 如果非线性程度比较大,则需要在标定之前先拟合该非线性曲线,并补偿成线性再去做标定。
 (假设有
     
      
       
        
         x
        
        
         ,
        
        
         y
        
        
         ,
        
        
         z
        
       
       
        x, y, z
       
      
     x,y,z三个轴,绕
     
      
       
        
         z
        
       
       
        z
       
      
     z轴旋转 10°/s,在实际测量的时候,会发现
     
      
       
        
         z
        
       
       
        z
       
      
     z输出的角速度不是 10°/s,可能是 9.9°/s,也就是说上面有一个 0.1°/s 的误差。这时在旋转的时候,要在上面乘上一个比例因子,这个比例因子就是
     
      
       
        
         K
        
        
         =
        
        
         
          10
         
         
          9.9
         
        
       
       
        K=\frac{10}{9.9}
       
      
     K=9.910,最后补偿过的角速度才是真实的角速度结果。每个轴上都有一个这样比例系数的补偿因子,所以建成的是一个对角矩阵的形式,与
     
      
       
        
         [
        
        
         
          
           
            
             x
            
           
          
         
         
          
           
            
             y
            
           
          
         
         
          
           
            
             z
            
           
          
         
        
        
         ]
        
       
       
        \left[\begin{array}{lll} x \\ y \\ z \end{array}\right]
       
      
     
              xyz
              相乘。)
关于拟合:输入 10°/s 时得到一个角速度输出,20°/s、30°/s 时都能得到一个角速度输出值。但是比例因子不一定是相同的,在 10°/s 时有一个数,在 20°/s 时可能就是另外一个数了。这里有两种方法处理:
- 10°/s、20°/s、30°/s 均得到一个点,拟合出一个二次曲线。这样是可以的,但是很多时候标定不是单参数的标定-----它与bias和安装误差都是耦合在一起的,也就是说拟合的结果里面有其他误差的耦合系数。
- 另一种办法是,仍然是拟合,但是拟合的时候只拟合它的趋势项,比如说它二次曲线的弯曲程度是什么样子的。相当于是补偿这个二次曲线后,变成一个一次。这个一次曲线和真实的一次曲线可能有一个偏移量的差异,这个没有关系。只有它变成了一次曲线,相当于是仍然变成了一个常值。也就是说,我们把二次曲线,先补偿一下变成一次曲线,然后我们再去标一次曲线的平移量就可以了。(工程中是比较复杂的,但实际中,经常就当一次曲线搞就行了。绝大多数情况还是一个线性的,如果出现非线性,再按照这个方法来)
加速度计的标度因数,表示如下
 
     
      
       
        
         
          K
         
         
          a
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               K
              
              
               
                a
               
               
                x
               
              
             
            
           
           
            
             
            
           
           
            
             
            
           
          
          
           
            
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                y
               
              
             
            
           
           
            
             
            
           
          
          
           
            
             
            
           
           
            
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         K_a=\left[\begin{array}{lll} K_{a x} & & \\ & K_{a y} & \\ & & K_{a z} \end{array}\right] 
       
      
     Ka=
              KaxKayKaz
              陀螺仪的标度因数,表示为
 
     
      
       
        
         
          K
         
         
          g
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               K
              
              
               
                g
               
               
                x
               
              
             
            
           
           
            
             
            
           
           
            
             
            
           
          
          
           
            
             
            
           
           
            
             
              
               K
              
              
               
                g
               
               
                y
               
              
             
            
           
           
            
             
            
           
          
          
           
            
             
            
           
           
            
             
            
           
           
            
             
              
               K
              
              
               
                g
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         K_g=\left[\begin{array}{lll} K_{g x} & & \\ & K_{g y} & \\ & & K_{g z} \end{array}\right] 
       
      
     Kg=
              KgxKgyKgz
              
3.1.3 安装误差
误差解释: 如下图所示,b坐标系是正交的imu坐标系,g坐标系的三个轴是分别对应三个陀螺仪。由于加工工艺原因,陀螺仪的三个轴并不正交,而且和b坐标系的轴不重合,二者之间的偏差即为安装误差。
 误差特性: 实际系统中,由于硬件结构受温度影响,安装误差也会随温度发生变化。
 解决办法: 在不同温度下做标定,补偿温度变化量。
  (比方说绕
     
      
       
        
         z
        
       
       
        z
       
      
     z轴旋转,理论上其他轴是没有角速度输出的。但是有一个问题,如果
     
      
       
        
         x
        
       
       
        x
       
      
     x与
     
      
       
        
         z
        
       
       
        z
       
      
     z轴不是正交的,比如正交是
     
      
       
        
         90
        
        
         °
        
       
       
        90°
       
      
     90°,而它俩是
     
      
       
        
         89.9
        
        
         °
        
       
       
        89.9°
       
      
     89.9°,会造成一个现象,即绕
     
      
       
        
         z
        
       
       
        z
       
      
     z旋转的时候,
     
      
       
        
         x
        
       
       
        x
       
      
     x上就有了角速度输出了,因为它上面因为不完全垂直而有分量了。)
(比方说绕
     
      
       
        
         z
        
       
       
        z
       
      
     z轴旋转,理论上其他轴是没有角速度输出的。但是有一个问题,如果
     
      
       
        
         x
        
       
       
        x
       
      
     x与
     
      
       
        
         z
        
       
       
        z
       
      
     z轴不是正交的,比如正交是
     
      
       
        
         90
        
        
         °
        
       
       
        90°
       
      
     90°,而它俩是
     
      
       
        
         89.9
        
        
         °
        
       
       
        89.9°
       
      
     89.9°,会造成一个现象,即绕
     
      
       
        
         z
        
       
       
        z
       
      
     z旋转的时候,
     
      
       
        
         x
        
       
       
        x
       
      
     x上就有了角速度输出了,因为它上面因为不完全垂直而有分量了。)
因为
     
      
       
        
         z
        
       
       
        z
       
      
     z在
     
      
       
        
         x
        
       
       
        x
       
      
     x、
     
      
       
        
         y
        
       
       
        y
       
      
     y方向上有误差;因为
     
      
       
        
         y
        
       
       
        y
       
      
     y在
     
      
       
        
         x
        
       
       
        x
       
      
     x、
     
      
       
        
         z
        
       
       
        z
       
      
     z方向上有误差;因为
     
      
       
        
         x
        
       
       
        x
       
      
     x在
     
      
       
        
         y
        
       
       
        y
       
      
     y、
     
      
       
        
         z
        
       
       
        z
       
      
     z方向上有误差,总共有六个误差量。
 陀螺仪的安装误差,表示如下
 
     
      
       
        
         
          S
         
         
          g
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              0
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                x
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                x
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                g
               
               
                y
               
               
                x
               
              
             
            
           
           
            
             
              0
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                y
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                g
               
               
                z
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                z
               
               
                y
               
              
             
            
           
           
            
             
              0
             
            
           
          
         
         
          ]
         
        
       
       
         S_g=\left[\begin{array}{ccc} 0 & S_{g x y} & S_{g x z} \\ S_{g y x} & 0 & S_{g y z} \\ S_{g z x} & S_{g z y} & 0 \end{array}\right] 
       
      
     Sg=
              0SgyxSgzxSgxy0SgzySgxzSgyz0
              加速度计的安装误差,表示为
 
     
      
       
        
         
          S
         
         
          a
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              0
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                x
               
              
             
            
           
           
            
             
              0
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                y
               
              
             
            
           
           
            
             
              0
             
            
           
          
         
         
          ]
         
        
       
       
         S_a=\left[\begin{array}{ccc} 0 & S_{a x y} & S_{a x z} \\ S_{a y x} & 0 & S_{a y z} \\ S_{a z x} & S_{a z y} & 0 \end{array}\right] 
       
      
     Sa=
              0SayxSazxSaxy0SazySaxzSayz0
              
3.1.4 惯性器件内参误差模型
利用下面公式(以陀螺仪为例),可以把各项误差综合在一起:
 
     
      
       
        
         W
        
        
         =
        
        
         
          K
         
         
          g
         
        
        
         
          (
         
         
          I
         
         
          +
         
         
          
           S
          
          
           g
          
         
         
          )
         
        
        
         ω
        
        
         +
        
        
         
          b
         
         
          g
         
        
        
         ≈
        
        
         
          (
         
         
          
           K
          
          
           g
          
         
         
          +
         
         
          
           S
          
          
           g
          
         
         
          )
         
        
        
         ω
        
        
         +
        
        
         
          b
         
         
          g
         
        
       
       
         W=K_g\left(I+S_g\right) \omega+b_g \approx\left(K_g+S_g\right) \omega+b_g 
       
      
     W=Kg(I+Sg)ω+bg≈(Kg+Sg)ω+bg
    
     
      
       
        ω
       
      
      
       \omega
      
     
    ω为角速度输入,即想求得的理想角速度,真实输入;
    
     
      
       
        W
       
      
      
       W
      
     
    W是角速度的输出,也就是直接在器件上面测量出来的结果。可以看到 
    
     
      
       
        
         K
        
        
         g
        
       
      
      
       K_g
      
     
    Kg 和 
    
     
      
       
        
         S
        
        
         g
        
       
      
      
       S_g
      
     
    Sg 乘在一起了,耦合在一起就很难解耦,这个模型标定的时候就很难标定了,所以要做一个化简,就得到了最右边的样子。核心原因在于
    
     
      
       
        
         K
        
        
         g
        
       
       
        =
       
       
        I
       
       
        +
       
       
        Δ
       
       
        
         K
        
        
         g
        
       
      
      
       K_g=I+\Delta K_g
      
     
    Kg=I+ΔKg,而 
    
     
      
       
        Δ
       
       
        
         K
        
        
         g
        
       
      
      
       \Delta K_g
      
     
    ΔKg 是一个很小的量,
    
     
      
       
        (
       
       
        I
       
       
        +
       
       
        Δ
       
       
        
         K
        
        
         g
        
       
       
        )
       
       
        (
       
       
        I
       
       
        +
       
       
        
         S
        
        
         g
        
       
       
        )
       
       
        =
       
       
        I
       
       
        +
       
       
        Δ
       
       
        
         K
        
        
         g
        
       
       
        +
       
       
        
         S
        
        
         g
        
       
       
        +
       
       
        Δ
       
       
        
         K
        
        
         g
        
       
       
        
         S
        
        
         g
        
       
      
      
       (I+\Delta K_g)(I+S_g)=I+\Delta K_g+S_g+\Delta K_gS_g
      
     
    (I+ΔKg)(I+Sg)=I+ΔKg+Sg+ΔKgSg,因为
    
     
      
       
        
         S
        
        
         g
        
       
      
      
       S_g
      
     
    Sg也是个小量,
    
     
      
       
        Δ
       
       
        
         K
        
        
         g
        
       
       
        
         S
        
        
         g
        
       
      
      
       \Delta K_gS_g
      
     
    ΔKgSg 可以被忽略。
陀螺仪的输出可以展开为:
 
     
      
       
        
         
          [
         
         
          
           
            
             
              
               W
              
              
               x
              
             
            
           
          
          
           
            
             
              
               W
              
              
               y
              
             
            
           
          
          
           
            
             
              
               W
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               K
              
              
               
                g
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                x
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                x
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                g
               
               
                y
               
               
                x
               
              
             
            
           
           
            
             
              
               K
              
              
               
                g
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                y
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                g
               
               
                z
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                z
               
               
                y
               
              
             
            
           
           
            
             
              
               K
              
              
               
                g
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
        
         
          [
         
         
          
           
            
             
              
               ω
              
              
               x
              
             
            
           
          
          
           
            
             
              
               ω
              
              
               y
              
             
            
           
          
          
           
            
             
              
               ω
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         +
        
        
         
          [
         
         
          
           
            
             
              
               b
              
              
               
                g
               
               
                x
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                g
               
               
                y
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                g
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         \left[\begin{array}{l} W_x \\ W_y \\ W_z \end{array}\right]=\left[\begin{array}{lll} K_{g x} & S_{g x y} & S_{g x z} \\ S_{g y x} & K_{g y} & S_{g y z} \\ S_{g z x} & S_{g z y} & K_{g z} \end{array}\right]\left[\begin{array}{c} \omega_x \\ \omega_y \\ \omega_z \end{array}\right]+\left[\begin{array}{l} b_{g x} \\ b_{g y} \\ b_{g z} \end{array}\right] 
       
      
     
              WxWyWz
              =
              KgxSgyxSgzxSgxyKgySgzySgxzSgyzKgz
              
              ωxωyωz
              +
              bgxbgybgz
              加速度计的输出可以展开为:
 
     
      
       
        
         
          [
         
         
          
           
            
             
              
               A
              
              
               x
              
             
            
           
          
          
           
            
             
              
               A
              
              
               y
              
             
            
           
          
          
           
            
             
              
               A
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               K
              
              
               
                a
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                x
               
              
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                y
               
              
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
        
         
          [
         
         
          
           
            
             
              
               a
              
              
               x
              
             
            
           
          
          
           
            
             
              
               a
              
              
               y
              
             
            
           
          
          
           
            
             
              
               a
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         +
        
        
         
          [
         
         
          
           
            
             
              
               b
              
              
               
                a
               
               
                x
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                a
               
               
                y
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                g
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         \left[\begin{array}{c} A_x \\ A_y \\ A_z \end{array}\right]=\left[\begin{array}{lll} K_{a x} & S_{a x y} & S_{a x z} \\ S_{a y x} & K_{a y} & S_{a y z} \\ S_{a z x} & S_{a z y} & K_{a z} \end{array}\right]\left[\begin{array}{l} a_x \\ a_y \\ a_z \end{array}\right]+\left[\begin{array}{l} b_{a x} \\ b_{a y} \\ b_{g z} \end{array}\right] 
       
      
     
              AxAyAz
              =
              KaxSayxSazxSaxyKaySazySaxzSayzKaz
              
              axayaz
              +
              baxbaybgz
              
3.2 惯性器件内参误差标定
3.2.1 标定方法概述
标定的本质是参数辨识,参数包括陀螺仪和加速度计各自的零偏、刻度系数误差、安装误差。
 辨识方法包括:
 1)解析法或最小二乘
 2)迭代优化方法
 3)滤波(Kalman等)
 常见标定方法与上面辨识方法的对应关系为:
- 基于转台的标定: 解析法、最小二乘;
- 不需要转台的标定: 梯度下降迭代优化;
- 系统级标定:kalman滤波(该方法只适用于高精度惯导,而MEMS本身就属于精度不高的一类,这里不做讲解)。
3.2.2 基于转台的标定
在IMU的误差模型中,陀螺仪和加速度计的误差方程是互相独立的,可分别标定。
以加速度计为例,其误差模型方程为:
 
     
      
       
        
         
          [
         
         
          
           
            
             
              
               A
              
              
               x
              
             
            
           
          
          
           
            
             
              
               A
              
              
               y
              
             
            
           
          
          
           
            
             
              
               A
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               K
              
              
               
                a
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                x
               
              
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                y
               
              
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
        
         
          [
         
         
          
           
            
             
              
               a
              
              
               x
              
             
            
           
          
          
           
            
             
              
               a
              
              
               y
              
             
            
           
          
          
           
            
             
              
               a
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         +
        
        
         
          [
         
         
          
           
            
             
              
               b
              
              
               
                a
               
               
                x
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                a
               
               
                y
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                a
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         \left[\begin{array}{c} A_x \\ A_y \\ A_z \end{array}\right]=\left[\begin{array}{lll} K_{a x} & S_{a x y} & S_{a x z} \\ S_{a y x} & K_{a y} & S_{a y z} \\ S_{a z x} & S_{a z y} & K_{a z} \end{array}\right]\left[\begin{array}{l} a_x \\ a_y \\ a_z \end{array}\right]+\left[\begin{array}{l} b_{a x} \\ b_{a y} \\ b_{a z} \end{array}\right] 
       
      
     
              AxAyAz
              =
              KaxSayxSazxSaxyKaySazySaxzSayzKaz
              
              axayaz
              +
              baxbaybaz
              左边
    
     
      
       
        
         A
        
        
         x
        
       
       
        ,
       
       
        
         A
        
        
         y
        
       
       
        ,
       
       
        
         A
        
        
         z
        
       
      
      
       A_x, A_y, A_z
      
     
    Ax,Ay,Az是测量出来的,肯定是已知的;
    
     
      
       
        
         a
        
        
         x
        
       
       
        ,
       
       
        
         a
        
        
         y
        
       
       
        ,
       
       
        
         a
        
        
         z
        
       
      
      
       a_x, a_y, a_z
      
     
    ax,ay,az是输入,标定时也是已知的。误差模型方程是一个包含12个未知参数的方程组,显然方程组没有唯一解。此时,通过改变输入,获得多个不同方程 (大于12个),组成的方程组便可求解参数。
以上就是分立级标定方法的思路,具体求解方法包括解析法和最小二乘法。
该标定方法的核心:通过旋转IMU,改变其输入构造方程组,并且每个位置对应的加速度输入和角速度输入都必须是已知的。
构建方程组时,不仅要方程组数量足够,而且要能够使误差参数可解,即系数矩阵可逆。
为了满足这一点,常见的转位方案有六位置、八位置、十二位置等。
在实际使用时,通过判断系数矩阵是否满秩便可判断,理论上,只要转位方案能满足这一条件,就可以使用。
 
3.2.2.1 加速度计标定
3.2.2.1.1 解析法:
当IMU水平向上放置时,得:
 
     
      
       
        
         {
        
        
         
          
           
            
             
              
               a
              
              
               x
              
             
             
              =
             
             
              0
             
            
           
          
         
         
          
           
            
             
              
               a
              
              
               y
              
             
             
              =
             
             
              0
             
            
           
          
         
         
          
           
            
             
              
               a
              
              
               z
              
             
             
              =
             
             
              g
             
            
           
          
         
        
       
       
         \left\{\begin{array}{l} a_x=0 \\ a_y=0 \\ a_z=g \end{array}\right. 
       
      
     ⎩
              ⎨
              ⎧ax=0ay=0az=g其中, 
    
     
      
       
        g
       
      
      
       \mathrm{g}
      
     
    g 为重力加速度。带入加速度计误差模型,
 
     
      
       
        
         
          [
         
         
          
           
            
             
              
               A
              
              
               x
              
             
            
           
          
          
           
            
             
              
               A
              
              
               y
              
             
            
           
          
          
           
            
             
              
               A
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               K
              
              
               
                a
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                x
               
              
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                y
               
              
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
        
         
          [
         
         
          
           
            
             
              
               a
              
              
               x
              
             
            
           
          
          
           
            
             
              
               a
              
              
               y
              
             
            
           
          
          
           
            
             
              
               a
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         +
        
        
         
          [
         
         
          
           
            
             
              
               b
              
              
               
                a
               
               
                x
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                a
               
               
                y
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                a
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         \left[\begin{array}{c} A_x \\ A_y \\ A_z \end{array}\right]=\left[\begin{array}{lll} K_{a x} & S_{a x y} & S_{a x z} \\ S_{a y x} & K_{a y} & S_{a y z} \\ S_{a z x} & S_{a z y} & K_{a z} \end{array}\right]\left[\begin{array}{l} a_x \\ a_y \\ a_z \end{array}\right]+\left[\begin{array}{l} b_{a x} \\ b_{a y} \\ b_{a z} \end{array}\right] 
       
      
     
              AxAyAz
              =
              KaxSayxSazxSaxyKaySazySaxzSayzKaz
              
              axayaz
              +
              baxbaybaz
              可得:
 
     
      
       
        
         {
        
        
         
          
           
            
             
              
               A
              
              
               x
              
             
             
              =
             
             
              
               S
              
              
               
                a
               
               
                x
               
               
                z
               
              
             
             
              ∗
             
             
              g
             
             
              +
             
             
              
               b
              
              
               
                a
               
               
                x
               
              
             
            
           
          
         
         
          
           
            
             
              
               A
              
              
               y
              
             
             
              =
             
             
              
               S
              
              
               
                a
               
               
                y
               
               
                z
               
              
             
             
              ∗
             
             
              g
             
             
              +
             
             
              
               b
              
              
               
                a
               
               
                y
               
              
             
            
           
          
         
         
          
           
            
             
              
               A
              
              
               z
              
             
             
              =
             
             
              
               K
              
              
               
                a
               
               
                z
               
              
             
             
              ∗
             
             
              g
             
             
              +
             
             
              
               b
              
              
               
                a
               
               
                z
               
              
             
            
           
          
         
        
       
       
         \left\{\begin{array}{l} A_x=S_{a x z} * g+b_{a x} \\ A_y=S_{a y z} * g+b_{a y} \\ A_z=K_{a z} * g+b_{a z} \end{array}\right. 
       
      
     ⎩
              ⎨
              ⎧Ax=Saxz∗g+baxAy=Sayz∗g+bayAz=Kaz∗g+baz同理,当IMU水平向下放置时,得:
 
     
      
       
        
         {
        
        
         
          
           
            
             
              
               A
              
              
               x
              
              
               ′
              
             
             
              =
             
             
              −
             
             
              
               S
              
              
               
                a
               
               
                x
               
               
                z
               
              
             
             
              ∗
             
             
              g
             
             
              +
             
             
              
               b
              
              
               
                a
               
               
                x
               
              
             
            
           
          
         
         
          
           
            
             
              
               A
              
              
               y
              
              
               ′
              
             
             
              =
             
             
              −
             
             
              
               S
              
              
               
                a
               
               
                y
               
               
                z
               
              
             
             
              ∗
             
             
              g
             
             
              +
             
             
              
               b
              
              
               
                a
               
               
                y
               
              
             
            
           
          
         
         
          
           
            
             
              
               A
              
              
               z
              
              
               ′
              
             
             
              =
             
             
              −
             
             
              
               K
              
              
               
                a
               
               
                z
               
              
             
             
              ∗
             
             
              g
             
             
              +
             
             
              
               b
              
              
               
                a
               
               
                z
               
              
             
            
           
          
         
        
       
       
         \left\{\begin{array}{l} A_x'=-S_{a x z} * g+b_{a x} \\ A_y'=-S_{a y z} * g+b_{a y} \\ A_z'=-K_{a z} * g+b_{a z} \end{array}\right. 
       
      
     ⎩
              ⎨
              ⎧Ax′=−Saxz∗g+baxAy′=−Sayz∗g+bayAz′=−Kaz∗g+baz联立这两个方程组,便可解出 6 个参数。随后,再次改变 IMU放置方式,可解其他参数。
 并且,由此可以看出,转台需要调平。
3.2.2.1.2 最小二乘法:
加速度计误差模型:
 
     
      
       
        
         
          [
         
         
          
           
            
             
              
               A
              
              
               x
              
             
            
           
          
          
           
            
             
              
               A
              
              
               y
              
             
            
           
          
          
           
            
             
              
               A
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               K
              
              
               
                a
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                x
               
              
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                y
               
              
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
        
         
          [
         
         
          
           
            
             
              
               a
              
              
               x
              
             
            
           
          
          
           
            
             
              
               a
              
              
               y
              
             
            
           
          
          
           
            
             
              
               a
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         +
        
        
         
          [
         
         
          
           
            
             
              
               b
              
              
               
                a
               
               
                x
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                a
               
               
                y
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                a
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         \left[\begin{array}{c} A_x \\ A_y \\ A_z \end{array}\right]=\left[\begin{array}{lll} K_{a x} & S_{a x y} & S_{a x z} \\ S_{a y x} & K_{a y} & S_{a y z} \\ S_{a z x} & S_{a z y} & K_{a z} \end{array}\right]\left[\begin{array}{l} a_x \\ a_y \\ a_z \end{array}\right]+\left[\begin{array}{l} b_{a x} \\ b_{a y} \\ b_{a z} \end{array}\right] 
       
      
     
              AxAyAz
              =
              KaxSayxSazxSaxyKaySazySaxzSayzKaz
              
              axayaz
              +
              baxbaybaz
              可得到:
 
     
      
       
        
         
          [
         
         
          
           
            
             
              
               A
              
              
               x
              
             
            
           
          
          
           
            
             
              
               A
              
              
               y
              
             
            
           
          
          
           
            
             
              
               A
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         =
        
        
         x
        
        
         
          [
         
         
          
           
            
             
              
               K
              
              
               
                a
               
               
                x
               
              
             
            
           
          
          
           
            
             
              
               K
              
              
               
                a
               
               
                y
               
              
             
            
           
          
          
           
            
             
              
               K
              
              
               
                a
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                y
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                x
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                x
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                y
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                x
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                a
               
               
                z
               
               
                y
               
              
             
            
           
          
          
           
            
             
              
               ∇
              
              
               x
              
             
            
           
          
          
           
            
             
              
               ∇
              
              
               y
              
             
            
           
          
          
           
            
             
              
               ∇
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
        
         →
        
        
         y
        
        
         =
        
        
         x
        
        
         θ
        
       
       
         \left[\begin{array}{c} A_x \\ A_y \\ A_z \end{array}\right]=x\left[\begin{array}{c} K_{a x} \\ K_{a y} \\ K_{a z} \\ S_{a x y} \\ S_{a x z} \\ S_{a y x} \\ S_{a y z} \\ S_{a z x} \\ S_{a z y} \\ \nabla_x \\ \nabla_y \\ \nabla_z \end{array}\right] \quad \rightarrow y=x \theta 
       
      
     
              AxAyAz
              =x
              KaxKayKazSaxySaxzSayxSayzSazxSazy∇x∇y∇z
              →y=xθ其中:
 
     
      
       
        
         
          
           
            x
           
          
         
         
          
           
            
            
             =
            
            
             
              [
             
             
              
               
                
                 
                  F
                 
                
               
               
                
                 
                  
                   I
                  
                  
                   
                    3
                   
                   
                    ×
                   
                   
                    3
                   
                  
                 
                
               
              
             
             
              ]
             
            
           
          
         
        
        
         
          
           
            F
           
          
         
         
          
           
            
            
             =
            
            
             
              [
             
             
              
               
                
                 
                  
                   a
                  
                  
                   x
                  
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  
                   a
                  
                  
                   y
                  
                 
                
               
               
                
                 
                  
                   a
                  
                  
                   z
                  
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  0
                 
                
               
              
              
               
                
                 
                  0
                 
                
               
               
                
                 
                  
                   a
                  
                  
                   y
                  
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  
                   a
                  
                  
                   x
                  
                 
                
               
               
                
                 
                  
                   a
                  
                  
                   z
                  
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  0
                 
                
               
              
              
               
                
                 
                  0
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  
                   a
                  
                  
                   z
                  
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  0
                 
                
               
               
                
                 
                  
                   a
                  
                  
                   x
                  
                 
                
               
               
                
                 
                  
                   a
                  
                  
                   y
                  
                 
                
               
              
             
             
              ]
             
            
           
          
         
        
       
       
         \begin{aligned} x & =\left[\begin{array}{ll} F & I_{3 \times 3} \end{array}\right] \\ F & =\left[\begin{array}{ccccccccc} a_x & 0 & 0 & a_y & a_z & 0 & 0 & 0 & 0 \\ 0 & a_y & 0 & 0 & 0 & a_x & a_z & 0 & 0 \\ 0 & 0 & a_z & 0 & 0 & 0 & 0 & a_x & a_y \end{array}\right] \end{aligned} 
       
      
     xF=[FI3×3]=
                      ax000ay000azay00az000ax00az000ax00ay
                      转台在每个位置都可以得到一个方程:
    
     
      
       
        
         y
        
        
         i
        
       
       
        =
       
       
        
         x
        
        
         i
        
       
       
        θ
       
      
      
       y_i=x_i \theta
      
     
    yi=xiθ
所有位置对应的方程联立可得: Y = X θ Y=X \theta Y=Xθ
其中 Y = [ y 0 T y 1 T … y n T ] T X = [ x 0 T x 1 T … x n T ] T Y=\left[\begin{array}{llll}y_0^T & y_1^T & \ldots & y_n^T\end{array}\right]^T \quad X=\left[\begin{array}{llll}x_0^T & x_1^T & \ldots & x_n^T\end{array}\right]^T Y=[y0Ty1T…ynT]TX=[x0Tx1T…xnT]T
经过变形,标定问题变为线性拟合问题,当第 i i i次把IMU朝不同方向放置后,便得到一个方程组。
参数拟合问题等效为最小二乘问题,其解为: θ = ( X T X ) − 1 X T Y \theta=\left(X^T X\right)^{-1} X^T Y θ=(XTX)−1XTY(最小二乘通解),由此便得到标定参数。
3.2.2.2 陀螺仪标定:
3.2.2.2.1 方法思想
转台一般角速度不如角度精度高,因此不是直接以角速度作为真值,而是以积分得到的角度作为真值。
3.2.2.2.2 解析法
求解刻度系数和安装误差:
 首先,计算输出与输入的关系(以绕IMU的
    
     
      
       
        z
       
      
      
       z
      
     
    z轴逆时针旋转为例)
 
     
      
       
        
         
          [
         
         
          
           
            
             
              
               W
              
              
               x
              
             
            
           
          
          
           
            
             
              
               W
              
              
               y
              
             
            
           
          
          
           
            
             
              
               W
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               K
              
              
               
                g
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                x
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                x
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                g
               
               
                y
               
               
                x
               
              
             
            
           
           
            
             
              
               K
              
              
               
                g
               
               
                y
               
              
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                y
               
               
                z
               
              
             
            
           
          
          
           
            
             
              
               S
              
              
               
                g
               
               
                z
               
               
                x
               
              
             
            
           
           
            
             
              
               S
              
              
               
                g
               
               
                z
               
               
                y
               
              
             
            
           
           
            
             
              
               K
              
              
               
                g
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
        
         
          [
         
         
          
           
            
             
              0
             
            
           
          
          
           
            
             
              0
             
            
           
          
          
           
            
             
              ω
             
            
           
          
         
         
          ]
         
        
        
         +
        
        
         
          [
         
         
          
           
            
             
              
               b
              
              
               
                g
               
               
                x
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                g
               
               
                y
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                g
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         \left[\begin{array}{l} W_x \\ W_y \\ W_z \end{array}\right]=\left[\begin{array}{lll} K_{g x} & S_{g x y} & S_{g x z} \\ S_{g y x} & K_{g y} & S_{g y z} \\ S_{g z x} & S_{g z y} & K_{g z} \end{array}\right]\left[\begin{array}{c} 0 \\ 0 \\ \omega \end{array}\right]+\left[\begin{array}{c} b_{g x} \\ b_{g y} \\ b_{g z} \end{array}\right] 
       
      
     
              WxWyWz
              =
              KgxSgyxSgzxSgxyKgySgzySgxzSgyzKgz
              
              00ω
              +
              bgxbgybgz
              展开可得
 
     
      
       
        
         {
        
        
         
          
           
            
             
              
               W
              
              
               x
              
             
             
              =
             
             
              
               S
              
              
               
                g
               
               
                x
               
               
                z
               
              
             
             
              ∗
             
             
              ω
             
             
              +
             
             
              
               b
              
              
               
                g
               
               
                x
               
              
             
            
           
          
         
         
          
           
            
             
              
               W
              
              
               y
              
             
             
              =
             
             
              
               S
              
              
               
                g
               
               
                y
               
               
                z
               
              
             
             
              ∗
             
             
              ω
             
             
              +
             
             
              
               b
              
              
               
                g
               
               
                y
               
              
             
            
           
          
         
         
          
           
            
             
              
               W
              
              
               z
              
             
             
              =
             
             
              
               K
              
              
               
                g
               
               
                z
               
              
             
             
              ∗
             
             
              ω
             
             
              +
             
             
              
               b
              
              
               
                g
               
               
                z
               
              
             
            
           
          
         
        
       
       
         \left\{\begin{array}{l} W_x=S_{g x z} * \omega+b_{g x} \\ W_y=S_{g y z} * \omega+b_{g y} \\ W_z=K_{g z} * \omega+b_{g z} \end{array}\right. 
       
      
     ⎩
              ⎨
              ⎧Wx=Sgxz∗ω+bgxWy=Sgyz∗ω+bgyWz=Kgz∗ω+bgz对等式两侧进行积分
 
     
      
       
        
         {
        
        
         
          
           
            
             
              
               θ
              
              
               
                W
               
               
                x
               
              
             
             
              =
             
             
              
               S
              
              
               
                g
               
               
                x
               
               
                z
               
              
             
             
              ∗
             
             
              
               θ
              
              
               ω
              
             
             
              +
             
             
              
               θ
              
              
               
                b
               
               
                
                 g
                
                
                 x
                
               
              
             
            
           
          
         
         
          
           
            
             
              
               θ
              
              
               
                W
               
               
                y
               
              
             
             
              =
             
             
              
               S
              
              
               
                g
               
               
                y
               
               
                z
               
              
             
             
              ∗
             
             
              
               θ
              
              
               ω
              
             
             
              +
             
             
              
               θ
              
              
               
                b
               
               
                
                 g
                
                
                 y
                
               
              
             
            
           
          
         
         
          
           
            
             
              
               θ
              
              
               
                W
               
               
                z
               
              
             
             
              =
             
             
              
               K
              
              
               
                g
               
               
                z
               
              
             
             
              ∗
             
             
              
               θ
              
              
               ω
              
             
             
              +
             
             
              
               θ
              
              
               
                b
               
               
                
                 g
                
                
                 z
                
               
              
             
            
           
          
         
        
       
       
         \left\{\begin{array}{l} \theta_{W_x}=S_{g x z} * \theta_\omega+\theta_{b_{g x}} \\ \theta_{W_y}=S_{g y z} * \theta_\omega+\theta_{b_{g y}} \\ \theta_{W_z}=K_{g z} * \theta_\omega+\theta_{b_{g z}} \end{array}\right. 
       
      
     ⎩
              ⎨
              ⎧θWx=Sgxz∗θω+θbgxθWy=Sgyz∗θω+θbgyθWz=Kgz∗θω+θbgz绕IMU的z轴顺时针旋转时,同样方法可得,
 
     
      
       
        
         {
        
        
         
          
           
            
             
              
               θ
              
              
               
                W
               
               
                x
               
              
              
               ′
              
             
             
              =
             
             
              −
             
             
              
               S
              
              
               
                g
               
               
                x
               
               
                z
               
              
             
             
              ∗
             
             
              
               θ
              
              
               ω
              
             
             
              +
             
             
              
               θ
              
              
               
                b
               
               
                
                 g
                
                
                 x
                
               
              
             
            
           
          
         
         
          
           
            
             
              
               θ
              
              
               
                W
               
               
                y
               
              
              
               ′
              
             
             
              =
             
             
              −
             
             
              
               S
              
              
               
                g
               
               
                y
               
               
                z
               
              
             
             
              ∗
             
             
              
               θ
              
              
               ω
              
             
             
              +
             
             
              
               θ
              
              
               
                b
               
               
                
                 g
                
                
                 y
                
               
              
             
            
           
          
         
         
          
           
            
             
              
               θ
              
              
               
                W
               
               
                z
               
              
              
               ′
              
             
             
              =
             
             
              −
             
             
              
               K
              
              
               
                g
               
               
                z
               
              
             
             
              ∗
             
             
              
               θ
              
              
               ω
              
             
             
              +
             
             
              
               θ
              
              
               
                b
               
               
                
                 g
                
                
                 z
                
               
              
             
            
           
          
         
        
       
       
         \left\{\begin{array}{l} \theta_{W_x}'=-S_{g x z} * \theta_\omega+\theta_{b_{g x}} \\ \theta_{W_y}'=-S_{g y z} * \theta_\omega+\theta_{b_{g y}} \\ \theta_{W_z}'=-K_{g z} * \theta_\omega+\theta_{b_{g z}} \end{array}\right. 
       
      
     ⎩
              ⎨
              ⎧θWx′=−Sgxz∗θω+θbgxθWy′=−Sgyz∗θω+θbgyθWz′=−Kgz∗θω+θbgz
 正逆时针的两式可以求解出 
    
     
      
       
        
         S
        
        
         
          g
         
         
          x
         
         
          z
         
        
       
       
       
        
         S
        
        
         
          g
         
         
          y
         
         
          z
         
        
       
       
       
        
         K
        
        
         
          q
         
         
          z
         
        
       
      
      
       S_{g x z} \quad S_{g y z} \quad K_{q z}
      
     
    SgxzSgyzKqz
 此处不通过两式求解零偏,因为旋转所用时间偏短,零偏造成的角度输出太小。
求解零偏:
 当转台静止时,可以简单认为陀螺仪输出只有零偏,即(单纯放置着静止不动即可):
 
     
      
       
        
         
          [
         
         
          
           
            
             
              
               W
              
              
               x
              
             
            
           
          
          
           
            
             
              
               W
              
              
               y
              
             
            
           
          
          
           
            
             
              
               W
              
              
               z
              
             
            
           
          
         
         
          ]
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               b
              
              
               
                g
               
               
                x
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                g
               
               
                y
               
              
             
            
           
          
          
           
            
             
              
               b
              
              
               
                g
               
               
                z
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         \left[\begin{array}{l} W_x \\ W_y \\ W_z \end{array}\right]=\left[\begin{array}{l} b_{g x} \\ b_{g y} \\ b_{g z} \end{array}\right] 
       
      
     
              WxWyWz
              =
              bgxbgybgz
              此时采集一段时间内的数据,取平均值,即可得到零偏。
 需要强调的是:
 a. 有时标定需要考虑地球自转角速度的影响,此时模型比较复杂,可自行参考《惯性仪器测试与数据分析》第 10 章。
 b. mems 陀螺仪的零偏重复性极差,因此每次上电都要在线估计零偏,因此离线标定时,零偏标与不标区别不大。
3.2.3 不需要转台的标定
使用转台的方法很好理解、精度也很高,但是问题在于转台很贵,有很多时候是没有转台的。这个时候输入是没有了的----没有很明确的三个轴的输入,但是还是有一个值可以用的,就是重力加速度。也就是说三个加速度计测量出的矢量的和的模,它的值必须和重力加速度值相等,这时候的加速度计才被认为是没有误差的,否则认为是有误差的。
3.2.3.1 整体思路
加速度输入(重力加速度)是已知的,已知值与测量值的差异作为残差,通过优化,估计内参。
 参考资料:
 论文:A Robust and Easy to Implement Method for IMU Calibration without External Equipments

3.2.3.2 内参模型
在定义坐标系时,若令IMU坐标系的 
     
      
       
        
         
          X
         
         
          b
         
        
       
       
        X_b
       
      
     Xb 轴与加速度计的 
     
      
       
        
         
          X
         
         
          a
         
        
       
       
        X_a
       
      
     Xa 轴重合,且 
     
      
       
        
         
          X
         
         
          b
         
        
        
         O
        
        
         
          Y
         
         
          b
         
        
       
       
        X_b O Y_b
       
      
     XbOYb 与 
     
      
       
        
         
          X
         
         
          a
         
        
        
         O
        
        
         
          Y
         
         
          a
         
        
       
       
        X_a O Y_a
       
      
     XaOYa 共面(如下图)(这里说的IMU坐标系是标准的坐标系意思?),则加速度计的安装误差只剩下三个参数。(按照定义方式不同,有些模型中会表示成上三角矩阵)
 新的安装误差矩阵为 
    
     
      
       
        
         S
        
        
         a
        
       
       
        =
       
       
        
         [
        
        
         
          
           
            
             0
            
           
          
          
           
            
             0
            
           
          
          
           
            
             0
            
           
          
         
         
          
           
            
             
              S
             
             
              
               a
              
              
               y
              
              
               x
              
             
            
           
          
          
           
            
             0
            
           
          
          
           
            
             0
            
           
          
         
         
          
           
            
             
              S
             
             
              
               a
              
              
               z
              
              
               x
              
             
            
           
          
          
           
            
             
              S
             
             
              
               a
              
              
               z
              
              
               y
              
             
            
           
          
          
           
            
             0
            
           
          
         
        
        
         ]
        
       
      
      
       S_a=\left[\begin{array}{ccc}0 & 0 & 0 \\ S_{a y x} & 0 & 0 \\ S_{a z x} & S_{a z y} & 0\end{array}\right]
      
     
    Sa=
             0SayxSazx00Sazy000
             
 此时,加速度计内参的待估参数为
 
     
      
       
        
         
          θ
         
         
          
           a
          
          
           c
          
          
           c
          
         
        
        
         =
        
        
         
          [
         
         
          
           S
          
          
           
            a
           
           
            y
           
           
            x
           
          
         
         
          ,
         
         
          
           S
          
          
           
            a
           
           
            z
           
           
            x
           
          
         
         
          ,
         
         
          
           S
          
          
           
            a
           
           
            z
           
           
            y
           
          
         
         
          ,
         
         
          
           K
          
          
           
            a
           
           
            x
           
          
         
         
          ,
         
         
          
           K
          
          
           
            a
           
           
            y
           
          
         
         
          ,
         
         
          
           K
          
          
           
            a
           
           
            z
           
          
         
         
          ,
         
         
          
           b
          
          
           
            g
           
           
            x
           
          
         
         
          ,
         
         
          
           b
          
          
           
            g
           
           
            y
           
          
         
         
          ,
         
         
          
           b
          
          
           
            g
           
           
            z
           
          
         
         
          ]
         
        
       
       
         \boldsymbol{\theta}^{a c c}=\left[S_{a y x}, S_{a z x}, S_{a z y}, K_{a x}, K_{a y}, K_{a z}, b_{g x}, b_{g y}, b_{g z}\right] 
       
      
     θacc=[Sayx,Sazx,Sazy,Kax,Kay,Kaz,bgx,bgy,bgz]陀螺仪的误差模型保持不变,但此处并没有估计陀螺仪零偏,因此陀螺仪内参的待估参数为(因为坐标系定的是和IMU坐标系一致,不能说再定义一个陀螺仪的)
 
     
      
       
        
         
          θ
         
         
          
           g
          
          
           y
          
          
           r
          
          
           o
          
         
        
        
         =
        
        
         
          [
         
         
          
           S
          
          
           
            g
           
           
            x
           
           
            y
           
          
         
         
          ,
         
         
          
           S
          
          
           
            g
           
           
            x
           
           
            z
           
          
         
         
          ,
         
         
          
           S
          
          
           
            g
           
           
            y
           
           
            x
           
          
         
         
          ,
         
         
          
           S
          
          
           
            g
           
           
            y
           
           
            z
           
          
         
         
          ,
         
         
          
           S
          
          
           
            g
           
           
            z
           
           
            x
           
          
         
         
          ,
         
         
          
           S
          
          
           
            g
           
           
            z
           
           
            y
           
          
         
         
          ,
         
         
          
           K
          
          
           
            g
           
           
            x
           
          
         
         
          ,
         
         
          
           K
          
          
           
            g
           
           
            y
           
          
         
         
          ,
         
         
          
           K
          
          
           
            g
           
           
            z
           
          
         
         
          ]
         
        
       
       
         \boldsymbol{\theta}^{g y r o}=\left[S_{g x y}, S_{g x z}, S_{g y x}, S_{g y z}, S_{g z x}, S_{g z y}, K_{g x}, K_{g y}, K_{g z}\right] 
       
      
     θgyro=[Sgxy,Sgxz,Sgyx,Sgyz,Sgzx,Sgzy,Kgx,Kgy,Kgz]
 
3.2.3.3 优化模型–估计加速度计内参
按照内参定义,加速度计输出与输入的关系为
 
     
      
       
        
         A
        
        
         =
        
        
         
          K
         
         
          a
         
        
        
         
          (
         
         
          I
         
         
          +
         
         
          
           S
          
          
           a
          
         
         
          )
         
        
        
         a
        
        
         +
        
        
         
          b
         
         
          a
         
        
       
       
         A=K_a\left(I+S_a\right) a+b_a 
       
      
     A=Ka(I+Sa)a+ba即由测量值可以得到真实值为
 
     
      
       
        
         a
        
        
         =
        
        
         
          
           (
          
          
           I
          
          
           +
          
          
           
            S
           
           
            a
           
          
          
           )
          
         
         
          
           −
          
          
           1
          
         
        
        
         
          K
         
         
          a
         
         
          
           −
          
          
           1
          
         
        
        
         
          (
         
         
          A
         
         
          −
         
         
          
           b
          
          
           a
          
         
         
          )
         
        
       
       
         a=\left(I+S_a\right)^{-1} K_a^{-1}\left(A-b_a\right) 
       
      
     a=(I+Sa)−1Ka−1(A−ba)在求解时,逆运算的存在使模型变得复杂,因此使用以 下方式进行简化
 
     
      
       
        
         
          K
         
         
          a
         
         
          ′
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               K
              
              
               
                a
               
               
                x
               
              
              
               ′
              
             
            
           
           
            
             
            
           
           
            
             
            
           
          
          
           
            
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                y
               
              
              
               ′
              
             
            
           
           
            
             
            
           
          
          
           
            
             
            
           
           
            
             
            
           
           
            
             
              
               K
              
              
               
                a
               
               
                z
               
              
              
               ′
              
             
            
           
          
         
         
          ]
         
        
        
         =
        
        
         
          K
         
         
          a
         
         
          
           −
          
          
           1
          
         
        
        
         =
        
        
         
          [
         
         
          
           
            
             
              
               1
              
              
               
                K
               
               
                
                 a
                
                
                 x
                
               
              
             
            
           
           
            
             
            
           
           
            
             
            
           
          
          
           
            
             
            
           
           
            
             
              
               1
              
              
               
                K
               
               
                
                 a
                
                
                 y
                
               
              
             
            
           
           
            
             
            
           
          
          
           
            
             
            
           
           
            
             
            
           
           
            
             
              
               1
              
              
               
                K
               
               
                
                 a
                
                
                 z
                
               
              
             
            
           
          
         
         
          ]
         
        
       
       
         K_a^{\prime}=\left[\begin{array}{lll} K_{a x}^{\prime} & & \\ & K_{a y}^{\prime} & \\ & & K_{a z}^{\prime} \end{array}\right]=K_a^{-1}=\left[\begin{array}{ccc} \frac{1}{K_{a x}} & & \\ & \frac{1}{K_{a y}} & \\ & & \frac{1}{K_{a z}} \end{array}\right] 
       
      
     Ka′=
              Kax′Kay′Kaz′
              =Ka−1=
              Kax1Kay1Kaz1
              
     
      
       
        
         
          
           
          
         
         
          
           
            
            
             
              
               (
              
              
               I
              
              
               +
              
              
               
                S
               
               
                a
               
              
              
               )
              
             
             
              
               −
              
              
               1
              
             
            
            
             ≈
            
            
             I
            
            
             −
            
            
             
              S
             
             
              a
             
            
           
          
         
        
        
         
          
           
          
         
         
          
           
            
            
             a
            
            
             =
            
            
             
              (
             
             
              
               
                
                 
                  I
                 
                
               
               
                
                 
                  
                   
                    S
                   
                   
                    a
                   
                  
                  
                   )
                  
                 
                
               
              
             
             
              
               K
              
              
               a
              
              
               ′
              
             
             
              
               (
              
              
               
                
                 
                  
                   Λ
                  
                 
                
                
                 
                  
                   
                    b
                   
                   
                    a
                   
                  
                 
                
               
              
              
               )
              
             
            
           
          
         
        
       
       
         \begin{aligned} & \left(I+S_a\right)^{-1} \approx I-S_a \\ & a=\left(\begin{array}{ll} I & \left.S_a\right) \end{array} K_a^{\prime}\left(\begin{array}{ll} \Lambda & b_a \end{array}\right)\right. \end{aligned} 
       
      
     (I+Sa)−1≈I−Saa=(ISa)Ka′(Λba)当imu静止时,输入只有重力加速度。
 把加速度计矢量定义为 
    
     
      
       
        g
       
       
        =
       
       
        
         
          [
         
         
          
           
            
             
              0
             
            
           
           
            
             
              0
             
            
           
           
            
             
              
               g
              
              
               0
              
             
            
           
          
         
         
          ]
         
        
        
         T
        
       
      
      
       \boldsymbol{g}=\left[\begin{array}{lll}0 & 0 & g_0\end{array}\right]^T
      
     
    g=[00g0]T ,其中 
    
     
      
       
        
         g
        
        
         0
        
       
      
      
       g_0
      
     
    g0 为 当地重力大小。
 当内参完全准确时,有 
    
     
      
       
        ∥
       
       
        g
       
       
        
         ∥
        
        
         2
        
       
       
        =
       
       
        ∥
       
       
        a
       
       
        
         ∥
        
        
         2
        
       
      
      
       \|\boldsymbol{g}\|^2=\|\boldsymbol{a}\|^2
      
     
    ∥g∥2=∥a∥2
当内参存在误差时,可写出残差函数为:
 
     
      
       
        
         f
        
        
         
          (
         
         
          
           θ
          
          
           
            a
           
           
            c
           
           
            c
           
          
         
         
          )
         
        
        
         =
        
        
         ∥
        
        
         g
        
        
         
          ∥
         
         
          2
         
        
        
         −
        
        
         ∥
        
        
         a
        
        
         
          ∥
         
         
          2
         
        
       
       
         f\left(\theta^{a c c}\right)=\|\boldsymbol{g}\|^2-\|\boldsymbol{a}\|^2 
       
      
     f(θacc)=∥g∥2−∥a∥2根据高斯牛顿的流程,有此残差函数便可以推导雅可比 (推导留作作业),通过优化求解出内参。
需要注意的是,一个静止位置的测量不能完全求解出参 数,需要按不同的姿态,在多个位置静止(如右图黑色曲 线所包含的时间段),所有位置的测量放在同一个优化任 务中,才能求解全部参数。
 
3.2.3.4 优化模型–估计陀螺仪内参
陀螺仪内参估计在加速度计标定完成后进行,因此认为此时加速度计无误差。
 令 
    
     
      
       
        
         u
        
        
         
          a
         
         
          ,
         
         
          k
         
        
       
      
      
       \boldsymbol{u}_{a, k}
      
     
    ua,k 代表在第 
    
     
      
       
        k
       
      
      
       \mathrm{k}
      
     
    k 个静止位置时,三个加速度计的输出构成的矢量在IMU坐标系下的表示,即
 
     
      
       
        
         
          u
         
         
          
           a
          
          
           ,
          
          
           k
          
         
        
        
         =
        
        
         
          R
         
         
          
           
            b
           
           
            k
           
          
          
           w
          
         
        
        
         g
        
       
       
         \boldsymbol{u}_{a, k}=R_{b_k w} \boldsymbol{g} 
       
      
     ua,k=Rbkwg其中 
    
     
      
       
        
         R
        
        
         
          
           b
          
          
           k
          
         
         
          w
         
        
       
      
      
       R_{b_k w}
      
     
    Rbkw 表示从世界坐标系(w系,和水平面平行且不随IMU旋转而旋转的坐标系)到第 
    
     
      
       
        k
       
      
      
       \mathrm{k}
      
     
    k 个位置对应的IMU坐标系的转换矩阵。
 注意: 并不需要已知 
    
     
      
       
        
         R
        
        
         
          
           b
          
          
           k
          
         
         
          w
         
        
       
      
      
       R_{b_k w}
      
     
    Rbkw ,因为 
    
     
      
       
        
         u
        
        
         
          a
         
         
          ,
         
         
          k
         
        
       
      
      
       \boldsymbol{u}_{a, k}
      
     
    ua,k 是直接测量的。
在第 
    
     
      
       
        k
       
       
        +
       
       
        1
       
      
      
       k+1
      
     
    k+1 个位置时,同样有
 
     
      
       
        
         
          u
         
         
          
           a
          
          
           ,
          
          
           k
          
          
           +
          
          
           1
          
         
        
        
         =
        
        
         
          R
         
         
          
           
            b
           
           
            
             k
            
            
             +
            
            
             1
            
           
          
          
           w
          
         
        
        
         g
        
       
       
         \boldsymbol{u}_{a, k+1}=R_{b_{k+1} w} \boldsymbol{g} 
       
      
     ua,k+1=Rbk+1wg从第 
    
     
      
       
        k
       
      
      
       \mathrm{k}
      
     
    k 个位置,到第 
    
     
      
       
        k
       
       
        +
       
       
        1
       
      
      
       \mathrm{k}+1
      
     
    k+1 个位置,可以根据陀螺仪测量计算出两个位置之间的相对旋转 
    
     
      
       
        
         R
        
        
         
          b
         
         
          
           k
          
          
           +
          
          
           1
          
         
        
       
       
        
         b
        
        
         k
        
       
      
      
       R_{b_{k+1}} b_k
      
     
    Rbk+1bk,根据该旋转可以算出一个第 
    
     
      
       
        k
       
       
        +
       
       
        1
       
      
      
       \mathrm{k}+1
      
     
    k+1 位置加速度计输出矢量的推测值:
 
     
      
       
        
         
          u
         
         
          
           g
          
          
           ,
          
          
           k
          
          
           +
          
          
           1
          
         
        
        
         =
        
        
         
          R
         
         
          
           
            b
           
           
            
             k
            
            
             +
            
            
             1
            
           
          
          
           
            b
           
           
            k
           
          
         
        
        
         
          u
         
         
          
           a
          
          
           ,
          
          
           k
          
         
        
       
       
         \boldsymbol{u}_{g, k+1}=R_{b_{k+1} b_k} \boldsymbol{u}_{a, k} 
       
      
     ug,k+1=Rbk+1bkua,k可见,推测值的误差就体现了陀螺仪的误差,因此可以根据推测值与观测值构建残差函数:
 
     
      
       
        
         f
        
        
         
          (
         
         
          
           θ
          
          
           gyro 
          
         
         
          )
         
        
        
         =
        
        
         
          u
         
         
          
           a
          
          
           ,
          
          
           k
          
          
           +
          
          
           1
          
         
        
        
         −
        
        
         
          u
         
         
          
           g
          
          
           ,
          
          
           k
          
          
           +
          
          
           1
          
         
        
       
       
         f\left(\theta^{\text {gyro }}\right)=\boldsymbol{u}_{a, k+1}-\boldsymbol{u}_{g, k+1} 
       
      
     f(θgyro )=ua,k+1−ug,k+1雅可比推导需要用到IMU解算知识,本章不作要求。
3.2.3.4 标定方法比较
- 基于转台的标定精度较高,但标定成本高;
- 不依赖转台的标定精度差,但成本低、效率高,对一般MEMS的标定需求已经足够。
4. 惯性器件温补
现在来说一说惯性器件的温补, 温补的影响很大,但是很多时候不需要自己做,因为厂商给做好了,买了厂商的东西,输出结果自然是给补偿好的。
温补的本质是系统辨识,既要找出合适的物理模型,又要识别物理模型的参数。(说白了就是不同温度能得到不同的bias,问题就在于,怎样得到这个bias)
理论上讲,对于MEMS,静止情况下,陀螺的输出本身就是bias,这里不做区分。只是说在高精度的情况下,静止情况下的输出还包含别的因素,所以它不等于bias,但是对于低精度来讲无所谓,可以当成bias来看待。
4.1 物理模型辨识
和温度相关的变量为 
    
     
      
       
        T
       
      
      
       T
      
     
    T 和 
    
     
      
       
        Δ
       
       
        T
       
      
      
       \Delta T
      
     
    ΔT ,分别代表温度、变温率(表示温度变化的快慢)(注意,不仅和温度点相关,还跟温度变化的速度是相关的),温补要做的是识别出器件 bias(B)和这两者的关系:
 
     
      
       
        
         B
        
        
         =
        
        
         f
        
        
         (
        
        
         T
        
        
         ,
        
        
         Δ
        
        
         T
        
        
         )
        
       
       
         B=f(T, \Delta T) 
       
      
     B=f(T,ΔT)而
    
     
      
       
        f
       
      
      
       f
      
     
    f的具体表达多数是靠尝试。
常见的模型为
 
     
      
       
        
         
          
           
            
             B
            
            
             =
            
           
          
         
         
          
           
            
            
             a
            
            
             ∗
            
            
             
              T
             
             
              3
             
            
            
             +
            
            
             b
            
            
             ∗
            
            
             
              T
             
             
              2
             
            
            
             +
            
            
             c
            
            
             ∗
            
            
             T
            
            
             +
            
           
          
         
        
        
         
          
           
          
         
         
          
           
            
            
             e
            
            
             ∗
            
            
             Δ
            
            
             
              T
             
             
              2
             
            
            
             +
            
            
             f
            
            
             ∗
            
            
             Δ
            
            
             T
            
            
             +
            
           
          
         
        
        
         
          
           
          
         
         
          
           
            
            
             g
            
            
             ∗
            
            
             T
            
            
             ∗
            
            
             Δ
            
            
             T
            
            
             +
            
            
             h
            
           
          
         
        
       
       
         \begin{aligned} B= & a * T^3+b * T^2+c * T+ \\ & e * \Delta T^2+f * \Delta T+ \\ & g * T * \Delta T+h \end{aligned} 
       
      
     B=a∗T3+b∗T2+c∗T+e∗ΔT2+f∗ΔT+g∗T∗ΔT+h实际使用时,可根据情况在此基础上做减法,去掉一些高阶项。(曲线是二次三次四次都有可能)
4.2 参数辨识
在选定的物理模型基础上做最小二乘曲线拟合,与分立级标定时所用最小二乘原理相同。
4.3 其他改进方法
-  分段拟合 
 bias随温度变化曲线多是不规则曲线,无法用一个完整的曲线模型做拟合。
 常见的方法是按照温度把曲线分成多个区间,每个区间单独拟合一个模型。
-  基于神经网络 
 温补最大的问题是物理模型未知,而神经网络不需要已知物理模型,理论上比较合理。
 但是实际使用中,由于很多处理器只是简单的嵌入式板子,运算能力有限,而且多项式方法已经能解决大部分问题,因此这种方法在实际使用中用的不多。(文献有,实际用的不多)
4.4 关于温补的讨论
- 温补在器件误差补偿中是最重要的,但也是最“没有技术含量”的。
- 温变的本质是和器件整体温度场相关,而不只是和局部温度点相关,但温度传感器只能测量后者。
- 永远无法找到完全准确的温补模型,但是却能知道什么是够用的。自动控制领域有一句名言 “All models are wrong, but some are useful“。


















