imuSensorGÿdF4y2Ba

IMU仿真模型GÿdF4y2Ba

描述GÿdF4y2Ba

该GÿdF4y2BaimuSensorGÿdF4y2Ba系统对象模型™从惯性测量单元(IMU)接收数据。GÿdF4y2Ba

模拟IMU:GÿdF4y2Ba

  1. 创建GÿdF4y2BaimuSensorGÿdF4y2Ba对象并设置其属性。GÿdF4y2Ba

  2. 使用参数调用对象,就好像它是一个函数一样。GÿdF4y2Ba

有关系统对象如何工作的更多信息,请参见GÿdF4y2Ba什么是系统对象?GÿdF4y2Ba(MATLAB)。GÿdF4y2Ba

创建GÿdF4y2Ba

描述GÿdF4y2Ba

例GÿdF4y2Ba

IMUGÿdF4y2Ba= imuSensorGÿdF4y2Ba返回一个系统对象,GÿdF4y2BaIMUGÿdF4y2Ba,它根据惯性输入信号计算惯性测量单元的读数。GÿdF4y2BaIMUGÿdF4y2Ba有一个理想的加速度计和陀螺仪。GÿdF4y2Ba

例GÿdF4y2Ba

IMU = imuSensor(GÿdF4y2Ba“加速 - 陀螺仪”GÿdF4y2Ba)GÿdF4y2Ba返回GÿdF4y2BaimuSensorGÿdF4y2Ba一个理想的加速度计和陀螺仪系统对象。GÿdF4y2BaimuSensorGÿdF4y2Ba和GÿdF4y2BaimuSensor(“加速 - 陀螺”)GÿdF4y2Ba是等价的创作语法。GÿdF4y2Ba

例GÿdF4y2Ba

IMU = imuSensor(GÿdF4y2Ba“accel-mag”GÿdF4y2Ba)GÿdF4y2Ba返回GÿdF4y2BaimuSensorGÿdF4y2Ba系统对象带有理想的加速度计和磁强计。GÿdF4y2Ba

例GÿdF4y2Ba

IMU = imuSensor(GÿdF4y2Ba'加速 - 陀螺-MAG'GÿdF4y2Ba)GÿdF4y2Ba返回GÿdF4y2BaimuSensorGÿdF4y2Ba一个理想的加速度计,陀螺仪,磁力计和系统对象。GÿdF4y2Ba

IMU = imuSensor(GÿdF4y2Ba___GÿdF4y2Ba,GÿdF4y2Ba'参考范围'GÿdF4y2Ba,GÿdF4y2Ba射频GÿdF4y2Ba)GÿdF4y2Ba返回GÿdF4y2BaimuSensorGÿdF4y2Ba其计算惯性测量单元读出相对于参考帧的系统对象GÿdF4y2Ba射频GÿdF4y2Ba。指定GÿdF4y2Ba射频GÿdF4y2Ba如GÿdF4y2Ba'NED'GÿdF4y2Ba(North-East-Down)或GÿdF4y2Ba'ENU'GÿdF4y2Ba(东 - 北 - 向上)。默认值是GÿdF4y2Ba'NED'GÿdF4y2Ba。GÿdF4y2Ba

例GÿdF4y2Ba

IMU = imuSensor(GÿdF4y2Ba___GÿdF4y2Ba,GÿdF4y2Ba名称,值GÿdF4y2Ba)GÿdF4y2Ba设置每个属性GÿdF4y2Ba名称GÿdF4y2Ba到指定的GÿdF4y2Ba价值GÿdF4y2Ba。未指定的属性具有默认值。这句法可以组合使用与任何先前的输入参数。GÿdF4y2Ba

属性GÿdF4y2Ba

展开全部GÿdF4y2Ba

除非另有说明,性质GÿdF4y2BanontunableGÿdF4y2Ba,这意味着调用对象后,你不能改变它们的值。对象锁,当你打电话给他们,和GÿdF4y2Ba释放GÿdF4y2Ba函数打开它们。GÿdF4y2Ba

如果属性GÿdF4y2Ba可调GÿdF4y2Ba,你可以在任何时候改变它的值。GÿdF4y2Ba

有关更改属性值的更多信息,请参见GÿdF4y2Ba使用系统对象的系统设计在MATLABGÿdF4y2Ba(MATLAB)。GÿdF4y2Ba

惯性测量单元的类型,规定为aGÿdF4y2Ba“加速 - 陀螺仪”GÿdF4y2Ba,GÿdF4y2Ba“accel-mag”GÿdF4y2Ba,或GÿdF4y2Ba'加速 - 陀螺-MAG'GÿdF4y2Ba。GÿdF4y2Ba

类型惯性测量单元指定哪个传感器读数到模型的:GÿdF4y2Ba

  • “加速 - 陀螺仪”GÿdF4y2Ba- 加速度计和陀螺仪GÿdF4y2Ba

  • “accel-mag”GÿdF4y2Ba——加速度计、磁力仪GÿdF4y2Ba

  • '加速 - 陀螺-MAG'GÿdF4y2Ba- 加速度计,陀螺仪,磁力计和GÿdF4y2Ba

您可以指定GÿdF4y2BaIMUTypeGÿdF4y2Ba作为创建期间或作为一个唯一值参数的GÿdF4y2Ba名称,值GÿdF4y2Ba对。GÿdF4y2Ba

数据类型:GÿdF4y2Ba烧焦GÿdF4y2Ba|GÿdF4y2Ba串GÿdF4y2Ba

传感器模型的采样率(Hz),指定为正的标量。GÿdF4y2Ba

数据类型:GÿdF4y2Ba单GÿdF4y2Ba|GÿdF4y2Ba双GÿdF4y2Ba

