孫延鑫, 毛善君, 蘇穎, 楊夢(mèng)
(1.北京大學(xué) 地球與空間科學(xué)學(xué)院,北京 100871;2.中國(guó)礦業(yè)大學(xué)(北京)機(jī)電與信息工程學(xué)院,北京 100083)
近年來(lái),煤礦井下人員定位技術(shù)取得了長(zhǎng)足進(jìn)步。井下環(huán)境復(fù)雜,除了采用傳統(tǒng)的UWB,WiFi等借助外部信號(hào)實(shí)現(xiàn)定位的技術(shù)之外,在沒(méi)有外部信號(hào)的環(huán)境下需要通過(guò)基于步長(zhǎng)估計(jì)的PDR(Pedestrian Dead Reckoning,行人航位推算)算法[1]進(jìn)行輔助定位。PDR算法通過(guò)對(duì)行人進(jìn)行步頻檢測(cè)、步長(zhǎng)估計(jì)和航向估計(jì)來(lái)推斷行人的位置信息?;赑DR算法的人員定位技術(shù)不受井下通信多徑效應(yīng)影響,不依賴外界信息,僅通過(guò)載體運(yùn)動(dòng)狀態(tài)即可計(jì)算出行人位置信息,非常適合在井下巷道環(huán)境中應(yīng)用[2]。然而采用PDR算法進(jìn)行定位的過(guò)程中,步頻檢測(cè)、步長(zhǎng)估計(jì)和航向估計(jì)3個(gè)階段的姿態(tài)誤差隨時(shí)間的累計(jì)導(dǎo)致位置誤差逐漸增大[3]。目前大多采用零速校正[4]、航向漂移消除[5]、步態(tài)信號(hào)優(yōu)化等方法來(lái)修正誤差[6],但行人運(yùn)動(dòng)姿態(tài)的差異性及PDR算法中3個(gè)階段的固有缺陷,導(dǎo)致定位精度仍有待提高。借助外部信號(hào)(如WiFi[7]、藍(lán)牙信標(biāo)[8]、人體肌電信號(hào)[9]、可見(jiàn)光[10]等)來(lái)提高PDR算法的定位精度也是常用的誤差修正方式,但上述方法主要通過(guò)已有指紋庫(kù)或在特定坐標(biāo)位置修正定位誤差,并未改變PDR算法的底層實(shí)現(xiàn)方式。
本文通過(guò)改進(jìn)PDR算法的步頻檢測(cè)方式,得到適應(yīng)步長(zhǎng)估計(jì)階段的輸入特征,并引入深度RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡(luò))模型進(jìn)行步長(zhǎng)估計(jì),解決了傳統(tǒng)PDR算法累計(jì)誤差偏大的問(wèn)題,提高了井下人員定位精度。
步頻檢測(cè)是通過(guò)識(shí)別行人步態(tài)周期來(lái)確定行人行走1步的時(shí)間,起簡(jiǎn)易計(jì)步器的作用[11]?;镜牟筋l檢測(cè)方法有峰值檢測(cè)法、過(guò)零檢測(cè)法等[12]。以峰值檢測(cè)法為例,為使運(yùn)動(dòng)周期更為明顯,采用邁步過(guò)程中人的能量作為衡量標(biāo)準(zhǔn)計(jì)算步頻。能量E定義為各個(gè)方向加速度(即三軸加速度ax,ay,az)的平方和。
(1)
設(shè)置能量的波峰、波谷閾值,以能量從增到減并第1次大于波峰閾值或從減到增并第1次小于波谷閾值為判斷條件,實(shí)現(xiàn)步頻檢測(cè)。
步長(zhǎng)估計(jì)階段通過(guò)分析行走特征(如行人身高、速度、步頻等)建立模型來(lái)估計(jì)步長(zhǎng)。傳統(tǒng)的步長(zhǎng)估計(jì)模型有靜態(tài)和動(dòng)態(tài)2種[13]。靜態(tài)模型中步長(zhǎng)為定值,不隨加速度的變化而變化;動(dòng)態(tài)模型是在行人行走過(guò)程中的1個(gè)加速度周期內(nèi),利用加速度峰谷值之差adif,結(jié)合先驗(yàn)數(shù)據(jù)得到第i步步長(zhǎng)li,即
(3)
式中β為比例因子,定位前由先驗(yàn)數(shù)據(jù)經(jīng)過(guò)最小二乘擬合得到。
本文采用手機(jī)內(nèi)置的磁力計(jì)和陀螺儀計(jì)算航向角[14]。
(4)
傳統(tǒng)PDR算法步長(zhǎng)估計(jì)階段常用的靜態(tài)或動(dòng)態(tài)模型無(wú)法有效解決行人行走時(shí)因姿態(tài)不同導(dǎo)致的計(jì)算誤差。因此,本文對(duì)傳統(tǒng)PDR算法進(jìn)行了改進(jìn),主要包括采用改進(jìn)的峰值檢測(cè)法檢測(cè)步頻、建立深度RNN模型估計(jì)行走步長(zhǎng),并將改進(jìn)算法用于井下人員定位。
定位原理如圖1所示。首先根據(jù)手機(jī)加速度傳感器、陀螺儀、磁力計(jì)獲取行人運(yùn)動(dòng)實(shí)時(shí)數(shù)據(jù);然后采用改進(jìn)的峰值檢測(cè)法計(jì)算規(guī)定時(shí)間間隔內(nèi)的步頻數(shù)據(jù),并與其他數(shù)據(jù)輸入訓(xùn)練后的深度RNN模型[15]進(jìn)行步長(zhǎng)估計(jì);最后結(jié)合估計(jì)的航向角預(yù)測(cè)行人當(dāng)前位置。
圖1 井下人員定位原理
傳統(tǒng)的峰值檢測(cè)法設(shè)定一個(gè)固定閾值,當(dāng)加速度峰值超過(guò)閾值時(shí)步數(shù)累加。然而人體在運(yùn)動(dòng)過(guò)程中并非處于絕對(duì)的勻速行進(jìn)狀態(tài),每一完整步態(tài)區(qū)間內(nèi)的加速度峰值不是固定的。另外,考慮到傳感器數(shù)據(jù)獲取頻率太高,為減少計(jì)算次數(shù),提高定位效率,采用固定時(shí)間間隔內(nèi)的平均步頻數(shù)據(jù)及對(duì)應(yīng)時(shí)間間隔內(nèi)的加速度方差進(jìn)行步長(zhǎng)估計(jì)。
為得到上述數(shù)據(jù),對(duì)傳統(tǒng)的峰值檢測(cè)法進(jìn)行改進(jìn)。相應(yīng)的步頻檢測(cè)流程如圖2所示。判斷當(dāng)前獲取的能量是否為極值后,根據(jù)一定時(shí)間間隔內(nèi)的合理性排除偽波峰或偽波谷,并繼續(xù)判斷與前一極值的方向一致性,以保證使用真實(shí)極值實(shí)現(xiàn)步頻檢測(cè)。
圖2 步頻檢測(cè)流程
RNN是一種反饋神經(jīng)網(wǎng)絡(luò),在其處理單元之間既有內(nèi)部的反饋連接,又有前饋連接,能夠很好地處理時(shí)間序列數(shù)據(jù)。一個(gè)典型的RNN結(jié)構(gòu)如圖3所示,其節(jié)點(diǎn)之間的連接形成沿序列的有向圖[15]。U,V,W均為各變換的權(quán)值;St為t時(shí)刻隱藏層的值;Xt,Ot分別為t時(shí)刻的輸入和輸出。t時(shí)刻的輸出既與當(dāng)前輸入有關(guān),也與上一時(shí)刻的記憶有關(guān)。在RNN隱藏層中每一個(gè)單元都在信息傳遞過(guò)程中篩選記憶,并將記憶信息傳遞給下一時(shí)刻的數(shù)據(jù)單元。
圖3 RNN結(jié)構(gòu)
本文采用深度RNN進(jìn)行步長(zhǎng)估計(jì),其由1個(gè)輸入層、3個(gè)RNN層和2個(gè)全連接層構(gòu)成,如圖4所示。當(dāng)前RNN層的輸出作為下一個(gè)RNN層的輸入,輸入層與一個(gè)全連接層共同實(shí)現(xiàn)輸入數(shù)據(jù)特征提取,另一個(gè)全連接層輸出一維列向量,為各時(shí)刻預(yù)測(cè)值。
圖4 深度RNN結(jié)構(gòu)
隱藏層激活函數(shù)選擇ReLU函數(shù)。該函數(shù)將小于0的部分輸出為0,大于0的部分輸出原值,為隱藏層引入稀疏表達(dá)特性,且求導(dǎo)計(jì)算量小,加快了RNN收斂速度。
RNN損失函數(shù)選擇平均絕對(duì)誤差函數(shù)。該函數(shù)不考慮誤差方向,避免了誤差相互抵消問(wèn)題,可準(zhǔn)確反映實(shí)際預(yù)測(cè)誤差。
為驗(yàn)證改進(jìn)的井下人員定位PDR算法的可行性與應(yīng)用效果,在河南某大型煤礦進(jìn)行試驗(yàn)。試驗(yàn)分2個(gè)部分:① 在煤礦內(nèi)空地采集原始數(shù)據(jù),模擬礦工井下行走姿態(tài),獲得相關(guān)參數(shù),以獲取步長(zhǎng)估計(jì)深度RNN模型。② 在井下進(jìn)行現(xiàn)場(chǎng)試驗(yàn)。
3.1.1 原始數(shù)據(jù)采集
研究發(fā)現(xiàn),行人的步長(zhǎng)與步頻、加速度方差等聯(lián)系緊密[16],因此采集的原始數(shù)據(jù)為行走過(guò)程中的加速度和規(guī)定時(shí)間間隔內(nèi)的實(shí)際行走距離。
為保證模型預(yù)測(cè)效果,采用防爆手機(jī)和激光測(cè)距儀同時(shí)采集原始數(shù)據(jù)。通過(guò)防爆手機(jī)的加速度傳感器獲得行人加速度數(shù)據(jù),根據(jù)激光測(cè)距儀的固定頻率獲得行人行走距離,并通過(guò)數(shù)據(jù)線將數(shù)據(jù)實(shí)時(shí)傳輸至電腦并存儲(chǔ)。采集原始數(shù)據(jù)時(shí),被測(cè)對(duì)象手持手機(jī)(屏幕水平向上)置于胸前,沿激光測(cè)距儀激光所指方向直線往返行走。采集的原始數(shù)據(jù)見(jiàn)表1。
表1 采集的原始數(shù)據(jù)
3.1.2 步頻檢測(cè)
進(jìn)行步頻檢測(cè)時(shí),因數(shù)據(jù)采集過(guò)程中設(shè)備與行人之間存在相對(duì)運(yùn)動(dòng)或抖動(dòng),數(shù)據(jù)中的噪聲較大[17]。因此,利用Java語(yǔ)言,根據(jù)改進(jìn)的步頻檢測(cè)流程編寫步頻估計(jì)函數(shù),配合均值濾波器對(duì)原始數(shù)據(jù)進(jìn)行平滑操作,得到加速度傳感器指定時(shí)間間隔(2 s)內(nèi)的平均步頻,如圖5所示。根據(jù)加速度傳感器采集數(shù)據(jù),共獲得6 316個(gè)平均步頻數(shù)據(jù)。
圖5 部分平均步頻計(jì)算結(jié)果
3.1.3 步長(zhǎng)估計(jì)
通過(guò)研究行人邁步特征發(fā)現(xiàn),ay平均值代表行人在邁步時(shí)能量的平均水平,ay方差反映行人在邁步過(guò)程中能量和加速度的差異程度[18]。因此,本文采用測(cè)距儀測(cè)距時(shí)間間隔及該時(shí)間間隔內(nèi)ay平均值、ay方差、平均步頻作為深度RNN模型的輸入特征。特征數(shù)據(jù)均為6 316個(gè),除平均步頻(圖5)外,其他3項(xiàng)特征數(shù)據(jù)如圖6所示。
(a)時(shí)間間隔
在確立深度RNN模型的輸入特征、激活函數(shù)和損失函數(shù)后,將預(yù)處理后的數(shù)據(jù)隨機(jī)排序,將前4 500個(gè)數(shù)據(jù)作為訓(xùn)練集,后1 816個(gè)數(shù)據(jù)作為測(cè)試集,將數(shù)據(jù)歸一化后輸入如圖4所示的深度RNN結(jié)構(gòu)中進(jìn)行訓(xùn)練。訓(xùn)練過(guò)程中損失函數(shù)如圖7所示??煽闯鲈谀P陀?xùn)練初期,損失函數(shù)下降較快,在100次訓(xùn)練之后趨于平緩,并在400次訓(xùn)練之后逼近0.009。
圖7 深度RNN模型訓(xùn)練損失函數(shù)變化
將測(cè)試集輸入深度RNN模型,所得預(yù)測(cè)值如圖8所示??煽闯錾疃萊NN模型得到的預(yù)測(cè)值與真實(shí)值之間存在部分離群點(diǎn)不重合現(xiàn)象(如第250,500個(gè)點(diǎn)處),但整體重合度較高,誤差在0附近波動(dòng)。對(duì)預(yù)測(cè)結(jié)果進(jìn)行量化統(tǒng)計(jì)可得,測(cè)試集預(yù)測(cè)前進(jìn)距離3 031.46 m,累計(jì)誤差為180.34 m,相對(duì)誤差為5.9%,表明深度RNN模型對(duì)步長(zhǎng)估計(jì)效果較好。
圖8 深度RNN模型步長(zhǎng)預(yù)測(cè)結(jié)果
基于步長(zhǎng)估計(jì)深度RNN模型,提出井下人員定位PDR算法,并在井下環(huán)境進(jìn)行試驗(yàn),如圖9所示。試驗(yàn)僅采用該算法進(jìn)行定位導(dǎo)航,驗(yàn)證其可行性與實(shí)際效果。
在提升副井和運(yùn)輸巷附近進(jìn)行3次測(cè)試,行進(jìn)路線如圖10所示。路線1在提升副井附近,從副井口經(jīng)過(guò)2次直角轉(zhuǎn)彎到達(dá)運(yùn)輸巷,長(zhǎng)65.4 m;路線2在運(yùn)輸巷與南一采區(qū)膠帶上山巷道交界處,長(zhǎng)35.9 m;路線3位于運(yùn)輸巷某避難硐室附近,從避難硐室行至運(yùn)輸巷,最終到達(dá)工作面巷道,長(zhǎng)255.4 m。測(cè)試時(shí)行人手持移動(dòng)終端,按既定路線以穩(wěn)定姿態(tài)行走。
圖10 現(xiàn)場(chǎng)行進(jìn)路線
試驗(yàn)結(jié)果見(jiàn)表2??煽闯?條路線的定位相對(duì)誤差均未超過(guò)3.9%,較文獻(xiàn)[19]中基于靜態(tài)模型的PDR算法定位誤差(14.6%)、文獻(xiàn)[20]中基于動(dòng)態(tài)模型的PDR算法定位誤差(4%~6%)顯著減小。受制于PDR算法原理,試驗(yàn)中產(chǎn)生的相對(duì)誤差隨行走距離的增加而不斷累計(jì)。
表2 現(xiàn)場(chǎng)試驗(yàn)結(jié)果
上述試驗(yàn)結(jié)果表明:改進(jìn)的PDR算法步長(zhǎng)預(yù)測(cè)更準(zhǔn)確,用于井下人員定位時(shí)累計(jì)誤差較小,表明本文算法具有較好的實(shí)用性。
(1)考慮人體在運(yùn)動(dòng)過(guò)程中每一完整步態(tài)區(qū)間內(nèi)的加速度峰值不固定的實(shí)際情況,對(duì)傳統(tǒng)PDR算法的步頻檢測(cè)進(jìn)行改進(jìn),獲取固定時(shí)間間隔內(nèi)的平均步頻數(shù)據(jù)及對(duì)應(yīng)時(shí)間間隔內(nèi)的加速度方差,作為后續(xù)步長(zhǎng)估計(jì)的輸入特征。
(2)針對(duì)傳統(tǒng)PDR算法中步長(zhǎng)估計(jì)階段采用靜態(tài)或動(dòng)態(tài)模型時(shí),因行人姿態(tài)差異導(dǎo)致累計(jì)誤差較大的問(wèn)題,提出采用深度RNN模型預(yù)測(cè)行人步長(zhǎng),并通過(guò)試驗(yàn)驗(yàn)證了該方法可減小累計(jì)誤差。
(3)試驗(yàn)結(jié)果表明,改進(jìn)的井下人員定位PDR算法定位相對(duì)誤差為1.6%~3.9%,較傳統(tǒng)PDR算法誤差小,有效提高了井下人員定位精度。
(4)本文算法在類直線行走場(chǎng)景中取得了良好效果,可用于路徑網(wǎng)絡(luò)簡(jiǎn)單的井下巷道中,為后續(xù)井下人員混合定位方法、應(yīng)急逃生系統(tǒng)設(shè)計(jì)等提供了一定參考。