本發(fā)明涉及一種基于多特征的室內(nèi)融合定位方法。
背景技術:
現(xiàn)階段,室內(nèi)定位技術十分多樣,如攝像頭定位、紅外線定位、磁場定位、WIFI定位、藍牙定位、慣性導航系統(tǒng)定位、超聲波定位等等。根據(jù)不同的硬件支持,也有不同的測量方法。比如,無線電波定位中有TOA、TDOA和AOA等三角測量方法以及指紋匹配測量方法等等。目前,室內(nèi)定位的主要問題是成本與精度難以同時兼顧,許多定位方法都需要額外部署定位輔助設備。而Wi-Fi指紋定位作為手機終端定位的常用方法卻又無法提供較高的定位精度和穩(wěn)定性。
技術實現(xiàn)要素:
為了得到一個精確度和穩(wěn)定性都比較好的手機終端定位方法,本發(fā)明提供了一種基于手機加速度、手機線性加速度、手機角速度、磁場、Wi-Fi接收信號強度和地圖信息多種特征融合的定位方法:
一種多特征融合的室內(nèi)定位方法,包括以下步驟:
Wi-Fi指紋概率計算,分成離線訓練階段和在線定位階段。離線訓練階段收集指紋數(shù)據(jù)并建立指紋數(shù)據(jù)庫;在線定位階段實時獲取Wi-Fi接收信號強度信息,使用余弦相似度匹配算法計算指紋點的概率。
慣性導航計算,分成步數(shù)計算、步長計算、行走方向估計三個階段:
步數(shù)計算,首先加速度傳感器和陀螺儀收集加速度和角速度數(shù)據(jù),然后計算一定區(qū)間內(nèi)的加速度數(shù)據(jù)的標準差,根據(jù)加速度標準差及角速度大小判斷用戶是否行走,若行走,則進行窗口波峰檢測、動態(tài)時間規(guī)整、加速度導數(shù)分析和波峰復活策略,得到該區(qū)間內(nèi)行走步數(shù);
步長估計,根據(jù)前一階段得到的步數(shù)和行走區(qū)間長度,計算得到行走步頻,根據(jù)步頻與步長關系模型,得到行走步長;
行走方向估計,通過水平加速度傳感器和線性加速度傳感器數(shù)據(jù)計算得到水平加速度,進行水平加速度的時頻域分析及基于重力方向的調(diào)整,結合磁場方向得到用戶的地理行走方向;
粒子濾波融合,利用以上得到的指紋點概率、步數(shù)、步長和行走方向,結合地圖的路徑信息和墻壁信息,進行粒子濾波,得到用戶位置。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,并不構成對本發(fā)明的不當限定,在附圖中:
圖1是整個定位方法的過程圖,方框表示操作過程,箭頭表示過程流向,箭頭線上的符號表示前一個過程的輸出結果,它作為箭頭指向的下一個過程的輸入?yún)?shù)。
圖2是窗口波峰檢測的結果圖。
圖3展示加速度導數(shù)分析的目標特征。
圖4是水平加速度頻域分析圖。
圖5是重力方向與前進方向的關系圖。
圖6是融合定位方法的馬爾可夫模型。
具體實施方式
下面將結合附圖以及具體實施例來詳細說明本發(fā)明,在此本發(fā)明的示意性實施例以及說明用來解釋本發(fā)明,但并不作為對本發(fā)明的限定。
實施例:
如圖1所示,基于多特征的室內(nèi)融合定位方法分成三個大的部分,分別是Wi-Fi指紋概率計算、慣性導航計算和粒子濾波融合。Wi-Fi指紋概率計算使用的是余弦相似度匹算法。慣性導航計算又分成三個部分:步數(shù)計算、步長計算和行走方向估計。步數(shù)計算運用了行走檢測、角速度濾波、中心移動平均、窗口波峰檢測、動態(tài)時間規(guī)整、導數(shù)分析濾波和波峰復活的方法,步長計算運用了步長與步頻的關系模型,行走方向估計運用了水平加速度的時域、頻域分析和基于重力方向的調(diào)整策略。最后,在粒子濾波融合部分,基于慣性導航和Wi-Fi指紋概率構建的隱式馬爾可夫模型,使用粒子濾波方法,結合地圖信息,計算位置概率,最終得到定位結果。
●Wi-Fi指紋概率計算
Wi-Fi指紋概率計算部分為離線訓練階段和在線定位階段。
離線訓練階段:在進行定位之前進行指紋數(shù)據(jù)的收集,具體做法是在定位場所內(nèi)每隔若干米設定一個指紋點,在每一個指紋點位置收集15到30組Wi-Fi接收信號強度信息。接著,將收集到的RSSI信息進行訓練,給每一個位置生成指紋。指紋的結構為一條由不同AP區(qū)分維度的RSSI向量{AP1:RSSI1,AP2:RSSI2,AP3:RSSI3...}。向量的RSSI值是統(tǒng)計的平均值。
在線定位階段,用戶使用手機掃描附近AP的信號,得到RSSI向量{AP1:RSSI1,API2:RSSI2,AP3:RSSI3...},將此向量與指紋數(shù)據(jù)庫中的指紋進行相似度匹配,得到最終位置。指紋相似度匹配算法使用如公式1和公式2所示的余弦相似度匹配算法。其中,和分別代表實時掃描到的RSSI向量和指紋向量中APj的接收信號強度,m是較長RSSI向量的長度,cosθ是兩RSSI向量夾角的余弦值,p為最終的指紋點概率。
●慣性導航計算
慣性導航計算部分分為步數(shù)計算、步長計算和行走方向估計三個階段。
■步數(shù)計算
步數(shù)計算步驟如下:
1.行走檢測:加速度傳感器收集加速度數(shù)據(jù),計算一定區(qū)間內(nèi)的加速度數(shù)據(jù)標準差,標準差大于某一閾值,則說明用戶正在行走,否則說明用戶靜止。另外,從陀螺儀獲取角速度數(shù)據(jù),當角速度大于某一閾值時,用戶也將會被判定為靜止。若用戶靜止,該階段停止,并且輸出為0;
2.中心移動平均:若用戶正在行走,則對加速度數(shù)據(jù)進行中心移動平均處理得到平滑的加速度波形,方法如下;
a)設定半平滑窗口大小k。
b)計算從時刻t-k到時刻t+k的加速度平均值,作為時刻t的加速度值。如公式3所示。其中aj是j時刻加速度值,at′是平滑后t時刻加速度值。
3.窗口波峰檢測:使用該方法進行波峰檢測,檢測波峰時兩個波峰的距離不小于窗口大小,得到波峰位置(見圖2);另外,為了避免噪聲造成的小波峰的影響,算法加入一個波峰的高度閾值,只有波峰高度大于閾值才被認為有效。波峰高度域值根據(jù)檢測區(qū)間的最大加速度設定;
4.動態(tài)時間規(guī)整:對第i個波與第i-2個波進行動態(tài)時間規(guī)整得到波形相似度距離,相似度距離小于設定的某一閾值時,第i個波峰記為動態(tài)時間規(guī)整有效波峰;
5.加速度導數(shù)分析:對加速度數(shù)據(jù)在時域上求導,對第i個波峰時間點與第i-1個波峰時間點之間的加速度導數(shù)檢測最小值,再檢測最小值是否單調(diào)遞增至該區(qū)間內(nèi)較大的導數(shù)值或者是由較大導數(shù)值單調(diào)遞減至該最小值(見圖3),若是,則第i個峰值被認為是導數(shù)分析有效峰。
若波峰同時是動態(tài)時間規(guī)整有效峰和導數(shù)分析有效峰,則該波峰被認為是有效步;
6.波峰復活:將相距一定時間內(nèi)的有效步之間的非有效步波峰也作為有效步,以糾正誤差,最終步數(shù)為有效步波峰數(shù)目n。
■步長計算
經(jīng)過步數(shù)計算階段得到的步數(shù)和時間區(qū)間,可以計算出步頻。根據(jù)步頻f與步長l的關系模型,計算得到步長l,如公式4所示。其中a和b的值需要在融合定位過程進行訓練。具體方法是記錄下最近5到7次的定位結果,計算每一次的移動距離,并記錄每一次的步頻,通過最小二乘法計算得到最優(yōu)的a和b的值。
l=a·f+b (公式4)
■行走方向估計
行走方向估計分成四個步驟:水平加速度頻域分析、水平加速度時域分析、基于重力方向的調(diào)整和地理方向計算。
1.水平加速度頻域分析
通過加速度傳感器和線性加速度傳感器數(shù)據(jù)計算得到水平加速度數(shù)據(jù),分別對水平加速度的x,y,z分量數(shù)據(jù)進行傅立葉變換得到頻域分布圖,x,y,z頻域圖在步頻位置附近的最大值(如圖4黑框所示),記為mx、my、mz,則基于手機坐標系的行走方向相為(±m(xù)x,±m(xù)y,±m(xù)z);
2.水平加速度時域分析
分別計算各分量的時域變化趨勢,結果如果大于等于0,該分量取正值,否則取負值。趨勢變化的計算公式如公式5和公式6所示。其中,amin和amax是目標區(qū)段中加速度最小值和最大值,是加速度的平均值。
3.基重力方向的調(diào)整
基于重力方向對前進方向分量符號作調(diào)整。計算單位重力方向在x和y軸上的分量是否大于某一閾值,若大于某一閾值,則前進方向在x或y軸上的分量的符號取與重力對應分量相反的符號。重力方向和前進方向關系示意圖如圖5所示。
4.地理方向計算
結合磁場傳感器得到磁場在手機坐標系上的方向,計算地理坐標系的行走方向夾角θ。
●粒子濾波融合
融合方法基于如圖6所示的隱性馬爾可夫模型,使用粒子濾波模擬該模型的概率計算,具體步驟步驟如下:
1)初始時刻,根據(jù)Wi-Fi指紋定位選取概率最高的k個指紋點,在這些指紋點處生成m個粒子,指紋點概率越高在該指紋點處生成的粒子越多,粒子的權重為1/m。由于初始時刻沒有行走過程,直接跳到步驟5計算位置。
2)在非初始時刻,使用慣性導航算法得到步長l,方向角度θ,步數(shù)n,使用這些數(shù)據(jù),通過以下方法生成新粒子位置:
a)計算粒子的前進距離為:
L=n(l+G(0,1)·r) (公式7)
其中,G(0,1)是平均值為0標準差為1的高斯分布函數(shù),r是步長誤差強度。
b)計算粒子的前進方向為:
α=θ+G(0,1)·λ (公式8)
其中,G(0,1)是平均值為0標準差為1的高斯分布函數(shù),是方向誤差強度。
c)計算新的粒子位置為:
xnew=xold+L cosα
ynew=y(tǒng)old+L sinα (公式9)
其中,xold和yold是舊粒子的x,y坐標,xnew和ynew是新粒子的x,y坐標
3)通過Wi-Fi指紋定位算法計算得到每一個指紋點的概率,在概率最高的k個指紋點中,找到離粒子位置最近的兩個指紋點,進行以下操作確定粒子權重:
a)若粒子離最近指紋點的距離大于某一閾值d,則粒子的權重為0;
b)若粒子的更新路線撞墻,則粒子的權重為0;
c)否則,通過以下公式計算粒子的權重;
其中,d1和d2分別是離最近指紋點和第二近指紋點的距離,p1和p2分別是這兩個指紋點對應的指紋概率,wold為舊粒子權重,λ是距離影響因子。
4)根據(jù)粒子的權重和位置進行粒子重采樣,重新生成m個粒子。采樣規(guī)則為:對于每一個舊粒子,其權重越高,在該粒子位置生成的新粒子越多。每一個新粒子的權重為1/m。
5)計算m個新粒子的聚類中心作為當前定位結果。
6)重復2,3,4,5步驟。
以上對本發(fā)明實施例所提供的技術方案進行了詳細介紹,本文中應用了具體個例對本發(fā)明實施例的原理以及實施方式進行了闡述,以上實施例的說明只適用于幫助理解本發(fā)明實施例的原理;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明實施例,在具體實施方式以及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。