謝 地, 魯照權, 丁浩峰, 尤海龍, 陳 龍, 蘇明明
(合肥工業大學 電氣與自動化工程學院,安徽 合肥 230009)
隨著經濟的高速發展以及人力資源成本的大幅度提高和智能制造技術的快速上升,基于位置的服務和位置感知的計算在實際應用中越來越重要[1]。室內導航在地下停車場、商場、醫院等場所的應用十分必要,而現有的全球定位系統(global positioning system,GPS)導航在室內又無法應用。所以,高精度室內定位系統很有必要。室內定位與導航使人與物之間構建了空間關系,使人們的生活更加便捷。
目前主流的定位技術有WiFi、藍牙、超寬帶(ultra wide band,UWB)、超聲波等。WiFi定位的抗干擾性一般,部署難度中等,成本較低,定位精度達到米(m)級;藍牙定位的抗干擾性一般,部署難度較低,成本一般,定位精度達到分米(dm)級;超寬帶定位的抗干擾性強,部署難度高,成本較高,定位精度達到厘米(cm)級;超聲波定位的抗干擾性強,部署難度低,成本較低,定位精度達到cm級[2]。
從20世紀末開始,國內外的很多高校、研究機構及公司就針對不同的應用背景開發了種類繁多、實現原理多樣的室內定位系統。2010年1月,美國俄亥俄州州立大學醫療中心安裝了一套當時美國最大的醫療實時定位系統[3],即Ekahau系統。Ekahau是根據WiFi信號強度,采用位置指紋算法的定位系統。部署成本低,定位精度可達2~5 m。Active Badge系統是一種以紅外線為傳媒介質用近似算法的室內定位系統,定位精度一般以房間為單位。Active Bat系統是一種采用到達時間(time of arrival,TOA)法進行定位的超聲波室內定位系統,能夠在95 %的情況下將定位誤差控制在9 cm以下[4]。但系統不易部署且定位成本過高。文獻[5]設計的采用ZIGBEE組網技術的超聲波室內定位系統定位精度可達7 cm。文獻[6]設計的基于CC1101的超聲波室內定位系統對Cricket系統進行了改進,使定位精度提高到5 cm。
結合實際情況,綜合考慮各因素,本文基于超聲波定位技術建立了室內定位系統,通過對超聲波測距模塊的線性擬合,提出一種數據處理方法使定位精度提高到3 cm,且動態響應良好。
將4 m×6 m的房間劃分為6個2 m×2 m的定位區域,每個定位區域安裝4個坐標已知的帶有無線射頻通信和超聲波測距功能的定位基點。超聲波測距節點將測得的超聲波在空氣中的傳播時間,乘以聲速,進行偏差校正后得到距離。基于以上基本原理設計了高精度動態室內定位系統。
定位基點通常處于休眠狀態。定位時,移動節點向定位基點發送喚醒指令,待接收到應答指令后,移動節點再發送測距超聲波,同時發送RF射頻計時同步指令。
定位基點在接收到移動節點發來的同步信號后,開始計時。接收到超聲波信號后,結束計時。定位基點根據計數器的計數值計算得到定位基點與移動節點的距離,并進行偏差校正后,得到距離。測得距離后,定位基點將數據發送給上位機。發送/接收指令格式如表1所示。

表1 發送接收指令格式表
設圖1中Ri(i=1,2,3)是定位基點在地面的投影點與移動節點之間的距離。則以R1,R2,R3為半徑作3個圓,可得出交點,即移動節點的位置坐標(xi,yi)
(1)

圖1 三邊測距原理


(2)
室內定位系統由移動節點、定位基點、上位機三部分組成 。定位基點、移動節點的核心硬件由CC1101射頻收發器、HC-SR04超聲波模塊、STC89C52單片機、數碼管、溫度傳感器18B20等組成。穩壓電路7805與LM1117將12 V直流電壓轉換成+5 V和+3.3 V,分別給CC1101射頻收發器和STC89C52單片機供電。上位機由STC89C52單片機、CC1101射頻收發器構成的接收模塊及PC組成。硬件連接圖如圖2所示。

圖2 測距模塊硬件連接
超聲波測距模塊使用+5 V的電壓供電,發送頻率為40 kHz的超聲波,測量角度不大于15°,測距精度可達到3 mm,可提供2~600 cm的非接觸式距離感測功能 。
STC89C52單片機的P3.6口對HC—SR04模塊的TRIG引腳發出一個10 μs的脈沖觸發信號后,HC—SR04模塊立即發出超聲波信號,同時ECHO引腳置為高電平,待HC—SR04模塊檢測到回波信號時,ECHO引腳置為低電平。通過檢測ECHO引腳的高電平持續時間即可達到測量距離的目的。
移動節點流程圖如圖3(a)所示,定位基點流程圖如圖3(b)所示。在實驗中實際測量數據在2.5~3.5 m之間。測量3 m距離時按照s=v(聲速)×t(時間)得到的距離為4.53 m,產生偏差達到1.53 m。由于硬件與軟件系統的延時造成較大的誤差,故對距離進行一元線性擬合,得到距離與計數值的關系如表2所示。

