主要内容gydF4y2Ba

ahrsfilter.gydF4y2Ba

从加速度计,陀螺仪和磁力计读数的方向gydF4y2Ba

描述gydF4y2Ba

的gydF4y2Baahrsfilter.gydF4y2BaSystem object™融合加速度计、磁力计和陀螺仪传感器数据来估计设备方向。gydF4y2Ba

估计设备朝向:gydF4y2Ba

  1. 创造gydF4y2Baahrsfilter.gydF4y2Ba对象并设置其属性。gydF4y2Ba

  2. 使用参数调用对象,就像它是一个函数。gydF4y2Ba

要了解有关系统对象如何工作的更多信息,请参阅gydF4y2Ba什么是系统对象?gydF4y2Ba.gydF4y2Ba

创建gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

保险丝gydF4y2Ba= ahrsfilter.gydF4y2Ba返回间接卡尔曼滤波系统对象,gydF4y2Ba保险丝gydF4y2Ba,用于加速度计,陀螺仪和磁力计数据的传感器融合,以估计器件方向和角速度。滤波器使用12元元状态向量来跟踪方向,陀螺仪偏置,线性加速度和磁干扰的估计误差。gydF4y2Ba

保险丝gydF4y2Ba= ahrsfilter(gydF4y2Ba“ReferenceFrame”gydF4y2Ba,gydF4y2Ba射频gydF4y2Ba)gydF4y2Ba返回保留加速度计,陀螺仪和磁力计数据的AHRSFilter系统对象,以估算相对于参考帧的设备方向gydF4y2Ba射频gydF4y2Ba.指定gydF4y2Ba射频gydF4y2Ba作为gydF4y2Ba'ned'gydF4y2Ba(向东 - 向下)或gydF4y2Ba'enu'gydF4y2Ba(东北北)。默认值为“ned”。gydF4y2Ba

例子gydF4y2Ba

保险丝gydF4y2Ba= ahrsfilter(gydF4y2Ba___gydF4y2Ba,gydF4y2Ba名称,价值gydF4y2Ba)gydF4y2Ba每个属性集gydF4y2Ba名称gydF4y2Ba到指定的gydF4y2Ba价值gydF4y2Ba.未指定的属性具有默认值。gydF4y2Ba

特性gydF4y2Ba

展开全部gydF4y2Ba

除非另有说明,否则属性是gydF4y2Ba不可努力gydF4y2Ba,这意味着在调用对象后无法更改其值。当您调用它们时,对象锁定gydF4y2Ba发布gydF4y2Ba函数打开它们。gydF4y2Ba

如果属性是gydF4y2Ba调节gydF4y2Ba,您可以随时更改它的值。gydF4y2Ba

有关更改属性值的详细信息,请参阅gydF4y2Ba在MATLAB中使用系统对象进行系统设计gydF4y2Ba.gydF4y2Ba

Hz中的传感器数据的输入采样率,指定为正标量。gydF4y2Ba

可调:gydF4y2Ba没有gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

抽取因子将输入传感器数据速率降低为融合算法的一部分,指定为正整数。gydF4y2Ba

输入的行数——gydF4y2Ba加速gydF4y2Ba,gydF4y2BagyroReadingsgydF4y2Ba, 和gydF4y2BaMagreadings.gydF4y2Ba- 必须是抽取因子的倍数。gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

加速度计信号噪声的方差(m/s)gydF4y2Ba2gydF4y2Ba)gydF4y2Ba2gydF4y2Ba,指定为正面的真正标量。gydF4y2Ba

可调:gydF4y2Ba是的gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

μT磁力计信号噪声的变化gydF4y2Ba2gydF4y2Ba,指定为正面的真正标量。gydF4y2Ba

可调:gydF4y2Ba是的gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

陀螺仪信号噪声的差异(RAD / S)gydF4y2Ba2gydF4y2Ba,指定为正面的真正标量。gydF4y2Ba

可调:gydF4y2Ba是的gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

陀螺仪偏移漂移(RAD / S)的变化gydF4y2Ba2gydF4y2Ba,指定为正面的真正标量。gydF4y2Ba

可调:gydF4y2Ba是的gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

线性加速度噪声的差异(M / sgydF4y2Ba2gydF4y2Ba)gydF4y2Ba2gydF4y2Ba,指定为正面的真正标量。线性加速度被建模为低通滤波的白噪声过程。gydF4y2Ba

