Allen方差标定法
几种imu标定工具
kalibr_allan:可以标定noise和random walk
imu_utils:无法标定bias噪声(random walk)
imu_tk:IMU需要标定的参数主要是确定性误差和随机误差,确定性误差主要标定bias,scale和misalignment,随机误差主要标定noise和random walk,imu_tk 是用于求取确定性误差的开源工具。
Allan_Variance_ROS:收集15~24hour数据,可以标定噪声、随机游走和零偏。
Allen方差中重要的的几项误差
(1)角度/加速度随机游走(Angle/Acc Random Walk):红线,陀螺输出的角度白噪声,由RRK经时间积分得到.
(2)角速率/加速度率随机游走(Rate Random Walk):蓝线,陀螺输出的角速率/加速度率白噪声,即bias noise.
(3)零偏不稳定性(Bias Instability):黄线,imu的bias.
注意:误区纠正,标定白噪声和bias噪声只能使用:kalibr_allan,imu_utils标定的是bias,不是bias noise。
imu噪声模型
imu噪声模型:IMU Noise Model
量化噪声(Quantization Noise,QN)
量化噪声是一切量化操作所固有的噪声,只要进行数字量化编码采样,传感器输出的理想值与量化值之间就必然会存在微笑差别,量化噪声代表了传感器检测的最小分辨率。
角度随机游走(Angular Random Walk, ARW)
角度随机游走是宽带角速率白噪声积分的结果,即陀螺从零时刻其累积的总角增量误差表现为随机游走,而每一时刻的等效角速率误差表现为白噪声。
角速率随机游走(Rate Random Walk, RRW)
角速率随机游走是宽带角加速率白噪声积分的结果,即陀螺角加速率误差表现为白噪声,而角速率误差表现为随机游走。
零偏不稳定性噪声(Bias Instability, BI)
零偏稳定性是指低频零偏抖动,由于内部电路随机波动、温度变化引起。 代表零偏随时间变化的情况。
速率斜坡(Rate Ramp, RR)
陀螺角速率输出随时间缓慢变化,对于光纤陀螺来说,环境温度变化会引起角速率的线性变化。
怎样从图中读取噪声读数:陀螺 Allan 方差分析
标定原理
Allan方差是时频分析和惯性导航领域常用的一种误差分析方法,它有效地刻画了待研究的误差时间序列在不同时间尺度上的波动水平(不稳定性),并可根据不同时间尺度上的Allan方差值所构成的曲线的形状特征来辨识其中包含的随机过程模型。这就类似于我们用功率谱密度(PSD)来描述信号在不同频率尺度上的功率分布,并用PDS曲线来做系统模型辨识。Allan方差分析方法对中长期的随机波动具有很强的表现力,它完全可以作为一个通用的时间序列分析工具来推广到其它应用领域,就像PSD这样的频域分析方法和自相关这样的时域分析方法一样。
Allan方差分析方法的直观理解
手写VIO-使用Allen方差工具标定IMU
IMU标定中的Allen方差
严老师总结的十分到位
1.Allan方差分析的一个用途是分析陀螺的性能或对比不同陀螺的性能,如前3所述,相比于其它分析法Allan法还是很好用的,比较全面。另一个用途是获得噪声参数,用于组合导航的Kalman滤波噪声参数设置。不是所有的Allan方差噪声系数都有用,主要有用的是角度随机游走系数(用于设置Q阵)和零偏不稳定性系数(用于设置一阶马氏过程的方差),其实这两个系数量级大小差不多就行了,太精细也没用,毕竟Allan方差分析得出的陀螺静态性能,鬼知道实际应用动态的时候陀螺误差会变化多大,存在数量级差别都很有可能。
ALLAN方差只是大概判断陀螺仪/加速度计精度的一种手段,只是表现了静态性能,动态性能还得看振动对陀螺偏置影响系数Vibration Rectified Error (VRE)更为重要。
2.采用“三段论”大概读图计算角度随机游走系数、零偏不稳定性和角速率随机游走(或速率斜坡)即可,完全可满足实际应用。试图提取精确的陀螺仪指标是没有意义的。
10s平滑计算零偏不稳定性
国军标中常用10s平滑方法计算零偏不稳定性,这里比较下它和艾伦方差在计算零偏稳定性之间的数值差异。10s平滑主要思路是每10s计算下均值(用于平滑数据),再计算这些均值的方差,例如有1000s的数据,需要计算100个均值,并求这100个均值的方差。主要参考代码如下:
for i=1:3
%Bias stability and Bias
Smo=10;%N 10秒平滑
num=Smo/t0;%%m每组内数据个数
m=floor(length(Wb(:,i))/num);%%共可以分成m组数据
gx=zeros(m,1);
Xbais_all = mean(Wb(:,i));
for j=1:m-1
gx(j)=mean(Wb(1+(j-1)*num:1+j*num,i)); %取平均
end
gx= gx(2:end-2,:);
Xbais_stability = std(gx); % 计算标准差
fprintf('Bias Stability 10s:%0.2e [deg/h]\n',Xbais_stability);
end
静止测量白噪声
静止时,统计imu一段时间内读数的均值和方差,均值不为0则包含零偏,方差为白噪声。
上面计算的均值的方差(10s平滑计算零偏不稳定性)为求取零偏的方法。
[教程]-Kalibr标定d435i的详细记录