一種基于慣性測量單元的用戶步行定位方法
【專利摘要】本發(fā)明涉及一種基于慣性測量單元的用戶步行定位方法,針對行人進行定位時,不依賴于外在設(shè)備的具體情況,不需要提前建立指紋地圖,不需要專業(yè)的定位設(shè)備,只需要利用集成有慣性測量單元的智能移動終端,配合定位場景地圖,即可實現(xiàn)定位應(yīng)用。定位方案具有很好的普適性,在不同硬件條件的定位場景均可實現(xiàn)定位應(yīng)用。
【專利說明】
-種基于慣性測量單元的用戶步行定位方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及一種基于慣性測量單元的用戶步行定位方法,屬于移動計算技術(shù)應(yīng)用 領(lǐng)域。
【背景技術(shù)】
[0002] 目前定位算法的主流是基于無線網(wǎng)絡(luò)(Wireless Fidelity,Wi-Fi)、射頻識別 (Radio Frequency Identification,RFID)、低功耗藍(lán)牙(Bluetooth Low Ene;rgy,I3LE)等 無線射頻技術(shù)實現(xiàn)對行人的定位。通過利用一些典型的定位方法,諸如基于接收信號強度 的方法,結(jié)合Ξ邊測量算法計算得到行人坐標(biāo)或是采用指紋定位算法實現(xiàn)行人定位應(yīng)用。 不同于無線射頻定位技術(shù),利用從慣性測量單元實現(xiàn)行人定位是一個較新的研究方向。運 類定位方案無需在定位場景配備專業(yè)的射頻設(shè)備,也無需提前建立射頻信號的指紋地圖, 只需要一部集成了慣性測量單元的智能移動終端和一張定位場景的地圖即可實現(xiàn)定位應(yīng) 用。
[0003] 定位算法的性能指標(biāo)有定位精度、定位魯棒性、算法復(fù)雜度等。其中,定位精度是 定位算法的關(guān)鍵指標(biāo)。一些利用無線射頻技術(shù)進行定位的方法在理論上可預(yù)見較高的定位 精度,但運些定位算法的定位精度往往過于依賴其使用的具體定位技術(shù),WWi-Fi定位技術(shù) 為例:當(dāng)所部署的Wi-Fi設(shè)備都能夠正常運行時,結(jié)合適當(dāng)?shù)亩ㄎ环椒軌颢@得較好的定位 精度,不過一旦Wi-Fi設(shè)備發(fā)生異常甚至無法工作時,將嚴(yán)重影響定位方法的定位效果,大 大降低室內(nèi)定位的定位精度,甚至出現(xiàn)無法進行定位的情況。此外,即使利用指紋定位法來 實現(xiàn)定位應(yīng)用,指紋采樣點的稀疏程度也直接影響了定位精度運一重要指標(biāo)。因此,若是射 頻設(shè)備大范圍的損壞或者更新,都將會造成定位精度急劇下降,甚至導(dǎo)致定位失敗。對于利 用慣性測量單元的定位本身而言,有些定位方案需要配備專業(yè)的可穿戴設(shè)備來代替常見的 智能移動終端,甚至需要將設(shè)備固定在腰間或腳踩處來提高定位精度;有些方案需要在定 位場景的指定位置部署額外的射頻設(shè)備進行輔助定位,W糾正定位過程中的累積誤差問 題。運些定位方案均無法普適于一般的集成了慣性測量單元定位的智能移動終端,需要專 業(yè)的定位設(shè)備或是需要額外的射頻定位設(shè)備進行輔助定位。
[0004] 可見,僅僅考慮無線射頻技術(shù)的定位是不足的,特別是面對如今越來越多個性化 定位場景,不是每個定位場景都部署有或部署足夠的Wi-Fi路由器、BLE信號設(shè)備等。對于基 于慣性測量單元的定位方法,專業(yè)定位設(shè)備W及其他額外的射頻定位設(shè)備的需要也降低了 定位算法的普適性。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的技術(shù)問題是提供一種利用集成慣性測量單元和定位場景地圖 信息的智能移動終端,能夠高效實現(xiàn)針對行人位置定位的基于慣性測量單元的用戶步行定 位方法。
[0006] 本發(fā)明為了解決上述技術(shù)問題采用W下技術(shù)方案:本發(fā)明設(shè)計了一種基于慣性測 量單元的用戶步行定位方法,通過攜帶慣性測量單元,實現(xiàn)針對用戶步行位置的定位,所述 定位方法包括如下步驟:
[0007]步驟001.針對慣性測量單元建立終端Ξ維坐標(biāo)系,W及針對用戶的步行建立行走 Ξ維坐標(biāo)系,然后進入步驟002;
[000引步驟002.構(gòu)建用于終端Ξ維坐標(biāo)系與行走Ξ維坐標(biāo)系之間位置轉(zhuǎn)換的旋轉(zhuǎn)矩陣, 然后進入步驟003;
[0009] 步驟003.用戶攜帶慣性測量單元,分預(yù)設(shè)腳欠,分別步行預(yù)設(shè)路程,分別獲得N組樣 本數(shù)據(jù),其中,分別針對各次步行預(yù)設(shè)路程,通過慣性測量單元記錄步行的步數(shù),W及按用 戶每走一步對應(yīng)一個檢測時刻,通過慣性測量單元檢測各時刻的加速度,再經(jīng)旋轉(zhuǎn)矩陣獲 得用戶各時刻步行的加速度,分別構(gòu)成各組樣本數(shù)據(jù),然后進入步驟004;
[0010] 步驟004.分別針對各組樣本數(shù)據(jù)中各時刻步行的加速度,采用鄰近平均值法更新 各時刻步行的加速度ak;然后分別針對各組樣本數(shù)據(jù),獲得用戶步行加速度方差V和各時刻 用戶的步伐頻率F化),W及根據(jù)預(yù)設(shè)路程和步行的步數(shù),獲得各步的步長,進而分別獲得各 組樣本數(shù)據(jù)分別所對應(yīng)用戶步行加速度方差V,其中各時刻用戶的步伐頻率F化),W及其中 各步的步長,并進入步驟005;其中,k表示第k時刻,ak表示用戶第k時刻步行的加速度;
[0011] 步驟005.構(gòu)建用戶步長公式如下式所示:
[0012] Lk+i = A+bF 化)+cV
[0013] 并根據(jù)各組樣本數(shù)據(jù)分別所對應(yīng)用戶步行加速度方差V,其中各時刻用戶的步伐 頻率F化),W及其中各步的步長,采用預(yù)設(shè)訓(xùn)練算法針對用戶步長公式就行訓(xùn)練,獲得其中 參數(shù)A、b、c的值,進而更新構(gòu)成用戶步長模型Lk+i = A+bF化)+cV,然后進入步驟006;
[0014] 步驟006.針對地圖中的物理結(jié)構(gòu),規(guī)劃出可達(dá)區(qū)域和非可達(dá)區(qū)域,并初始化用戶 的當(dāng)前時刻位置,W及初始化參數(shù)S為0,然后進入步驟007;
[0015] 步驟007.按照用戶每走一步對應(yīng)一個檢測時刻,通過慣性測量單元檢測當(dāng)前時刻 的方向角,并經(jīng)旋轉(zhuǎn)矩陣獲得用戶當(dāng)前時刻的方向角,然后根據(jù)用戶的當(dāng)前時刻位置,采用 自適應(yīng)粒子群優(yōu)化算法,結(jié)合用戶當(dāng)前時刻的方向角,W及用戶步長模型,獲得用戶下一時 刻的預(yù)測位置,然后進入步驟008;
[0016] 步驟008.獲得用戶當(dāng)前時刻方向角與用戶上一時刻方向角之間的差值ΔΘ,判斷 A Θ是否小于等于預(yù)設(shè)角度下限闊值θι,是則針對大于0的S進行清零,并進入步驟014;否則 進入步驟009;
[0017] 步驟009.判斷ΔΘ是否小于預(yù)設(shè)角度上限闊值0h,是則根據(jù)用戶的當(dāng)前時刻位置, 采用自適應(yīng)粒子群優(yōu)化算法,結(jié)合用戶上一時刻的方向角,W及用戶步長模型,更新獲得用 戶下一時刻的預(yù)測位置,同時針對大于0的S進行清零,并進入步驟014;否則進入步驟010;
[0018] 步驟010.判斷S是否等于第一預(yù)設(shè)時限闊值Ti,是則進入步驟011;否則用S的值加 1針對S進行更新,接著根據(jù)用戶的當(dāng)前位置,采用自適應(yīng)粒子群優(yōu)化算法,結(jié)合用戶上一時 刻的方向角,W及用戶步長模型,更新獲得用戶下一時刻的預(yù)測位置,同時更新用戶當(dāng)前時 刻的方向角為上一時刻的方向角,并進入步驟014;其中,Τι含2;
[0019] 步驟011.暫定針對用戶步行位置的定位,初始化參數(shù)Υ = 0,然后進入下一時刻,并 進入步驟012;
[0020] 步驟012.獲得用戶當(dāng)前時刻方向角與用戶上一時刻方向角之間的差值ΔΘ,判斷 A θ是否小于等于預(yù)設(shè)角度下限闊值θι,是則用Υ的值加1針對Υ進行更新,并進入步驟013; 否則針對大于0的Υ進行清零,并進入步驟013;
[0021] 步驟013.判斷Υ是否等于第二預(yù)設(shè)時限闊值Τ2,是則初始化用戶的當(dāng)前時刻位置, 并返回步驟007;否則進入下一時刻,并返回步驟012;其中,Τ2> 2;
[0022] 步驟014.根據(jù)地圖中的可達(dá)區(qū)域和非可達(dá)區(qū)域,判斷用戶當(dāng)前時刻位置與下一時 刻預(yù)測位置之間的連線是否進入不可達(dá)區(qū)域,是則進入步驟015;否則進入下一時刻,并在 地圖上顯示用戶下一時刻的預(yù)測位置,再返回步驟007;
[0023] 步驟015.獲得由用戶當(dāng)前時刻位置指向下一時刻預(yù)測位置的射線,首次與不可達(dá) 區(qū)域邊緣的相交點位置,進一步獲得在地圖上可達(dá)區(qū)域內(nèi)與該相交點位置之間路程最近的 道路交點位置,將該道路交點位置更新作為用戶下一時刻的預(yù)測位置,然后進入下一時刻, 并在地圖上顯示用戶下一時刻的預(yù)測位置,實現(xiàn)用戶步行位置的定位,再返回步驟007。
[0024] 作為本發(fā)明的一種優(yōu)選技術(shù)方案:所屬用于終端Ξ維坐標(biāo)系與行走Ξ維坐標(biāo)系之 間位置轉(zhuǎn)換的旋轉(zhuǎn)矩陣,為模為1,且具有唯一特征值的矩陣。
[0025] 作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟004中,分別針對各組樣本數(shù)據(jù)中各時 刻步行的加速度,采用鄰近平均值法通過如下公式,更新各時刻步行的加速度ak;
[0026]
[0027] 式中,m為預(yù)設(shè)鄰近檢測時間范圍。
[0028] 作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟004中,分別針對各組樣本數(shù)據(jù),采用 預(yù)設(shè)分類器進行訓(xùn)練,獲得用戶步行各個加速度所分別對應(yīng)的各個加速度期望E(ak),然后 根據(jù)如下公式,獲得用戶步行加速度方差V,
[0029] v = E(£ik2)-(E(£ik))2
[0030] 式中,E(ak)表示用戶步行過程中加速度ak所對應(yīng)的加速度期望,E(ak2)表示用戶 步行過程中加速度ak2所對應(yīng)的加速度期望。
[0031 ]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟004中,分別針對各組樣本數(shù)據(jù),根據(jù) 如下公式,獲得各時刻用戶的步伐頻率F化),
[0032]
[003引式中,tk+康示第k+1個時刻的時間,t讀示第k個時刻的時間。
[0034] 作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟005中,根據(jù)各組樣本數(shù)據(jù)分別所對應(yīng) 用戶步行加速度方差V,其中各時刻用戶的步伐頻率F化),W及其中各步的步長,采用梯度 下降訓(xùn)練算法針對用戶步長公式進行訓(xùn)練,獲得其中參數(shù)A、b、c的值。
[0035] 作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述根據(jù)用戶的當(dāng)前位置,采用自適應(yīng)粒子群 優(yōu)化算法,結(jié)合用戶當(dāng)前時刻方向角或者上一時刻方向角,W及用戶步長模型,獲得或更新 獲得用戶下一時刻的預(yù)測位置,具體包括如下步驟:
[0036] 步驟aOl.在地圖上針對W用戶當(dāng)前位置為圓屯、、預(yù)設(shè)半徑區(qū)域內(nèi),設(shè)置N個粒子所 構(gòu)成的粒子群,分別針對各個粒子,獲得當(dāng)前時刻粒子的橫坐標(biāo)Xn,k、縱坐標(biāo)yn,k和方向角 目n,k,然后進入步驟a02;其中,11={1、-'、《,恥,1<表示第11個粒子當(dāng)前時刻粒子的橫坐標(biāo),7。,1< 表示第η個粒子當(dāng)前時刻粒子的縱坐標(biāo),0n,k表示第η個粒子當(dāng)前時刻粒子的方向角;
[0037]步驟a02.分別針對各個粒子,獲得粒子下一時刻方向角相對當(dāng)前時刻方向角的變 化ΔΘ\,Κ及結(jié)合用戶步長模型,獲得用戶下一時刻步長Lk+i,再根據(jù)如下公式,更新獲得 下一時刻粒子的橫坐標(biāo)Xn,k+1、縱坐標(biāo)yn,k+l和方向角目n,k+l,其中,A 0/ η表示第η個粒子下一 時刻方向角相對當(dāng)前時刻方向角的變化;
[003引 Xn,k+l = Xn,k+Lk+l · cos目n,k+l
[0039] yn,k+i = yn,k+Lk+i · sin目n,k+i
[0040] 白n'k+l =白n'k+Δ 白'η
[0041 ] 進而分別獲得各個粒子下一時刻粒子的橫坐標(biāo)Xn,k+1、縱坐標(biāo)yn,k+l和方向角目n,k+l, 然后進入步驟a〇3;
[0042] 步驟a03.分別針對當(dāng)前時刻的前預(yù)設(shè)U個檢測時刻,分別獲得各檢測時刻中各個 粒子與對應(yīng)檢測時刻用戶步行位置之間的歐幾里得距離dn,u,然后進入步驟a04;其中,u = {1、、1]},山,。表示該1]個檢測時刻中第11個時刻、第11個粒子與對應(yīng)檢測時刻用戶步行位置之 間的歐幾里得距離;
[0043] 步驟a04.分別針對各個粒子,獲得粒子分別對應(yīng)該U個檢測時刻歐幾里得距離中 的最小值,作為該粒子的經(jīng)驗值,進而分別獲得各個粒子的經(jīng)驗值Pn;同時,將所有粒子對 應(yīng)該U個檢測時刻歐幾里得距離中的最小,作為粒子同伴的經(jīng)驗值G,然后進入步驟a05;
[0044] 步驟a05.分別獲得各個粒子的當(dāng)前坐標(biāo)位置gn,k,然后分別針對各個粒子,根據(jù)如 下公式,獲得粒子在第k+1時刻的粒子權(quán)重Wn,k+1,進而分別獲得各個粒子在第k+1時刻的粒 子權(quán)重ω η, k+1,然后進入步驟a06;
[0045]
[0046] 式中,bi和b2為預(yù)設(shè)常系數(shù),?·(ξ)是一個取隨機值的函數(shù),wn,k+讀示第η個粒子在 第k+1時刻的粒子權(quán)重,gn,k表示第η個粒子在當(dāng)前時刻下的坐標(biāo)位置,包括粒子的橫坐標(biāo)和 縱坐標(biāo);
[0047] 步驟a06.根據(jù)如下公式,獲得用戶下一時刻的預(yù)測位置Xk+i,
[004引
[00例式中,no;rm( c0n,k+i)表示針對Wn,k+1的標(biāo)準(zhǔn)化。
[0050] 本發(fā)明所述一種基于慣性測量單元的用戶步行定位方法采用W上技術(shù)方案與現(xiàn) 有技術(shù)相比,具有W下技術(shù)效果:
[0051] 1.本發(fā)明所設(shè)計的一種基于慣性測量單元的用戶步行定位方法,針對行人進行定 位時,不依賴于外在設(shè)備的具體情況,不需要提前建立指紋地圖,不需要專業(yè)的定位設(shè)備, 只需要利用集成有慣性測量單元的智能移動終端,配合定位場景地圖,即可實現(xiàn)定位應(yīng)用。 定位方案具有很好的普適性,在不同硬件條件的定位場景均可實現(xiàn)定位應(yīng)用;
[0052] 2.本發(fā)明所設(shè)計的一種基于慣性測量單元的用戶步行定位方法,在定位過程中, 自適應(yīng)粒子群優(yōu)化算法(APS0算法)會對慣性測量單元的數(shù)據(jù)漂移問題和定位坐標(biāo)的穿墻 問題就行糾正,提高定位精度,一定程度上克服由于慣性測量單元自身所導(dǎo)致的定位誤差;
[0053] 3.本發(fā)明所設(shè)計的一種基于慣性測量單元的用戶步行定位方法,在定位過程中, 支持智能移動終端的姿態(tài)變換,不會因為終端姿態(tài)的變化導(dǎo)致定位精度的急劇下降,特別 是對于接聽電話、拍攝照片、發(fā)送短信等方向角非連續(xù)變化的情況有很好的支持,魯棒性很 局;
[0054] 4.本發(fā)明所設(shè)計的一種基于慣性測量單元的用戶步行定位方法,整個基于慣性測 量單元的定位方法是一個可融合的定位方案??蒞根據(jù)具體定位場景的硬件條件,融合基 于射頻信號技術(shù)的指紋定位和基于信號強度的定位。
【附圖說明】
[0055] 圖1是本發(fā)明設(shè)計的基于慣性測量單元的用戶步行定位方法中慣性測量單元的歐 拉角示意圖;
[0056] 圖2是本發(fā)明設(shè)計的基于慣性測量單元的用戶步行定位方法中定位模型示意圖。
【具體實施方式】
[0057] 下面結(jié)合說明書附圖對本發(fā)明的【具體實施方式】作進一步詳細(xì)的說明。
[0058] 本發(fā)明所設(shè)計一種基于慣性測量單元的用戶步行定位方法,在實際應(yīng)用過程當(dāng) 中,通過攜帶慣性測量單元,實現(xiàn)針對用戶步行位置的定位,所述定位方法,具體包括如下 步驟:
[0059] 步驟001.慣性測量單元的歐拉角主要由俯仰角,翻滾角和旋轉(zhuǎn)角構(gòu)成,它們通常 用來描述物體在慣性空間中的相對姿態(tài),如圖1所示。其中,俯仰角和翻滾角通常由Ξ軸加 速度計計算而得,旋轉(zhuǎn)角通常根據(jù)巧螺儀或Ξ軸磁力計確定。因此,針對慣性測量單元建立 終端Ξ維坐標(biāo)系T,W及針對用戶的步行建立行走Ξ維坐標(biāo)系G,然后進入步驟002。
[0060] 其中,設(shè)俯仰角為P,翻滾角為Q,旋轉(zhuǎn)角為¥。山、(^、〇3分別為^軸加速度傳感器乂、¥ 和Z軸的加速度值。當(dāng)終端靜止時,Ξ軸加速度計的矢量和為:
[0061]
[0062] 其中,在公式1中,g表示重力加速度。
[0063] 俯仰角P為:
[0067] 步驟002 .構(gòu)建用于終端Ξ維坐標(biāo)系與行走Ξ維坐標(biāo)系之間位置轉(zhuǎn)換的旋轉(zhuǎn)矩陣 (Rotation Ma化ix,RM),然后進入步驟003,其中,用于終端Ξ維坐標(biāo)系與行走Ξ維坐標(biāo)系 之間位置轉(zhuǎn)換的旋轉(zhuǎn)矩陣,為模為1,且具有唯一特征值的矩陣。
[0068] 其中,當(dāng)旋轉(zhuǎn)矩陣(RM)應(yīng)用在向量的乘法中時,可W改變一個向量方向的同時卻 不改變該向量的大小。那也就是說,利用旋轉(zhuǎn)矩陣(M)就可W改變T坐標(biāo)系的方向,使之與G 坐標(biāo)系的夾角為0,同時又能保留T坐標(biāo)系中Ξ個方向的值的大小。
[0069] 不妨設(shè)T坐標(biāo)系的X軸與G坐標(biāo)系的X軸、Y軸、Z軸之間的夾角分別為rx'xjx'yjx'z。 同理,T坐標(biāo)系的Y軸與G坐標(biāo)系Ξ個軸之間的夾角分別為ry'x,ry'y,ry'z,T坐標(biāo)系的巧由與G坐 標(biāo)系;個軸之間的夾角分別為rz'xJz'yJz'z。設(shè)點W(x',y',z')是T坐標(biāo)系上一點,對應(yīng)地, 點W在G坐標(biāo)系上的坐標(biāo)為(x,y,z),有:
[0070] x = x' cosrx^ x+y' cosrx^ y+z' cosrx^ Z
[0071] γ = χ/ cosr/x+y/ cosr/y+z/ cosr/z
[0072] z = x' cosrz'x+y' cosrz'y+z' cosrz'z
[0073] 由上式變形可得:
[0074] (x,y,z)T = R(x' y,ζ')τ
[0075] 在上式中,R是旋轉(zhuǎn)矩陣(Μ),可W表示為:
[0076]
[0077] 相應(yīng)地,當(dāng)終端繞坐標(biāo)系Ξ個不同的軸旋轉(zhuǎn)時,旋轉(zhuǎn)矩陣R的表達(dá)式分別為:
[0081 ] Ra表示終端繞X軸旋轉(zhuǎn),即俯仰角,旋轉(zhuǎn)角度為α; %表示終端繞Y軸旋轉(zhuǎn),即翻滾角, 旋轉(zhuǎn)角度為e;Rx表示終端繞Ζ軸旋轉(zhuǎn),即旋轉(zhuǎn)角,旋轉(zhuǎn)角度為X。運里,利用旋轉(zhuǎn)角和旋轉(zhuǎn)矩 陣,就能確保終終端的慣性測量單元坐標(biāo)系的方向與行人運動坐標(biāo)系的方向一致。
[0082] 步驟003.用戶攜帶慣性測量單元,分預(yù)設(shè)腳欠,分別步行預(yù)設(shè)路程,分別獲得N組樣 本數(shù)據(jù),其中,分別針對各次步行預(yù)設(shè)路程,通過慣性測量單元記錄步行的步數(shù),W及按用 戶每走一步對應(yīng)一個檢測時刻,通過慣性測量單元檢測各時刻的加速度,再經(jīng)旋轉(zhuǎn)矩陣獲 得用戶各時刻步行的加速度,分別構(gòu)成各組樣本數(shù)據(jù),然后進入步驟004。
[0083] 步驟004.分別針對各組樣本數(shù)據(jù)中各時刻步行的加速度,采用鄰近平均值法,通 過如下公式,更新各時刻步行的加速度ak;
[0084]
[0085] 式中,m為預(yù)設(shè)鄰近檢測時間范圍,實際應(yīng)用中可W設(shè)定m = 5;然后分別針對各組 樣本數(shù)據(jù),采用預(yù)設(shè)分類器進行訓(xùn)練,獲得用戶步行各個加速度所分別對應(yīng)的各個加速度 期望E(ak),然后根據(jù)如下公式,獲得用戶步行加速度方差V,
[0086] v = E(£ik2)-(E(£ik))2
[0087] 式中,E(ak)表示用戶步行過程中加速度ak所對應(yīng)的加速度期望,E(ak2)表示用戶 步行過程中加速度ak2所對應(yīng)的加速度期望,同時分別針對各組樣本數(shù)據(jù),根據(jù)如下公式,獲 得各時刻用戶的步伐頻率F化),
[008引
[0089] 式中,tk+i表示第k+1個時刻的時間,tk表示第k個時刻的時間;并且根據(jù)預(yù)設(shè)路程 和步行的步數(shù),獲得各步的步長,進而分別獲得各組樣本數(shù)據(jù)分別所對應(yīng)用戶步行加速度 方差V,其中各時刻用戶的步伐頻率F化),W及其中各步的步長,并進入步驟005;其中,k表 示第k時刻,ak表示用戶第k時刻步行的加速度。
[0090] 步驟005.構(gòu)建用戶步長公式如下式所示:
[0091] Lk+i = A+bF 化)+cV
[0092] 并根據(jù)各組樣本數(shù)據(jù)分別所對應(yīng)用戶步行加速度方差V,其中各時刻用戶的步伐 頻率F化),W及其中各步的步長,采用梯度下降訓(xùn)練算法針對用戶步長公式就行訓(xùn)練,獲得 其中參數(shù)A、b、c的值,進而更新構(gòu)成用戶步長模型Lk+i = A+bF化)+cV,然后進入步驟006。
[0093] 步驟006.定位地圖是由眾多的"點"和"線"組成,"點"要素規(guī)定了整張地圖的大 ??;"線"要素將相關(guān)聯(lián)的"點"要素相連接,對地圖的物理結(jié)構(gòu)做出了劃分,同時也劃分出了 行人可達(dá)區(qū)域和不可達(dá)區(qū)域。在進行定位時,若行人穿越了不可達(dá)區(qū)域,則發(fā)生了行人撞墻 問題,需要利用APS0算法進行糾偏。例如:假設(shè)行人目前在A房間,現(xiàn)在要從A房間步行到B房 間,那么行人必須通過A房間外的走廊進入B房間,不能直接穿墻而過,其中走廊為行人的可 達(dá)區(qū)域,穿墻而過的區(qū)域為不可達(dá)區(qū)域,因此,針對地圖中的物理結(jié)構(gòu),規(guī)劃出可達(dá)區(qū)域和 非可達(dá)區(qū)域,并初始化用戶的當(dāng)前時刻位置,W及初始化參數(shù)S為0,然后進入步驟007。
[0094] 步驟007.按照用戶每走一步對應(yīng)一個檢測時刻,通過慣性測量單元檢測當(dāng)前時刻 的方向角,并經(jīng)旋轉(zhuǎn)矩陣獲得用戶當(dāng)前時刻的方向角,然后根據(jù)用戶的當(dāng)前時刻位置,采用 自適應(yīng)粒子群優(yōu)化算法(APS0),結(jié)合用戶當(dāng)前時刻的方向角,W及用戶步長模型,獲得用戶 下一時刻的預(yù)測位置,然后進入步驟008。
[0095] 其中,APS0算法對方向角的變化是敏感的,因此如果將APS0中粒子的方向角定義 為智能移動終端的實時方向角,那么一旦智能手機的方向角發(fā)生驟變(如:在定位過程中接 聽電話,拍攝照片,放入口袋等),則會導(dǎo)致粒子的位置更新出現(xiàn)嚴(yán)重偏差,定位精度快速下 降,甚至很快就會出現(xiàn)定位失敗的情況。APS0算法規(guī)定,在定位過程中,若智能移動終端的 方向角發(fā)生變化并達(dá)到一定的闊值之后,APS0中的粒子將使用自身的方向角進行位置計 算,而不是依賴于傳感器所提供的方向角;步驟007中獲得用戶下一時刻的預(yù)測位置,如圖2 所示,具體包括如下步驟:
[0096] 步驟aOl.在地圖上針對W用戶當(dāng)前位置為圓屯、、預(yù)設(shè)半徑區(qū)域內(nèi),設(shè)置N個粒子所 構(gòu)成的粒子群,分別針對各個粒子,獲得當(dāng)前時刻粒子的橫坐標(biāo)Xn,k、縱坐標(biāo)yn,k和方向角 目n,k,然后進入步驟a02;其中,n= {1、···、Ν},xn,k表示第η個粒子當(dāng)前時刻粒子的橫坐標(biāo),yn,k 表示第η個粒子當(dāng)前時刻粒子的縱坐標(biāo),0n,k表示第η個粒子當(dāng)前時刻粒子的方向角。
[0097] 步驟a02.分別針對各個粒子,獲得粒子下一時刻方向角相對當(dāng)前時刻方向角的變 化ΔΘ\,Κ及結(jié)合用戶步長模型,獲得用戶下一時刻步長Lk+i,再根據(jù)如下公式,更新獲得 下一時刻粒子的橫坐標(biāo)Xn,k+1、縱坐標(biāo)yn,k+l和方向角目n,k+l,其中,A 0/ η表示第η個粒子下一 時刻方向角相對當(dāng)前時刻方向角的變化;
[009引 Xn,k+l = Xn,k+Lk+l · cos目n,k+l
[0099] yn,k+i = yn,k+Lk+i · sin目n,k+i
[0100] 白n'k+l =白n'k+Δ 白'n
[0101] 進而分別獲得各個粒子下一時刻粒子的橫坐標(biāo)Xn,k+1、縱坐標(biāo)yn,k+l和方向角目n,k+l, 然后進入步驟曰〇3。
[0102] 步驟a03.分別針對當(dāng)前時刻的前預(yù)設(shè)U個檢測時刻,分別獲得各檢測時刻中各個 粒子與對應(yīng)檢測時刻用戶步行位置之間的歐幾里得距離dn,u,然后進入步驟a04;其中,u = {1、、11},山,。表示該1]個檢測時刻中第11個時刻、第11個粒子與對應(yīng)檢測時刻用戶步行位置之 間的歐幾里得距離。
[0103] 步驟a04.分別針對各個粒子,獲得粒子分別對應(yīng)該U個檢測時刻歐幾里得距離中 的最小值,作為該粒子的經(jīng)驗值,進而分別獲得各個粒子的經(jīng)驗值Pn;同時,將所有粒子對 應(yīng)該U個檢測時刻歐幾里得距離中的最小,作為粒子同伴的經(jīng)驗值G,然后進入步驟a05。
[0104] 步驟a05.分別獲得各個粒子的當(dāng)前坐標(biāo)位置gn,k,然后分別針對各個粒子,根據(jù)如 下公式,獲得粒子在第k+1時刻的粒子權(quán)重Wn,k+1,進而分別獲得各個粒子在第k+1時刻的粒 子權(quán)重ω η, k+1,然后進入步驟a06。
[0105]
[0106] 式中,bi和b2為預(yù)設(shè)常系數(shù),?·(ξ)是一個取隨機值的函數(shù),ωη,k+1表示第η個粒子在 第k+1時刻的粒子權(quán)重,gn,k表示第η個粒子在當(dāng)前時刻下的坐標(biāo)位置,包括粒子的橫坐標(biāo)和 縱坐標(biāo)。
[0107] 步驟a06.根據(jù)如下公式,獲得用戶下一時刻的預(yù)測位置Xk+1,
[010 引
[0109] 式中,no;rm( Wn,k+1)表示針對Wn,k+1的標(biāo)準(zhǔn)化。
[0110] 步驟008.獲得用戶當(dāng)前時刻方向角與用戶上一時刻方向角之間的差值ΔΘ,判斷 A Θ是否小于等于預(yù)設(shè)角度下限闊值θι,是則針對大于0的S進行清零,并進入步驟014;否則 進入步驟009。
[0111] 步驟009.判斷ΔΘ是否小于預(yù)設(shè)角度上限闊值0h,是則根據(jù)用戶的當(dāng)前時刻位置, 采用自適應(yīng)粒子群優(yōu)化算法(APS0),結(jié)合用戶上一時刻的方向角,W及用戶步長模型,更新 獲得用戶下一時刻的預(yù)測位置,同時針對大于0的S進行清零,并進入步驟014;否則進入步 驟010。其中,步驟009中獲得用戶下一時刻的預(yù)測位置,具體按照步驟007中步驟aOl-步驟 a06進行執(zhí)行,獲得用戶下一時刻的預(yù)測位置。
[0112] 步驟010.判斷S是否等于第一預(yù)設(shè)時限闊值Ti,是則進入步驟011;否則用S的值加 1針對S進行更新,接著根據(jù)用戶的當(dāng)前位置,采用自適應(yīng)粒子群優(yōu)化算法(APS0),結(jié)合用戶 上一時刻的方向角,W及用戶步長模型,更新獲得用戶下一時刻的預(yù)測位置,同時更新用戶 當(dāng)前時刻的方向角為上一時刻的方向角,并進入步驟014;其中,Τι >2。
[0113] 步驟Oil.暫定針對用戶步行位置的定位,初始化參數(shù)Υ = 0,然后進入下一時刻,并 進入步驟012。
[0114] 步驟012.獲得用戶當(dāng)前時刻方向角與用戶上一時刻方向角之間的差值ΔΘ,判斷 A θ是否小于等于預(yù)設(shè)角度下限闊值θι,是則用Υ的值加1針對Υ進行更新,并進入步驟013; 否則針對大于0的Υ進行清零,并進入步驟013。
[0115] 步驟013.判斷Υ是否等于第二預(yù)設(shè)時限闊值Τ2,是則初始化用戶的當(dāng)前時刻位置, 并返回步驟007;否則進入下一時刻,并返回步驟012;其中,Τ2> 2。
[0116] 步驟014.根據(jù)地圖中的可達(dá)區(qū)域和非可達(dá)區(qū)域,判斷用戶當(dāng)前時刻位置與下一時 刻預(yù)測位置之間的連線是否進入不可達(dá)區(qū)域,是則進入步驟015;否則進入下一時刻,并在 地圖上顯示用戶下一時刻的預(yù)測位置,再返回步驟007。
[0117] 步驟015.獲得由用戶當(dāng)前時刻位置指向下一時刻預(yù)測位置的射線,首次與不可達(dá) 區(qū)域邊緣的相交點位置,進一步獲得在地圖上可達(dá)區(qū)域內(nèi)與該相交點位置之間路程最近的 道路交點位置,將該道路交點位置更新作為用戶下一時刻的預(yù)測位置,然后進入下一時刻, 并在地圖上顯示用戶下一時刻的預(yù)測位置,實現(xiàn)用戶步行位置的定位,再返回步驟007。
[0118] 本發(fā)明所設(shè)計的一種基于慣性測量單元的用戶步行定位方法,針對行人進行定位 時,不依賴于外在設(shè)備的具體情況,不需要提前建立指紋地圖,不需要專業(yè)的定位設(shè)備,只 需要利用集成有慣性測量單元的智能移動終端,配合定位場景地圖,即可實現(xiàn)定位應(yīng)用。定 位方案具有很好的普適性,在不同硬件條件的定位場景均可實現(xiàn)定位應(yīng)用;而且在定位過 程中,自適應(yīng)粒子群優(yōu)化算法(APS0算法)會對慣性測量單元的數(shù)據(jù)漂移問題和定位坐標(biāo)的 穿墻問題就行糾正,提高定位精度,一定程度上克服由于慣性測量單元自身所導(dǎo)致的定位 誤差;并且在定位過程中,支持智能移動終端的姿態(tài)變換,不會因為終端姿態(tài)的變化導(dǎo)致定 位精度的急劇下降,特別是對于接聽電話、拍攝照片、發(fā)送短信等方向角非連續(xù)變化的情況 有很好的支持,魯棒性很高;不僅如此,整個基于慣性測量單元的定位方法是一個可融合的 定位方案??蒞根據(jù)具體定位場景的硬件條件,融合基于射頻信號技術(shù)的指紋定位和基于 信號強度的定位。
[0119] 上面結(jié)合附圖對本發(fā)明的實施方式作了詳細(xì)說明,但是本發(fā)明并不限于上述實施 方式,在本領(lǐng)域普通技術(shù)人員所具備的知識范圍內(nèi),還可W在不脫離本發(fā)明宗旨的前提下 做出各種變化。
【主權(quán)項】
1. 一種基于慣性測量單元的用戶步行定位方法,通過攜帶慣性測量單元,實現(xiàn)針對用 戶步行位置的定位,其特征在于:所述定位方法包括如下步驟: 步驟001.針對慣性測量單元建立終端三維坐標(biāo)系,以及針對用戶的步行建立行走三維 坐標(biāo)系,然后進入步驟002; 步驟002.構(gòu)建用于終端三維坐標(biāo)系與行走三維坐標(biāo)系之間位置轉(zhuǎn)換的旋轉(zhuǎn)矩陣,然后 進入步驟003; 步驟003.用戶攜帶慣性測量單元,分預(yù)設(shè)N次,分別步行預(yù)設(shè)路程,分別獲得N組樣本數(shù) 據(jù),其中,分別針對各次步行預(yù)設(shè)路程,通過慣性測量單元記錄步行的步數(shù),以及按用戶每 走一步對應(yīng)一個檢測時刻,通過慣性測量單元檢測各時刻的加速度,再經(jīng)旋轉(zhuǎn)矩陣獲得用 戶各時刻步行的加速度,分別構(gòu)成各組樣本數(shù)據(jù),然后進入步驟004; 步驟004.分別針對各組樣本數(shù)據(jù)中各時刻步行的加速度,采用鄰近平均值法更新各時 刻步行的加速度ak;然后分別針對各組樣本數(shù)據(jù),獲得用戶步行加速度方差V和各時刻用戶 的步伐頻率F(k),以及根據(jù)預(yù)設(shè)路程和步行的步數(shù),獲得各步的步長,進而分別獲得各組樣 本數(shù)據(jù)分別所對應(yīng)用戶步行加速度方差V,其中各時刻用戶的步伐頻率F(k),以及其中各步 的步長,并進入步驟005;其中,k表示第k時刻,ak表示用戶第k時刻步行的加速度; 步驟005.構(gòu)建用戶步長公式如下式所示: Lk+i = ^+bF(k)+cV 并根據(jù)各組樣本數(shù)據(jù)分別所對應(yīng)用戶步行加速度方差V,其中各時刻用戶的步伐頻率F (k),以及其中各步的步長,采用預(yù)設(shè)訓(xùn)練算法針對用戶步長公式就行訓(xùn)練,獲得其中參數(shù) A、b、c的值,進而更新構(gòu)成用戶步長模型Lk+i = A+bF(k)+cV,然后進入步驟006; 步驟006.針對地圖中的物理結(jié)構(gòu),規(guī)劃出可達(dá)區(qū)域和非可達(dá)區(qū)域,并初始化用戶的當(dāng) 前時刻位置,以及初始化參數(shù)S為0,然后進入步驟007; 步驟007.按照用戶每走一步對應(yīng)一個檢測時刻,通過慣性測量單元檢測當(dāng)前時刻的方 向角,并經(jīng)旋轉(zhuǎn)矩陣獲得用戶當(dāng)前時刻的方向角,然后根據(jù)用戶的當(dāng)前時刻位置,采用自適 應(yīng)粒子群優(yōu)化算法,結(jié)合用戶當(dāng)前時刻的方向角,以及用戶步長模型,獲得用戶下一時刻的 預(yù)測位置,然后進入步驟008; 步驟008.獲得用戶當(dāng)前時刻方向角與用戶上一時刻方向角之間的差值ΔΘ,判斷ΔΘ是 否小于等于預(yù)設(shè)角度下限閾值91,是則針對大于0的S進行清零,并進入步驟014;否則進入 步驟009; 步驟009.判斷ΔΘ是否小于預(yù)設(shè)角度上限閾值0h,是則根據(jù)用戶的當(dāng)前時刻位置,采用 自適應(yīng)粒子群優(yōu)化算法,結(jié)合用戶上一時刻的方向角,以及用戶步長模型,更新獲得用戶下 一時刻的預(yù)測位置,同時針對大于〇的S進行清零,并進入步驟014;否則進入步驟010; 步驟010.判斷S是否等于第一預(yù)設(shè)時限閾值h,是則進入步驟011;否則用S的值加1針對 S進行更新,接著根據(jù)用戶的當(dāng)前位置,采用自適應(yīng)粒子群優(yōu)化算法,結(jié)合用戶上一時刻的 方向角,以及用戶步長模型,更新獲得用戶下一時刻的預(yù)測位置,同時更新用戶當(dāng)前時刻的 方向角為上一時刻的方向角,并進入步驟014;其中,h 2 2; 步驟011.暫定針對用戶步行位置的定位,初始化參數(shù)Y=〇,然后進入下一時刻,并進入 步驟012; 步驟012.獲得用戶當(dāng)前時刻方向角與用戶上一時刻方向角之間的差值ΔΘ,判斷ΔΘ是 否小于等于預(yù)設(shè)角度下限閾值91,是則用Y的值加1針對Y進行更新,并進入步驟013;否則針 對大于0的Υ進行清零,并進入步驟013; 步驟013.判斷Υ是否等于第二預(yù)設(shè)時限閾值Τ2,是則初始化用戶的當(dāng)前時刻位置,并返 回步驟007;否則進入下一時刻,并返回步驟012;其中,Τ2 2 2; 步驟014.根據(jù)地圖中的可達(dá)區(qū)域和非可達(dá)區(qū)域,判斷用戶當(dāng)前時刻位置與下一時刻預(yù) 測位置之間的連線是否進入不可達(dá)區(qū)域,是則進入步驟015;否則進入下一時刻,并在地圖 上顯示用戶下一時刻的預(yù)測位置,再返回步驟007; 步驟015.獲得由用戶當(dāng)前時刻位置指向下一時刻預(yù)測位置的射線,首次與不可達(dá)區(qū)域 邊緣的相交點位置,進一步獲得在地圖上可達(dá)區(qū)域內(nèi)與該相交點位置之間路程最近的道路 交點位置,將該道路交點位置更新作為用戶下一時刻的預(yù)測位置,然后進入下一時刻,并在 地圖上顯示用戶下一時刻的預(yù)測位置,實現(xiàn)用戶步行位置的定位,再返回步驟007。2. 根據(jù)權(quán)利要求1所述一種基于慣性測量單元的用戶步行定位方法,其特征在于:所屬 用于終端三維坐標(biāo)系與行走三維坐標(biāo)系之間位置轉(zhuǎn)換的旋轉(zhuǎn)矩陣,為模為1,且具有唯一特 征值的矩陣。3. 根據(jù)權(quán)利要求1所述一種基于慣性測量單元的用戶步行定位方法,其特征在于:所述 步驟004中,分別針對各組樣本數(shù)據(jù)中各時刻步行的加速度,采用鄰近平均值法通過如下公 式,更新各時刻步行的加速度ak;式中,m為預(yù)設(shè)鄰近檢測時間范圍。4. 根據(jù)權(quán)利要求1所述一種基于慣性測量單元的用戶步行定位方法,其特征在于:所述 步驟004中,分別針對各組樣本數(shù)據(jù),采用預(yù)設(shè)分類器進行訓(xùn)練,獲得用戶步行各個加速度 所分別對應(yīng)的各個加速度期望E(a k),然后根據(jù)如下公式,獲得用戶步行加速度方差V,V = E (ak2)-(E(ak))2 式中,E(ak)表示用戶步行過程中加速度ak所對應(yīng)的加速度期望,E(ak 2)表示用戶步行過 程中加速度ak2所對應(yīng)的加速度期望。5. 根據(jù)權(quán)利要求1所述一種基于慣性測量單元的用戶步行定位方法,其特征在于:所述 步驟004中,分別針對各組樣本數(shù)據(jù),根據(jù)如下公式,獲得各時刻用戶的步伐頻率F(k),式中,tk+1表示第k+1個時刻的時間,tk表示第k個時刻的時間。6. 根據(jù)權(quán)利要求1所述一種基于慣性測量單元的用戶步行定位方法,其特征在于:所述 步驟005中,根據(jù)各組樣本數(shù)據(jù)分別所對應(yīng)用戶步行加速度方差V,其中各時刻用戶的步伐 頻率F(k),以及其中各步的步長,采用梯度下降訓(xùn)練算法針對用戶步長公式進行訓(xùn)練,獲得 其中參數(shù)X、b、c的值。7. 根據(jù)權(quán)利要求1所述一種基于慣性測量單元的用戶步行定位方法,其特征在于:所述 根據(jù)用戶的當(dāng)前位置,采用自適應(yīng)粒子群優(yōu)化算法,結(jié)合用戶當(dāng)前時刻方向角或者上一時 刻方向角,以及用戶步長模型,獲得或更新獲得用戶下一時刻的預(yù)測位置,具體包括如下步 驟: 步驟aOl.在地圖上針對以用戶當(dāng)前位置為圓心、預(yù)設(shè)半徑區(qū)域內(nèi),設(shè)置N個粒子所構(gòu)成 的粒子群,分別針對各個粒子,獲得當(dāng)前時刻粒子的橫坐標(biāo)Xn, k、縱坐標(biāo)yn, k和方向角θn, k,然 后進入步驟a02;其中,n= {1、···、Ν},xn,k表示第n個粒子當(dāng)前時刻粒子的橫坐標(biāo),yn,k表示第 η個粒子當(dāng)前時刻粒子的縱坐標(biāo),Θ n, k表示第η個粒子當(dāng)前時刻粒子的方向角; 步驟a02.分別針對各個粒子,獲得粒子下一時刻方向角相對當(dāng)前時刻方向角的變化△ θ'n,以及結(jié)合用戶步長模型,獲得用戶下一時刻步長Lk+1,再根據(jù)如下公式,更新獲得下一 時刻粒子的橫坐標(biāo)Xn,k+i、縱坐標(biāo)y n,k+i和方向角9n,k+i,其中,Δ θ'"表不第η個粒子下一時刻 方向角相對當(dāng)前時刻方向角的變化; Xn,k+1 - Xn,k+Lk+1 · COS0n,k+l yn,k+l = yn,k+Lk+l · sin9n,k+i 9n,k+l=9n,k+ A Θ n 進而分別獲得各個粒子下一時刻粒子的橫坐標(biāo)xn,k+1、縱坐#yn,k +1和方向角0",1{+1,然后 進入步驟a03; 步驟a03 .分別針對當(dāng)前時刻的前預(yù)設(shè)U個檢測時刻,分別獲得各檢測時刻中各個粒子 與對應(yīng)檢測時刻用戶步行位置之間的歐幾里得距離dn,u,然后進入步驟a04;其中,u={l、、 U},dn,u表示該U個檢測時刻中第u個時刻、第η個粒子與對應(yīng)檢測時刻用戶步行位置之間的 歐幾里得距離; 步驟a04.分別針對各個粒子,獲得粒子分別對應(yīng)該U個檢測時刻歐幾里得距離中的最 小值,作為該粒子的經(jīng)驗值,進而分別獲得各個粒子的經(jīng)驗值Pn;同時,將所有粒子對應(yīng)該U 個檢測時刻歐幾里得距離中的最小,作為粒子同伴的經(jīng)驗值G,然后進入步驟a05; 步驟a05.分別獲得各個粒子的當(dāng)前坐標(biāo)位置gn,k,然后分別針對各個粒子,根據(jù)如下公 式,獲得粒子在第k+Ι時刻的粒子權(quán)重ω n, k+i,進而分別獲得各個粒子在第k+Ι時刻的粒子權(quán) 重ω n, k+1,然后進入步驟a〇6;式中,匕和132為預(yù)設(shè)常系數(shù),fU)是一個取隨機值的函數(shù),con,k+1表示第 n個粒子在第k+1 時刻的粒子權(quán)重,gn, k表示第η個粒子在當(dāng)前時刻下的坐標(biāo)位置,包括粒子的橫坐標(biāo)和縱坐 標(biāo); 步驟a06.根據(jù)如下公式,獲得用戶下一時刻的預(yù)測位置Xk+1,式中,norm( c〇n,k+1)表示針對con,k+1的標(biāo)準(zhǔn)化。
【文檔編號】G01C21/16GK105823483SQ201610308337
【公開日】2016年8月3日
【申請日】2016年5月11日
【發(fā)明人】徐小龍, 王屹進, 孫雁飛, 徐佳, 王勇
【申請人】南京郵電大學(xué)