淦VINS-MONO源码 01--IMU的误差模型和标定


在看完orb-slam后,也投了一些实习,发现纯视觉的方案在很多方面都没得到采用,特别是自动驾驶中定位感知方面,基本上是雷达+IMU+相机+GPS等等的多传感器融合,所以接下来的计划会看看vins-mono和loam的源代码,一个是IMU+视觉,另一个则是多传感器融合。
在单目的ORB中其实存在一个问题,就是尺度不确定性,轨迹和路标可以等比例放大或缩小都是满足约束的,所以引入IMU是非常有必要的,通过IMU能得到加速度和角速度,通过积分就能求解旋转角和位移。但是毕竟是测量元件,本身的误差是一定存在的,所以第一步就是对IMU的误差进行标定,我们就来研究一下IMU的误差模型。

工作原理

加速度计工作原理

测量原理可以用一个简单的质量块 + 弹簧 + 指示计来表示,加速度计测量值 am 为弹簧拉力对应的加速度
在这里插入图片描述
f 弹簧拉力, a 物体在惯性系下的加速度, g 重力加速度。
MEMS 加速度计利用电容或者电阻桥来等原理来测量 am
在这里插入图片描述

陀螺仪测量原理

陀螺仪主要用来测量物体的旋转角速度,低端 MEMS 陀螺上一般采用振动陀螺原理,通过测量 Coriolis-force 来间接得到角速度。
• 在旋转坐标系中,运动的物体受到科氏力作用
• MEMS 陀螺仪:一个主动运动轴 + 一个敏感轴
在这里插入图片描述
音叉振动陀螺如下图,叉子的中间为旋转轴,叉子左右两个质量块,做方向相反的正弦运动,质量块受到的科氏力方向相反。
在这里插入图片描述
实际上,两个质量块不可能完全一致,也就是说陀螺仪的测量可能会受到外部加速度的影响,即常称的 G-sensitivity。这个就是为了消除这个影响。

误差来源

IMU的误差来主要来自于三部分,包括噪声(Bias and Noise)、尺度因子(Scale errors)和轴偏差(Axis misalignments)。加速度计和陀螺仪的测量模型可以用下面式子表达:
在这里插入图片描述
其中上标a 表示加速度计,g 表示陀螺仪,B 表示正交的参考坐标系,S 表示非正交的选准坐标系。T 表示轴偏差的变换矩阵,K 表示尺度因子,aS,wS 表示真值,b,ν 分别表示Bias和白噪声。

IMU噪声模型

• 加速度计和陀螺仪的误差可以分为:确定性误差,随机误差。
• 确定性误差可以事先标定确定,包括: bias, scale …
• 随机误差通常假设噪声服从高斯分布,包括:高斯白噪声, bias
随机游走…

bias

理论上,当没有外部作用时, IMU 传感器的输出应该为 0。但是,实际数据存在一个偏置 b。加速度计 bias 对位姿估计的影响。
在这里插入图片描述

scale

scale 可以看成是实际数值和传感器输出值之间的比值
在这里插入图片描述

轴偏差

多轴 IMU 传感器制作的时候,由于制作工艺的问题,会使得 xyz 轴可能不垂直,如下图所示。
在这里插入图片描述

IMU校准

IMU在校准过程中,加速度计和陀螺仪是分开校准的,一般是先校准加速度计,然后利用准确的加速度计信息再来校准陀螺仪。整个校准过程的流程如下:

st=>start: 静止放置IMU T秒
op1=>operation: 旋转IMU使其保持不同的姿态
op2=>operation: 在某种姿态下,至少保持静态t秒
cond=>condition: 是否旋转IMU N次
e=>end: 用下面的算法估计误差参数

st->op1->op2->cond
cond(yes)->e
cond(no)->op1

其中,初始化时间 T一般取50s,旋转后保持静态时间t 取1∼4s,旋转次数N 取36∼50 次。一般来说,这个旋转次数越多越好,至少旋转次数要大于要求解的参数的个数。