可调:gydF4y2Ba是的gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

线性加速度漂移的衰减系数,指定为[0,1]范围内的标量。如果线性加速度变化很快,设置gydF4y2Balinearacclerationdecayfactor.gydF4y2Ba较低的价值。如果线性加速度会缓慢变化,请设置gydF4y2Balinearacclerationdecayfactor.gydF4y2Ba更高的价值。线性加速漂移被建模为低通滤波的白噪声过程。gydF4y2Ba

可调:gydF4y2Ba是的gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

磁干扰噪声的变化μTgydF4y2Ba2gydF4y2Ba,指定为真正的有限正标量。gydF4y2Ba

可调:gydF4y2Ba是的gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

磁干扰的衰减系数,指定为[0,1]范围内的一个正标量。磁扰动模型为一阶马尔可夫过程。gydF4y2Ba

可调:gydF4y2Ba是的gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

用于过程噪声的协方差矩阵,指定为12×12矩阵。默认值为:gydF4y2Ba

列1到6 0 0 0 0 0 0 0.000006092348396 0.000006092348396 0.000006092348396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.000076154354947 0.000076154354947 0.000076154354947 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0列7到12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000.0096236.One hundred.00000000 0 0 0 0.009623610000000 0 0 0 0 0 0 0.009623610000000 0 0 0 0 0 0 0.600000000000000 0 0 0 0 0 0 0.600000000000000 0 0 0 0 0 0 0.600000000000000

初始过程协方差矩阵算用于过程模型中的错误。gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

用μT表示的磁场强度的期望值,μT表示实正标量。预期磁场强度是对当前位置的地球磁场强度的估计。gydF4y2Ba

可调:gydF4y2Ba是的gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

输出方向格式,指定为gydF4y2Ba“四元数”gydF4y2Ba或gydF4y2Ba'旋转矩阵'gydF4y2Ba.输出的大小取决于输入的大小,gydF4y2BaNgydF4y2Ba,以及输出方向格式:gydF4y2Ba

  • “四元数”gydF4y2Ba- 输出是一个gydF4y2BaNgydF4y2Ba-By-1gydF4y2Ba四元数gydF4y2Ba.gydF4y2Ba

  • '旋转矩阵'gydF4y2Ba——输出是一个3x3x-gydF4y2BaNgydF4y2Ba旋转矩阵。gydF4y2Ba

数据类型:gydF4y2BachargydF4y2Ba|gydF4y2Ba细绳gydF4y2Ba

用法gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

[gydF4y2Ba方向gydF4y2Ba,gydF4y2Ba角速度gydF4y2Ba] =保险丝(gydF4y2Ba加速gydF4y2Ba,gydF4y2BagyroReadingsgydF4y2Ba,gydF4y2BaMagreadings.gydF4y2Ba)gydF4y2Ba引信加速度计,陀螺仪和磁力计数据,以计算方向和角速度测量。算法假设设备在第一次调用之前是静止的。gydF4y2Ba

输入参数gydF4y2Ba

展开全部gydF4y2Ba

加速度计在传感器体坐标系中的读数,单位为m/sgydF4y2Ba2gydF4y2Ba,指定为gydF4y2BaNgydF4y2Ba-By-3矩阵。gydF4y2BaNgydF4y2Ba样品的数量是多少,三列是多少gydF4y2Ba加速gydF4y2Ba代表(gydF4y2BaxgydF4y2BaygydF4y2BazgydF4y2Ba)测量。假设加速度计读数对应于所指定的采样率gydF4y2Ba采样率gydF4y2Ba财产。gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

陀螺仪在传感器体坐标系中的读数,单位为rad/s,指定为gydF4y2BaNgydF4y2Ba-By-3矩阵。gydF4y2BaNgydF4y2Ba样品的数量是多少,三列是多少gydF4y2BagyroReadingsgydF4y2Ba代表(gydF4y2BaxgydF4y2BaygydF4y2BazgydF4y2Ba)测量。陀螺仪读数被假定为与指定的采样速率相对应gydF4y2Ba采样率gydF4y2Ba财产。gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

μT的传感器体坐标系中的磁力计读数,指定为gydF4y2BaNgydF4y2Ba-By-3矩阵。gydF4y2BaNgydF4y2Ba样品的数量是多少,三列是多少gydF4y2BaMagreadings.gydF4y2Ba代表(gydF4y2BaxgydF4y2BaygydF4y2BazgydF4y2Ba)测量。磁强计的读数假定对应于gydF4y2Ba采样率gydF4y2Ba财产。gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

