深蓝学院《从零开始手写VIO》课程笔记——第2讲:IMU传感器
Section 1 - 旋转运动学
1. 线速度与角速度
- 线速度 = 角速度 X 半径
2. 旋转坐标系下的运动学
- inertial frame 和 body frame
- *旋转坐标系下的加速度 = 惯性系下的加速度 - 科氏力 - 欧拉力 - 离心力
- 在旋转坐标系下观察,运动的物体(运动方向和旋转轴不为同一个轴时)会受到科氏力的作用。
3. 定义清楚问题
- 惯性坐标系(世界坐标系)
- 机器人坐标系(Body坐标系)(角速度+加速度)
- 机器人位移和姿态
Section 2 - IMU测量模型及运动模型
1. MEMS加速度计工作原理
- 测量原理可以用简单的质量块 + 弹簧 + 指示计来表示
- 加速度计测量值am=f/m=a−g
- MEMS加速度计利用电容或电阻桥等原理来测量
- 东北天坐标系(ENU)
- g=(0,0,−9.81)T
- 假设IMU坐标系就是EMU坐标系, RIB=I
- 静止时有: a=0,am=−g
- 自由落体时有:a=g,am=0
2. 陀螺仪测量原理
- 陀螺仪主要用来测量物体的旋转角速度,按测量原理分为振动陀螺、光纤陀螺等。
- 低端MEMS一般采用振动陀螺原理,通过测量科氏力来间接的到角速度
- 在旋转坐标系中,运动的物体受到科氏力作用
- MEMS陀螺仪:一个主动运动轴 + 一个敏感轴
3. 音叉振动陀螺原理
- 音叉振动陀螺
- 叉子的中间为旋转轴,叉子左右两个质量块,作方向相反的正弦运动,质量块受到的科氏力方向相反。
- 为啥用两个质量块?
- 两倍的科氏力使得电信号更大一点,测的更准一点
- 外部的加速度影响会被抵消掉,得到纯的科氏力
- 陀螺仪的G-sensitivity(两个质量块不可能完全一致,也就是陀螺仪的测量会受到外部加速度的影响)
- 加速度计没有一个主动运动的轴,不会做高速运动,所以可以忽略受到科氏力的影响(运动的物体(运动方向和旋转轴不为同一个轴时)会受到科氏力的作用)
Section 3 - IMU误差模型
1. 误差分类
- 加速度计和陀螺仪的误差可以分为:确定性误差和随机误差
- 确定性误差可以事先标定确定,包括:bias、scale…
- 随机误差通常假设噪声服从高斯分布,包括:高斯白噪声、bias随机游走
2. 确定性误差
- Bias - 理论上,当没有外部作用时,IMU传感器的输出应该为0。但是,实际数据存在一个偏置b 。加速度计bias对位姿估计的影响:
- (速度)$ v{err} = b{a}t $
- (平移)$ p{err} = 1/ 2 * b{a}t^2 $
- Scale - 可以看成是实际数值和传感器输出值之间的比值
- Nonorthogonality / Misalignment Errors - 多轴IMU传感器制作的时候,由于制作工艺的问题,会使得xyz轴可能不垂直。
- Others(电场、温度、电容影响)
- Run-to-Run Bias / Scale Factor
- In Run (Stability) Bias / Scale Factor
- Temperature-Dependent Bias / Scale Factor
- …
3. 六面法标定加速度
- 六面法是指将加速度计的三个轴分别朝上或者朝下水平放置一段时间,采集六个面的数据完成标定。
- 如果各个轴都是正交的,很容易得到bias和scale
- 考虑轴间误差的时候,利用最小二乘就能求解12个变量
4. 六面法标定陀螺仪
- 和加速度计六面法不同的是,陀螺仪的真实值由高精度转台提供,这里的6面是指各个轴顺时针和逆时针旋转
5. 温度相关的参数标定
- 目的:对传感器估计的bias和scale进行温度补偿,获取不同温度时bias和scale的值,绘制成曲线
- 两种标定方法:
- soak method(实际-精度高):控制恒温室的温度值,然后读取传感器数值进行标定
- ramp method:记录一段时间内线性升温和降温时传感器的数据来进行标定
6. IMU随机误差
- 高斯白噪声
- 实际上,IMU传感器获取的数据为离散采样,离散和连续高斯白噪声的方差之间存在如下转换关系:σd=σ/√Δt
- 也就是说高斯白噪声的连续时间到离散时间之间差一个1/√Δt,而√Δt是传感器的采样时间
- Bias随机游走:通常用维纳过程(wiener process)来建模bias随时间连续变化的过程,离散时间下称之为随机游走
- 离散和连续之间的变换:$ \sigma{bd} = \sigma{b} \sqrt{\Delta t} $
- bias随机游走的噪声方差从连续时间到离散之间需要乘以√Δt
7. IMU随机误差的标定
- 艾伦方差标定(random walk noise):基于时域的分析方法
- 保持传感器绝对静止获取数据
- 对数据进行分段,设定时间段的时长
- 将传感器数据按照时间段进行平均
- 计算方差,绘制艾伦曲线
8. 加速度计数学模型
- 导航系G 为东北天,gG=(0,0,−9.81)T
- 理论测量值:$ a^{B}m = R{BG}(a^G - g^G) $
- 考虑高斯白噪声、bias以及尺度因子(通常假设尺度因子为单位矩阵):$ a^{B}m = S_a R{BG}(a^G - g^G) + n_a + b_a $
9. 陀螺仪数学模型
- 考虑尺度因子、高斯白噪声以及bias,陀螺仪的误差模型:ωBm=SgωB+ng+bg
- 低端传感器,考虑加速度对陀螺仪的影响,即g-灵敏度:$ \omega^{B}m = S_g \omega^B + s{ga} a^B + n_g + b_g $
Section 4 - 运动模型离散时间处理
1. VIO中的IMU模型
- 忽略scale的影响,只考虑白噪声和bias随机游走
- q需要归一化
2. 连续时间下IMU运动模型
3. 运动模型的离散积分-欧拉法
- 使用欧拉法,即两个相邻时刻 k 到 k + 1的位姿是用第 k 时刻的测量值a、ω 来计算
4. 运动模型的离散积分-中值法
- 使用欧拉法,即两个相邻时刻 k 到 k + 1的位姿是用两个时刻的测量值a、ω 的平均值来计算
Section 5 - IMU数据仿真
1. 仿真思路
- 思路1: 指定轨迹方程,求一阶导得到速度、角速度,求二阶导得到加速度
- 思路2: 已有pose轨迹,不知道方程,利用B-Spline产生IMU数据
2. 旋转基础知识
- 旋转积分的几种方式
- 四元数形式:
- SO3形式:
- 欧拉角形式:
- 欧拉角