IMU的工作温度,以摄氏度为单位,指定为实标量。GÿdF4y2Ba

当对象计算温标因子和环境漂移噪声时,25GÿdF4y2BaØGÿdF4y2BaC是标称温度。GÿdF4y2Ba

可调:GÿdF4y2Ba是GÿdF4y2Ba

数据类型:GÿdF4y2Ba单GÿdF4y2Ba|GÿdF4y2Ba双GÿdF4y2Ba

微特斯拉中的磁场矢量,指定为局部导航坐标系中的三元素行矢量。GÿdF4y2Ba

默认磁场对应的磁场在纬度零,零经度和海拔高度为零。GÿdF4y2Ba

可调:GÿdF4y2Ba是GÿdF4y2Ba

数据类型:GÿdF4y2Ba单GÿdF4y2Ba|GÿdF4y2Ba双GÿdF4y2Ba

加速度计传感器的参数,由一个指定的GÿdF4y2BaaccelparamsGÿdF4y2Ba对象。GÿdF4y2Ba

可调:GÿdF4y2Ba是GÿdF4y2Ba

陀螺仪传感器参数,由a指定GÿdF4y2BagyroparamsGÿdF4y2Ba对象。GÿdF4y2Ba

可调:GÿdF4y2Ba是GÿdF4y2Ba

磁力计传感器的参数,由指定的GÿdF4y2BamagparamsGÿdF4y2Ba对象。GÿdF4y2Ba

可调:GÿdF4y2Ba是GÿdF4y2Ba

随机数源,指定为字符向量或字符串:GÿdF4y2Ba

  • “全球流”GÿdF4y2Ba——随机数是使用当前的全局随机数流生成的。GÿdF4y2Ba

  • “与种子mt19937ar”GÿdF4y2Ba- 随机数使用与由指定的种子的mt19937ar算法生成GÿdF4y2Ba种子GÿdF4y2Ba属性。GÿdF4y2Ba

数据类型:GÿdF4y2Ba烧焦GÿdF4y2Ba|GÿdF4y2Ba串GÿdF4y2Ba

mt19937ar随机数生成器算法的初始种子,指定为实数非负整数标量。GÿdF4y2Ba

依赖GÿdF4y2Ba

要启用这个特性,集GÿdF4y2BaRandomStreamGÿdF4y2Ba来GÿdF4y2Ba“与种子mt19937ar”GÿdF4y2Ba。GÿdF4y2Ba

数据类型:GÿdF4y2Ba单GÿdF4y2Ba|GÿdF4y2Ba双GÿdF4y2Ba|GÿdF4y2Baint8GÿdF4y2Ba|GÿdF4y2BaINT16GÿdF4y2Ba|GÿdF4y2BaINT32GÿdF4y2Ba|GÿdF4y2BaInt64的GÿdF4y2Ba|GÿdF4y2BaUINT8GÿdF4y2Ba|GÿdF4y2BaUINT16GÿdF4y2Ba|GÿdF4y2BaUINT32GÿdF4y2Ba|GÿdF4y2Bauint64GÿdF4y2Ba

使用GÿdF4y2Ba

描述GÿdF4y2Ba

[GÿdF4y2BaaccelReadingsGÿdF4y2Ba,GÿdF4y2BagyroReadingsGÿdF4y2Ba)= IMU (GÿdF4y2BaACCGÿdF4y2Ba,GÿdF4y2BaangVelGÿdF4y2Ba)GÿdF4y2Ba根据加速度和角速度输入生成加速度计和陀螺仪读数。GÿdF4y2Ba

这句法是如果只有有效GÿdF4y2BaIMUTypeGÿdF4y2Ba被设定为GÿdF4y2Ba“加速 - 陀螺仪”GÿdF4y2Ba或GÿdF4y2Ba'加速 - 陀螺-MAG'GÿdF4y2Ba。GÿdF4y2Ba

[GÿdF4y2BaaccelReadingsGÿdF4y2Ba,GÿdF4y2BagyroReadingsGÿdF4y2Ba)= IMU (GÿdF4y2BaACCGÿdF4y2Ba,GÿdF4y2BaangVelGÿdF4y2Ba,GÿdF4y2Ba取向GÿdF4y2Ba)GÿdF4y2Ba根据加速度、角速度和方向输入生成加速度计和陀螺仪读数。GÿdF4y2Ba

这句法是如果只有有效GÿdF4y2BaIMUTypeGÿdF4y2Ba被设定为GÿdF4y2Ba“加速 - 陀螺仪”GÿdF4y2Ba或GÿdF4y2Ba'加速 - 陀螺-MAG'GÿdF4y2Ba。GÿdF4y2Ba

[GÿdF4y2BaaccelReadingsGÿdF4y2Ba,GÿdF4y2BamagReadingsGÿdF4y2Ba)= IMU (GÿdF4y2BaACCGÿdF4y2Ba,GÿdF4y2BaangVelGÿdF4y2Ba)GÿdF4y2Ba从加速度和角速度输入生成加速度计和磁强计读数。GÿdF4y2Ba

这句法是如果只有有效GÿdF4y2BaIMUTypeGÿdF4y2Ba被设定为GÿdF4y2Ba“accel-mag”GÿdF4y2Ba。GÿdF4y2Ba

[GÿdF4y2BaaccelReadingsGÿdF4y2Ba,GÿdF4y2BamagReadingsGÿdF4y2Ba)= IMU (GÿdF4y2BaACCGÿdF4y2Ba,GÿdF4y2BaangVelGÿdF4y2Ba,GÿdF4y2Ba取向GÿdF4y2Ba)GÿdF4y2Ba根据加速度、角速度和方向输入生成加速度计和磁强计读数。GÿdF4y2Ba

