徐盛良,魯照權,周永燕,王肖玥峰
(合肥工業(yè)大學電氣與自動化工程學院, 安徽合肥 230009)
導航技術已經(jīng)廣泛應用于公路交通、航天、航空、航海等諸多領域,而定位是導航的關鍵技術。隨著經(jīng)濟的高速發(fā)展、人力資源成本的大幅度提高、智能制造技術的快速上升,企業(yè)對數(shù)字化碼頭、數(shù)字化工廠、數(shù)字化倉庫的需求越來越高。傳統(tǒng)的AGV小車通常采用循跡技術,移動路徑是固定的,已無法滿足智能制造的要求。為了能方便地任意規(guī)劃路徑,必須尋求新的循跡技術并實現(xiàn)室內(nèi)導航。而室內(nèi)定位是實現(xiàn)室內(nèi)導航的關鍵技術。
常見的室內(nèi)定位技術有超聲波[1]、紅外線[2]、超寬帶[3]、射頻識別[4](RFID)等技術,其中,基于射頻信號強度和超聲波是常用的定位手段。射頻信號強度定位成本低,覆蓋范圍廣,一般可覆蓋50 m的范圍,但是定位精度低,定位精度達m級。室內(nèi)超聲定位精度較高,文獻[5]在室內(nèi)無遮擋的情況下達到了10 cm以下的定位精度,但覆蓋范圍小,容易受障礙物的影響。結合射頻信號強度和超聲波的優(yōu)點,文獻[6]將射頻信號強度與超聲波融合,通過壓縮感知算法及超聲波網(wǎng)格定位法,在有障礙物的情況下取得了較好的效果,但在全視距下仍有8 cm的誤差。文獻[7] 在Cricket室內(nèi)定位的基礎上,引入節(jié)能機制的方法,改進信道分配策略,降低了系統(tǒng)的能耗和成本,但并未在定位精度上給出更多的證實。
在室內(nèi)定位中,精度是最重要的衡量標準,在此基礎上,還需要將系統(tǒng)的成本和能耗降到最低,并保證其安全可靠。因此,本文提出射頻信號強度[8]與超聲波結合的室內(nèi)定位系統(tǒng),通過粗定位階段,將定位區(qū)域進一步縮減,降低了能耗,并采用增加定位基點的方法彌補非視距和覆蓋范圍小的不足,采用移動平均濾波法使得數(shù)據(jù)更加可靠。
移動目標通過射頻收發(fā)器向每個塊的中心定位基點發(fā)出射頻信號,讀出各信號強度值,比較出信號強度的最大值,確定出移動目標所處的塊,喚醒塊中各定位基點到工作狀態(tài),然后移動目標對該塊的各定位基點發(fā)出射頻同步命令和超聲波,并開始計時。塊中各定位基點收到射頻同步信號后便開始計時,同時接收超聲波,接收到超聲波后計時結束,由定時器得出時間差,將時間差無線傳輸給移動目標。移動目標根據(jù)時間差與超聲波傳播速度計算出距離。得出移動目標到這些定位基點的距離后,尋找最小的3個距離值,通過三邊測量法[9]并考慮3個基點的坐標,計算出移動目標在定位區(qū)域內(nèi)的坐標。
測距原理圖如圖1所示。移動目標向定位基點發(fā)射超聲波的具體步驟如下:
圖1 測距原理圖
(1)移動目標發(fā)送命令01給確定出移動目標所處的塊中的各定位基點,喚醒定位基點模塊,使其處于工作狀態(tài),定位基點收到移動目標發(fā)送命令01,應答收到命令02且返回工作狀態(tài)值81,其格式見表1。
表1 喚醒定位基點格式表
(2)定位基點處于工作狀態(tài)后,移動目標發(fā)送RF同步命令11,立即發(fā)射N次超聲波信號。N次超聲波發(fā)射時間間隔為1 ms。定位基點收到超聲波獲得測距數(shù)據(jù)后,向移動目標發(fā)送命令12,即發(fā)送測距數(shù)據(jù),其格式見表2。
(3)移動目標計算出定位坐標后,向上位機發(fā)送命令21,其格式見表3。
表2 RF同步命令格式表
表3 向上位機發(fā)送坐標格式表
(4)上位機收到數(shù)據(jù)后,發(fā)送應答命令22,其格式見表4。
表4 發(fā)送應答命令格式表
采用長為6.8 m、寬為3.4 m、高為3 m的房間作為定位實驗環(huán)境??紤]所選HC-SR04超聲波模塊的發(fā)射角為30°,在高為3 m時圓形照射區(qū)域的半徑為1.7 m,將平面的最小定位區(qū)域定義為1.7 m×1.7 m的方格,如圖2所示。這樣,當移動目標位于定位方格內(nèi)任意位置時,總會位于3個圓形照射區(qū)域內(nèi)。圖中黑色方點表示定位基點,黑色圓點表示移動目標。塊N1由1、2、3、4方格組成,中心定位基點為B1;塊N2由3、4、5、6方格組成,中心定位基點為B2;塊N3由5、6、7、8方格組成,中心定位基點為B3。
圖2 室內(nèi)平面圖
移動目標i(xMi,yMi)首先分別對塊N1、N2、N3的中心定位基點B1、B2、B3發(fā)送射頻信號,讀出定位基點信號強度值為RSS1、RSS2、RSS3。比較出3個強度值中的最大強度值,確定移動目標位于哪個塊內(nèi),該塊作為粗定位區(qū)域,然后對粗定位區(qū)域每個方格4個角上的定位基點進行超聲波測距,尋找到最小的3個測距值。
由于聲速對溫度變化很敏感,室內(nèi)溫度變化較大,故需要對其進行修正,修正公式[10]為
(1)
式中:v為超聲波在介質(zhì)中的傳播速度;T為室內(nèi)溫度。
測量出移動目標i(xMi,yMi)(i=00H-FFH)到3個基點(xi,yi)之間的到達時間差ti,再乘以速度v,計算出移動目標與定位基點之間的距離Ri。分別以定位基點(xi,yi)為圓心,Ri為半徑畫圓,各圓的交點為移動目標的坐標(xMi,yMi)。三邊測量法[11]原理如圖3所示。
圖3 三邊測量法
(2)
每個定位基點的硬件均包含CC1101射頻收發(fā)器和HC-SR04超聲波模塊及AT89C52單片機。移動目標的硬件包含CC1101射頻收發(fā)器、HC-SR04超聲波模塊、AT89C52單片機、數(shù)碼管顯示、DS18B20溫度傳感器等。CC1101射頻收發(fā)器主要實現(xiàn)2個功能:實現(xiàn)數(shù)據(jù)的無線通信和超聲波測距的信號同步。由于CC1101的工作電壓為3.3 V,AT89C52芯片的工作電壓為5 V,故需要采用電平轉換芯片74LS4245才能實現(xiàn)CC1101與AT89C52的連接。移動目標和定位基點模塊的核心電路如圖4所示。
圖4 CC1101模塊、HC-SR04與AT89C52連接圖
CC1101針對工業(yè)、科研和醫(yī)療以及短距離無線通信設備而設計,可提供數(shù)據(jù)包處理、數(shù)據(jù)緩沖、突發(fā)傳輸、接收信號強度指示(RSSI)、空閑信道評估(CCA)、鏈路質(zhì)量指示以及無線喚醒(WOR)等硬件支持。其工作頻段為387.0~464.0 MHz。通過4線SPI接口與MCU連接,同時提供2個可設定功能的通用數(shù)字輸出引腳。超聲波模塊HC-SR04可提供2~700 cm的非接觸式距離感測功能,測距精度可高達到0.3 cm,感應角度、探測距離可調(diào),即HC-SR04模塊中可調(diào)電阻為392 Ω、≤15°、2~300 cm;可調(diào)電阻為472 Ω、≤30°、2~700 cm。模塊包括發(fā)射器、接收器與控制電路等。CC1101模塊、HC-SR04與AT89C52單片機連接方式如圖4所示。
每個定位基點有一個編號,每個編號對應確定的坐標,編號從原點開始。編號范圍:B0 00 00H-B0 FF FFH。例如:第000行第000列:B0 00 00H;第000行第255列:B0 00 FFH;第255行第255列:B0 FF FFH。同時也給移動目標編號,編號的起始字母為D,編號范圍:D0 00H-D0 FFH。
(1)定位基點坐標號及ID設置。上位機通過無線通信給定位基點寫ID號,定位基點的坐標安裝時通過人工測量獲得并通過命令61設置,定位基點ID號寫入成功后,則返回命令62給上位機,其格式見表5。
表5 定位基點寫ID號格式表
(2)移動目標ID 號設置。上位機通過命令71給移動目標寫ID號,移動目標ID號寫入成功后,則返回命令72給上位機,其格式見表6。
表6 移動目標寫ID號格式表
(3)定位軟件設計。在超聲波測距之前需要讀取射頻信號強度,縮小定位區(qū)域。信號強度絕對值與距離之間的關系[12]如圖5所示。
圖5 信號強度絕對值與距離的關系
從圖5可以看出,距離越小,信號強度越強,因此可使移動目標由整塊區(qū)域縮減為在信號強度最強的區(qū)域進行超聲波測距定位。
超聲波工作頻率為40 kHz,測距方式采用對射式測距,無線射頻RF作為同步信號。超聲波測距模塊的工作時序[13]如圖6所示。
圖6 超聲波工作時序圖
移動目標發(fā)送射頻同步信號的同時AT89C52的P3.6給HC-SR04的Trig端口發(fā)出一個10 μs的脈沖觸發(fā)信號,然后HC-SR04的內(nèi)部立刻發(fā)出8個40 kHz的超聲波信號。當定位基點接收到射頻同步信號后超聲波接收端Echo引腳為高電平并且定時器開始計時,直到檢測到聲波信號時,Echo引腳為低電平,計時結束。此時,通過Echo高電平的持續(xù)時間便可算出距離。距離=高電平持續(xù)時間×聲速。
讀取信號強度程序流程圖如圖7所示。移動目標程序流程圖如圖8所示。定位基點程序流程圖如圖9所示。
圖7 讀取信號強度流程圖
圖8 移動目標程序流程圖
根據(jù)超聲波的傳播特性,超聲波在空氣中的傳播質(zhì)量會隨著距離的增大而衰減。同時,超聲波測距是由對射式到達時間差來計算距離,因此,延時和同步精度以及定時器中斷產(chǎn)生的誤差,使得測量到的數(shù)據(jù)比實際值大。
圖9 定位基點程序流程圖
在無障礙物環(huán)境中進行測距實驗,溫度為25 ℃,補償后的聲速為346.7 m/s。測距距離從0.5 m增加到7 m,每隔0.5 m進行1組測距實驗,共測10組數(shù)據(jù)。每組實驗測量50次,100 ms測量1次。取多次測量的樣本平均值去掉極值再平均作為實際測距數(shù)據(jù)。得到測距數(shù)據(jù)與誤差曲線圖如圖10所示。
圖10 測距誤差曲線圖
利用一元線性回歸方法對測量誤差與實測距離的關系進行擬合,設一元線性回歸方程[14]為
(3)
根據(jù)實驗測量得到的n組測量誤差與距離的數(shù)據(jù)(x1,e1),(x2,e2),…,(xn,en),則:
(4)
(5)
根據(jù)式(4)、式(5),由MATLAB求得一元線性回歸方程為式(6),擬合線見圖10。
e=0.010 135x+0.001 66
(6)
距離修正公式為
x′=x-e
(7)
式中x′的修正后的距離值,m。
即通過誤差補償達到距離修正。修正后,平均誤差為1.1 cm,滿足高精度定位要求。
分別在實驗環(huán)境的角落、中心點以及其他點進行靜態(tài)定位。每個點測50次取平均值。靜態(tài)點的定位結果見表7。其中,定位偏差由式(10)計算。
(8)
(9)
(10)
式中:(XM′i,YM′i)為移動目標的實際坐標值;(XMi,YMi)為移動目標的定位坐標值。
表7 定位偏差表 m
由表7可知靜態(tài)定位最大偏差為3.6 cm,不大于4 cm,具有很高的精度,然而還有一些誤差,比如:皮尺測量實際坐標不準確引起的測量誤差,定位基點坐標不準確引起的系統(tǒng)誤差,外界干擾引起的隨機誤差等。
實驗中,小車作為移動目標。在實驗環(huán)境的地面上規(guī)劃出行駛路徑,通過紅外尋跡的方法使小車以不同的速度按路徑行駛。小車上的定位模塊不斷比較B1、B2、B3之間的信號強度,比較一次需要1 ms,確定出粗定位區(qū)域,然后檢測出與粗定位區(qū)域各定位基點之間的距離,檢測一個定位基點的距離需要6 ms,每個粗定位區(qū)域的9個定位基點共需要54 ms。每個定位基點的每次測量值分別存放在相應的16個緩沖單元中,每存一個新的數(shù)據(jù)就丟棄一個最老的數(shù)據(jù)。
分別計算粗定位區(qū)域每個定位基點16個緩沖單元中的平均值,再把粗定位區(qū)域每個定位基點的16個值與平均值比較,大于平均值則替換成平均值,然后再平均作為移動目標與該定位基點之間的定位距離,從9個定位距離中選擇最小的3個值作為式(2)中的R1,R2,R3。求解式(2)即可獲得移動目標的定位坐標(xMi,yMi)。
每隔500 ms,上位機命令移動目標上報一次定位坐標,小車速度在0.2 m/s和0.4 m/s時的軌跡如圖11、圖12所示。其中,以圓心(240,165),半徑140 cm的圓為實際軌跡,實心點為定位坐標點。
圖11 小車速度為0.2 m/s時的軌跡
圖12 小車速度為0.4 m/s時的軌跡
對不同的速度進行實驗,可得速度與誤差關系如圖13所示。
圖13 動態(tài)定位速度誤差圖
由圖13可知,當速度變快時,誤差逐漸增大,且在實驗中觀察到還有一定的時滯誤差,定位的坐標點稍滯后于小車實際位置,隨著速度增大,這種滯后變大。
本文給出的室內(nèi)定位系統(tǒng)實現(xiàn)方案通用性強,系統(tǒng)結構簡單,易于實現(xiàn),能夠顯著減小能耗,且能夠彌補超聲波覆蓋面積小和非視距的不足。動態(tài)定位能實現(xiàn)較高的精度,為數(shù)字化工廠、數(shù)字化倉儲以及無人分揀等定位精度要求較高的領域提供了參考。人機交互直觀方便,在上位機的圖形界面上,可對系統(tǒng)實時查看、管理和維護。然而,目前的研究工作僅在較小的室內(nèi)空間實現(xiàn)方案的可行性,要滿足較大的場合,還需要更多的實驗和數(shù)據(jù)收集、分析。