确定性误差

六面法标定bias和scale factor

六面法标定加速:
六面法是指将加速度计的 3 个轴分别朝上或者朝下水平放置一段时间,采集 6 个面的数据完成标定。
如果各个轴都是正交的,那很容易得到 bias 和 scale:
在这里插入图片描述
其中, l 为加速度计某个轴的测量值, g 为当地的重力加速度。
考虑轴间误差的时候,实际加速度和测量值之间的关系为:
在这里插入图片描述
水平静止放置 6 面的时候,加速度的理论值为
在这里插入图片描述
对应的测量值矩阵 L :
在这里插入图片描述
利用最小二乘就能够把 12 个变量求出来。

六面法标定陀螺仪:
和加速度计六面法不同的是,陀螺仪的真实值由高精度转台提供,这里的 6 面是指各个轴顺时针和逆时针旋转。

温度相关的参数标定

目的:这个标定的主要目的是对传感器估计的 bias 和 scale 进行温度补偿,获取不同温度时 bias 和 scale 的值,绘制成曲线。
两种标定方法:
• soak method: 控制恒温室的温度值,然后读取传感器数值进行标
定。
• ramp method:记录一段时间内线性升温和降温时传感器的数据
来进行标定。

随机误差

高斯白噪声

IMU 数据连续时间上受到一个均值为 0,方差为 σ,各时刻之间相互
独立的高斯过程 n(t)
在这里插入图片描述
其中 δ() 表示狄拉克函数。
IMU 传感器获取的数据为离散采样,所以离散化的高斯白噪声 建模如下:
在这里插入图片描述
当传感器采集信号时,假设采样时间段内信息为常数:
在这里插入图片描述
只考虑高斯白噪声的积分
在这里插入图片描述
协方差为
在这里插入图片描述
即:
在这里插入图片描述
也就是说高斯白噪声的连续时间到离散时间之间差一个 √1∆t, √∆t 是
传感器的采样时间。

Bias 随机游走

通常用维纳过程 (wiener process) 来建模 bias 随时间连续变化的过程,
离散时间下称之为随机游走。
在这里插入图片描述
其中 w 是方差为 1 的白噪声。
将上式代入前面传感器采集信号的公式,并提取 bias 积分部分:
在这里插入图片描述
由此可得离散化下的 bias 协方差:
在这里插入图片描述
在这里插入图片描述
即:
在这里插入图片描述
bias 随机游走的噪声方差从连续时间到离散之间需要乘以 √∆t

艾伦方差标定

Allan 方差法是 20 世纪 60 年代由美国国家标准局的 David Allan 提出
的,它是一种基于时域的分析方法。
常用的Allan方差工具,主要有以下两种:

https://github.com/gaowenliang/imu_utils
https://github.com/rpng/kalibr_allan

具体的流程如下:

  1. 保持传感器绝对静止获取数据。
  2. 对数据进行分段,设定时间段的时长,如下图所示。
  3. 将传感器数据按照时间段进行平均。
  4. 计算方差,绘制艾伦曲线。
    在这里插入图片描述
    得到的艾伦曲线如下图所示:

在这里插入图片描述
Allan方差法可用于5种随机误差的标定。
具体可以参考这两篇文章:
VIO标定IMU随机误差:Allan方差法.
陀螺 Allan 方差分析.

数学模型

加速度计数学模型

导航系 G 为东北天:
在这里插入图片描述
理论测量值为:
在这里插入图片描述
如果考虑高斯白噪声, bias,以及尺度因子,则为:
在这里插入图片描述
通常假设尺度因子为单位矩阵。

陀螺仪数学模型

考虑尺度因子,高斯白噪声,以及 bias, 陀螺仪的误差模型如下:
在这里插入图片描述

低端传感器,考虑加速度对陀螺仪的影响,即 g-灵敏度:
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值