圖3 移動節點和定位基點流程

表2 計數值與距離關系表
表2計數值是測量30次得到的平均值。單片機振蕩頻率為12 MHz,定時器的一個計數值為1 us。在小于20 cm時超聲波測距模塊存在測量盲區。在大于20 cm時,由以上數據進行線性擬合得到室溫15 ℃時,測距方程為y=30x+4663。其中,y為計數值,x為實際距離。將擬合的直線與數據比較得到圖4。

圖4 線性擬合結果
對方程線性擬合后,在室溫15 ℃時,測量3 m實際距離時定時器計數值為13 879,對應的測量距離為3.075 m,誤差縮小到7.5 cm。
聲速對溫度變化敏感,當溫度變化較大時,需要進行溫度補償,V=331.4+0.607t。其中,V為當前聲速(m/s),t為室溫(℃)。當溫度相差10 ℃時,聲速相差6 m/s,3m的測量距離誤差會達到5 cm。因此,在實驗中采用溫度補償進行校正,得
(3)
校正后,在室溫25 ℃下,實際3 m的測量距離為3.005 m,誤差為0.5 cm。圖5為室溫25 ℃下測量對比情況。

圖5 測量值與實際值對比
校正后超聲波測距的靜態誤差在0.5 cm以內,準確度大幅度提高。
上位機接收到數據后,首先對數據進行限幅濾波,可以有效地去除粗大誤差。
將限幅濾波處理后的數據直接用三邊算法,得到的坐標與實際移動節點的坐標比較,誤差最大達到10 cm。為了降低偏差,在得到第一組數據后,若第二組數據在以第一組數據為圓心,半徑為Ri的圓內,則保留,否則離圓心越遠,乘以越小的權重得到新的數據,這樣有效地避免了數據大的跳動帶來的誤差。經過試驗,在設定半徑R=5,權重μ為100減去數據到圓心的距離Ri的0.3倍再除以100時可以將誤差從10 cm縮小到3 cm以內,將精度提高了70 %,即
(4)
若R>5,則x′2=μx2,μ=(100-0.3Ri)/100;
若R≤5,則x′2=x2。
上位機將數據經過限幅濾波和算法處理后,得到距離數據。緩沖單元在移入一個新數據前,將最陳舊的數據移去,一直保持緩沖單元中有8個最新數據,并對8個數據求一次均值。
由于三邊算法只需要3個距離就可以算出坐標,上位機選取最小的3個距離進行定位計算,最后將定位指標顯示在界面上。
實驗中,以40 cm/s運動的小車作為移動節點,在2 m×2 m的定位區域內沿事先規劃的直徑為120 cm的圓作勻速運動。運動中的小車每隔50 ms進行一次定位,定位基點測得距離后實時發送給上位機。
上位機界面上圓對應的實際圓的直徑為120 cm。小車通過紅外尋跡的方法沿圓作圓周運動。空心的小圓圈是小車的實時位置,R1~R4是4個定位基點的坐標。由誤差分析可以看到最大誤差為2.73 cm。與文獻 [1]相比,誤差減小了40 %,平均誤差為1.11 cm。
以下4種情況是產生誤差的主要原因。一組定位數據如表3所示。

表3 定位誤差 cm
1)聲速對溫度變化敏感,當溫度變化大時,需要進行溫度補償。當溫度相差10 ℃時,聲速相差6 m/s,3 m的測量距離誤差達到5 cm,故在實驗中采用溫度補償進行校正。
2)在測量各定位基點坐標時可能存在測量誤差。
3)當測距誤差為ε時,由式(1)得到定位誤差達到ε2。
4)系統硬件與軟件的延時造成單片機計時的誤差,實驗通過線性擬合方程進行校正。

圖6 上位機界面
本文基于超聲波測距原理,提出并實現了一種高精度室內定位方法,設計了實驗系統結構、硬件與軟件,完成了系統定位實驗。通過對測距結果的線性擬合、溫度補償、偏差校正,使得定位精度由文獻[1]中的5 cm提高到了3 cm。本系統結構簡單,易于實現,抗干擾能力強。實驗結果表明,本文的方法具有較高的應用價值。