这句法是如果只有有效GÿdF4y2BaIMUTypeGÿdF4y2Ba被设定为GÿdF4y2Ba“accel-mag”GÿdF4y2Ba。GÿdF4y2Ba

[GÿdF4y2BaaccelReadingsGÿdF4y2Ba,GÿdF4y2BagyroReadingsGÿdF4y2Ba,GÿdF4y2BamagReadingsGÿdF4y2Ba)= IMU (GÿdF4y2BaACCGÿdF4y2Ba,GÿdF4y2BaangVelGÿdF4y2Ba)GÿdF4y2Ba生成加速度计,陀螺仪,和从所述加速度和角速度输入磁力计读数。GÿdF4y2Ba

这句法是如果只有有效GÿdF4y2BaIMUTypeGÿdF4y2Ba被设定为GÿdF4y2Ba'加速 - 陀螺-MAG'GÿdF4y2Ba。GÿdF4y2Ba

[GÿdF4y2BaaccelReadingsGÿdF4y2Ba,GÿdF4y2BagyroReadingsGÿdF4y2Ba,GÿdF4y2BamagReadingsGÿdF4y2Ba)= IMU (GÿdF4y2BaACCGÿdF4y2Ba,GÿdF4y2BaangVelGÿdF4y2Ba,GÿdF4y2Ba取向GÿdF4y2Ba)GÿdF4y2Ba根据加速度、角速度和方向输入,生成加速度计、陀螺仪和磁强计读数。GÿdF4y2Ba

这句法是如果只有有效GÿdF4y2BaIMUTypeGÿdF4y2Ba被设定为GÿdF4y2Ba'加速 - 陀螺-MAG'GÿdF4y2Ba。GÿdF4y2Ba

输入参数GÿdF4y2Ba

展开全部GÿdF4y2Ba

在本地导航坐标系中的IMU的加速度,指定为真实的,有限GÿdF4y2BañGÿdF4y2Ba-by-3阵列中的米每秒平方。GÿdF4y2BañGÿdF4y2Ba是样品的在当前帧的数目。GÿdF4y2Ba

数据类型:GÿdF4y2Ba单GÿdF4y2Ba|GÿdF4y2Ba双GÿdF4y2Ba

IMU在局部导航坐标系中的角速度,指定为实的、有限的GÿdF4y2BañGÿdF4y2Ba-by-3阵列中的每秒弧度。GÿdF4y2BañGÿdF4y2Ba是样品的在当前帧的数目。GÿdF4y2Ba

数据类型:GÿdF4y2Ba单GÿdF4y2Ba|GÿdF4y2Ba双GÿdF4y2Ba

IMU相对于本地导航坐标系统的方向,指定为GÿdF4y2Ba四元GÿdF4y2BañGÿdF4y2Ba-元素列向量或3×3×-GÿdF4y2BañGÿdF4y2Ba旋转矩阵。每一个GÿdF4y2Ba四元GÿdF4y2Ba或旋转矩阵表示从本地导航坐标系统到当前IMU传感器体坐标系统的帧旋转。GÿdF4y2BañGÿdF4y2Ba是样品的在当前帧的数目。GÿdF4y2Ba

数据类型:GÿdF4y2Ba单GÿdF4y2Ba|GÿdF4y2Ba双GÿdF4y2Ba|GÿdF4y2Ba四元GÿdF4y2Ba

输出参数GÿdF4y2Ba

展开全部GÿdF4y2Ba

加速度计测量的IMU在传感器体坐标系中,指定为实坐标系,为有限坐标系GÿdF4y2BañGÿdF4y2Ba-by-3阵列中的米每秒平方。GÿdF4y2BañGÿdF4y2Ba是样品的在当前帧的数目。GÿdF4y2Ba

数据类型:GÿdF4y2Ba单GÿdF4y2Ba|GÿdF4y2Ba双GÿdF4y2Ba

陀螺仪测量的IMU在传感器体坐标系中,指定为实坐标系、有限坐标系GÿdF4y2BañGÿdF4y2Ba-by-3阵列中的每秒弧度。GÿdF4y2BañGÿdF4y2Ba是样品的在当前帧的数目。GÿdF4y2Ba

数据类型:GÿdF4y2Ba单GÿdF4y2Ba|GÿdF4y2Ba双GÿdF4y2Ba

磁强计测量的IMU在传感器体坐标系中,指定为实坐标系、有限坐标系GÿdF4y2BañGÿdF4y2Ba-by-3 microtelsa阵列。GÿdF4y2BañGÿdF4y2Ba是样品的在当前帧的数目。GÿdF4y2Ba

数据类型:GÿdF4y2Ba单GÿdF4y2Ba|GÿdF4y2Ba双GÿdF4y2Ba

对象的功能GÿdF4y2Ba

使用对象函数,指定系统对象作为第一个输入参数。例如,为了释放一个名为System对象的系统资源GÿdF4y2BaobjGÿdF4y2Ba,使用此语法:GÿdF4y2Ba

发行版(obj)GÿdF4y2Ba

展开全部GÿdF4y2Ba

loadparamsGÿdF4y2Ba 从JSON文件负载传感器参数GÿdF4y2Ba
步GÿdF4y2Ba 运行GÿdF4y2Ba系统对象GÿdF4y2Ba算法GÿdF4y2Ba
释放GÿdF4y2Ba 释放资源,并允许更改GÿdF4y2Ba系统对象GÿdF4y2Ba属性值和输入特性GÿdF4y2Ba
重启GÿdF4y2Ba 复位的内部状态GÿdF4y2Ba系统对象GÿdF4y2Ba

