时间:2024-07-28
孙延鑫, 毛善君, 苏颖, 杨梦
(1.北京大学 地球与空间科学学院,北京 100871;2.中国矿业大学(北京)机电与信息工程学院,北京 100083)
近年来,煤矿井下人员定位技术取得了长足进步。井下环境复杂,除了采用传统的UWB,WiFi等借助外部信号实现定位的技术之外,在没有外部信号的环境下需要通过基于步长估计的PDR(Pedestrian Dead Reckoning,行人航位推算)算法[1]进行辅助定位。PDR算法通过对行人进行步频检测、步长估计和航向估计来推断行人的位置信息。基于PDR算法的人员定位技术不受井下通信多径效应影响,不依赖外界信息,仅通过载体运动状态即可计算出行人位置信息,非常适合在井下巷道环境中应用[2]。然而采用PDR算法进行定位的过程中,步频检测、步长估计和航向估计3个阶段的姿态误差随时间的累计导致位置误差逐渐增大[3]。目前大多采用零速校正[4]、航向漂移消除[5]、步态信号优化等方法来修正误差[6],但行人运动姿态的差异性及PDR算法中3个阶段的固有缺陷,导致定位精度仍有待提高。借助外部信号(如WiFi[7]、蓝牙信标[8]、人体肌电信号[9]、可见光[10]等)来提高PDR算法的定位精度也是常用的误差修正方式,但上述方法主要通过已有指纹库或在特定坐标位置修正定位误差,并未改变PDR算法的底层实现方式。
本文通过改进PDR算法的步频检测方式,得到适应步长估计阶段的输入特征,并引入深度RNN(Recurrent Neural Network,循环神经网络)模型进行步长估计,解决了传统PDR算法累计误差偏大的问题,提高了井下人员定位精度。
步频检测是通过识别行人步态周期来确定行人行走1步的时间,起简易计步器的作用[11]。基本的步频检测方法有峰值检测法、过零检测法等[12]。以峰值检测法为例,为使运动周期更为明显,采用迈步过程中人的能量作为衡量标准计算步频。能量E定义为各个方向加速度(即三轴加速度ax,ay,az)的平方和。
(1)
设置能量的波峰、波谷阈值,以能量从增到减并第1次大于波峰阈值或从减到增并第1次小于波谷阈值为判断条件,实现步频检测。
步长估计阶段通过分析行走特征(如行人身高、速度、步频等)建立模型来估计步长。传统的步长估计模型有静态和动态2种[13]。静态模型中步长为定值,不随加速度的变化而变化;动态模型是在行人行走过程中的1个加速度周期内,利用加速度峰谷值之差adif,结合先验数据得到第i步步长li,即
(3)
式中β为比例因子,定位前由先验数据经过最小二乘拟合得到。
本文采用手机内置的磁力计和陀螺仪计算航向角[14]。
(4)
传统PDR算法步长估计阶段常用的静态或动态模型无法有效解决行人行走时因姿态不同导致的计算误差。因此,本文对传统PDR算法进行了改进,主要包括采用改进的峰值检测法检测步频、建立深度RNN模型估计行走步长,并将改进算法用于井下人员定位。
定位原理如图1所示。首先根据手机加速度传感器、陀螺仪、磁力计获取行人运动实时数据;然后采用改进的峰值检测法计算规定时间间隔内的步频数据,并与其他数据输入训练后的深度RNN模型[15]进行步长估计;最后结合估计的航向角预测行人当前位置。
图1 井下人员定位原理
传统的峰值检测法设定一个固定阈值,当加速度峰值超过阈值时步数累加。然而人体在运动过程中并非处于绝对的匀速行进状态,每一完整步态区间内的加速度峰值不是固定的。另外,考虑到传感器数据获取频率太高,为减少计算次数,提高定位效率,采用固定时间间隔内的平均步频数据及对应时间间隔内的加速度方差进行步长估计。
为得到上述数据,对传统的峰值检测法进行改进。相应的步频检测流程如图2所示。判断当前获取的能量是否为极值后,根据一定时间间隔内的合理性排除伪波峰或伪波谷,并继续判断与前一极值的方向一致性,以保证使用真实极值实现步频检测。
图2 步频检测流程
RNN是一种反馈神经网络,在其处理单元之间既有内部的反馈连接,又有前馈连接,能够很好地处理时间序列数据。一个典型的RNN结构如图3所示,其节点之间的连接形成沿序列的有向图[15]。U,V,W均为各变换的权值;St为t时刻隐藏层的值;Xt,Ot分别为t时刻的输入和输出。t时刻的输出既与当前输入有关,也与上一时刻的记忆有关。在RNN隐藏层中每一个单元都在信息传递过程中筛选记忆,并将记忆信息传递给下一时刻的数据单元。
图3 RNN结构
本文采用深度RNN进行步长估计,其由1个输入层、3个RNN层和2个全连接层构成,如图4所示。当前RNN层的输出作为下一个RNN层的输入,输入层与一个全连接层共同实现输入数据特征提取,另一个全连接层输出一维列向量,为各时刻预测值。
图4 深度RNN结构
隐藏层激活函数选择ReLU函数。该函数将小于0的部分输出为0,大于0的部分输出原值,为隐藏层引入稀疏表达特性,且求导计算量小,加快了RNN收敛速度。
RNN损失函数选择平均绝对误差函数。该函数不考虑误差方向,避免了误差相互抵消问题,可准确反映实际预测误差。
为验证改进的井下人员定位PDR算法的可行性与应用效果,在河南某大型煤矿进行试验。试验分2个部分:① 在煤矿内空地采集原始数据,模拟矿工井下行走姿态,获得相关参数,以获取步长估计深度RNN模型。② 在井下进行现场试验。
3.1.1 原始数据采集
研究发现,行人的步长与步频、加速度方差等联系紧密[16],因此采集的原始数据为行走过程中的加速度和规定时间间隔内的实际行走距离。
为保证模型预测效果,采用防爆手机和激光测距仪同时采集原始数据。通过防爆手机的加速度传感器获得行人加速度数据,根据激光测距仪的固定频率获得行人行走距离,并通过数据线将数据实时传输至电脑并存储。采集原始数据时,被测对象手持手机(屏幕水平向上)置于胸前,沿激光测距仪激光所指方向直线往返行走。采集的原始数据见表1。
表1 采集的原始数据
3.1.2 步频检测
进行步频检测时,因数据采集过程中设备与行人之间存在相对运动或抖动,数据中的噪声较大[17]。因此,利用Java语言,根据改进的步频检测流程编写步频估计函数,配合均值滤波器对原始数据进行平滑操作,得到加速度传感器指定时间间隔(2 s)内的平均步频,如图5所示。根据加速度传感器采集数据,共获得6 316个平均步频数据。
图5 部分平均步频计算结果
3.1.3 步长估计
通过研究行人迈步特征发现,ay平均值代表行人在迈步时能量的平均水平,ay方差反映行人在迈步过程中能量和加速度的差异程度[18]。因此,本文采用测距仪测距时间间隔及该时间间隔内ay平均值、ay方差、平均步频作为深度RNN模型的输入特征。特征数据均为6 316个,除平均步频(图5)外,其他3项特征数据如图6所示。
(a)时间间隔
在确立深度RNN模型的输入特征、激活函数和损失函数后,将预处理后的数据随机排序,将前4 500个数据作为训练集,后1 816个数据作为测试集,将数据归一化后输入如图4所示的深度RNN结构中进行训练。训练过程中损失函数如图7所示。可看出在模型训练初期,损失函数下降较快,在100次训练之后趋于平缓,并在400次训练之后逼近0.009。
图7 深度RNN模型训练损失函数变化
将测试集输入深度RNN模型,所得预测值如图8所示。可看出深度RNN模型得到的预测值与真实值之间存在部分离群点不重合现象(如第250,500个点处),但整体重合度较高,误差在0附近波动。对预测结果进行量化统计可得,测试集预测前进距离3 031.46 m,累计误差为180.34 m,相对误差为5.9%,表明深度RNN模型对步长估计效果较好。
图8 深度RNN模型步长预测结果
基于步长估计深度RNN模型,提出井下人员定位PDR算法,并在井下环境进行试验,如图9所示。试验仅采用该算法进行定位导航,验证其可行性与实际效果。
在提升副井和运输巷附近进行3次测试,行进路线如图10所示。路线1在提升副井附近,从副井口经过2次直角转弯到达运输巷,长65.4 m;路线2在运输巷与南一采区胶带上山巷道交界处,长35.9 m;路线3位于运输巷某避难硐室附近,从避难硐室行至运输巷,最终到达工作面巷道,长255.4 m。测试时行人手持移动终端,按既定路线以稳定姿态行走。
图10 现场行进路线
试验结果见表2。可看出3条路线的定位相对误差均未超过3.9%,较文献[19]中基于静态模型的PDR算法定位误差(14.6%)、文献[20]中基于动态模型的PDR算法定位误差(4%~6%)显著减小。受制于PDR算法原理,试验中产生的相对误差随行走距离的增加而不断累计。
表2 现场试验结果
上述试验结果表明:改进的PDR算法步长预测更准确,用于井下人员定位时累计误差较小,表明本文算法具有较好的实用性。
(1)考虑人体在运动过程中每一完整步态区间内的加速度峰值不固定的实际情况,对传统PDR算法的步频检测进行改进,获取固定时间间隔内的平均步频数据及对应时间间隔内的加速度方差,作为后续步长估计的输入特征。
(2)针对传统PDR算法中步长估计阶段采用静态或动态模型时,因行人姿态差异导致累计误差较大的问题,提出采用深度RNN模型预测行人步长,并通过试验验证了该方法可减小累计误差。
(3)试验结果表明,改进的井下人员定位PDR算法定位相对误差为1.6%~3.9%,较传统PDR算法误差小,有效提高了井下人员定位精度。
(4)本文算法在类直线行走场景中取得了良好效果,可用于路径网络简单的井下巷道中,为后续井下人员混合定位方法、应急逃生系统设计等提供了一定参考。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!