深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航


本文介绍一篇惯性导航定位论文 RINS-W,论文发表于 IROS2019。在本论文中作者提出了仅使用一个IMU进行长时间惯性导航的方法。方法主要包括两个部分:

  • 检测器使用循环神经网络来检测IMU的运动状况,如零速或零横向滑移;
  • 使用Invariant Extended Kalman Filter结合检测器的输出(作为伪测量)来进行定位。

在公开数据集上的测试结果显示,在行驶超过21km之后,最终定位误差为20m(如下图所示)。

深度学习与惯性导航 惯性导航系统论文_1024程序员节_02

论文链接:https://arxiv.org/pdf/1903.02210.pdf

github 链接:https://github.com/mbrossar/RINS-W


1. Inertial Navigation System & Sensor Model

首先回顾下惯性导航方程,IMU方向用 深度学习与惯性导航 惯性导航系统论文_IEKF_03 表示,表示从载体坐标到世界坐标的旋转变换;世界坐标系中速度为 深度学习与惯性导航 惯性导航系统论文_1024程序员节_04,世界坐标系中位置为 深度学习与惯性导航 惯性导航系统论文_IEKF_05,则运动方程可以写为:
深度学习与惯性导航 惯性导航系统论文_IEKF_06

其中 深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_07 时采样时间,深度学习与惯性导航 惯性导航系统论文_IMU_08

下面回顾下IMU模型,IMU加速度和角速度模型可以写为:
深度学习与惯性导航 惯性导航系统论文_1024程序员节_09

其中,深度学习与惯性导航 惯性导航系统论文_IEKF_10为角速度偏差和加速度偏差,深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_11 为高斯噪声。角速度偏差和加速度偏差方程可以写为:
深度学习与惯性导航 惯性导航系统论文_IEKF_12

其中,深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_13

在惯性导航中,偏差的准确估计是至关重要的,即使很小的误差,也会导致很大的位置估计偏差。


2. Specific Motion Profiles For Wheeled Systemd

在这一节,作者介绍了几种常见的运动特性,它们往往会提供有用的互补信息。

首先是四种特定的运动情况,将它们编码为向量形式为:
深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_14

其中:

  • Zero velocity,当 深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_15 时,则有深度学习与惯性导航 惯性导航系统论文_1024程序员节_16,当检测到零速时,常会使用 ZUPT 算法进行更新。
  • Zero angular velocity,当 深度学习与惯性导航 惯性导航系统论文_IMU_17 时,则有 深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_18
  • Zero lateral velocity,当 深度学习与惯性导航 惯性导航系统论文_IEKF_19 时,则有 深度学习与惯性导航 惯性导航系统论文_IMU_20,载体坐标速度和世界坐标速度转换方程为:深度学习与惯性导航 惯性导航系统论文_1024程序员节_21
  • Zero vertical velocity,当 深度学习与惯性导航 惯性导航系统论文_IMU_22 时,则有 深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_23

其中,后两种运动情况经常用在轮速机器人或汽车运动中。以上四种情形中,零速约束(零速度和零角速度)用来修正IMU偏差和姿态俯仰角;零横向速度和垂直速度用来长期估计汽车位置(后面的实验会进行说明)


3. Proposed RINS-W Algorithm

本文提出的方法如下图所示,由两部分组成:

  • Detector 由循环神经网络组成,根据IMU测量值来输出二元向量 深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_24
  • IEKF 是一种新的卡尔曼滤波器,输入为IMU测量值和检测器输出(作为伪测量),对状态量进行估计;

3.1 Specific Motion Profile Detector

Detector 会决定在每一个时刻 深度学习与惯性导航 惯性导航系统论文_惯性导航_25 二元向量 深度学习与惯性导航 惯性导航系统论文_IMU_26中有几个元素是有效的,即有几种运动形式会发生,结构如下图所示。检测器的核心模块为LSTM,输入为IMU测量值,计算方程为:
深度学习与惯性导航 惯性导航系统论文_IEKF_27

其中,深度学习与惯性导航 惯性导航系统论文_1024程序员节_28 包含每一个运动情形的概率值,深度学习与惯性导航 惯性导航系统论文_1024程序员节_29 是神经网络隐藏状态,概率值最后经过阈值运算来得到二元向量 深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_30

深度学习与惯性导航 惯性导航系统论文_IEKF_31


3.2 The Invariant Extended Kalman Filter(重点)

在本文中,作者选择使用IEKF而不是传统的EKF来作为进行状态估计,如下图所示,二元变量 深度学习与惯性导航 惯性导航系统论文_IMU_32

深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_33


(1)首先定义IMU状态,IMU状态量为:深度学习与惯性导航 惯性导航系统论文_IEKF_34线性状态误差为:深度学习与惯性导航 惯性导航系统论文_IEKF_35,状态更新方程为:

深度学习与惯性导航 惯性导航系统论文_IEKF_36

其中,深度学习与惯性导航 惯性导航系统论文_IEKF_37,表示为汽车状态 深度学习与惯性导航 惯性导航系统论文_IEKF_38 在李群上的形式,误差状态协方差矩阵为 深度学习与惯性导航 惯性导航系统论文_1024程序员节_39。偏差 深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_40,偏差估计量为 深度学习与惯性导航 惯性导航系统论文_IMU_41

