主要内容

用于方向估计的记录传感器数据校准

这个例子展示了如何对齐和预处理记录的传感器数据。这使得融合滤波器可以按照预期执行方向估计。记录数据是从安装在地面车辆上的加速度计和陀螺仪收集的。

负载传感器数据

负载记录惯性测量单元(IMU)数据,并提取单个传感器数据和时间戳。

负载(“imuData”“imuTT”)时间= imut .时间;加速度= imut .线性加速度;陀螺= imut . angularvelocity;orient = imut . orientation;

检查陀螺仪数据

从角速度读数的范围来看,陀螺仪记录的数据以弧度/秒而不是度/秒为单位。此外,较大的z轴值和较小的x轴和y轴值表示设备仅围绕z轴旋转。

图示(时间,陀螺)“陀螺”) ylabel (“rad / s”)传说(“轴”“轴”z轴的

检查加速度计数据

由于加速度计的z轴读数约为10,因此记录的数据单位为米每秒平方,而不是g。

图表(时间,加速)加速度计的) ylabel (“米/秒^ 2”)传说(“轴”“轴”z轴的

检查方位数据

将记录方向的四元数数据转换为以角度为单位的欧拉角。z轴是变化的,而x和y轴是相对固定的。这与陀螺仪和加速度计读数相匹配。因此,不需要负轴或旋转轴。然而,当陀螺仪读数为正时,z轴欧拉角正在减小。这意味着记录方向的四元数将被应用为点旋转操作符($v' = qvq^{*}$).为了让方向四元数匹配方向滤波器等imufilter时,需要将四元数应用为帧旋转算子($v' = q^{*}vq$).这可以通过共轭记录方向四元数来实现。

图(时间,欧拉,东方,“ZYX股票”“帧”)标题(“欧拉角”) ylabel (“\保监会”%度符号。传奇(z轴的“轴”“轴”

找到记录数据的采样率

采样率的估计值可以通过取时间戳之间差值的平均值来获得。注意,在时间差中有一些差异。由于此记录数据的方差很小,因此可以使用时间差异的平均值。或者,可以使用时间戳和等距时间戳作为查询点对传感器数据进行插值。

deltaTimes =秒(diff(时间));sampleRate = 1/mean(deltaTimes);figure plot([deltaTimes, repmat(mean(deltaTimes), numel(deltaTimes), 1)])“时差”) ylabel (“年代”)传说(“差异”“的意思是”

将转换后的日志四元数与imufilter四元数

共轭记录的方向四元数,然后将其与估计的方向四元数进行比较imufilter.从下图中可以看出,在z轴欧拉角估计中仍然存在一个常数偏移。这是因为imufilter假设设备的初始方向与导航框架对齐。

loggedOrient = conj(orient);Filt = imufilter(“SampleRate”, sampleRate);estOrient = filt(加速,陀螺);图subplot(2,1,1) plot(time, eulerd(loggedOrient,“ZYX股票”“帧”),“——”)标题(“对数欧拉角”) ylabel (“\保监会”%度符号。传奇(z轴的“轴”“轴”) subplot(2,1,2) plot(time, eulerd(estOrient,“ZYX股票”“帧”)标题(|imufilter|欧拉角) ylabel (“\保监会”%度符号。传奇(z轴的“轴”“轴”

对齐记录方向和imufilter取向

对齐的imufilter方向四元数与记录方向四元数通过应用常数偏差使用第一个记录方向四元数。对于四元数,可以通过预乘帧旋转或后乘点旋转应用恒定旋转偏置。自imufilter报告四元数作为帧旋转操作符,估计的方向四元数预先乘以第一个记录的方向四元数。

alignedEstOrient = loggedOrient(1) .* estOrient;图subplot(2,1,1) plot(time, eulerd(loggedOrient,“ZYX股票”“帧”),“——”)标题(“对数欧拉角”) ylabel (“\保监会”%度符号。传奇(z轴的“轴”“轴”) subplot(2, 1, 2) plot(时间,eulerd(alignedEstOrient,“ZYX股票”“帧”)标题(“对准|imufilter|欧拉角”) ylabel (“\保监会”%度符号。传奇(z轴的“轴”“轴”

结论

对于本例中的mat文件,您检查了以下方面的对齐:

  • 加速度计和陀螺仪的单元。

  • 加速度计和陀螺仪的轴对准。

  • 方向四元数旋转算子(点:$v' = qvq^{*}$或框架:$v' = q^{*}vq$

根据日志数据的格式,可能需要应用不同的单位转换、轴对齐和四元数转换。