例子GÿdF4y2Ba

全部折叠GÿdF4y2Ba

该GÿdF4y2BaimuSensorGÿdF4y2Ba系统对象™使用户能够从由陀螺仪,加速度计,磁强计和的组合的惯性测量单元接收的数据进行建模。GÿdF4y2Ba

创建一个默认GÿdF4y2BaimuSensorGÿdF4y2Ba对象。GÿdF4y2Ba

IMU = imuSensorGÿdF4y2Ba
IMU = imuSensor与属性:IMUType:“加速 - 陀螺SAMPLERATE:100温度:25加速度计:[1x1的accelparams]陀螺仪:[1x1的gyroparams] RandomStream: '全局流'GÿdF4y2Ba

该GÿdF4y2BaimuSensorGÿdF4y2Ba对象,GÿdF4y2BaIMUGÿdF4y2Ba,包含一个理想化的陀螺仪和加速度计。使用点表示法来查看陀螺仪的性能。GÿdF4y2Ba

IMU.GyroscopeGÿdF4y2Ba
ans = gyroparams属性:MeasurementRange:正rad / s决议:0 (rad / s) / LSB ConstantBias: [0 0 0] rad / s AxesMisalignment: [0 0 0] % NoiseDensity: [0 0 0] (rad / s) /√赫兹BiasInstability: [0 0 0] rad / s随机散步:[0 0 0](rad / s) *√赫兹TemperatureBias: [0 0 0] (rad / s) /°C TemperatureScaleFactor: [0 0 0] % /°C AccelerationBias: [0 0 0] (rad / s) / (m / s²)GÿdF4y2Ba

传感器属性由相应的参数对象定义。例如,陀螺模型所采用的GÿdF4y2BaimuSensorGÿdF4y2Ba的实例定义GÿdF4y2BagyroparamsGÿdF4y2Ba类。可以使用点表示法修改陀螺仪模型的属性。将陀螺仪测量范围设置为4.3 rad/s。GÿdF4y2Ba

IMU.Gyroscope。MeasurementRange = 4.3;GÿdF4y2Ba

您还可以设置传感器属性预设参数对象。创建GÿdF4y2BaaccelparamsGÿdF4y2Ba目的在于模仿特定的硬件,然后设置IMUGÿdF4y2Ba加速度计GÿdF4y2Ba属性设置GÿdF4y2BaaccelparamsGÿdF4y2Ba对象。显示GÿdF4y2Ba加速度计GÿdF4y2Ba属性验证属性都设置正确。GÿdF4y2Ba

SpecSheet1 = accelparams(GÿdF4y2Ba…GÿdF4y2Ba“MeasurementRange”GÿdF4y2Ba,19.62,GÿdF4y2Ba…GÿdF4y2Ba“决议”GÿdF4y2Ba,0.00059875,GÿdF4y2Ba…GÿdF4y2Ba'ConstantBias'GÿdF4y2Ba,0.4905,GÿdF4y2Ba…GÿdF4y2Ba“AxesMisalignment”GÿdF4y2Ba,2,GÿdF4y2Ba…GÿdF4y2Ba“NoiseDensity”GÿdF4y2Ba,0.003924,GÿdF4y2Ba…GÿdF4y2Ba'BiasInstability'GÿdF4y2Ba,0,GÿdF4y2Ba…GÿdF4y2Ba“TemperatureBias”GÿdF4y2Ba[0.34335 0.34335 0.5886]GÿdF4y2Ba…GÿdF4y2Ba'TemperatureScaleFactor'GÿdF4y2Ba,0.02);IMU.Accelerometer = SpecSheet1;IMU.AccelerometerGÿdF4y2Ba
ANS = accelparams与属性:MeasurementRange:19.62米/秒²分辨率:0.00059875(米/秒²)/ LSB ConstantBias:[0.4905 0.4905 0.4905]米/秒²AxesMisalignment:[2 2 2]%NoiseDensity:0.003924 0.003924 0.003924](米/秒²)/√Hz的BiasInstability:[0 0 0]米/秒²RandomWalk:[0 0 0](米/秒²)*√Hz的TemperatureBias:0.34335 0.34335 0.5886](米/秒²)/℃TemperatureScaleFactor:[0.02 0.020.02]%/℃GÿdF4y2Ba

使用GÿdF4y2BaimuSensorGÿdF4y2Ba系统对象™模拟从静止的理想IMU接收数据,其中包含加速度计、陀螺仪和磁强计。GÿdF4y2Ba

创建一个理想的IMU传感器模型,其中包含一个加速度计、陀螺仪和磁强计。GÿdF4y2Ba

IMU = imuSensor(GÿdF4y2Ba'加速 - 陀螺-MAG'GÿdF4y2Ba)GÿdF4y2Ba
IMU = imuSensor与属性:IMUType: '加速度陀螺-MAG' SAMPLERATE:100温度:25磁感应强度:[27.5550 -2.4169 -16.0849]加速度计:[1x1的accelparams]陀螺仪:[1x1的gyroparams]磁力计:[1x1的magparams] RandomStream:“全球流”GÿdF4y2Ba

定义地面实况,根本你正在建模的IMU的运动。加速度和角速度相对于本地定义NED坐标系。GÿdF4y2Ba

NUMSAMPLES = 1000;加速度=零(NUMSAMPLES,3);angularVelocity =零(NUMSAMPLES,3);GÿdF4y2Ba

调用GÿdF4y2BaIMUGÿdF4y2Ba地面真实加速度和角速度。该对象输出加速度计读数,陀螺仪读数,和磁强计读数,作为建模的属性GÿdF4y2BaimuSensorGÿdF4y2Ba系统对象。加速度计读数、陀螺仪读数和磁强计读数与IMU传感器体坐标系统相关。GÿdF4y2Ba