输出参数gydF4y2Ba

展开全部gydF4y2Ba

可以将数量从本地导航坐标系统旋转到物体坐标系统的方向,以四元数或数组的形式返回。的大小和类型gydF4y2Ba方向gydF4y2Ba取决于是否gydF4y2BaOrientationFormat.gydF4y2Ba属性设置为gydF4y2Ba“四元数”gydF4y2Ba或gydF4y2Ba'旋转矩阵'gydF4y2Ba:gydF4y2Ba

  • “四元数”gydF4y2Ba- 输出是一个gydF4y2Ba米gydF4y2Ba-1季六边的1向量,具有与输入相同的底层数据类型gydF4y2Ba

  • '旋转矩阵'gydF4y2Ba- 输出是3×3的 -gydF4y2Ba米gydF4y2Ba与输入数据类型相同的旋转矩阵数组gydF4y2Ba

输入样本的数量,gydF4y2BaNgydF4y2Ba,而且gydF4y2BadecimationFactor.gydF4y2Ba财产确定gydF4y2Ba米gydF4y2Ba.gydF4y2Ba

您可以使用gydF4y2Ba方向gydF4y2Ba在一个gydF4y2Ba旋转框架gydF4y2Ba功能从本地导航系统旋转到传感器主体坐标系。gydF4y2Ba

数据类型:gydF4y2Ba四元数gydF4y2Ba|gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

在RAD / S的传感器体坐标系中除去陀螺仪偏压的角速度,作为一个gydF4y2Ba米gydF4y2Ba3数组。输入样本的数量,gydF4y2BaNgydF4y2Ba,而且gydF4y2BadecimationFactor.gydF4y2Ba财产确定gydF4y2Ba米gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba

对象功能gydF4y2Ba

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源gydF4y2Baobj.gydF4y2Ba,使用此语法:gydF4y2Ba

释放(obj)gydF4y2Ba

展开全部gydF4y2Ba

调gydF4y2Ba 调优gydF4y2Baahrsfilter.gydF4y2Ba减少估计错误的参数gydF4y2Ba
步gydF4y2Ba 跑步gydF4y2Ba系统对象gydF4y2Ba算法gydF4y2Ba
发布gydF4y2Ba 释放资源并允许更改gydF4y2Ba系统对象gydF4y2Ba属性值和输入特征gydF4y2Ba
重置gydF4y2Ba 重置内部状态gydF4y2Ba系统对象gydF4y2Ba

例子gydF4y2Ba

全部收缩gydF4y2Ba

加载gydF4y2Barpy_9axis.gydF4y2Ba文件,其中包含录制的加速度计,陀螺和磁力计传感器数据,从音高振荡(周围)gydF4y2BaygydF4y2Ba-axis,然后偏航(周围gydF4y2BazgydF4y2Ba-axis),然后滚动(周围gydF4y2BaxgydF4y2Ba-轴)。该文件还包含录制的采样率。gydF4y2Ba

负载gydF4y2Ba'rpy_9axis'gydF4y2BaSensoldata.gydF4y2BaFS.gydF4y2BaAcceleromaterReadings = Sensoldata.Acceleration;gyroscopereadings = sensoldata.angularvelocity;MagnetImmerReadings = Sensoldata.MagneticField;gydF4y2Ba

创建一个gydF4y2Baahrsfilter.gydF4y2BaSystem Object™gydF4y2Ba采样率gydF4y2Ba设置为传感器数据的采样率。指定抽取因子为2以减少算法的计算成本。gydF4y2Ba

decim = 2;fuse = ahrsfilter(gydF4y2Ba'采样率'gydF4y2Ba,fs,gydF4y2Ba“DecimationFactor”gydF4y2Ba, decim);gydF4y2Ba

通过加速度计读数,陀螺读数和磁力计读数gydF4y2Baahrsfilter.gydF4y2Ba对象,gydF4y2Ba保险丝gydF4y2Ba,输出随时间的传感器主体方向的估计。缺省情况下,取向作为四元数的向量输出。gydF4y2Ba

Q =保险丝(加速度计,陀螺仪,磁流程仪);gydF4y2Ba

取向由旋转父坐标系所需的角位移来定义为子坐标系。随着时间的推移在度数以欧拉角度的方向绘制。gydF4y2Ba

