羅胤,路鴻洲,趙宇,王君
(吉林大學(xué)儀器科學(xué)與電氣工程學(xué)院,長春130012)
在野外一些林木茂密、巖石多布的地帶,或者城市里高樓林立的地區(qū),全球衛(wèi)星定位導(dǎo)航系統(tǒng)(Global Navigation Satellite System,GNSS)會因為信號遮擋出現(xiàn)定位精度下降甚至無法進行方位解算的情況,因此近年來針對步行者自身運動特點提出的自包含定位方案成為研究熱點。所采用的方案多為利用可穿戴傳感器完成步行者航位推算(Pedestrian Dead Reckoning,PDR),通過在步行者腰間穿戴的傳感器提取步行者的運動信息[1],傳至計算機上進行步行者航位推算;通過在步行者腳上設(shè)置陀螺儀與三軸加速度計等提取步行者的步行信息傳至計算機上,利用Matlab軟件進行3D圖像處理[2];采用粒子濾波和概率神經(jīng)網(wǎng)絡(luò)對步行者的運動信息進行識別和篩選,提高了步行者航位推算的精度[3]。但由于這些設(shè)計的步行者航位信息是在計算機上經(jīng)過專門軟件處理后得到的,其實用性不是很高,同時在室外使用時,計算機的便攜程度不高,因此開發(fā)一套便攜式、實用性高的步行者航位推算裝置是十分必要的。
針對以上設(shè)計存在的缺點,同時結(jié)合步行者航位推算的特點,設(shè)計出一套便攜實用性高的步行者航位推算裝置。它使用三軸加速度計與電子羅盤集成芯片LSM303DLHC以及陀螺儀集成芯片MPU3050,多傳感器保證了步行者運動信息采集的準(zhǔn)確性,同時采用具有ARM Cortex-M3內(nèi)核的單片機STM32F103RBT6作為數(shù)據(jù)處理單元,將實時處理的步行者航位推算信息顯示于TFTLCD上,具有較高數(shù)據(jù)處理精度的同時亦能滿足便攜性與實用性的需求。
該步行者航向推算裝置主要由三維傳感器模塊、數(shù)據(jù)轉(zhuǎn)換模塊與處理模塊組成,具體的組成框圖如圖1所示。
三維傳感器模塊上分為三軸加速度計與電子羅盤集成芯片LSM303DLHC、陀螺儀集成芯片MPU3050,以及用于數(shù)據(jù)處理的單片機STM32F103RBT6。實際工作時,三軸傳感器模塊置于步行者腰間,三維加速度計用于采集前左上三個方向上的加速度,用于計算模塊的俯仰角與傾斜角,以及步行者的步數(shù)統(tǒng)計與步幅估計;電子羅盤采集步行者實時航向角數(shù)據(jù);陀螺儀測出單位時間內(nèi)三軸角速度以校正計算出的俯仰角與傾斜角;單片機負(fù)責(zé)對傳感器的原始數(shù)據(jù)進行轉(zhuǎn)換處理,采用串口與數(shù)據(jù)處理模塊進行通信。數(shù)據(jù)處理模塊核心也采用了單片機STM32F103RBT6,在與三維傳感器模塊串口通信的同時,將航位推算所需的數(shù)據(jù)通過FAT32文件系統(tǒng)存于SD卡中。顯示模塊采用的是TFTLCD ILI9320,當(dāng)步行者需要查看當(dāng)前的航位信息時,單片機可通過FAT32文件系統(tǒng)從SD 卡中調(diào)出原始數(shù)據(jù),進行航位推算處理,最終將步行者的航跡顯示于TFTLCD上。
圖1 系統(tǒng)組成框圖
主從單片機都采用ST 公司生產(chǎn)的具有ARM Cortex-M3內(nèi)核的工業(yè)級控制芯片STM32F103RBT6,它具有72MHz時鐘主頻,內(nèi)部ROM 存儲容量為128KB,RAM 存儲容量為20KB。它具有8個定時計數(shù)器,3個SPI、2個I2C總線、3個UART、1個USB、1個CAN 總線等通信端口,這些通信端口完全能滿足本系統(tǒng)在設(shè)計過程中的需要。
STM32F103RBT6芯片由3.3V 電壓供電,而外部電源為5V 電池,因此采用降壓芯片AMS1117-3.3,它能將輸出電壓降低并且穩(wěn)定在3.3V,精度為1%。
LSM303DLHC芯片可在2.16~3.6V 低電壓下正常工作,其內(nèi)置三軸加速度計,量程為±2g~±16g。電子羅盤量程可為±1.3~±8.1gauss,單片機通過SCL、SDA引腳與其進行I2C總線通信,編程寄存器CTRL_REG4內(nèi)容可設(shè)置三軸加速度計量程,編程寄存器CRB_REG_M內(nèi)容可設(shè)置電子羅盤量程,其外圍電路如圖2所示。
MPU3050能在2.1~3.6V 低電壓下正常工作,其內(nèi)置的陀螺儀可測出三軸方向上±250~±2000°/s的角位移,通過編程其寄存器DLPF_FS可以選擇陀螺儀工作的量程,同時單片機通過I2C 總線,可從X_OFFS_USRH/L、Y_OFFS_USRH/L、Z_OFFS_USRH/L 這6個數(shù)據(jù)寄存器讀出三軸原始數(shù)據(jù),其外圍電路如圖3所示。
圖2 LSM303DLHC外圍接口原理圖
圖3 MPU3050外圍接口原理圖
負(fù)責(zé)航位推算的主單片機與三維傳感器模塊上的從單片機通過串口進行通信,它們被設(shè)置為相同的波特率。由于STM32F103RBT6的內(nèi)置RAM 容量只有20KB,而航位推算過程中使用的數(shù)據(jù)容量遠(yuǎn)大于其內(nèi)存容量,所以采用FAT32文件系統(tǒng),把主單片機接收的數(shù)據(jù)存入SD卡中,單片機通過SPI接口存入或讀出數(shù)據(jù),數(shù)據(jù)存儲模塊的原理圖如圖4所示。
顯示模塊采用了Ilitek 公司生產(chǎn)的TFTLCD ILI9320,分辨率為320×240,正常工作電壓為3.3V,采用16位雙向數(shù)據(jù)線,單片機通過WR引腳向TFTLCD 里寫入數(shù)據(jù),通過RD 引腳讀出數(shù)據(jù),顯示模塊的原理圖如圖5所示。
圖4 數(shù)據(jù)存儲模塊原理圖
圖5 顯示模塊原理圖
步行者的運動通??梢哉J(rèn)為是二維運動[4],步行者一個步伐周期內(nèi)的兩個落腳點間的連線可以認(rèn)為是直線,數(shù)據(jù)采樣時間為一個步伐周期時,已知步行者上一采樣周期末的方位信息與本次采樣周期內(nèi)步伐長度與航向角信息,可以推算出本次采樣周期末步行者的方位信息。以二維x-y坐標(biāo)平面表示,設(shè)步行者初始時刻的方位為(x0,y0),任意時刻t的方位為(xt,yt),步行者每個采樣周期內(nèi)的步長為S,航向角為A,則按照一個步伐周期T 內(nèi)采樣,根據(jù)遞推原則,任意時刻t步行者的方位如下:
由三軸加速度計測出的前左上三個方向上的加速度數(shù)Ax、Ay、Az可以計算出三維傳感器模塊的俯仰角(以θ1表示)和傾斜角(以θ2表示)為[5]:
式中的Ax、Ay、Az為經(jīng)過最小二乘法[6]校正后的三軸加速度值,由于傳感器模塊置于步行者腰間,步行者在走動的時候不可避免地引入振動干擾,造成俯仰角與傾斜角解算誤差,因此采用互補濾波,融合陀螺儀數(shù)據(jù),降低因振動干擾帶來的解算誤差。設(shè)陀螺儀經(jīng)過互補濾波算法處理后,三軸的數(shù)據(jù)分別為Gx、Gy、Gz,融合后三個方向上的加速度為A′x、A′y、A′z,給三個方向上加速度賦予的權(quán)重為,給陀螺儀三軸數(shù)據(jù)的權(quán)重為,則可以用下式表示:
通過降低加速度值的權(quán)重,提高陀螺儀三軸數(shù)據(jù)的權(quán)重可以取得較好的濾波效果,將處理完的加速度值代入式(3),可以得到去噪后的俯仰角與傾斜角。結(jié)合電子羅盤測出的三軸磁場分量Mx、My、Mz,設(shè)在經(jīng)過傾角補償[7]后投影到x-y水平面上的磁場分量為Hx、Hy,則步行者的航向角A 可以由下式得到:
式(4)中的Mx、My、Mz為經(jīng)過橢球校正[8]后的三軸磁場分量。
由于三維傳感器模塊是置于步行者腰間的,加速度計探測到豎直方向加速度隨著步行者的走動周期性變化,因此采用豎直方向加速度閾值判斷的方法來統(tǒng)計步行者的行進步數(shù)。同時,步行者的步頻與步幅間存在近似的線性關(guān)系,步行者的步頻(單位為Hz)與步幅(單位為m)可以用以下模型[9]來估計:
式中,S 為步行者實時步幅,F(xiàn) 為步行者實時步頻。通過在數(shù)據(jù)處理終端統(tǒng)計步行者的實時步頻,可以根據(jù)式(5)來判斷步行者的實時步幅,從而減小步行者行進距離統(tǒng)計誤差。
實地測試結(jié)果如圖6所示,測試場地為學(xué)校內(nèi)部的標(biāo)準(zhǔn)田徑場,田徑場包含的兩條直道一條為東西走向,另一條為西東走向,測試的時候選取標(biāo)準(zhǔn)田徑場的第5 跑道,步行實際長度為430m,實際步數(shù)為560步,經(jīng)航位推算測得的步數(shù)為587 步,測得的步行距離為428.5m,步數(shù)統(tǒng)計相對誤差為4.8%,距離統(tǒng)計相對誤差小于1%。與實際路線相比,最大偏移為5 m,出現(xiàn)在東西走向的直線跑道上,偏移區(qū)間長度為85m,航向角測得的誤差在±2°~±4°以內(nèi),說明以上方法設(shè)計的步行者航位推算裝置有較高的精確性、實時性與可靠性,能夠滿足實際應(yīng)用需求。
圖6 測試結(jié)果示意圖
本文介紹了基于STM32F103RBT6單片機的步行者航位推算裝置的硬件設(shè)計與采用的軟件算法,完成了對多傳感器數(shù)據(jù)的采集和航跡推算。采用單片機與微慣性器件搭建的系統(tǒng),能滿足小型化、實用性、便攜性及易于搭建的應(yīng)用要求,經(jīng)過實地實驗,其測算精度亦能滿足實際需求。
[1]Lei Fang,Panos J Antsaklis,Montestruque,et al.Design of a Wireless Assisted Pedestrian Dead Reckoning System-the NavMote Experience[J].IEEE Transactions on Instrumentation and Measurement,2005(12):2342-2355.
[2]Lauro Ojeda,Johann Borenstein.Non-GPS Navigation with the Personal Dead-Reckoning System[EB/OL].[2013-09].http://www-personal.umich.edu/~johannb/Papers/paper130.pdf.
[3]孫作雷,茅旭初,張相芬,等.基于粒子濾波和概率神經(jīng)網(wǎng)絡(luò)的步行者定位參數(shù)校正[J].上海交通大學(xué)學(xué)報,2009:885-889.
[4]宋敏,申閆春.室內(nèi)定位航位推測算法的研究與實現(xiàn)[J].計算機工程,2013(7):294.
[5]ST.AN3182 Application Note[EB/OL].[2013-09].http:www.st.com/internet/com.
[6]ST.AN3182 Application Note[EB/OL].[2013-09].http:www.st.com/internet/com.
[7]ST.AN3182 Application Note[EB/OL].[2013-09].http:www.st.com/internet/com.
[8]陳偉韜,章云.基于LSM303DLHC 的電子羅盤設(shè)計[EB/OL].[2013-09].http://www.paper.edu.cn/releasepaper/content.
[9]孫作雷,茅旭初,田蔚風(fēng),等.基于動作識別和步幅估計的步行者航位推算[J].上海交通大學(xué)學(xué)報,2008(12):2004.