[accelReading,gyroReading,magReading] = IMU(加速,angularVelocity);GÿdF4y2Ba

绘制加速度计读数、陀螺仪读数和磁强计读数。GÿdF4y2Ba

t = (0: (numSamples-1)) / IMU.SampleRate;次要情节(1,1)情节(t, accelReading)传说(GÿdF4y2Ba“X轴”GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Baz轴的GÿdF4y2Ba)标题(GÿdF4y2Ba“加速度计读数”GÿdF4y2Ba)ylabel (GÿdF4y2Ba'加速(米/秒^ 2)'GÿdF4y2Ba) subplot(3,1,2) plot(t,陀螺仪)图例(GÿdF4y2Ba“X轴”GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Baz轴的GÿdF4y2Ba)标题(GÿdF4y2Ba“陀螺仪读数”GÿdF4y2Ba)ylabel (GÿdF4y2Ba“角速度(弧度/秒)”GÿdF4y2Ba)副区(3,1,3)情节(T,magReading)图例(GÿdF4y2Ba“X轴”GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Baz轴的GÿdF4y2Ba)标题(GÿdF4y2Ba的磁强计读数GÿdF4y2Ba)包含(GÿdF4y2Ba“时间(s)”GÿdF4y2Ba)ylabel (GÿdF4y2Ba“磁场(uT)”GÿdF4y2Ba)GÿdF4y2Ba

由于没有指定方向,且地面真值运动是静止的,因此IMU传感器体坐标系与局部NED坐标系在整个仿真过程中是重叠的。GÿdF4y2Ba

  • 加速度计读数:本GÿdF4y2BažGÿdF4y2Ba- 轴传感器主体对应于下轴。9.8米/秒^ 2沿加速度GÿdF4y2BažGÿdF4y2Ba轴是由于重力。GÿdF4y2Ba

  • 陀螺仪读数:陀螺仪读数是沿每个轴零,如所预期。GÿdF4y2Ba

  • 磁力计读数:由于传感器主体坐标系统与本地NED坐标系统对准,该磁力计的读数对应于GÿdF4y2Ba磁感应强度GÿdF4y2Ba的属性GÿdF4y2BaimuSensorGÿdF4y2Ba。该GÿdF4y2Ba磁感应强度GÿdF4y2Ba属性是在本地定义NED坐标系。GÿdF4y2Ba

使用GÿdF4y2BaimuSensorGÿdF4y2Ba从含有一种理想的加速计和磁强计理想的旋转IMU获得的模型数据。使用GÿdF4y2BakinematicTrajectoryGÿdF4y2Ba以限定地面实况运动。熔断器GÿdF4y2BaimuSensorGÿdF4y2Ba使用GÿdF4y2BaecompassGÿdF4y2Ba函数来确定随着时间的推移方向。GÿdF4y2Ba

定义一个在4秒内360度旋转,然后在2秒内360度旋转的平台的地面真实运动。使用GÿdF4y2BakinematicTrajectoryGÿdF4y2Ba到输出的取向,加速度和角速度在NED坐标系。GÿdF4y2Ba

FS = 100;firstLoopNumSamples = FS * 4;secondLoopNumSamples = FS * 2;totalNumSamples = firstLoopNumSamples + secondLoopNumSamples;TRAJ = kinematicTrajectory(GÿdF4y2Ba'采样率'GÿdF4y2Bafs);accBody = 0 (totalNumSamples, 3);angVelBody = 0 (totalNumSamples, 3);angVelBody (1: firstLoopNumSamples, 3) =(2 *π)/ 4;angVelBody (firstLoopNumSamples + 1:结束,3)=(2 *π)/ 2;[取向,~ ~,accNED angVelNED] = traj (accBody angVelBody);GÿdF4y2Ba

创建GÿdF4y2BaimuSensorGÿdF4y2Ba带有理想的加速度计和理想的磁强计的物体。调用GÿdF4y2BaIMUGÿdF4y2Ba与地面实况加速度,角速度,和取向输出加速度计读数和磁强计的读数。绘制的结果。GÿdF4y2Ba

IMU = imuSensor(GÿdF4y2Ba“accel-mag”GÿdF4y2Ba,GÿdF4y2Ba'采样率'GÿdF4y2Bafs);[accelReadings, magReadings] = IMU (accNED、angVelNED取向);图(1)t = (0:(totalNumSamples-1))/fs;副区(2,1,1)情节(T,accelReadings)图例(GÿdF4y2Ba“X轴”GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Baz轴的GÿdF4y2Ba)ylabel (GÿdF4y2Ba'加速(米/秒^ 2)'GÿdF4y2Ba)标题(GÿdF4y2Ba“加速度计读数”GÿdF4y2Ba)副区(2,1,2)情节(T,magReadings)图例(GÿdF4y2Ba“X轴”GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Baz轴的GÿdF4y2Ba)ylabel (GÿdF4y2Ba'磁场(\ MUT)'GÿdF4y2Ba)包含(GÿdF4y2Ba“时间(s)”GÿdF4y2Ba)标题(GÿdF4y2Ba的磁强计读数GÿdF4y2Ba)GÿdF4y2Ba

加速度计读数表明,该平台还没有翻译。磁力计读数表明,平台围绕旋转GÿdF4y2BažGÿdF4y2Ba-轴。GÿdF4y2Ba

将加速度计和磁强计读数输入GÿdF4y2BaecompassGÿdF4y2Ba功能估计方向随着时间的推移。该GÿdF4y2BaecompassGÿdF4y2Ba功能四元数格式返回的方向。转换方位欧拉角得出结果。方位图指示该平台对旋转GÿdF4y2BažGÿdF4y2Ba只有轴摆动。GÿdF4y2Ba

