陈怀宇,尹达一,张 泉
(1.中国科学院 红外探测与成像技术重点实验室,上海 200083;2.中国科学院 上海技术物理研究所,上海 200083;3.中国科学院大学,北京 100039)
车辆的导航定位主要是依靠车载微机电惯导(MEMS)和全球卫星定位系统(GPS)组成的组合导航系统,具有导航精度高,连续全天候工作等性能特点。但是在实际使用过程中,需要接收至少4颗卫星的信号才能进行定位解算。由于多径效应[1]、卫星数目和外界干扰等实际因素,或是行驶到被遮挡的道路、隧道、地下等区域时,GPS不能接收到足够的卫星信号来保证全程连续的稳定定位,此时可以利用MEMS惯导输出的角增量和速度增量来进行推算定位。然而MEMS的误差不受抑制的快速发散,其定位误差会随着时间的增加而快速的累积[2],因此研究在无GPS输出时的高精度惯导定位具有重要的实际应用价值。经典广泛采用的方法是建立适当的误差状态系统模型,再通过卡尔曼(Kalman)滤波等数据融合方法进行误差估计,最后根据误差估计对姿态、速度和位置进行校正[3]。近些年来,随着深度学习模型和无人驾驶等应用结合的不断加深,不需要任何先验知识的人工智能导航定位方法得到了快速的发展。L.Semeniuk[4]等率先使用单隐藏层的反向传播神经网络(BPNN)来预测定位和速度误差,Chen Xiyuan[5]等人将小波神经网络和强跟随器相结合,利用位置信息提出惯导误差补偿方法。Saadeddin K[6]等人总结了很多基于人工智能的定位误差抑制算法,提出了自适应模糊神经网络。李宇寰[7]等研究人员将 BPNN作为基模型,引入了Bagging集合模型的方法进一步提高定位预测效果。
上述研究算法都是基于反向传播神经网络进行改进,仅对某一时刻分析建模来获取惯导输入和位置的关系,模型没有对惯导误差的时序特性进行分析的能力,在进一步抑制惯导误差上还有提升空间。在实际系统中,MEMS陀螺通过测量转角的角速度,并对时间积分输出角增量,根据前一刻的方向来确定当前行驶方向,因此在计算当前车辆行驶方向时,必将引入前一刻的陀螺仪漂移误差,形成了累积误差[8]。本文将时间序列建模的长短期记忆网络预测应用到传统组合导航系统中,以提高MEMS惯导定位精度。
对于通过加速度计和陀螺仪进行解算的捷联惯导(SINS)系统,由比力方程[8]:
其中,b、n、e、i分别是载体坐标系、导航坐标系、地球坐标系、地心惯性坐标系;vn是相对于地球的速度矢量;wie是地球自转角速度,wen是载体在地球表面做圆周运动的角速度矢量,g是重力加速度;bf由捷联加速度计测量获得;是姿态矩阵,即载体捷联坐标系到导航坐标系的转换矩阵;为哥氏加速度,由运载体相对地球运动(相对运动)和地球旋转(牵连运动)引起;是运载体在地球表面运动(圆周运动)的向心加速度。
载体位置的更新方程:
其中,P是载体的位置矢量,ξ是载体线速度到经纬角速度的转换矩阵。
陀螺仪和加速度计的输出为角增量和速度增量,用来直接计算得到的位置、速度和姿态都含有误差[9]:其中 δP为位置误差矢量,由式(3)得到位置的误差传播方程:
由式(2)得到姿态误差矢量角的传播方程为:
其中,εg为陀螺仪的测量误差。
循环神经网络(Recurrent Neural Network,RNN)是一类用于处理序列问题的神经网络,相比经典的反向传播神经网络有非常大的提升,例如参数共享和构建长期依赖关系等。此外循环网络会有一个记忆机制,即当前隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。而在全连接网络中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的,所有的输入(以及输出)都各自独立[10]。RNN的结构如图1。
1)x(t)为序列索引号t时训练样本的输入。同样的,x(t-1)和x(t+1)代表在时间t-1和t+1时训练样本的输入。
图1 循环神经网络结构图Fig.1 Structure of Recurrent Neural Network
2)h(t)为时间 t时模型的隐藏状态。h(t)由x(t)和上一时刻的状态h(t-1)共同决定。
3)o(t)为时间t时模型的输出。o(t)只由模型当前的隐藏状态h(t)决定。
4)L(t)为时间t时模型的损失函数。
5)y(t)为时间t时训练样本序列的真实输出。
6)U、W、V这三个矩阵是模型的线性关系参数,它在整个RNN网络中是共享的。
RNN的前向传播算法:隐藏状态h(t)由t时刻输入x(t)和上一时刻隐藏状态h(t-1)得到如式(9)所示[11]:
σ为激活函数,一般为sigmoid函数,b为线性偏置。预测输出如式(10)所示:
通过损失函数L(t),可以量化模型在当前时刻的损失,即和y(t)的差距。利用误差反向传播训练参数,使模型损失函数最小,得到最终的权值参数。
为避免RNN训练过程中重复使用W、U带来的梯度爆炸或梯度消失的问题,提出了长短期记忆网络(Long Short-Term Memory, LSTM),它与RNN一样都具有一种重复的网络模块,但LSTM的内部单元结构进行了改进,增加了遗忘机制和保存机制,网络的单元传播结构如图2。
图2 长短期记忆网络单元内传播结构Fig.2 Structure of cell in LSTM
LSTM使用门控机制控制前一时间步隐藏层保留的信息和当前时间步输入的信息,并选择性地输出一些值而作为该单元的激活值。
四个控制门分别是:i为输入门;f为遗忘门;o为输出门;g为门限门。
LSTM单元的传播公式如(11)所示:
对于定位预测模型,作为输出的位置增量为东向和北向位置增量,而输入为不同时刻下MEMS惯导输出增量的序列:
训练部分的详细流程如图 3所示。当 GPS定位信号存在时,利用定位误差,通过反向传播的随机梯度下降法来计算神经网络参数的梯度gt。
图3 训练模式Fig.3 Training mode
训练集的数据量是模型训练的关键,本次通过实际行驶试验采集的数据量达到了70万以上,每条数据包含MEMS惯导输出和GPS位置信息。
最后使用自适应时刻估计(ADAM)优化方法来更新网络参数。本质上是带有动量项的参数更新算法,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。
算法步骤如下:
1)先计算对梯度的一阶矩估计和二阶矩估计mt、nt:
其中,μ=0.9、ν=0.999分别为一阶矩估计和二阶矩估计的衰减率。
2)再计算无偏估计的校正值:
3)最后计算梯度更新值,η=0.01为学习率:
训练的硬件平台为 CPU:i7-7700k,显卡1080Ti,使用 Python3.6和 Tensorflow1.1框架来编程搭建,前10次ADAM优化训练结果与无优化的随机梯度下降(SGD)结果比较如图4所示,收敛速度和精度都有很大的提高。
图4 前10次迭代更新的损失Fig.4 Losses from the previous 10 iterations
将训练完成之后的参数保存,对测试集的数据进行验证,如图5所示。
图5 预测模式Fig.5 Prediction mode
为了验证本文提出的在 GPS信息丢失条件下的MEMS定位方法,在上海市虹口区中科院上海技术物理研究所周边,使用搭载 SBGSYSTEM 公司的ECLLIPSE-N系列MEMS惯导产品和GPS接收天线的汽车进行试验,MEMS内置三轴加速度计和陀螺仪,安装在车辆后轮轴中间的上方,GPS接收天线安装在车顶。x轴正方指向汽车前进的方向,y轴正方向与前进方向垂直指向水平右向,z轴正方向垂直指向地面。
MEMS惯导中陀螺仪和加速度计输出频率为50 Hz。GPS接收的采样率为 5 Hz,在训练阶段与MEMS进行组合导航,在预测阶段计算定位误差。
车辆在静止情况下完成初始对准并在时速达到10 km/h的时候自动转入导航模式。
在中科院上海技术物理研究所周边如图6地图上所标示的路线上行驶10次作为本次实验的数据集,因为每次行驶状况各有不同,如不同时刻加减速、车道变换等,导致每次行驶的惯导序列数据也都有很大的差别,所以每次行驶都是互相独立的。训练和验证采用机器学习中的交叉验证方法[12]:随机选取数据集中7次作为训练集,惯导输出和GPS数据一起作为训练数据;1次作为验证集,用于模型的调参;2次作为GPS信号丢失的测试集,利用训练得到的最优模型,输入 MEMS惯导数据来预测定位,并与实际的 GPS定位数据进行比较计算。
图6 行驶路线Fig.6 The driving routes
通过验证集对网络的参数进行确定,在序列长度大于100以及隐藏层大于50模型训练缓慢,且容易出现过拟合的情况,因此把序列长度[10, 20, 30, 40, 50, 60,70, 80, 90]和隐藏层神经元数[5, 10, 15, 20, 25, 30, 45, 50]自由组合,进行训练得到的模型在验证集上进行评估,得到以上组合最优的网络参数如表1所示。
表1 神经网络参数Tab.1 Parameters of the neural network
绘制训练过程的学习曲线如图7所示,观察验证集误差曲线一直在有效地减小,在训练样本数大于5次时验证集误差和训练集误差已经趋于接近,即此时训练样本数可以满足模型训练需求,没有欠拟合现象,模型在验证集上的预测效果已经基本达到了模型的最佳性能。
图7 训练学习曲线图Fig.7 Curves of learning
试验结果通过三种方法来进对比分析:1)使用MEMS惯导输出的数据(加速度计和陀螺仪的输出增量)直接推算;2)使用反向传播神经网络(BPNN)训练之后进行预测;3)使用长短期记忆网络(LSTM)进行训练之后来预测定位。三种方法计算的路线结果和地图路线如图8所示,车辆总行驶时间为1400 s。
图8 三种定位方法的路线计算结果Fig.8 Route results of the three methods
使用交叉验证的方法重复3次可以得到3个预测模型和对应的3个测试结果,对所有结果取平均来验证模型的最终性能。采用定位误差的累积值:来度量比较计算三种定位方法的东向和北向的误差,如图9所示。
通过试验结果分析得出,通过MEMS的输出数据直接推导的误差非常大,在出发之后出现了快速的发散,在1400 s时误差率达到了156.42%。相比于直接推导的计算方法,另外两种使用神经网络进行定位的结果在整个行驶过程中准确性较好。
反向传播神经网络无法利用 MEMS惯导输出的时序特性,在车辆运动状态发生较大变化时(如航向变化和大加速度情况)会产生较大的误差,因此相较于反向传播神经网络算法,LSTM网络的定位误差率进一步降低到了 2.45%。三种方法行驶过程中的误差值如表2所示。
图9 三种方法的定位误差比较Fig.9 Positioning errors of the three methods
表2 三种方法的定位误差Tab.2 Positioning errors
把训练好的模型参数储存好,以上海金科路地铁站为起点进行65 min的行驶试验。使用前面行驶实验已经训练好的神经网络模型对导航定位进行预测,行驶路线如图10所示。
行驶定位误差结果如表3所示,可以看出在40 min内LSTM网络定位保持在较高的精度,相较于直接惯导输出的东向定位差提高 97.65%,比全连接网络提高78.02%。在1 h之后由于长期没有GPS标准定位信号的校正,模型的定位误差都开始有一定的发散,本文训练的 LSTM 网络较传统全连接网络仍有73.3%的提高。
表3 三种方法的定位误差Tab.3 Positioning errors
图10 三种方法的计算结果和行驶路线Fig.10 Results of the three methods and the driving route
在车辆行驶到信号被严重遮挡区域,此时 GPS无法进行有效定位,需要借助车载MEMS惯导来导航定位,然而MEMS惯导的直接测量测量误差很大,无法直接用于车辆的导航定位。
针对此问题,研究了在 GPS/MEMS组合导航上加入人工智能算法辅助定位的方法,本质上是在GPS信号强时利用神经网络结构来学习 MEMS惯导输出与实际定位信息的误差关系,在GPS信号丢失短期内可以准确预测定位。人工智能辅助定位的方法主要是有训练开销大的缺点,针对不同型号的惯导器件需要重新训练,也可以采用迁移学习[13]的方法,将已经训练好的模型参数作为新模型的起始参数加快训练。本文采用交叉验证的方法来划分数据集以提高模型的泛化能力,同时使用 ADAM 方法来加速训练过程。与全连接深度网络不同的是,有记忆能力的LSTM能学习惯导信息之间的整体逻辑序列。实际行驶表明基于LSTM的MEMS惯导定位方法可以有效地提高定位精度,本文实现的LSTM定位模型在短期的1400 s的实际行驶测试中达到了2.45%的误差率,在60 min较长的无GPS辅助定位预测中相比于MEMS惯导直接推算定位精度提高了94.62%,相较于BPNN定位模型提高了73.03%,能够实现高精度的导航定位。