【论文阅读】Denoising IMU Gyroscopes With Deep Learning for Open-Loop Attitude Estimation

摘要

本文提出了一种利用地面真实数据对惯性测量单元陀螺仪去噪的学习方法,并在航位推算中实时估计机器人的方位。所得到的算法在(未见过的)测试序列上优于最先进的算法。性能的提升主要是通过网络模型的设计、适当的定向增量损失函数和高频惯性数据训练时的关键点识别而实现的。我们的方法建立在一个基于扩张卷积的神经网络之上,不需要任何递归神经网络。并使用在姿态估计中最常用的数据集EuRoC和TUM-VI上进行测试取得良好的效果。虽然它不使用视觉传感器,但通过对比试验,可以观察到航迹推算算法在姿态估计方面超过了常见的视觉惯性里程计系统。
代码已开源

1.介绍

惯性测量单元(IMU)由测量角速度的陀螺仪和测量加速度的加速度计组成。IMU允许估计机器人相对于其起始位置的轨迹,这一任务称为里程计。
小型廉价的IMU在智能手机、工业和机器人应用中普遍存在,但在估计误差来源方面存在困难,例如Misalignment Error、Scale和时变偏移。(IMU的各种误差可以参考另一篇:IMU误差模型
因此,IMU信号不仅有噪声,而且有偏差。在本论文中,我们建议利用深度学习对陀螺仪进行去噪,即去掉噪声和偏置。同时,只需通过获得的无噪声陀螺测量值积分,即可获得了精确的姿态(即方向)估计。

与现有方法的联系和差异

在传感器融合系统中,IMU通常与互补传感器耦合以获得稳健的姿态估计,其中补充信息由(VIO、激光雷达、GNSS提供,或可能来自模型[9]-[12]的信息。为了获得准确的姿态估计,需要适当的IMU校准,例如,广泛使用的Kalibr库,它离线计算IMU的内在校准参数,以及相机和IMU之间的外参。我们的方法(如图所示)适用于任何配备了IMU的系统。该方法离线估计了IMU标定参数,并将[3]、[13]等方法推广到时变信号校正。
在这里插入图片描述
机器学习(更具体地说是深度学习)最近被广泛用于激光雷达、视觉惯性和纯惯性定位,这些方法分为监督和无监督。大多数工作都是从传感器信号中提取相关特征,并通过递归神经网络进行时间传播,而[19]提出了用于行人惯性导航的卷积神经网络,相关方法[20]应用强化学习来指导用户正确校准视觉惯性系统。
我们的方法是有监督的(我们需要地面真值进行训练),利用卷积而不是循环架构,且优于后者。我们获得了出色的结果,同时需要耗费更少的数据和更少的时间。

本文贡献

对低成本IMU的方向增量问题的详细建模;
卷积神经网络回归陀螺仪校正,其特征经过精心选择;
训练过程包括一个可追踪的损失函数,用于估计相对方向增量;
评估数据集的方法,可以对无人机和手持设备获取的数据集进行评估;
更有效的基于VIO和IMU的学习方法;
公共开源代码;

2.动力学和低成本IMU模型

基于方向增量的动力学模型

方向增量(orientation increments)用于描述物体在空间中方向的变化,例如陀螺仪可以测量物体的角速度,通过对角速度进行积分,可以计算出物体的方向增量。

通过积分可以得到刚体的三维方向:
在这里插入图片描述

低成本IMU传感器模型

在这里插入图片描述
g-sensitivity是指晶体振荡器输出频率由于施加加速度而发生的变化。它也称为加速度灵敏度,以ppb/g(每十亿分之一/每g)表示。它是振荡器对任何方向施加的外力的固有灵敏度。

需要注意:

  1. IMU的内参矩阵C和偏置bn实际上会随着时间发生变化,主要取决于传感器的温度和受到的压力,但是很难实时估计。
  2. 用实际测量的角速度 ω n I M U ω_n^{IMU} ωnIMU代替(1)中的真实值 ω n ω_n ωn,通常会导致几秒内的快速漂移和较差的方向估计
  3. 在方法评估方面,应该始终将学习方法与使用校准的IMU获得的结果进行比较,因为对公式(2)中参数Cbn的适当估计实际上会导致令人惊讶的精确结果,参见第四节。

3.基于学习的IMU去噪

目标:估计bn, ηn,修正C

修正模型

利用第二节的分析,计算无噪声增量:
在这里插入图片描述
计算 ω n ~ \tilde{ω_n} ωn~:在第三节B中,利用了窗口大小为N的 ω n I M U ω_n^{IMU} ωnIMU数据
计算 C ω ^ \hat{C_ω} Cω^:初始值为3*3单位矩阵,在后续训练中优化,因为每个IMU设备对应的内参矩阵不同

CNN结构

定义CNN结构,来计算矫正信息:
在这里插入图片描述
f()是由神经网络定义的函数。该网络应在时间多尺度上提取信息并计算平滑修正。网络的输入由IMU数据组成,包括陀螺仪加速度计数据。事实上,由公式(3)可知,如果速度在连续增量之间缓慢变化,我们有
在这里插入图片描述
也提供了角速度信息。这说明了如何使用 a n a_n an,尽管神经网络不假设小的速度变化。

我们利用扩张卷积,根据N = 448个先前测量值的局部窗口推断修正值,这表示在我们的实验中使用了时间戳n之前2.24 s的信息。
(留个坑,扩张卷积不懂)

基于增量的损失函数

损失函数用来计算估计值和真实值的误差: ω n − ω n ^ ω_n-\hat{ω_n} ωnωn^
因为真值 ω n ω_n ωn的频率是200Hz,这在实践中是不可行的,因为最好的跟踪系统在20-120 Hz时是准确的。因此,我们建议根据以下综合增量来定义损失:
在这里插入图片描述
其中,IMU的频率被因子j降低,然后根据给出的j计算损失函数:
在这里插入图片描述
log()是对数映射,将旋转矩阵映射为三维向量,ρ()是Huber损失函数。δ设为0.005。
Huber损失函数:
在这里插入图片描述
定义我们的损失函数为:
在这里插入图片描述
这样设置的动机:

  1. 选择Huber损失函数,考虑了真值中异常值的鲁棒性
  2. 公式(8)的旋转不变性适合IMU,因为左扰动不会改变公式(9)

公式的高效计算

首先,由于并行化应用,例如exp(·),对一个多个ωn并行地在GPU上需要类似的执行时间(我们通过实验发现,一个操作需要5毫秒,而1000万个并行操作需要70毫秒,也就是说,每个操作的时间下降到7 ns)。我们称并行应用于多个实例的操作为批处理操作。对公式(8)按图示进行乘法操作:
在这里插入图片描述

数据增强训练

数据增强是一种显著增加可用于训练的数据多样性的方法,而无需实际收集新数据,以避免过拟合。这可以通过添加高斯噪声 η n η_n ηn,添加静态偏置 b n b_n bn,不校准IMU,并在加速度计测量中改变IMU的方向来实现第二节的IMU模型。前两点在[17]中有所提及,而后两点则是我们所知的最好的。
虽然每个点都可能增加数据的多样性,但我们发现它们并不一定会改善结果。我们选择在每个训练阶段仅添加高斯噪声,其标准差是数据集提供的标准差的一半(0.01 deg/s)。

实验

我们根据3D方向和偏航估计来评估该方法,因为后者对于长时间地里程估计更为关键。

数据集描述

我们将数据分为训练集、验证集和测试集,定义如下,见[29]第I.5.3章。在训练集上优化神经网络和标定参数。*在训练过程中,模型不会在验证集上进行训练,而是在每个时期结束时使用验证集来评估模型的性能。这样,我们就可以根据模型在验证集上的表现来调整超参数,以便在测试集上获得更好的性能。*测试集是提供公正评估的黄金标准。它只在训练(使用训练集和验证集)结束时使用。

我们使用的数据集如下。

  1. Euroc:
    数据集包含图像和200 Hz的惯性数据,来自一个微型飞行器,在两种环境中分为11个2-3分钟的飞行轨迹。ADIS16448 IMU未经校准,我们注意到激光跟踪仪和运动捕捉系统的地面真相与IMU准确地时间同步,尽管动态运动降低了测量精度。正如在[6]中注意到的那样,序列V101 easy的ground truth需要重新计算。MH和V1序列在连续2天内获得,V2序列在3个多月后获得。因此,网络应该适应不同的偏差。
    我们将训练集定义为六个序列MH{01,03,05}, V1{02}, V2{01,03}的前50秒,验证集定义为这些序列的剩余结尾部分,我们将剩下的五个序列构成测试集。我们在第IV - E节中表明,仅使用8分钟的精确数据进行训练(每个轨迹的开始和结束是最准确的测量)就足以获得相关结果。
  2. TUM-VI:
    最近的数据集由手持设备的不同场景的视觉惯性序列组成。低成本的BMI160 IMU以200hz记录数据,并经过正确校准。尽管每个序列包含持续时间为0.2 s的周期性瞬间,但由于采集平台对运动捕获系统隐藏,因此真值不可用,但真值与IMU准确地时间同步,参见图4。我们取6个房间序列,这些序列具有最长的真实值(每个序列2-3分钟)。
    在这里插入图片描述
    我们将训练集定义为房间1、房间3和房间5的前50秒,验证集定义为这些序列的剩余结尾部分,我们将测试集定义为其他3个房间序列。对应45000个训练数据点(EuRoC为90000),与优化参数的数量77052的顺序相同,并且需要正则化,如训练期间的权重衰减和dropout。

方法实施及训练

(坑)

比较方法

基于仅使用IMU的方法;基于视觉和IMU的方法,其中论文提出的方法被集成到Open-VINS中

评估指标

AOE绝对方向误差;ROE相对方向误差

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值