取向=电子罗盘(accelReadings,magReadings);orientationEuler = eulerd(取向,GÿdF4y2Ba'ZYX'GÿdF4y2Ba,GÿdF4y2Ba'帧'GÿdF4y2Ba);图(之二)图(吨,orientationEuler)图例(GÿdF4y2Baz轴的GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Ba“X轴”GÿdF4y2Ba)包含(GÿdF4y2Ba“时间(s)”GÿdF4y2Ba)ylabel (GÿdF4y2Ba“旋转(度)”GÿdF4y2Ba)标题(GÿdF4y2Ba“定位”GÿdF4y2Ba)GÿdF4y2Ba

使用GÿdF4y2BaimuSensorGÿdF4y2Ba模拟从含有逼真的加速度计和逼真的磁强计的旋转IMU中获得的数据。使用GÿdF4y2BakinematicTrajectoryGÿdF4y2Ba以限定地面实况运动。熔断器GÿdF4y2BaimuSensorGÿdF4y2Ba使用GÿdF4y2BaecompassGÿdF4y2Ba函数来确定随着时间的推移方向。GÿdF4y2Ba

定义一个在4秒内360度旋转,然后在2秒内360度旋转的平台的地面真实运动。使用GÿdF4y2BakinematicTrajectoryGÿdF4y2Ba到输出的取向,加速度和角速度在NED坐标系。GÿdF4y2Ba

FS = 100;firstLoopNumSamples = FS * 4;secondLoopNumSamples = FS * 2;totalNumSamples = firstLoopNumSamples + secondLoopNumSamples;TRAJ = kinematicTrajectory(GÿdF4y2Ba'采样率'GÿdF4y2Bafs);accBody = 0 (totalNumSamples, 3);angVelBody = 0 (totalNumSamples, 3);angVelBody (1: firstLoopNumSamples, 3) =(2 *π)/ 4;angVelBody (firstLoopNumSamples + 1:结束,3)=(2 *π)/ 2;[取向,~ ~,accNED angVelNED] = traj (accBody angVelBody);GÿdF4y2Ba

创建GÿdF4y2BaimuSensorGÿdF4y2Ba对象与现实的加速度计和现实的磁强计。调用GÿdF4y2BaIMUGÿdF4y2Ba与地面实况加速度,角速度,和取向输出加速度计读数和磁强计的读数。绘制的结果。GÿdF4y2Ba

IMU = imuSensor(GÿdF4y2Ba“accel-mag”GÿdF4y2Ba,GÿdF4y2Ba'采样率'GÿdF4y2Bafs);IMU.Accelerometer = accelparams(GÿdF4y2Ba…GÿdF4y2Ba“MeasurementRange”GÿdF4y2Ba,19.62,GÿdF4y2Ba…GÿdF4y2Ba%米/秒^ 2GÿdF4y2Ba“决议”GÿdF4y2Ba,0.0023936,GÿdF4y2Ba…GÿdF4y2Ba%米/秒^ 2 / LSBGÿdF4y2Ba'TemperatureScaleFactor'GÿdF4y2Ba,0.008,GÿdF4y2Ba…GÿdF4y2Ba% % /度CGÿdF4y2Ba'ConstantBias'GÿdF4y2Ba,0.1962,GÿdF4y2Ba…GÿdF4y2Ba%米/秒^ 2GÿdF4y2Ba“TemperatureBias”GÿdF4y2Ba,0.0014715,GÿdF4y2Ba…GÿdF4y2Ba%米/秒^ 2 /℃GÿdF4y2Ba“NoiseDensity”GÿdF4y2Ba,0.0012361);GÿdF4y2Ba%米/秒^ 2 / Hz的^(1/2)GÿdF4y2BaIMU.Magnetometer = magparams(GÿdF4y2Ba…GÿdF4y2Ba“MeasurementRange”GÿdF4y2Ba,1200,GÿdF4y2Ba…GÿdF4y2Ba%uT的GÿdF4y2Ba“决议”GÿdF4y2Ba,0.1%,GÿdF4y2Ba…GÿdF4y2Ba% uT / LSBGÿdF4y2Ba'TemperatureScaleFactor'GÿdF4y2Ba,0.1%,GÿdF4y2Ba…GÿdF4y2Ba% % /度CGÿdF4y2Ba'ConstantBias'GÿdF4y2Ba1,GÿdF4y2Ba…GÿdF4y2Ba%uT的GÿdF4y2Ba“TemperatureBias”GÿdF4y2Ba(0.8 0.8 2.4),GÿdF4y2Ba…GÿdF4y2Ba%UT /摄氏度GÿdF4y2Ba“NoiseDensity”GÿdF4y2Ba[0.6 0.6 0.9] / SQRT(100));GÿdF4y2Ba% uT / Hz^(1/2)GÿdF4y2Ba[accelReadings, magReadings] = IMU (accNED、angVelNED取向);图(1)t = (0:(totalNumSamples-1))/fs;副区(2,1,1)情节(T,accelReadings)图例(GÿdF4y2Ba“X轴”GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Baz轴的GÿdF4y2Ba)ylabel (GÿdF4y2Ba'加速(米/秒^ 2)'GÿdF4y2Ba)标题(GÿdF4y2Ba“加速度计读数”GÿdF4y2Ba)副区(2,1,2)情节(T,magReadings)图例(GÿdF4y2Ba“X轴”GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Baz轴的GÿdF4y2Ba)ylabel (GÿdF4y2Ba'磁场(\ MUT)'GÿdF4y2Ba)包含(GÿdF4y2Ba“时间(s)”GÿdF4y2Ba)标题(GÿdF4y2Ba的磁强计读数GÿdF4y2Ba)GÿdF4y2Ba