ahrsfilter.gydF4y2Ba正确估计随时间的方向的变化,包括面向朝鲜的初始方向。gydF4y2Ba

时间=(0:DECIM:尺寸(加速度计,1)-1)/ FS;绘图(时间,eulerd(q,gydF4y2Ba“ZYX股票”gydF4y2Ba,gydF4y2Ba“帧”gydF4y2Ba)) 标题(gydF4y2Ba'定位估计'gydF4y2Ba) 传奇(gydF4y2Baz轴的gydF4y2Ba,gydF4y2Ba“轴”gydF4y2Ba,gydF4y2Ba“轴”gydF4y2Ba) ylabel (gydF4y2Ba'旋转(度)'gydF4y2Ba)gydF4y2Ba

图包含轴。具有标题取向估计的轴包含3个类型的线路。这些对象表示Z轴,Y轴,X轴。gydF4y2Ba

此示例显示了如何表现gydF4y2Baahrsfilter.gydF4y2BaSystem Object™受磁力干扰的影响。gydF4y2Ba

加载gydF4y2Ba坐标套管gydF4y2Ba,其中包含加速度计,磁力计和陀螺仪从固定式IMU读数。gydF4y2Ba

负载gydF4y2Ba'stationaryimureadings.mat'gydF4y2Ba加速gydF4y2BaMagreadings.gydF4y2BagyroReadingsgydF4y2Ba采样率gydF4y2Banumsamples =尺寸(加速度,1);gydF4y2Ba

的gydF4y2Baahrsfilter.gydF4y2Ba使用磁场强度稳定其对地球的假定恒定磁场的定向。但是,有许多自然和人造物体输出磁场并且可以混淆算法。要考虑存在瞬态磁场,可以设置gydF4y2Ba距离磁性疾病gydF4y2Ba财产gydF4y2Baahrsfilter.gydF4y2Ba对象。gydF4y2Ba

创建一个gydF4y2Baahrsfilter.gydF4y2Ba对象的抽取因子设置为2,并注意默认的预期磁场强度。gydF4y2Ba

decim = 2;保险丝= ahrsfilter (gydF4y2Ba'采样率'gydF4y2Ba,采样率,gydF4y2Ba“DecimationFactor”gydF4y2Ba, decim);gydF4y2Ba

使用姿态和标题参考系统(AHRS)过滤器熔断IMU读数,然后随着时间的推移可视化传感器主体的方向。定向在开始时波动并在大约60秒后稳定。gydF4y2Ba

取向=保险丝(accelReadings gyroReadings magReadings);Orientationeulerangles = Eulerd(方向,gydF4y2Ba“ZYX股票”gydF4y2Ba,gydF4y2Ba“帧”gydF4y2Ba);time =(0:decim:(numsamples-1))'/ sampleate;图(1)绘图(时间,Orientationeulerangles(:,1),gydF4y2Ba......gydF4y2Ba时间,Orientationeulerangles(:,2),gydF4y2Ba......gydF4y2Ba时间,Orientationeulerangles(:,3))Xlabel(gydF4y2Ba'时间''gydF4y2Ba) ylabel (gydF4y2Ba'旋转(度)'gydF4y2Ba) 传奇(gydF4y2Baz轴的gydF4y2Ba,gydF4y2Ba“轴”gydF4y2Ba,gydF4y2Ba“轴”gydF4y2Ba) 标题(gydF4y2Ba'过滤了IMU数据'gydF4y2Ba)gydF4y2Ba

通过向记录的磁场添加瞬态,强磁场来模拟磁力干扰gydF4y2BaMagreadings.gydF4y2Ba.想象磁场干扰。gydF4y2Ba