(2)预测部分。当没有上述四种之一的运动情况被检测到时,使用第1节介绍的运动方程来计算新的状态量和协方差,协方差计算方程为:
深度学习与惯性导航 惯性导航系统论文_IMU_42

雅可比矩阵 深度学习与惯性导航 惯性导航系统论文_1024程序员节_43 将会在第5节进行介绍。深度学习与惯性导航 惯性导航系统论文_IEKF_44 表示为噪声协方差矩阵,噪声为 深度学习与惯性导航 惯性导航系统论文_1024程序员节_45

如果由特定的运动情况被检测到,将会按照下面的方程进行状态量修改,零速时(速度归0,位置不变,这里的0表示速度为0,原论文中作者未明确表示)
深度学习与惯性导航 惯性导航系统论文_IMU_46

零角速度时(姿态不变)
深度学习与惯性导航 惯性导航系统论文_1024程序员节_47

同时,状态估计量和协方差矩阵也要响应进行修改。

(3)更新。每一个运动情形将会产生下列的伪测量
深度学习与惯性导航 惯性导航系统论文_1024程序员节_48

更新方程为:
深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_49

其中,深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_50 为卡尔曼增益矩阵,深度学习与惯性导航 惯性导航系统论文_IMU_51

(4)初始化。为了正确估计偏差和方向,在开始阶段,将会强制静止1秒钟用于估计偏差和俯仰角。


4. Results On Car Dataset

首先是数据集的介绍,使用的数据集为comples urban LiDAR Dataset,IMU如下图所示。

深度学习与惯性导航 惯性导航系统论文_1024程序员节_52


4.1 Implementation Details

下面是实现细节,detector由4个LSTMs组成,每一个LSTM由2个隐藏层(每层250个隐藏单元)组成,然后是2层多层感知机,最后是sigmoid函数。阈值设定为:0.95 深度学习与惯性导航 惯性导航系统论文_惯性导航_53,0.5 深度学习与惯性导航 惯性导航系统论文_1024程序员节_54;滤波器工作频率为100Hz,噪声协方差矩阵为:
深度学习与惯性导航 惯性导航系统论文_IEKF_55

其中,协方差矩阵 深度学习与惯性导航 惯性导航系统论文_1024程序员节_56深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_57;噪声矩阵 深度学习与惯性导航 惯性导航系统论文_1024程序员节_58深度学习与惯性导航 惯性导航系统论文_惯性导航_59

4.2 Evaluation Metrics

这里使用了三个评价指标:

  • Mean Absolute Trajectory Error (m-ATE),平均绝对轨迹误差(估计位置和真值位置之间的误差平均值);
  • Mean Absolute Aligned Trajectory Error (aligned m-ATE),首先对齐估计轨迹和真值轨迹,然后再计算m-ATE,主要是评估轨迹的一致性;
  • Final distance error,估计轨迹和真值轨迹最终的距离误差。
4.3 Trajectory Results

下面是实验结果,作者采用了4种方法:

  • IMU直接积分方法;
  • 差分轮速编码器得到线性速度和角速度再积分;
  • RINS-W,本文提出的方法;
  • 里程计+光纤陀螺仪,里程计提供线性速度,角速度由FoG得到。

深度学习与惯性导航 惯性导航系统论文_1024程序员节_60

深度学习与惯性导航 惯性导航系统论文_IEKF_61

深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_62

同时作者还比较了是否使用横向和垂直速度假设时的定位误差,结果如下,使用横向和垂直速度假设时效果更好

深度学习与惯性导航 惯性导航系统论文_1024程序员节_63


5. Appendix

李群 深度学习与惯性导航 惯性导航系统论文_惯性导航_64 是李群 深度学习与惯性导航 惯性导航系统论文_1024程序员节_65 的扩展,其形式可以写成 深度学习与惯性导航 惯性导航系统论文_IMU_66 的矩阵,即:
深度学习与惯性导航 惯性导航系统论文_惯性导航_67

误差 深度学习与惯性导航 惯性导航系统论文_IMU_68 的李代数形式为:
深度学习与惯性导航 惯性导航系统论文_IMU_69

李代数 深度学习与惯性导航 惯性导航系统论文_1024程序员节_70 的指数映射形式为:
深度学习与惯性导航 惯性导航系统论文_1024程序员节_71

其中,深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_72深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_73

这里使用的是Right IEKF,雅可比矩阵为:
深度学习与惯性导航 惯性导航系统论文_IEKF_74

深度学习与惯性导航 惯性导航系统论文_深度学习与惯性导航_75 时,矩阵 深度学习与惯性导航 惯性导航系统论文_1024程序员节_43 的第4行-第9行为0;当 深度学习与惯性导航 惯性导航系统论文_惯性导航_77 时,矩阵 深度学习与惯性导航 惯性导航系统论文_1024程序员节_43

测量雅可比矩阵为:
深度学习与惯性导航 惯性导航系统论文_1024程序员节_79

这里,矩阵 深度学习与惯性导航 惯性导航系统论文_1024程序员节_80