加速度计读数表明,该平台还没有翻译。磁力计读数表明,平台围绕旋转GÿdF4y2BažGÿdF4y2Ba-轴。GÿdF4y2Ba

将加速度计和磁强计读数输入GÿdF4y2BaecompassGÿdF4y2Ba功能估计方向随着时间的推移。该GÿdF4y2BaecompassGÿdF4y2Ba功能四元数格式返回的方向。转换方位欧拉角得出结果。方位图指示该平台对旋转GÿdF4y2BažGÿdF4y2Ba只有轴摆动。GÿdF4y2Ba

取向=电子罗盘(accelReadings,magReadings);orientationEuler = eulerd(取向,GÿdF4y2Ba'ZYX'GÿdF4y2Ba,GÿdF4y2Ba'帧'GÿdF4y2Ba);图(之二)图(吨,orientationEuler)图例(GÿdF4y2Baz轴的GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Ba“X轴”GÿdF4y2Ba)包含(GÿdF4y2Ba“时间(s)”GÿdF4y2Ba)ylabel (GÿdF4y2Ba“旋转(度)”GÿdF4y2Ba)标题(GÿdF4y2Ba“定位”GÿdF4y2Ba)GÿdF4y2Ba

%GÿdF4y2Ba

模型一个倾斜的IMU,其中包含一个加速度计和陀螺仪使用GÿdF4y2BaimuSensorGÿdF4y2Ba系统对象™。利用理想模型和现实模型,比较方向跟踪的结果GÿdF4y2BaimufilterGÿdF4y2Ba系统对象。GÿdF4y2Ba

加载描述地面真实运动的结构和采样率。运动结构描述了连续的旋转:GÿdF4y2Ba

  1. 偏航:120度可以在两秒GÿdF4y2Ba

  2. 节距:60度以上1秒GÿdF4y2Ba

  3. 翻滚:30度,1 / 2秒GÿdF4y2Ba

  4. 翻滚:-30度/ 1 / 2秒GÿdF4y2Ba

  5. 间距:-60度一秒多GÿdF4y2Ba

  6. 偏航:-120度可以在两秒GÿdF4y2Ba

在最后一个阶段,运动结构将第1、2、3次旋转组合成单轴旋转。加速度、角速度和方向在局部坐标系中定义。GÿdF4y2Ba

加载GÿdF4y2Bay120p60r30.matGÿdF4y2Ba运动GÿdF4y2BaFSGÿdF4y2BaaccNED = motion.Acceleration;angVelNED = motion.AngularVelocity;orientationNED = motion.Orientation;NUMSAMPLES =尺寸(motion.Orientation,1);T =(0:(NUMSAMPLES-1))。'/ FS;GÿdF4y2Ba

创建一个理想的IMU传感器对象和一个默认的IMU过滤器对象。GÿdF4y2Ba

IMU = imuSensor(GÿdF4y2Ba“加速 - 陀螺仪”GÿdF4y2Ba,GÿdF4y2Ba'采样率'GÿdF4y2Bafs);aFilter = imufilter(GÿdF4y2Ba'采样率'GÿdF4y2Bafs);GÿdF4y2Ba

在一个循环:GÿdF4y2Ba

  1. 通过向IMU传感器对象提供地面真值运动来模拟IMU输出。GÿdF4y2Ba

  2. 使用默认的IMU筛选器对象筛选IMU输出。GÿdF4y2Ba

取向= 0 (numSamples 1GÿdF4y2Ba“四元”GÿdF4y2Ba);GÿdF4y2Ba对于GÿdF4y2Bai = 1:numSamples [accelBody,gyroBody] = IMU(accNED(i,:),angVelNED(i,:),orientationNED(i,:));取向(ⅰ)= aFilter(accelBody,gyroBody);GÿdF4y2Ba结束GÿdF4y2Ba释放(aFilter)GÿdF4y2Ba

绘制随时间变化的方向。GÿdF4y2Ba

图(之一)图(吨,eulerd(取向,GÿdF4y2Ba'ZYX'GÿdF4y2Ba,GÿdF4y2Ba'帧'GÿdF4y2Ba))xlabel(GÿdF4y2Ba“时间(s)”GÿdF4y2Ba)ylabel (GÿdF4y2Ba“旋转(度)”GÿdF4y2Ba)标题(GÿdF4y2Ba“方向估计 - 非常IMU数据,默认IMU过滤器”GÿdF4y2Ba)图例(GÿdF4y2Baz轴的GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Ba“X轴”GÿdF4y2Ba)GÿdF4y2Ba

的修改属性您GÿdF4y2BaimuSensorGÿdF4y2Ba真实世界的模拟传感器。再次运行循环,并绘制方位估计随着时间的推移。GÿdF4y2Ba

