IMU误差分析与内参标定
目录
注:本篇笔记的主体内容来源于对深蓝学院《多传感器融合定位》课程的学习,推荐有一定基础的SLAM初学者学习该课程。
1. 误差组成
IMU误差通常分为“信号误差”、“内参误差”两类进行分析和处理。信号误差主要关注传感器输出信号中的随机噪声和不稳定性特性。具体包括:
(1)量化噪音:模拟信号通过 AD (模数转换) 采集变为离散信号时产生的精度损失。AD 转换的步长越小,量化噪声越小 。
(2)角度/速度随机游走:陀螺仪/加速度计输出中包含的宽带白噪声成分 。
(3)零偏不稳定性:零偏(Bias)在一定范围内随时间的缓慢随机漂移 。其变化无法预估,只能用概率区间描述。时间越长,漂移的可能区间越大 。
(4)速率斜坡:一种趋势性误差,而非随机误差 。通常由环境因素(如温度)引起零位变化,可以通过温补来消除 。
(5)零偏重复性:多次启动时,零偏不相等产生的重复性误差 。多次启动时,零偏不相等产生的重复性误差 。
这些误差通常难以用确定的解析模型消除,而是通过概率模型(如Allan方差分析)来描述其统计特性。
内参误差主要关注传感器内部物理结构或电路导致的确定性误差,包括零偏(常值)、刻度系数误差、安装误差等 。这些误差可以通过建立确定的数学模型(误差方程)进行标定和补偿 。
内参误差如零偏直接参与惯性解算实际的加减乘除计算,而信号误差主要用于决定测量值的权重。
在预积分过程,信号误差会决定信息矩阵的大小,如果 IMU 信号误差很大(白噪声方差大),信息矩阵就会很小,优化器在调整位姿时就会更不信任这段 IMU 预积分的结果,而更倾向于相信视觉或激光雷达的观测。
在基于滤波的系统中,信号误差的影响更加直接,它构成了过程噪声协方差矩阵:

其与观测噪音协方差矩阵共同决定了卡尔曼增益
,从而决定系统是相信预测还是相信观测。
2.内参误差模型
(1)零偏。陀螺仪或加速度计输出中的常值偏移。
加速度计零偏:
![]()
陀螺仪零偏:
![]()
(2)刻度系数误差。器件的输出往往为脉冲值或模数转换得到的值,需要乘以一个刻度系数才能转换成角速度或加速度值,若该系数不准,便存在刻度系数误差。
加速度计的刻度系数:
陀螺仪的刻度系数:
(3)安装误差。如下图所示,b坐标系是正交的imu坐标系,g坐标系的三个轴是分别对应三个陀螺仪。由于加工工艺原因,陀螺仪的三个轴并不正交,而且和b坐标系的轴不重合,二者之间的偏差即为安装误差。

内参模型的建立应该是基于正交的b系的,比如一个沿着zb轴方向的加速度,其会对xa轴、ya轴、za轴造成分量:
、
、
。其他轴类似,则加速度计的安装误差矩阵:
则各项误差综合在一起后:
其中a为传感器的理想输入(真值),A为传感器的读数。因为Sa的对角线元素大小近似为1,并且在标定中对角线的余弦因子会被刻度系数K吸收(K近似单位矩阵),所以加速度计的安装误差矩阵可以简化为:
陀螺仪的安装误差矩阵类似:
则可以得到误差模型:
又因为K和S在上等式中会耦合在一起,要对其进行解耦:
令,则:
忽略二阶小量:
则加速度计的输出可以展开为:

陀螺仪的输出可以展开为:

3.内参标定
3.1 基于转台的标定(正向建模)
在IMU的误差模型中,陀螺仪和加速度计的误差方程是互相独立的,可分别标定。以加速度计为例,其误差模型方程为:

误差模型方程是一个包含12个未知参数的方程组,显然方程组没有唯一解。此时,通过改变输入,获得多个不同方程(大于12个),组成的方程组便可求解参数。
基于转台的标定方法将IMU固定在转台上,通过旋转IMU,改变其输入构造方程组。因为转台很精准,所以每个位置对应的加速度输入和角速度输入都是已知的,并且有IMU的读数作为输出。因此可以依赖转台提供的真值输入与IMU的实际输出来解算出模型参数。
加速度计标定:
(1)解析法:
当IMU水平向上放置时,得:

其中,g为重力加速度。代入入加速度计误差模型,可得:

同理,当IMU水平向下放置时,得:

联立这两个方程组,便可解出6个参数。随后,再次改变IMU放置方式,可解其他参数。
(2)线性最小二乘法:
加速度计误差模型可以进行转化:

