袁 诚,朱倩倩,赖际舟,王鹏宇,孙 伟,吕 品
(1.南京航空航天大学自动化学院 导航研究中心,南京 211106;2.北京自动化控制设备研究所,北京 100074)
导航系统通过为载体提供精准的位姿信息,可以实现更高效、更精确的任务执行,从而提高社会生产力水平。特别是对单兵、消防员等进行精准的导航定位,可以使其准确了解自身所在位置,对执行的任务进行高效规划,提高任务成功率并显著提高生存率。在室外空旷环境中,全球卫星导航系统(Global Navigation Satellite System,GNSS)能够实现高精度定位导航[1]。然而,当面临复杂环境或在室内环境中,GNSS 信号被遮挡,GNSS 导航系统失效无法工作。惯性传感器作为一种自主式传感器,不依赖外界信息,可以实现全天时、全天候的可靠工作。随着微惯性测量单元(Micro-Electro-Mechanical System Inertial Measurement Unit,MEMS-IMU)技术的快速发展[2],其凭借成本低、可靠性高等优势,使用MEMS-IMU进行行人导航成为当前的研究热点[3]。
通过对惯性信息进行积分,可以在短时间内准确估计行人的状态变化,但是受MEMS-IMU 器件的体积、功耗限制,感知的惯性信息存在较大的噪声,在长时间连续积分时会造成导航误差的快速发散,使得导航系统失效。为了抑制惯导的发散,美国国防高级研究计划局(Defense Advanced Research Projects Agency,DARPA)首次将MEMS-IMU 放置于行人足部,通过分析行人的运动规律,提出人体运动中存在的零速假设对惯性导航发散进行抑制,有效提高了行人导航精度。但其仅基于角速度阈值进行估计,检测率较低,适用范围有限。为了进一步拓展应用场景,多种如姿态假设最优估计检测器(Stance Hypothesis Optimal Estimation detector,SHOE)[4]、加速度计量测幅值检测(Accelerometer Measurements Magnitude Test,MAG)[5]、角速度量测能量检测(Angular Rate Measurement Energy Test,ARE)[6]等更为复杂准确的零速检测算法被提出[7]。但大量的研究表明,此类基于物理模型的零速检测器最佳参数调整取决于步态速度[8],如何正确设计鲁棒的零速检测器仍是一个有待解决的研究问题。零速检测[9]也可以被视作通过惯性信息对零速状态进行分类,随着深度学习技术在分类问题上展现的突出性能,利用深度学习进行零速检测成为了新的研究方向[10]。Wagstaff[11]提出了一种基于深度学习的零速检测方法,实现了在多种步态情况下的零速估计。为了提高学习的效率,Chen[12]提出一种基于对比学习的零速检测方法,通过将惯性数据进行预分类加快学习的收敛速度。基于数据驱动的算法对不同运动步态有良好的适应性,但前提需要进行大量实验并利用包含各种运动状态的数据训练模型[13],且受数据质量影响较大。现有算法在采集训练与测试集时,多为同一次运动中的不同部分,其穿戴位置、行走习惯一致,而对于未包括在数据集内的情况识别成功率较低,无法满足行人导航需求。
针对上述问题,本文提出了一种基于模拟多位置数据增强驱动的零速检测方法,设计了增强端到端的长短期记忆(Augmented Long Short-Term Memory,A-LSTM)零速检测深度学习网络。针对传统基于深度学习的零速检测算法中由于穿戴位置不同导致的检测精度下降问题,对足部进行建模,通过物理模型模拟MEMS-IMU 穿戴于不同位置的输出,增强基于深度学习零速检测的泛化能力,拓展适用场景。利用纯数据驱动实现在不同步态模式、不同穿戴位置下可靠的零速检测,并基于扩展卡尔曼滤波(Extend Kalman Filter,EKF)设计了行人惯性导航算法。通过多组实际实验验证,该算法能够实现室内环境中不同运动情况下较高的定位精度。
本文提出的模拟多位置数据增强驱动零速检测的惯性行人导航方法框架如图1 所示。通过采集穿戴于行人足部的MEMS-IMU 输出数据,并基于A-LSTM零速检测网络估计的零速区间,利用EKF 进行误差校正,实现多步态模式下的行人可靠室内导航。
图1 基于模拟多位置数据增强驱动零速检测的惯性行人导航方法框架Fig.1 A framework for inertial pedestrian navigation method based on simulated multi-position data augmentation driven zero-velocity detection
行走过程是一个周期重复的运动,一个步态周期从脚后跟离地开始,到该脚的脚尖落地为止。经过简化,可以将行人的足部状态大致分为5 个阶段:脚跟离地、脚掌离地、脚跟触地、脚尖触地、静止。行人足部静止时,速度理论上均为零,若将惯性导航解算的速度值与理论值相比较,则可得到惯性导航解算误差。将该误差作为观测量,利用EKF 进行融合估计,实现对行人零速状态时各项误差的有效修正,从而最大限度地减小惯性导航误差发散,提高行人的导航和定位精度。
不同的人在足部穿戴MEMS-IMU 时,由于穿戴习惯或鞋子的不同,相较于上次穿戴会存在穿戴位置或角度的不一致情况,导致MEMS-IMU 量测数值出现变化。传统基于数据驱动的零速检测算法其使用的训练集与测试集大多为同一次行走中的不同部分,其穿戴位置、习惯均较为一致,穿戴位置变化会对传统算法造成较大干扰,导致定位精度降低。在实际行人导航中,惯性传感器的输出存在对称性,其运动特征的标签并不会随着传感器放置方式或者行人运动方向的改变而变化。因此,本部分针对人体足部进行建模,基于物理模型将单位置惯性采样投影至任何可能穿戴的位置,虚拟出MEMS-IMU 在不同位置的惯性输出,实现对单次采样数据的扩增,提高网络的泛化性与检测的鲁棒性。
行人在运动过程中,MEMS-IMU 通常利用装置固定于鞋上,在一个步态周期内主要的变化如图2 所示。在训练零速检测器时我们只需要关注零速附近的惯性输出,可以看出在步态接近零速时,为脚跟先着地,再到脚尖着地。这个时间段内,我们可以将鞋子与MEMS-IMU 之间的变换视作刚体变换,其支点为图中红点。
图2 行走过程中MEMS-IMU 与足部的关系变化Fig.2 Changes in the relationship between MEMS-IMU and the foot during movement
通过采集采样惯导的输出ωk、fk,首先将其按1°的分辨率进行旋转性能增强,模拟MEMS-IMU 朝不同方向穿戴产生的数据。如图3 所示,在刚体结构下,由于旋转关系不同产生的不同关系数据公式如下:
图3 基于模拟多位置惯性数据增强方法示意图Fig.3 Schematic diagram of the simulation-based multi-position inertial data augmentation method
其中,R为生成的旋转矩阵,为模拟陀螺输出,为模拟加速度计输出。
在模拟不同位置输出时,由于其安装中心点发生变化,可能会存在由于杆臂效应造成的向心加速度,此时通过杆臂补偿公式,将其比力输出进行补偿如下:
其中,fk为杆臂效应的向心加速度项,δfk为杆臂效应的切向加速度项,杆臂长短大小rb可根据不同鞋码获得,角加速度变化ω˙k通过输出的角速度差分可得。
通过模拟惯导在不同位置的输出,可以在单次采样基础上,实现对于穿戴习惯不同、穿戴者体型不同的情况下的数据模拟,以提高数据驱动零速检测算法的鲁棒性。
传统物理模型算法需要建立复杂的模型,并且根据步态速度调整参数以获得较高性能。通过端到端数据驱动的学习,可以避免模型构建中复杂的参数选择与不确定的误差,实现在不同步态情况下的可靠零速检测。
此外,在传统神经网络中,往往只会关注当前时刻的数据。循环神经网络(Recurrent Neural Network,RNN)会关联上下时刻的信息,可以更好地抓取时间序列特征,但是会带来梯度爆炸和梯度消失的问题。LSTM 能够解决长序列训练过程中RNN 无法解决的问题,最初是由Hochreiter 等人引入的。该网络通过设计一种特殊的结构cell,囊括三种“门”的结构,它们可以有选择地增减cell 结构中的信息。
因此,本文基于LSTM 设计了端到端的零速分类器,该网络结构由输入层、LSTM层、全连接层、softmax层和输出层组成,其网络结构如图4 所示。LSTM 零速分类器的输入是足部惯性数据,包括三轴加速度计输出及三轴角速度计输出,共6 维数据;输出是零速检测结果,零速为1,非零速为0。
图4 基于端到端的LSTM 零速检测网络结构图Fig.4 End-to-end LSTM-based zero-velocity detection network structure diagram
每个时刻的六轴惯性数据需要分配一个表示“零速”或“非零速”的二值标签,该标签由式(3)提供。对于给定的运动实验,在保证解算轨迹不失真的前提下,产生最低定位误差的传统检测器的输出被认为是最为准确的零速标签。
其中,W为滑动窗口大小,分别为加速度计和陀螺仪测量的噪声方差,ωk、fk分别为比力和角速率的测量值,g为当地重力加速度大小,γ为判别阈值,为滑动窗口中比力的平均值。
式(3)是传统零速检测算法——SHOE,当计算结果低于阈值γ时,则认为此时为零速时刻。虽然固定阈值不能适用于混合步态的零速检测,但是对于单种步态的检测效果较为精确,本文对不同的步态采用不同的零速检测阈值,在行走时,阈值为γ=8 ×104,在跑步时阈值为γ=6 ×106,以获得较为真实的标签。
在训练过程中,损失函数采取交叉熵损失函数,网络训练过程为使损失函数最小化的过程,计算公式如下:
行人导航定位模型具有非线性特点,因此本文采用扩展卡尔曼滤波技术,通过融合零速量测,以实现对行人位置、速度、姿态、传感器零偏的估计。
导航系统状态空间模型为:
其中,W为系统噪声向量,R为量测噪声向量,均服从高斯白噪声分布。
X为15 维系统状态变量:
式中,p为三维位置,v为三维速度,φ为姿态角,ba为加速度计零偏,bg为陀螺仪零偏。
F为系统矩阵:
其中,St为b系中加速度计在n系下投影的斜对称矩阵,为载体坐标系(b系)到导航坐标系(n系)的姿态变换矩阵,03×3为3 × 3的零矩阵,I3×3为3 × 3的单位矩阵。
零速时刻时,由于递推过程中传感器噪声和误差的影响,导航解算的速度实际上并不为零。因此,引入系统观测量Z对其进行校正:
式中,vx、vy、vz分别为速度在x、y、z轴上向的分量。
H为量测矩阵:
由此建立基于零速修正的扩展卡尔曼滤波器,在零速时刻修正误差,实现对导航误差的抑制。
本文所采用的设备为 Alubi LPMS-B2 九轴MEMS-IMU 传感器,包含三轴加速度计、三轴陀螺仪、三轴磁力计及气压计,其性能参数如表1 所示,采样频率为200 Hz。处理平台为Intel J4125 便携式电脑棒,所有的算法在ROS 上进行实时实现,惯性数据通过蓝牙无线传输至运算平台。
LPMS-B2 惯性传感器参数如表1 所示。
表1 LPMS-B2 传感器相关参数Tab.1 LPMS-B2 sensor related parameters
在测试时,惯性传感器穿戴于测试人员足面,如图5 所示。
图5 LPMS-B2 外观图及佩戴方式Fig.5 LPMS-B2 appearance and wearing style
为验证本文所设计算法的可靠性,测试人员在南京航空航天大学自动化学院一号楼5 楼走廊进行测试,尺寸为56.7 m×47.9 m。通过提前获取的平面图设置4 个标记点作为参考位置,测试人员分别以匀速行走、跑步等步态围绕走廊行进,走跑混合模式下的轨迹如图6 所示。
图6 实验场景及轨迹示意图Fig.6 Experimental scene and trajectory diagram
本文所提的A-LSTM 网络在Matlab R2018b 中进行搭建,CPU 型号为AMD Ryzen 5 5600G with Radeon Graphics。为了确保实时性,所构建网络为轻量级框架,其中Batch Size 为128,学习率为0.05,在CPU上即可完成训练和测试工作。训练过程中损失和准确率变化曲线如图7 所示。
图7 A-LSTM 零速检测训练过程损失和准确率变化曲线Fig.7 Loss and accuracy change of A-LSTM during zero-velocity detection training process
为了验证本文所提的基于端到端的零速检测算法的有效性,测试人员将传感器佩戴在如图5 所示位置,按照行走、跑步、走跑混合三种模式进行,测试集是在穿戴方向变化的情况下采集的行走、跑步、走跑混合三种模式数据。将基于固定阈值的传统检测器SHOE、传统LSTM 和本文提出的A-LSTM 检测出的零速标签与由SHOE 检测器得到的最佳标签进行对比,传统LSTM 为使用标准LSTM 框架构建的零速网络。
检测准确率如表2 所示,可以看出基于SHOE 模型的零速检测算法在改变位置或旋转时对于零速检测的精度影响较小,是因为基于物理模型的检测方法只关注输出的模长信息,对于旋转具有良好的一致性。基于传统LSTM 的零速检测方法,在相同位置情况下性能较好,但是在位置变化后,由于此前未在训练集中进行提前学习,性能有一定下降。而本文提出的A-LSTM 零速检测器,在惯导位置不统一时,走跑模式下相较于固定阈值SHOE,检测成功率提高15%,相较于传统LSTM 方法,检测成功率提高12%。可以看出,通过提前模拟在不同位置穿戴时的输出结果,在相同位置及不同位置均达到较好的零速检测效果。
表2 基于不同步态的零速检测实验结果Tab.2 Experimental results of zero-speed detection based on different gait
测试人员沿着图6 所示路径进行足部惯性数据的采集,取轨迹的四个顶点作为参考点,将实际坐标与解算出来的坐标之间的平均距离作为平均定位误差。分别用基于固定阈值的传统检测器SHOE、传统LSTM和本文提出的A-LSTM 检测出零速区间,利用EKF进行融合导航,最终得到行人定位结果。
4.3.1 惯导位置统一时基于数据增强端到端零速检测算法定位性能验证与分析
本部分行人在采集训练数据与测试数据时,足部惯导穿戴的位置保持一致,走跑混合模式下的定位轨迹如图8 所示。
图8 惯导位置统一时不同算法走跑混合定位结果Fig.8 Different algorithm walk-run hybrid positioning results under unified wearing position
详细的定位误差见表3。表3 中,固定阈值γ=8 × 104为在行走模式下的最佳阈值。
表3 惯导位置统一时基于不同零速检测算法行走轨迹误差对比(单位:m)Tab.3 Different algorithm walk-run hybrid positioning results under unified wearing position (Unit: m)
由图8 和表3 可见,在走跑混合运动模式下,基于固定阈值解算出的轨迹在行进模式切换后,所选用的固定阈值无法准确检测出在跑步时的零速区间,轨迹开始出现失真和漂移。基于传统LSTM 和A-LSTM检测器解算出的轨迹得到了较好的复现,A-LSTM 检测器通过数据增强,相比传统LSTM 在拐弯时取得了更好的零速检测结果,定位性能最佳。我们采用均方根误差(Root Mean Square Error,RMSE)对比定位精度,计算公式如下:
其中,Pi算法在参考点时的坐标。
实验结果表明,在惯导位置统一时,本文提出的A-LSTM 零速检测模型的定位误差相比较固定阈值法降低了18.9%,相较于传统LSTM 方法降低了14%。
4.3.2 惯导位置不统一基于数据增强端到端零速检测算法定位性能验证与分析
在本部分,测试人员采集训练数据与测试数据时,足部惯导穿戴的位置发生变化,MEMS-IMU 以不同的方式安装在底座上,且佩戴的时候未刻意保持与测试集的一致性,通过走跑混合进行定位性能测试。由于基于传统物理模型的检测器在混合步态下的导航结果会产生较大的误差,无法满足导航需求,所以此部分我们主要对比不同运动模式下,基于传统深度学习的LSTM 检测器和本文提出的A-LSTM 检测器解算出的定位轨迹。
图9 为行走模式下两种算法的轨迹,在直线行走时,由于动态情况较小,其补偿值也处于一个较小的水平,对于由于安装位置带来的零速检测影响也较小。在定位方面可以看到直线行走轨迹基本相似,但是在拐弯时,由于存在了较大的角速度,不同位置下惯导的输出值会有较大的变化。使得传统基于数据驱动的LSTM 零速检测方法出现了一定的性能损失,造成导航解算精度下降。而基于增强数据驱动的A-LSTM 方法提前考虑到了穿戴位置变化情况,依然取得了较高的精度。
图9 惯导位置不统一时行走模式定位结果Fig.9 Walking positioning results of different algorithms under the non-uniform wearing position
与行走时情况基本一致,图10 表示在跑步模式下的定位轨迹,基于A-LSTM 零速检测方法可以取得高的定位精度。
图10 惯导位置不统一时跑步模式定位结果Fig.10 Running positioning results of different algorithms under the non-uniform wearing position
图11 表示在走跑混合模式下不同算法的轨迹对比,可以看出在测试中加入步态变化后,不同位置对数据驱动算法造成的影响增大。基于传统LSTM 的方法出现了一定的误差,而所提的A-LSTM 方法通过提前模拟考虑此类情况,依旧保持了较好的精度。
图11 惯导位置不统一时走跑混合模式定位结果Fig.11 Walk-run hybrid positioning results of different algorithms under the non-uniform wearing position
可以看出,基于数据增强的A-LSTM 检测器具有更好的性能,在各种模态下都能对轨迹实现较好的复现,定位误差明显降低。表4 为具体的导航误差对比。
表4 惯导位置不一致时基于不同零速检测算法行走轨迹误差对比(单位:m)Tab.4 Different algorithm walk-run hybrid positioning results under the non-uniform wearing position (Unit: m)
可以看出,在惯导位置不统一时,基于数据增强的A-LSTM 检测器相较于传统LSTM 的行人导航方法平均定位误差降低7%,首尾误差降低70%,具有更好的性能,在各种步态下都能实现较高的零速检测精度。
本文提出了一种基于模拟多位置数据增强驱动零速检测的惯性行人导航方法,在单位置惯性采样的基础上通过物理映射实现对多位置输出的模拟,并利用模拟数据训练提出的端到端LSTM 深度学习零速检测网络,提升了网络的泛化能力,避免传统基于物理模型算法需要在运动时根据具体情况调参的步骤。实验结果表明在惯导位置不统一时,本算法在走跑模式下零速检测成功率相较于固定阈值SHOE 方法提高15%,相较于传统LSTM 方法提高12%,定位误差相较于传统LSTM 方法降低70%。可以看出,本算法对不同步态/穿戴位置的综合适应能力较强,且为数据驱动的零速检测算法提供数据增强新思路。