IMU.Accelerometer = accelparams(GÿdF4y2Ba…GÿdF4y2Ba“MeasurementRange”GÿdF4y2Ba,19.62,GÿdF4y2Ba…GÿdF4y2Ba“决议”GÿdF4y2Ba,0.00059875,GÿdF4y2Ba…GÿdF4y2Ba'ConstantBias'GÿdF4y2Ba,0.4905,GÿdF4y2Ba…GÿdF4y2Ba“AxesMisalignment”GÿdF4y2Ba,2,GÿdF4y2Ba…GÿdF4y2Ba“NoiseDensity”GÿdF4y2Ba,0.003924,GÿdF4y2Ba…GÿdF4y2Ba'BiasInstability'GÿdF4y2Ba,0,GÿdF4y2Ba…GÿdF4y2Ba“TemperatureBias”GÿdF4y2Ba[0.34335 0.34335 0.5886]GÿdF4y2Ba…GÿdF4y2Ba'TemperatureScaleFactor'GÿdF4y2Ba,0.02);IMU.Gyroscope = gyroparams(GÿdF4y2Ba…GÿdF4y2Ba“MeasurementRange”GÿdF4y2Ba,4.3633,GÿdF4y2Ba…GÿdF4y2Ba“决议”GÿdF4y2Ba,0.00013323,GÿdF4y2Ba…GÿdF4y2Ba“AxesMisalignment”GÿdF4y2Ba,2,GÿdF4y2Ba…GÿdF4y2Ba“NoiseDensity”GÿdF4y2Ba8.7266 e-05GÿdF4y2Ba…GÿdF4y2Ba“TemperatureBias”GÿdF4y2Ba,0.34907,GÿdF4y2Ba…GÿdF4y2Ba'TemperatureScaleFactor'GÿdF4y2Ba,0.02,GÿdF4y2Ba…GÿdF4y2Ba“AccelerationBias”GÿdF4y2Ba,0.00017809,GÿdF4y2Ba…GÿdF4y2Ba'ConstantBias'GÿdF4y2Ba[0.3491,0.5,0]);orientationDefault =零(NUMSAMPLES,1,GÿdF4y2Ba“四元”GÿdF4y2Ba);GÿdF4y2Ba对于GÿdF4y2Bai = 1:numSamples [accelBody,gyroBody] = IMU(accNED(i,:),angVelNED(i,:),orientationNED(i,:));orientationDefault (i) = aFilter (accelBody gyroBody);GÿdF4y2Ba结束GÿdF4y2Ba发行版(aFilter)图(2)情节(t, eulerd (orientationDefault,GÿdF4y2Ba'ZYX'GÿdF4y2Ba,GÿdF4y2Ba'帧'GÿdF4y2Ba))xlabel(GÿdF4y2Ba“时间(s)”GÿdF4y2Ba)ylabel (GÿdF4y2Ba“旋转(度)”GÿdF4y2Ba)标题(GÿdF4y2Ba“方向估计—真实的IMU数据,默认的IMU过滤器”GÿdF4y2Ba)图例(GÿdF4y2Baz轴的GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Ba“X轴”GÿdF4y2Ba)GÿdF4y2Ba

的能力GÿdF4y2BaimufilterGÿdF4y2Ba跟踪地面实况数据建模逼真的IMU时显著减少。为了提高性能,修改属性您GÿdF4y2BaimufilterGÿdF4y2Ba对象。这些值凭经验确定。再次运行循环,并绘制方位估计随着时间的推移。GÿdF4y2Ba

aFilter.GyroscopeNoise = 7.6154e-7;aFilter.AccelerometerNoise = 0.0015398;aFilter.GyroscopeDriftNoise = 3.0462e-12;aFilter.LinearAccelerationNoise = 0.00096236;aFilter.InitialProcessNoise = aFilter.InitialProcessNoise * 10;orientationNondefault =零(NUMSAMPLES,1,GÿdF4y2Ba“四元”GÿdF4y2Ba);GÿdF4y2Ba对于GÿdF4y2Bai = 1:numSamples [accelBody,gyroBody] = IMU(accNED(i,:),angVelNED(i,:),orientationNED(i,:));orientationNondefault(ⅰ)= aFilter(accelBody,gyroBody);GÿdF4y2Ba结束GÿdF4y2Ba释放(aFilter)图(3)情节(T,eulerd(orientationNondefault,GÿdF4y2Ba'ZYX'GÿdF4y2Ba,GÿdF4y2Ba'帧'GÿdF4y2Ba))xlabel(GÿdF4y2Ba“时间(s)”GÿdF4y2Ba)ylabel (GÿdF4y2Ba“旋转(度)”GÿdF4y2Ba)标题(GÿdF4y2Ba“方向估计—真实的IMU数据,非默认IMU过滤器”GÿdF4y2Ba)图例(GÿdF4y2Baz轴的GÿdF4y2Ba,GÿdF4y2Ba“轴”GÿdF4y2Ba,GÿdF4y2Ba“X轴”GÿdF4y2Ba)GÿdF4y2Ba

量化改进后的性能GÿdF4y2BaimufilterGÿdF4y2Ba,绘制ground-truth运动与返回的方向之间的四元数距离GÿdF4y2BaimufilterGÿdF4y2Ba使用默认和非默认属性。GÿdF4y2Ba

qDistDefault = rad2deg(DIST(orientationNED,orientationDefault));qDistNondefault = rad2deg(DIST(orientationNED,orientationNondefault));图(4)积(T,[qDistDefault,qDistNondefault])标题(GÿdF4y2Ba与真方向的四元数距离GÿdF4y2Ba)图例(GÿdF4y2Ba“现实IMU数据,默认IMU过滤器”GÿdF4y2Ba,GÿdF4y2Ba…GÿdF4y2Ba“真实的IMU数据,非默认的IMU过滤器”GÿdF4y2Ba)包含(GÿdF4y2Ba“时间(s)”GÿdF4y2Ba)ylabel (GÿdF4y2Ba“四元数的距离(度)”GÿdF4y2Ba)GÿdF4y2Ba

算法GÿdF4y2Ba

展开全部GÿdF4y2Ba

扩展功能GÿdF4y2Ba

也可以看看GÿdF4y2Ba

类GÿdF4y2Ba

系统对象GÿdF4y2Ba

介绍了在R2018bGÿdF4y2Ba