其中:
![]()

这样就可以直接把所有转台位置的数据罗列起来,构建超定方程组,通过线性最小二乘法求解:
![]()
这里的x对应上图中待求解的θ,A对应上图的输入x,b对应上图的输出y。
正向建模依赖于转台提供的高精度的已知输入a,是拿着答案(真值)找过程(误差参数),既知道输入的大小,还知道方向,能把误差参数“钉”得非常死,解算出的参数非常接近物理真值。
虽然Ka与Sa进行解耦造成了一点微小误差,但内参标定就是一个降低误差的过程(知道输出,根据内参模型反推输入),可以不拘小节。
陀螺仪标定:
(1)解析法:
首先,以绕IMU的z轴逆时针旋转,计算输出与输入的关系:

展开并忽略二阶小量,可得:

对等式两侧进行积分,得:

绕IMU的z轴顺时针旋转时,同样方法可得:

通过式(1) - 式(2)可以求解出、
、
。此处不通过式(1)+式(2)求解零偏,因为旋转所用时间偏短,零偏造成的角度输出太小。
当转台静止时,可以简单认为陀螺仪输出只有零偏,即:

此时采集一段时间内的数据,取平均值,即可得到零偏。(mems 陀螺仪的零偏重复性极差,因此每次上电都要在线估计零偏,因此离线标定时,零偏标与不标区别不大。)
3.2 基于优化的标定(反向建模)
整体思路:加速度输入(重力加速度)是已知的,已知值与测量值的差异作为残差,通过优化,估计内参。
因为使用转台是,必须服从转台的坐标轴定义,所以imu的加速度计和陀螺仪的三轴都有两个误差分量。当不使用转台时,可以简化模型,假设加速度计的X轴就是IMU的X轴,并且加速度计的Y轴处于IMU的X轴与Y轴所处平面内,也就是平面z=0:

从而使加速度计的安装误差矩阵只剩下下三角阵,陀螺仪的安装误差矩阵保持原样:

(1)加速度计标定
正向建模依赖于转台提供的高精度的已知输入,比如知道重力加速度的大小,以及此时重力加速度在三轴上的分量各自大小。在没有转台的情况下,我们手持设备或静止放置,不能准确获取设备姿态,所以不知道此时真实的加速度在x,y,z轴上的具体分量,但我们已知一个物理公理:静止状态下,加速度的模长应该等于重力加速度g。
所以基于优化模型的标定建立一个逆向公式,描述“如果传感器输出了A,经过误差参数的修正,真实的输入a应该是多少”。也就是:

其中,再简化模型:

则,反向方程为:
![]()
标定时,令IMU静止,则输入只有重力加速度。把加速度计矢量定义为:
其中,g0为当地重力加速度大小。那么当内参完全准确是,有:
当内参存在误差时,可写出残差函数为:
(2)陀螺仪标定
陀螺仪内参估计在加速度计标定完成后进行,因此认为此时加速度计无误差。令代表在第 k 个静止位置时,三个加速度计的输出构成的矢量在IMU坐标系下的表示,即:
其中表示从世界坐标系(w系,和水平面平行且不随IMU旋转而旋转的坐标系)到第 k 个位置对应的IMU坐标系的转换矩阵。
在第 k+1 个位置时,同样有测量值:
从第 k 个位置到第 k+1 个位置,可以根据陀螺仪测量计算出两个位置之间的相对旋转,根据该旋转可以算出一个第 k+1 位置加速度计输出矢量的推测值:
可见,推测值的误差就体现了陀螺仪的误差,因此可以根据推测值与观测值构建残差函数:
此时,即可构建并求解优化问题,得到标定好的内参。
4. 加速度计雅可比推导
此时,残差函数为:

根据链式求导法则,推导残差f对Ka,Sa,ba的雅可比:

其中,链式求导的前两项为:

(1)a对ba的偏导比较容易求得:

(2)a对Ka的偏导。由于a是一个3x1的向量,Ka是一个3x3的矩阵,不好直接求偏导,并且Ka中只有主对角线元素有用,所以:
![]()
其中:

则a可以表示为:

在向ceres::Problem添加优化参数时,使用向量形式的Ka:

则a对Ka的偏导可以表示为:

(3)a对Sa的偏导。

由于下三角阵形式的Sa不好求偏导,所以与Ka类似,在向ceres::Problem添加优化参数时,使用向量形式的Sa:

并且,此时显式写出a的组成:


则a为:

a对向量形式Sa的偏导为:

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)