IMU误差模型
误差分类
加速度计和陀螺仪的误差可以分为:确定性误差,随机误差。
确定性误差可以事先标定确定,包括:bias,scale ...
随机误差通常假设噪声服从高斯分布,包括:高斯白噪声,bias随机游走...
确定性误差
Bias
理论上,当没有外部作用时,IMU传感器的输出应该为0。但是,实际数据存在一个偏置b。加速度计bias对位姿估计的影响:
Scale
scale可以看成是实际数据和传感器输出值之间的比值。
Nonorthogonality/Misalignment Errors
多轴IMU传感器制作的时候,有制作工艺的问题,会使得xyz轴可能不垂直,如下图所示。
其他确定性误差
Run-to-Run Bias/Scale Factor
In Run (Stability) Bias/Scale Factor
Temperature-Dependent Bias/Scale Factor
...
六面法标定加速度
六面法标定加速度bias和scale factor
六面法是指将加速度计的3个轴分别朝上或者朝下水平放置一段时间,采集6个面的数据完成标定。
如果各个轴都是正交的,那很容易得到bias和scale:
其中,l为加速度计某个轴的测量值,g为当地的重力加速度。
考虑轴间误差的时候,实际加速度和测量值之间的关系为:
水平静止放置6面的时候,加速度的理论值为
对应的测量矩阵L为:
利用最小二乘就能够把12个变量求出来
六面法标定陀螺仪bias和scale factor
和加速度计六面法不同的是,陀螺仪的真实值由高精度转台提供,这里的6面是指各个轴顺时针和逆时针旋转。
温度相关的参数的标定
标定方法
目的:这个标定的主要目的是对传感器估计的bias和scale进行温度补偿,获取不同温度时bias和scale的值,绘制成曲线。
两种标定方法:
soak method:控制恒温室的温度值,然后读取传感器数值进行标定
ramp method:记录一段时间内线性升温和降温时传感器的数据来进行标定。
IMU随机误差
高斯白噪声
IMU数据连续时间上受到一个均值为0,方差为,各个时刻之间相互独立的高斯过程:
其中表示狄拉克函数
实际上,IMU传感器获取的数据为离散采样,离散和连续高斯白噪声的方差之间存在如下转换关系:
即
其中
也就是说高斯白噪声的连续时间到离散时间之间差一个, 是传感器的采样时间。
Bias随机游走
通常用维纳过程(wiener process)来建模bias随时间连续变化的过程,离散时间下称之为随机游走。
其中是方差为1的白噪声
同样,离散和连续时间的转换
即
其中:
bias随机游走的噪声方差从连续时间到离散之间需要乘以。
IMU随机误差的标定
艾伦方差标定(random walk noise)
Allan方差法是20世纪60年代由美国国家标准局的David Allan提出的,它是一种基于时域的分析方法。
具体的流程如下:
保持传感器绝对静止获取数据
对数据进行分段,设定时间段的时长,如下图所示
将传感器数据按照时间段进行平均
计算方差,绘制艾伦曲线
得到的艾伦曲线如下图所示
Allan方差的验证
仿真数据
制作一个仿真数据集。设定,加速度的高斯白噪声方差设定为0.019,陀螺仪的高斯白噪声方差为0.015.加速度bias的随机游走噪声方差设定为,陀螺仪的bias随机游走噪声设定为
加速度的艾伦方差曲线如下:
加速度计的误差模型
导航系G为东北天,
理论测量值为:
如果考虑高斯白噪声,bias,以及尺度因子,则为:
通常假设尺度因子为单位矩阵
陀螺仪的数学模型
陀螺仪的误差模型
考虑尺度因子,高斯白噪声,以及bias,陀螺仪的误差模型如下:
低端传感器,考虑加速度对陀螺仪的影响,即g-灵敏度
陀螺仪受四种噪声的影响分别如下图所示
运动模型离散时间处理
VIO中的IMU模型
忽略scale影响,只考虑白噪声和bias随机游走:
上标g表示gyro,a表示acc,w表示在世界坐标系world,b表示imu机体坐标系body。IMU的真实值为,a,测量值为,
P(ose), V(elocity), Q(uaternion)对时间的导数可以写成
连续时间下IMU运动模型
根据上面的导数关系,可以从第i时刻的PVQ,通过对IMU的测量值进行积分,得到第j时刻的PVQ:
运动模型的离散积分——欧拉法
使用欧拉法,即两个相邻时刻k到k+1的位姿是用第k时刻的测量值a,w来计算
其中
运动模型的离散积分——中值法
使用mid-point方法,即两个相邻时刻k到k+1的位姿是用两个时刻的测量值a, 的平均值来计算
其中
IMU数据仿真
仿真
思路1:指定轨迹方程,求一阶导得到速度,角速度,求二阶导得到加速度
思路2:已有pose轨迹,不知道方程,利用B-Spline产生IMU数据
旋转基础知识
旋转积分的几种方式
四元数的形式:
SO3形式:
欧拉角形式:
其中
表示将IMU body坐标系下的角速度转换成欧拉角速度
问题
inertial frame下的一个点旋转到body坐标系,用欧拉角如何表示?仿真数据中旋转矩阵用欧拉角来表示很方便
step1、绕着惯性坐标系的z轴旋转,得到新的坐标系
step2、绕着新坐标系的y轴旋转得到坐标系
step3、绕着新坐标系的x轴旋转得到坐标系,就是我们的body坐标系
综合起来,得到
欧拉角速度和body角速度的转换
上式取逆就能得到body rate to euler rate的变换
仿真代码
IMU仿真
定义imu body坐标系的位置方程,椭圆,圆形等等
定义imu body坐标系在惯性系下的欧拉角方程
求导得到角速度,加速度
设置噪声参数,利用imu的模型产生数据