本發(fā)明涉及室內(nèi)定位方法,尤其涉及一種無需安裝額外基礎(chǔ)設(shè)施的基于MEMS慣性傳感器的高精度室內(nèi)定位方法。
背景技術(shù):
由于互聯(lián)網(wǎng)的發(fā)展、移動設(shè)備和個人設(shè)備的流行,LBS(Location Based Services)變得越來越重要,用戶獲得定位信息并將其用于導(dǎo)航、跟蹤、監(jiān)測、信息推送等服務(wù)。GPS能夠方便地提供室外的個人定位信息,但是由于GPS需要至少接收4顆衛(wèi)星才能實(shí)現(xiàn)定位,因此其定位效果受接收到的衛(wèi)星信號影響較大,而在室內(nèi)環(huán)境下由于遮擋收不到衛(wèi)星信號,嚴(yán)重影響了其定位效果。
慣性導(dǎo)航系統(tǒng)具有自主性強(qiáng),輸出頻率高,短時精度高等優(yōu)點(diǎn),特別是近年來MEMS IMU的迅速發(fā)展,使其變得體積小,成本低。利用MEMS IMU室內(nèi)定位采用行人航位推算(Pedestrian Dead Reckoning,PDR)的方式,可以很好地發(fā)揮其自主導(dǎo)航的優(yōu)勢。從目前的室內(nèi)定位研究狀況來看,MEMS室內(nèi)定位在國外已經(jīng)是一大研究熱點(diǎn),通過MEMS慣性傳感器輸出的信息,通過先判斷載體運(yùn)動狀態(tài),再進(jìn)行零速區(qū)間檢測,進(jìn)而進(jìn)行零速修正(Zero Velocity Update),可以很好的抑制MEMS慣性傳感器誤差積累的情況,同時針對低成本的MEMS IMU陀螺精度較低,不能按照高精度的慣性導(dǎo)航系統(tǒng)初始對準(zhǔn)方法進(jìn)行初始對準(zhǔn),由于磁強(qiáng)計(jì)比陀螺穩(wěn)定因此,引入磁強(qiáng)計(jì)輔助航向?qū)?zhǔn)和提供航向補(bǔ)償。
在MEMS慣性傳感器室內(nèi)定位的過程中,采用零速修正來修正一個漫步周期內(nèi)積累的誤差,因此此過程在提高M(jìn)EMS慣性傳感器定位精度過程中具有重要的意義,而對行走過程中零速區(qū)間的檢測直接決定了零速修正的精度,國內(nèi)外查到的資料關(guān)于零速區(qū)間的檢測方法多是設(shè)定一個閾值,將相應(yīng)的檢測量與該閾值進(jìn)行比較,而此閾值的選擇往往具有片面性,只能針對某一特定運(yùn)動狀態(tài),而室內(nèi)腳步可能有多種復(fù)雜的運(yùn)動狀態(tài),如走、跑、上樓、下樓等狀態(tài),因此檢測精度亟待提高。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種適合室內(nèi)環(huán)境下自主定位,無需額外安裝基礎(chǔ)設(shè)施的基于MEMS慣性傳感器的高精度室內(nèi)定位方法。
技術(shù)方案:為實(shí)現(xiàn)本發(fā)明的目的,采用如下技術(shù)方案:一種基于MEMS慣性傳感器
的高精度室內(nèi)定位方法,包括如下步驟:
(1)將MEMS慣性傳感器固聯(lián)在行人腳上,使MEMS慣性傳感器感測到足部的運(yùn)動狀態(tài),實(shí)時獲取足部的導(dǎo)航信息,導(dǎo)航信息通過藍(lán)牙傳輸模塊實(shí)現(xiàn)傳輸;
(2)行人手持安卓手機(jī),在安卓客戶端實(shí)時接收導(dǎo)航足部運(yùn)動狀態(tài)的MEMS慣性傳感器提供的數(shù)據(jù),并將數(shù)據(jù)進(jìn)行保存;
(3)對數(shù)據(jù)進(jìn)行去噪處理;
(4)針對MEMS慣性傳感器定位精度低的問題,首先采用零速檢測算法得到零速度區(qū)間,其次采用零速修正算法結(jié)合狀態(tài)估計(jì)算法進(jìn)行誤差修正提高定位精度;其中,零速度區(qū)間探測為通過安卓客戶端獲取到MEMS慣性傳感器傳送的數(shù)據(jù),采用滑動窗口的方法檢測零速區(qū)間,具體步驟如下:
(a)根據(jù)MEMS慣性傳感器的加速度計(jì)和陀螺儀的噪聲特性,在不同運(yùn)動狀態(tài)下進(jìn)行反復(fù)實(shí)驗(yàn),得到在相應(yīng)的運(yùn)動狀態(tài)下零速區(qū)間段閾值,所述不同運(yùn)動狀態(tài)包括正常行走、跑步、上樓梯或者下樓梯;
(b)根據(jù)安卓客戶端獲取到的加速度計(jì)的加速度信息,首先通過分析滑動窗口內(nèi)的加速度的特點(diǎn)、比較相鄰時刻加速度的變化以及窗口內(nèi)加速度最大值和最小值的情況,確定此刻腳步所處于的運(yùn)動狀態(tài),并自動選擇該運(yùn)動狀態(tài)所對應(yīng)的零速度檢測的閾值;
(c)分別判斷在該滑動窗口區(qū)間內(nèi),比力模值、比力方差以及角速度模值三者是否在閾值范圍之內(nèi),如果三者同時滿足閾值條件則可以斷定該區(qū)間為零速度區(qū)間,獲得零速區(qū)間后,則該區(qū)間即為足部處于零速度的區(qū)間;
此時再采用零速修正結(jié)合自適應(yīng)卡爾曼濾波算法,消除一個漫步區(qū)間內(nèi)積累的誤差。
(5)安卓客戶端通過用戶界面顯示模塊實(shí)時顯示經(jīng)過誤差修正和補(bǔ)償后的數(shù)據(jù),將運(yùn)動狀態(tài)實(shí)時呈現(xiàn)給用戶。
所述MEMS慣性傳感器提供的數(shù)據(jù)包括三軸加速度計(jì)、三軸陀螺儀和三軸磁強(qiáng)計(jì)測量的數(shù)據(jù)。安卓客戶端具有對上述數(shù)據(jù)進(jìn)行校準(zhǔn)的功能,同時可以記錄數(shù)據(jù)和實(shí)時處理數(shù)據(jù)。
所述安卓客戶端具有實(shí)時顯示用戶行走軌跡的功能。
步驟(3)中,針對MEMS慣性傳感器在足部受劇烈抖動時產(chǎn)生的噪聲問題,所述去噪處理方法為小波去噪,可以去除包含在高頻信號中的噪聲和干擾信號。
步驟(4)中,針對低成本慣性傳感器其誤差容易隨時間發(fā)散的問題,所述狀態(tài)估計(jì)算法為自適應(yīng)卡爾曼濾波算法,采用零速修正算法結(jié)合狀態(tài)估計(jì)算法進(jìn)行誤差修正的步驟如下:
通過前述的零速度檢測算法可以得到較為精確的零速度區(qū)間,在零速區(qū)間過程中速度為零,因此導(dǎo)航解算輸出的速度即為速度誤差。速度誤差與陀螺漂移,加速度零偏,姿態(tài)角誤差之間的關(guān)系可以用誤差微分方程描述。在誤差方程的基礎(chǔ)上建立卡爾曼濾波方程,將速度誤差作為觀測量,估計(jì)出姿態(tài)角誤差、位置誤差和其他誤差量反饋給導(dǎo)航解算模塊,從而達(dá)到對系統(tǒng)的誤差進(jìn)行修正的目的。
姿態(tài)角誤差方程
速度誤差方程
位置誤差方程
在誤差方程的基礎(chǔ)上建立卡爾曼濾波方程,將速度誤差作為觀測量,估計(jì)出姿態(tài)角誤差、位置誤差和其他差量反饋給導(dǎo)航解算模塊,
選取卡爾曼濾波器的狀態(tài)量為:
其中表示姿態(tài)角誤差,δvn表示速度誤差;δpn表示位置誤差;ε表示陀螺常值漂移,表示加速度計(jì)常值零偏,卡爾曼的系統(tǒng)方程表示為
X(t)=FX(t)+W(t)
量測方程速度誤差,即
Zk=[δvn]=HkXk
量測量只有在零速區(qū)間可以獲取,并且量測量和具體運(yùn)動和干擾情況有關(guān),在通過上述的零速檢測算法檢測到零速區(qū)間后,卡爾曼濾波作時間更新和量測更新,并將估計(jì)的誤差反饋給系統(tǒng),進(jìn)行誤差補(bǔ)償。
所述MEMS慣性傳感器和藍(lán)牙模塊采用貼片式的硬件設(shè)計(jì)方法,具有體積小的優(yōu)點(diǎn)。
有益效果:本發(fā)明根據(jù)人體行走動力學(xué)模型,采用了低成本的MEMS慣性傳感器,具有體積小,重量輕的優(yōu)點(diǎn),相比與無線定位方式,該系統(tǒng)結(jié)構(gòu)不需要額外的輔助基礎(chǔ)設(shè)置就可以實(shí)現(xiàn)自主定位;本發(fā)明采用自適應(yīng)的閾值匹配方法,對室內(nèi)定位過程中各種腳步復(fù)雜的運(yùn)動狀態(tài)都能保持良好的定位精度,具有較強(qiáng)的普及性;針對當(dāng)前較流行的移動終端,設(shè)計(jì)了移動端實(shí)時接受藍(lán)牙傳送的慣性傳感器的測量數(shù)據(jù),并具有對數(shù)據(jù)進(jìn)行保存和處理功能,實(shí)時對數(shù)據(jù)進(jìn)行誤差修正和補(bǔ)償,同時設(shè)計(jì)用戶交互界面實(shí)時的顯示用戶的行走軌跡。
附圖說明
圖1為MEMS慣性傳感器室內(nèi)定位系統(tǒng)結(jié)構(gòu)圖;
圖2為MEMS慣性傳感器去噪之前和去噪平滑之后曲線;
圖3為零速區(qū)間探測方法流程圖;
圖4為零速區(qū)間檢測效果圖;
圖5為安卓客戶端界面;
圖6為本發(fā)明二維平面行走軌跡圖;
圖7為本發(fā)明三維上下樓梯行走軌跡圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例和附圖對本發(fā)明的技術(shù)方案作進(jìn)一步詳細(xì)說明。
如圖1所示,本發(fā)明采用的高精度室內(nèi)定位設(shè)備包括:低成本MEMS慣性傳感器如MPU9260,MPU6050等、藍(lán)牙傳輸模塊、安卓客戶端;其中,安卓客戶端包括數(shù)據(jù)校準(zhǔn)模塊、數(shù)據(jù)保存模塊、數(shù)據(jù)處理模塊及用戶界面顯示模塊。將MEMS慣性傳感器固聯(lián)在腳上,敏感腳步狀態(tài)的變化并通過藍(lán)牙傳輸模塊傳送測得的參數(shù),并通過安卓客戶端接受藍(lán)牙傳輸模塊傳送的數(shù)據(jù)。安卓客戶端首先通過數(shù)據(jù)校準(zhǔn)模塊分別對三軸加速度計(jì)、三軸陀螺儀、三軸磁強(qiáng)計(jì)進(jìn)行校準(zhǔn),保存和實(shí)時處理數(shù)據(jù)的同時,將數(shù)據(jù)實(shí)時顯示在用戶界面上。上述MEMS慣性傳感器和藍(lán)牙模塊均采用貼片式的硬件設(shè)計(jì)方法,具有結(jié)構(gòu)緊湊、體積小的優(yōu)點(diǎn)。
具體實(shí)現(xiàn)步驟如下:
(1)將低成本的慣性傳感器固聯(lián)在腳上,使其能夠敏感到足部的運(yùn)動狀態(tài),MEMS慣性傳感器可以正常輸出三軸加速度計(jì)、三軸陀螺儀、三軸磁強(qiáng)計(jì)的信息,實(shí)時獲取足部的導(dǎo)航信息,將導(dǎo)航信息通過藍(lán)牙傳輸模塊進(jìn)行傳輸。
(2)行人手持安卓手機(jī),在安卓客戶端實(shí)時接受足部慣性傳感器傳來的數(shù)據(jù),首先打開安卓客戶端的數(shù)據(jù)校準(zhǔn)模塊分別對三軸加速度計(jì),三軸陀螺儀、三軸磁強(qiáng)計(jì)的測量數(shù)據(jù)進(jìn)行校準(zhǔn),校準(zhǔn)的主要目的進(jìn)行去除加速度計(jì)、陀螺儀、磁強(qiáng)計(jì)的零偏,加速度計(jì)和陀螺儀的校準(zhǔn)方法是將MEMS慣性傳感器置水平,待校準(zhǔn)模塊所顯示的零偏不再變化的時候,對此時的零偏量進(jìn)行保存,即完成加速度計(jì)和陀螺儀的校準(zhǔn),對于磁場的校準(zhǔn)則是將MEMS慣性傳感器繞不同的方向反復(fù)旋轉(zhuǎn),多次運(yùn)動直到磁場的零偏顯示不再變化則完成磁場的校準(zhǔn)。完成數(shù)據(jù)的校準(zhǔn)后,看MEMS慣性傳感器在靜止?fàn)顟B(tài)下,加速度計(jì)和陀螺儀是否為零,并將數(shù)據(jù)進(jìn)行保存。
(3)對所得到數(shù)據(jù)進(jìn)行小波去噪處理,如圖2所示,為MEMS慣性傳感器測量的數(shù)據(jù)和對數(shù)據(jù)小波去噪后的曲線對比圖。
(4)對MEMS慣性傳感器的數(shù)據(jù)采用滑動窗口的方法,探測零速區(qū)間,零速區(qū)間的探測方法如圖3所示。
零速度檢測算法在整個MEMS定位過程中具有重要作用,直接決定定位精度,本發(fā)明采用先辨識再判斷的檢測算法。辨識方法如下:
計(jì)算每一個采樣時刻i下的三軸加速度模值:
選取大小為2N+1的滑動窗口,N表示窗口寬度,則窗口內(nèi)的加速度方差為:
其中,
每隔一定的時間對加速度數(shù)據(jù)進(jìn)行掃描,通過掃描出的加速度的最大值和最小值之差可以辨識出該段時間內(nèi)的步速是正常行走、慢速、快速或上下樓等狀態(tài),多次試驗(yàn)確定正常行走、慢速、快速或上下樓的加速度閾值分別取tha1、tha2、tha3、tha4;角速度閾值分別取thw1、thw2、thw3、thw4;加速度的協(xié)方差thσ1、thσ2、thσ3、thσ4。
以上主要基于加速度模值的運(yùn)動狀態(tài)辨識法,也可以基于角速度或加速度協(xié)方差方法進(jìn)行辨識,對運(yùn)動狀態(tài)進(jìn)行辨識之后,進(jìn)行零速度區(qū)間檢測,為了提高檢測的精度,根據(jù)以上辨識出來的運(yùn)動狀態(tài),依靠單一的元素進(jìn)行檢測必然會存在誤差,本實(shí)施例采用三者結(jié)合的方法進(jìn)行檢測:
條件一:比例模值當(dāng)腳步處于零速度時刻時,固定在腳部的MEMS慣性傳感器測量出的加速度輸出結(jié)果理論上只有當(dāng)?shù)氐闹亓铀俣戎担铀俣确峡ǚ椒植?,只需要設(shè)定合適的置信區(qū)間即可進(jìn)行判斷,假設(shè)分別為置信區(qū)間的最小值和最大值;
其中1表示檢測為靜止?fàn)顟B(tài),0表示運(yùn)動狀態(tài)。
條件二:比力的方差。采用滑動窗口觀測比力方差能夠有效檢測步態(tài)周期中信號的突變階段。在零速區(qū)間比例的方差變化比較微弱,幾乎沒什么波動,而在非零速區(qū)間,腳步變化具有很強(qiáng)的波動性,因此可通過比力方差小于給定的閾值即可判斷零速區(qū)間。計(jì)算如下:
其中,為比力均值;m為滑動窗口大小,與輸出頻率有關(guān);
其中1表示檢測為靜止?fàn)顟B(tài),0表示運(yùn)動狀態(tài)。
條件三:角速度模值。由于在零速區(qū)間腳底部與地面保持完全接觸狀態(tài),所以在零速區(qū)間角速度和其變化值應(yīng)當(dāng)趨向于零,而在零速區(qū)間以外的時刻,角速度則會呈現(xiàn)出較強(qiáng)的波動性,因此可以通過辨識出的行走狀態(tài),確定相應(yīng)的角速度閾值thw來確定零速區(qū)間,其中角速度模值為
其中1表示檢測為靜止?fàn)顟B(tài),0表示運(yùn)動狀態(tài)。
當(dāng)條件一、條件二、條件三同時滿足的時候則記錄此時狀態(tài)為1,為所需要檢測到的零速區(qū)間,若為0則表示運(yùn)動狀態(tài)。
圖4為采用上述的零速區(qū)間檢測方法檢測到的零速區(qū)間。
通過上述方法探測到零速區(qū)間則要在零速區(qū)間對一個漫步周期內(nèi)MEMS慣性傳感器所積累的誤差進(jìn)行修正從而對整個定位系統(tǒng)進(jìn)行補(bǔ)償。
通過前面所述的零速度檢測算法可以得到較為精確的零速度區(qū)間,在零速區(qū)間過程中速度為零,因此導(dǎo)航解算輸出的速度即為速度誤差。速度誤差與陀螺漂移,加速度零偏,姿態(tài)角誤差之間的關(guān)系可以用誤差微分方程描述。在誤差方程的基礎(chǔ)上可以建立卡爾曼濾波方程,將速度誤差作為觀測量,估計(jì)出姿態(tài)角誤差,位置誤差和其他誤差量反饋給導(dǎo)航解算模塊,從而達(dá)到對系統(tǒng)的誤差進(jìn)行修正的目的。
(a)姿態(tài)誤差方程
(b)速度誤差
(c)位置誤差方程
選取卡爾曼濾波器的狀態(tài)量為:
其中表示姿態(tài)誤差角,δvn表示速度誤差;δpn表示位置誤差;ε表示陀螺常值漂移,表示加速度計(jì)常值零偏,理論上應(yīng)該盡可能多的考慮狀態(tài)的影響因素,考慮的因素越多導(dǎo)航系統(tǒng)估計(jì)的精度越高,但是這也使系統(tǒng)模型的階數(shù)增加[11],卡爾曼的系統(tǒng)方程可以表示為
X(t)=FX(t)+W(t)
量測方程速度誤差,即
Zk=[δvn]=HkXk
量測量δvk只有在零速區(qū)間可以獲取,并且量測量和具體運(yùn)動和干擾情況有關(guān),在通過上述的零速檢測算法檢測到零速區(qū)間后,卡爾曼濾波做時間更新和量測更新,并將估計(jì)的誤差反饋給系統(tǒng),進(jìn)行誤差補(bǔ)償
(5)將修正后的數(shù)據(jù)在用戶界面顯示模塊進(jìn)行實(shí)時顯示,讓用戶可以清晰的看見自己的運(yùn)動狀態(tài)。
本發(fā)明是一種獨(dú)立自主高精度室內(nèi)定位方法,下面通過部分實(shí)驗(yàn)驗(yàn)證本發(fā)明的有益效果。
為了驗(yàn)證該方法的有效性,分別用低成本的MEMS MPU9250進(jìn)行了正常二維平面行走實(shí)驗(yàn)和三維上下樓梯行走實(shí)驗(yàn),通過手持安卓手機(jī)實(shí)時接受MEMS傳感器通過藍(lán)牙傳輸?shù)臄?shù)據(jù),手機(jī)安卓客戶端界面如圖5所示。
實(shí)驗(yàn)一:二維平面正常行走實(shí)驗(yàn)
實(shí)驗(yàn)環(huán)境選定在東南大學(xué)留學(xué)生樓的走廊,走廊為長5m,寬1m的矩形形狀。
圖6為對安卓客戶端接收的數(shù)據(jù)采用本發(fā)明所述算法處理后的行走軌跡圖,在沒有誤差的理想情況下,行走軌跡為閉合矩形曲線,起點(diǎn)和終點(diǎn)是重合的,但是由于誤差的存在,起點(diǎn)和終點(diǎn)往往是不重合的。通過兩者的不重合度來判定定位的精度,二維行走實(shí)驗(yàn)的定位精度在0.5m以內(nèi)。
實(shí)驗(yàn)二:三維上下樓梯行走實(shí)驗(yàn)
實(shí)驗(yàn)環(huán)境選定在東南大學(xué)中心樓,起點(diǎn)為中心樓2樓,行走路線為從中心樓2樓上右側(cè)樓梯經(jīng)過3樓到達(dá)中心樓4樓,再從4樓走廊左拐到中心樓左側(cè)樓梯下樓經(jīng)過3樓到達(dá)2樓回到2樓的起點(diǎn)位置,也行走了一個閉合的路線。該行走過程中經(jīng)過了上樓梯、正常行走、下樓梯、正常行走。
圖7為對安卓客戶端得到的數(shù)據(jù)采用本發(fā)明算法處理后的行走軌跡圖,經(jīng)計(jì)算其定位誤差在2m內(nèi)。
通過實(shí)驗(yàn)分析,本發(fā)明對于正常的二維平面行走可以保持較高的定位精度,對于復(fù)雜的上下樓運(yùn)動狀態(tài)依然具有較高的定位精度。修正后的數(shù)據(jù)通過安卓客戶端的用戶界面顯示模塊呈現(xiàn)給用戶,可以實(shí)現(xiàn)用戶在各種未知的環(huán)境下實(shí)現(xiàn)自主導(dǎo)航。