ahrs10filter

高度和方向由玛格和高度计读数

描述

ahrs10filterobject融合了MARG和高度计传感器数据来估计设备的高度和方向。MARG(磁性,角速度,重力)数据通常来自磁力仪,陀螺仪和加速度传感器。该滤波器使用18个元素的状态向量来跟踪方向四元数、垂直速度、垂直位置、MARG传感器偏差和地磁向量。的ahrs10filter对象使用扩展卡尔曼滤波器来估计这些量。

创建

描述

保险丝= ahrs10filter返回一个扩展的卡尔曼滤波对象,保险丝用于MARG和高度计读数的传感器融合,以估计设备高度和方向。

保险丝= ahrs10filter (“ReferenceFrame”,射频)返回该装置的高度和方向相对于估计以基准帧扩展卡尔曼滤波器对象射频。射频指定为'NED'(北 - 东 - 下)或'ENU'(East-North-Up)。默认值为'NED'

例子

保险丝= ahrs10filter (___,名称,值)每个属性集的名字到指定的。未指定的属性具有默认值。

属性

展开全部

以Hz表示的IMU的采样率,指定为正的标量。

数据类型:|

陀螺的乘过程噪声方差(rad/s)2,表示为正的实数有限数。

数据类型:|

从在(米/秒,加速度计乘法过程噪声方差2)2,表示为正的实数有限数。

数据类型:|

(rad/s)中陀螺仪偏差的乘过程噪声方差2)2,表示为正的实数有限数。

数据类型:|

从在(米/秒的加速度计偏差乘法过程噪声方差2)2,表示为正的实数有限数。

数据类型:|

在μT地磁向量添加剂处理噪声2,表示为正的实数有限数。

数据类型:|

μT添加剂过程噪声磁强计的偏见2,表示为正的实数有限数。

数据类型:|

扩展卡尔曼滤波器的状态向量。状态值表示:

状态 单位 指数
方向(四元数部分) N/A 1:4
高度(NED或ENU) 5
垂直速度(NED或ENU) 女士 6
角度偏差(XYZ) rad /秒 7:9
速度偏差(XYZ) 女士 10:12
地磁场矢量(NED或ENU) μT 13:15
磁偏差(XYZ) μT 16:18

默认初始状态对应于物体处于静止位于[0 0 0]在大地测量坐标LLA。

数据类型:|

状态误差协方差的卡尔曼滤波器,指定为一个18×18元素的矩阵的实数。

数据类型:|

对象的功能

预测 使用加速度计和陀螺仪的数据更新状态
fusemag 使用磁强计数据修正状态
fusealtimeter 使用高度计数据正确的状态
正确的 使用直接的状态测量纠正状态
剩余 从国家直接测量的残余物和剩余协方差
residualmag 磁强计测量的残差和残差协方差
residualaltimeter 高度计测量的残差和残差协方差
构成 当前的方位和位置估计
重启 复位内部状态
将stateInfo 显示状态向量信息

例子

全部收缩

负荷记录传感器数据,地面实况的姿势,并且初始状态和初始状态协方差。计算每高度表样品IMU的样本的数目和每个磁力计样品IMU的样本的数目。

负载('fuse10exampledata.mat',...“imuFs”,'accelData',“gyroData”,...“magnetometerFs”,'magData',...'altimeterFs','altData',...'expectedHeight',“expectedOrient”,...'INITSTATE',“initcov”);imuSamplesPerAlt =修复(imuFs / altimeterFs);imuSamplesPerMag =修复(imuFs / magnetometerFs);

创建一个AHRS过滤器,融合MARG和高度计读数来估计高度和方向。设置传感器的采样率和测量噪声。这些值是通过数据表和实验确定的。

FILT = ahrs10filter(“IMUSampleRate”imuFs,...“AccelerometerNoise”,0.1,...'州'initstate,...“StateCovariance”,initcov);RALT = 0.24;RMAG = 0.9;

预分配变量记录的高度和方向。

numIMUSamples =尺寸(accelData,1);estHeight =零(numIMUSamples,1);estOrient =零(numIMUSamples,1,“四元数”);

保险丝加速度计,陀螺仪,磁力计和高度计的数据。外环预测以最快的采样速率(在IMU采样率)前进的过滤器。

II = 1:numIMUSamples%使用predict来估计基于加速计的滤波状态%陀螺仪数据。预测(FILT,accelData(二,:),gyroData(二,:));%磁强计数据采集速率低于IMU数据采集速率。保险丝%磁强计数据率较低。如果〜MOD(二,imuSamplesPerMag)fusemag(FILT,magData(二,:),RMAG);结束%高度计的数据被以较低的速率比IMU数据收集。保险丝%高度计数据在较低的速率。如果~国防部(ii, imuSamplesPerAlt) fusealtimeter (filt, altData (ii), Ralt);结束记录当前高度和方向估计。[estHeight (ii), estOrient (ii)] =姿势(filt);结束

计算已知真实高度和方向与AHRS滤波器输出之间的均方根误差。

pErr =期望高度- estHeight;qErr = rad2deg (dist (expectedOrient estOrient));人口、难民和移民事务局(12(平均(穗青葱。^ 2));则=√意味着(qErr ^ 2));流(“高度均方根误差\ n”);
海拔RMS错误
流(' \ t %。2f (meters)\n\n'人口、难民和移民事务局);
0.38(米)

随着时间的推移,想象真实的和估计的高度。

t = (0: (numIMUSamples-1)) / imuFs;情节(t, expectedHeight);情节(T,estHeight);保持传奇(“地面真相”,“估计高度”,'位置',“最佳”)ylabel('高度(m)')xlabel('时间(s)')网格

流(四元数距离均方根误差);
四元数距离均方根误差
流('\吨%.2f(度)\ n \ n',qRMS);
2.93(度)

扩展功能

C / C ++代码生成
生成使用MATLAB®编码器™C和C ++代码。

另请参阅

|

介绍了R2019a