jamStrength = [10 5 2];起止= (50 * SampleRate): (150 * SampleRate);果酱= 0(大小(magReadings));果酱(起止:)= jamStrength。*的(元素个数(起止),3);magreads = magreads + jam;图(2)图(时间,magReadings (1: decim:最终,:))包含(gydF4y2Ba'时间''gydF4y2Ba) ylabel (gydF4y2Ba'磁场强度(\ mu t)'gydF4y2Ba) 标题(gydF4y2Ba'模拟磁场与卡住'gydF4y2Ba) 传奇(gydF4y2Baz轴的gydF4y2Ba,gydF4y2Ba“轴”gydF4y2Ba,gydF4y2Ba“轴”gydF4y2Ba)gydF4y2Ba

再次使用模拟gydF4y2BaMagreadings.gydF4y2Ba磁干扰。绘制结果并注意方向估计性能的下降。gydF4y2Ba

重置(熔断器)方向=保险丝(加速度,电动机,磁带);Orientationeulerangles = Eulerd(方向,gydF4y2Ba“ZYX股票”gydF4y2Ba,gydF4y2Ba“帧”gydF4y2Ba);图(3)绘图(时间,Orientationeulerangles(:,1),gydF4y2Ba......gydF4y2Ba时间,Orientationeulerangles(:,2),gydF4y2Ba......gydF4y2Ba时间,Orientationeulerangles(:,3))Xlabel(gydF4y2Ba'时间''gydF4y2Ba) ylabel (gydF4y2Ba'旋转(度)'gydF4y2Ba) 传奇(gydF4y2Baz轴的gydF4y2Ba,gydF4y2Ba“轴”gydF4y2Ba,gydF4y2Ba“轴”gydF4y2Ba) 标题(gydF4y2Ba'通过磁干扰和默认属性过滤IMU数据gydF4y2Ba)gydF4y2Ba

通过AHRS滤波器误解磁性干扰,并且传感器体取向被错误地估计。你可以通过增加来弥补干扰gydF4y2Ba距离磁性疾病gydF4y2Ba财产。增加了gydF4y2Ba距离磁性疾病gydF4y2Ba属性增加了磁扰动的假定噪声范围,并且在底层融合算法中,整个磁力计信号在底层融合算法中加权gydF4y2Baahrsfilter.gydF4y2Ba.gydF4y2Ba

设定gydF4y2Ba距离磁性疾病gydF4y2Ba到gydF4y2Ba200gydF4y2Ba然后再次运行模拟。gydF4y2Ba

取向估计输出来自gydF4y2Baahrsfilter.gydF4y2Ba更准确,受磁瞬态的影响更少。然而,由于磁力计信号在底层融合算法中加权,所以算法可能需要更多时间才能恢复。gydF4y2Ba

重置(熔断器)熔断器.MagneticDisturbancenoise = 20;取向=保险丝(accelReadings gyroReadings magReadings);Orientationeulerangles = Eulerd(方向,gydF4y2Ba“ZYX股票”gydF4y2Ba,gydF4y2Ba“帧”gydF4y2Ba);图(4)图(时间,orientationEulerAngles (: 1),gydF4y2Ba......gydF4y2Ba时间,Orientationeulerangles(:,2),gydF4y2Ba......gydF4y2Ba时间,Orientationeulerangles(:,3))Xlabel(gydF4y2Ba'时间''gydF4y2Ba) ylabel (gydF4y2Ba'旋转(度)'gydF4y2Ba) 传奇(gydF4y2Baz轴的gydF4y2Ba,gydF4y2Ba“轴”gydF4y2Ba,gydF4y2Ba“轴”gydF4y2Ba) 标题(gydF4y2Ba“带有磁干扰和修正特性的过滤IMU数据”gydF4y2Ba)gydF4y2Ba

本示例使用gydF4y2Baahrsfilter.gydF4y2BaSystem object™从Shaken的传感器主体熔断9轴IMU数据。绘制物体与其最终休息位置之间的四元数距离,以可视化性能以及过滤器会聚到正确的静止位置的快速。然后调整参数的gydF4y2Baahrsfilter.gydF4y2Ba这样过滤器就能更快地收敛到地面真实的静止位置。gydF4y2Ba

加载gydF4y2BaImureadings谢谢gydF4y2Ba进入您当前的工作空间。这些数据是从IMU中记录下来的,IMU先被摇晃,然后放置在一个静止的位置。观察传感器记录的加速度、磁场和角速度。gydF4y2Ba

负载gydF4y2Ba'imureadingsshaken'gydF4y2Ba加速gydF4y2BagyroReadingsgydF4y2BaMagreadings.gydF4y2Ba采样率gydF4y2Banumsamples =尺寸(加速度,1);时间=(0 :( numsamples-1))'/ sampleate;图(1)子图(3,1,1)图(时间,加速)标题(gydF4y2Ba'加速度计读数'gydF4y2Ba) ylabel (gydF4y2Ba'加速度(m / s ^ 2)'gydF4y2Ba子图(3,1,2)plot(time, magreads) title(gydF4y2Ba'磁力计读'gydF4y2Ba) ylabel (gydF4y2Ba'磁场(\ mut)'gydF4y2Ba)子图(3,1,3)plot(time, gyroreading) title(gydF4y2Ba'陀螺仪阅读'gydF4y2Ba) ylabel (gydF4y2Ba'角速度(rad / s)'gydF4y2Ba)包含(gydF4y2Ba'时间''gydF4y2Ba)gydF4y2Ba

创建一个gydF4y2Baahrsfilter.gydF4y2Ba然后融合IMU数据以确定方向。方向作为四元数的向量返回;将四元数转换为以欧拉角度为单位。通过绘制每个时间步骤,通过绘制所需的欧拉角度来可视化传感器主体的方向来旋转全局坐标系到传感器主体坐标系。gydF4y2Ba

fuse = ahrsfilter(gydF4y2Ba'采样率'gydF4y2Ba,采样率);定向=保险丝(加速度,电动机,磁带);Orientationeulerangles = Eulerd(方向,gydF4y2Ba“ZYX股票”gydF4y2Ba,gydF4y2Ba“帧”gydF4y2Ba);图(2)绘图(时间,Orientationeulerangles(:,1),gydF4y2Ba......gydF4y2Ba时间,Orientationeulerangles(:,2),gydF4y2Ba......gydF4y2Ba时间,Orientationeulerangles(:,3))Xlabel(gydF4y2Ba'时间''gydF4y2Ba) ylabel (gydF4y2Ba'旋转(度)'gydF4y2Ba) 标题(gydF4y2Ba'随着时间的推移'gydF4y2Ba) 传奇(gydF4y2Ba绕z轴旋转的gydF4y2Ba,gydF4y2Ba......gydF4y2Ba'围绕y轴旋转'gydF4y2Ba,gydF4y2Ba......gydF4y2Ba'旋转X轴'gydF4y2Ba)gydF4y2Ba

在IMU录制中,大约六秒钟后摇动停止。确定休息方向,以便您可以表征速度gydF4y2Baahrsfilter.gydF4y2Ba是收敛的。gydF4y2Ba

为了确定静止的方向,计算最后四秒的磁场和加速度的平均值,然后使用gydF4y2BaecgydF4y2Ba函数来融合数据。gydF4y2Ba

可视化从静止位置到静止时间的四元数距离。gydF4y2Ba

restingOrientation = ecompass(意思是(accelReadings (6 * SampleRate:最终,:)),gydF4y2Ba......gydF4y2Ba意思是(magReadings (6 * SampleRate:最终,:)));图(3)图(时间,rad2deg (dist (restingOrientation、方向)))gydF4y2Ba在gydF4y2BaXlabel(gydF4y2Ba'时间''gydF4y2Ba) ylabel (gydF4y2Ba“四元数距离(度)gydF4y2Ba)gydF4y2Ba

修改默认的gydF4y2Baahrsfilter.gydF4y2Ba属性使过滤器更快地收敛到重力。增加了gydF4y2BaGyroscopeDriftNoisegydF4y2Ba到gydF4y2Ba1E-2gydF4y2Ba并减少gydF4y2BaLinearAccelerationNoisegydF4y2Ba到gydF4y2Ba1E-4gydF4y2Ba.这指导了这一点gydF4y2Baahrsfilter.gydF4y2Ba算法少考虑陀螺仪数据,多考虑加速度计数据。因为gydF4y2Ba加速度计gydF4y2Ba数据提供稳定和一致的重力矢量,得到的取向会聚更快。gydF4y2Ba

重置过滤器,熔断数据,并绘制结果。gydF4y2Ba

Fuse.LinearaccelerationNoise = 1E-4;熔断器.Gyroscopedriftnoise = 1E-2;重置(熔断器)方向=保险丝(加速度,电动机,磁带);图(3)绘图(Time,Rad2deg(dist(restingorientation,disiveation)))传奇(gydF4y2Ba'默认AHRS过滤器'gydF4y2Ba,gydF4y2Ba“调AHRS过滤”gydF4y2Ba)gydF4y2Ba

算法gydF4y2Ba

展开全部gydF4y2Ba

注意:以下算法仅适用于NED参考帧。gydF4y2Ba

的gydF4y2Baahrsfilter.gydF4y2Ba使用九轴Kalman滤波器结构gydF4y2Ba[1]gydF4y2Ba.该算法试图跟踪方向,陀螺仪偏移,线性加速度和磁干扰的误差,以输出最终方向和角速度。间接Kalman滤波器模型不直接跟踪方向,而不是直接跟踪方向,而是错误过程,gydF4y2BaxgydF4y2Ba,并进行递归更新:gydF4y2Ba

xgydF4y2Ba kgydF4y2Ba =gydF4y2Ba [gydF4y2Ba θ.gydF4y2Ba kgydF4y2Ba bgydF4y2Ba kgydF4y2Ba 一个gydF4y2Ba kgydF4y2Ba dgydF4y2Ba kgydF4y2Ba ]gydF4y2Ba =gydF4y2Ba FgydF4y2Ba kgydF4y2Ba [gydF4y2Ba θ.gydF4y2Ba kgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba bgydF4y2Ba kgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba 一个gydF4y2Ba kgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba dgydF4y2Ba kgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba ]gydF4y2Ba +gydF4y2Ba wgydF4y2Ba kgydF4y2Ba

在哪里gydF4y2BaxgydF4y2BakgydF4y2Ba是一个12×1矢量,包括:gydF4y2Ba

  • θ.gydF4y2BakgydF4y2Ba——3乘1的方向误差矢量,以度数表示gydF4y2BakgydF4y2Ba

  • bgydF4y2BakgydF4y2Ba- 3×1陀螺仪零角速率偏置载体,在DEG / s中gydF4y2BakgydF4y2Ba

  • 一个gydF4y2BakgydF4y2Ba- 在传感器框架中测量的3×1加速度误差矢量,在g中gydF4y2BakgydF4y2Ba

  • dgydF4y2BakgydF4y2Ba—在传感器框架中测量的磁干扰误差矢量,以µT表示gydF4y2BakgydF4y2Ba

在哪里gydF4y2BawgydF4y2BakgydF4y2Ba是12×1添加剂噪声载体,和gydF4y2BaFgydF4y2BakgydF4y2Ba为状态转换模型。gydF4y2Ba

因为gydF4y2BaxgydF4y2BakgydF4y2Ba定义为错误处理,gydF4y2Ba先天的gydF4y2Ba估计始终为零,因此状态转换模型,gydF4y2BaFgydF4y2BakgydF4y2Ba,为零。这种洞察力导致以下降低标准卡尔曼方程:gydF4y2Ba

标准卡尔曼方程式:gydF4y2Ba

xgydF4y2Ba kgydF4y2Ba −gydF4y2Ba =gydF4y2Ba FgydF4y2Ba kgydF4y2Ba xgydF4y2Ba kgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba PgydF4y2Ba kgydF4y2Ba −gydF4y2Ba =gydF4y2Ba FgydF4y2Ba kgydF4y2Ba PgydF4y2Ba kgydF4y2Ba −gydF4y2Ba 1gydF4y2Ba +gydF4y2Ba FgydF4y2Ba kgydF4y2Ba TgydF4y2Ba +gydF4y2Ba 问gydF4y2Ba kgydF4y2Ba ygydF4y2Ba kgydF4y2Ba =gydF4y2Ba zgydF4y2Ba kgydF4y2Ba −gydF4y2Ba HgydF4y2Ba kgydF4y2Ba xgydF4y2Ba kgydF4y2Ba −gydF4y2Ba 年代gydF4y2Ba kgydF4y2Ba =gydF4y2Ba RgydF4y2Ba kgydF4y2Ba +gydF4y2Ba HgydF4y2Ba kgydF4y2Ba PgydF4y2Ba kgydF4y2Ba −gydF4y2Ba HgydF4y2Ba kgydF4y2Ba TgydF4y2Ba KgydF4y2Ba kgydF4y2Ba =gydF4y2Ba PgydF4y2Ba kgydF4y2Ba −gydF4y2Ba HgydF4y2Ba kgydF4y2Ba TgydF4y2Ba (gydF4y2Ba 年代gydF4y2Ba kgydF4y2Ba )gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba xgydF4y2Ba kgydF4y2Ba +gydF4y2Ba =gydF4y2Ba xgydF4y2Ba kgydF4y2Ba −gydF4y2Ba +gydF4y2Ba KgydF4y2Ba kgydF4y2Ba ygydF4y2Ba kgydF4y2Ba PgydF4y2Ba kgydF4y2Ba +gydF4y2Ba =gydF4y2Ba PgydF4y2Ba kgydF4y2Ba −gydF4y2Ba −gydF4y2Ba KgydF4y2Ba kgydF4y2Ba HgydF4y2Ba kgydF4y2Ba PgydF4y2Ba kgydF4y2Ba −gydF4y2Ba

本算法中使用的卡尔曼方程:gydF4y2Ba

xgydF4y2Ba kgydF4y2Ba −gydF4y2Ba =gydF4y2Ba 0gydF4y2Ba PgydF4y2Ba kgydF4y2Ba −gydF4y2Ba =gydF4y2Ba 问gydF4y2Ba kgydF4y2Ba ygydF4y2Ba kgydF4y2Ba =gydF4y2Ba zgydF4y2Ba kgydF4y2Ba 年代gydF4y2Ba kgydF4y2Ba =gydF4y2Ba RgydF4y2Ba kgydF4y2Ba +gydF4y2Ba HgydF4y2Ba kgydF4y2Ba PgydF4y2Ba kgydF4y2Ba −gydF4y2Ba HgydF4y2Ba kgydF4y2Ba TgydF4y2Ba KgydF4y2Ba kgydF4y2Ba =gydF4y2Ba PgydF4y2Ba kgydF4y2Ba −gydF4y2Ba HgydF4y2Ba kgydF4y2Ba TgydF4y2Ba (gydF4y2Ba 年代gydF4y2Ba kgydF4y2Ba )gydF4y2Ba −gydF4y2Ba 1gydF4y2Ba xgydF4y2Ba kgydF4y2Ba +gydF4y2Ba =gydF4y2Ba KgydF4y2Ba kgydF4y2Ba ygydF4y2Ba kgydF4y2Ba PgydF4y2Ba kgydF4y2Ba +gydF4y2Ba =gydF4y2Ba PgydF4y2Ba kgydF4y2Ba −gydF4y2Ba −gydF4y2Ba KgydF4y2Ba kgydF4y2Ba HgydF4y2Ba kgydF4y2Ba PgydF4y2Ba kgydF4y2Ba −gydF4y2Ba

地点:gydF4y2Ba

  • xgydF4y2BakgydF4y2Ba−gydF4y2Ba- 预料到的 (gydF4y2Ba先天的gydF4y2Ba)国家估计;错误过程gydF4y2Ba

  • PgydF4y2BakgydF4y2Ba−gydF4y2Ba- 预料到的 (gydF4y2Ba先天的gydF4y2Ba)估计协方差gydF4y2Ba

  • ygydF4y2BakgydF4y2Ba——创新gydF4y2Ba

  • 年代gydF4y2BakgydF4y2Ba- 创新协方差gydF4y2Ba

  • KgydF4y2BakgydF4y2Ba- 卡尔曼收益gydF4y2Ba

  • xgydF4y2BakgydF4y2Ba+gydF4y2Ba- 更新 (gydF4y2Ba后验gydF4y2Ba)状态估计gydF4y2Ba

  • PgydF4y2BakgydF4y2Ba+gydF4y2Ba- 更新 (gydF4y2Ba后验gydF4y2Ba)估计协方差gydF4y2Ba

kgydF4y2Ba表示迭代,上标gydF4y2Ba+gydF4y2Ba代表一个gydF4y2Ba后验gydF4y2Ba估计,和上标gydF4y2Ba−gydF4y2Ba代表一个gydF4y2Ba先天的gydF4y2Ba估计。gydF4y2Ba

图形和以下步骤通过算法描述了基于帧的迭代。gydF4y2Ba

在第一次迭代之前gydF4y2Ba加速gydF4y2Ba,gydF4y2BagyroReadingsgydF4y2Ba, 和gydF4y2BaMagreadings.gydF4y2Ba输入块被束缚在一起gydF4y2BadecimationFactor.gydF4y2Ba3帧。对于每个块,算法使用当前加速度计和磁力计读数对应的块陀螺仪读数。gydF4y2Ba

参考gydF4y2Ba

[2] Roetenberg,D.,H.J. Luine,C.T.M.Baten和P.H.veltink。“磁扰动的补偿改善了人体段取向的惯性和磁感。”gydF4y2Ba神经系统和康复工程上的IEEE交易gydF4y2Ba.卷。13.第3,2005,第395-405页。gydF4y2Ba

扩展能力gydF4y2Ba

介绍了R2018bgydF4y2Ba