浦宇歡, 毛麗民, 劉龍飛
(常熟理工學院 電氣與自動化工程學院,江蘇 常熟 215500)

基于ZigBee的機器人室內定位設計
浦宇歡, 毛麗民, 劉龍飛
(常熟理工學院 電氣與自動化工程學院,江蘇 常熟 215500)
針對機器人在室內復雜環境中編碼器易出現誤差累計與零位漂移,智能算法計算成本高實時性差的定位困難,提出了一種基于ZigBee技術的室內定位方法。該定位系統由4個ZigBee模塊,1個協調器組成。其中3個模塊作為節點呈三角形排布固定在室內,機器人搭載1個盲節點,通過協調器實現節點間通訊。使用LabVIEW虛擬儀器技術實現接收信號強度(RSSI)至節點間距離轉換的處理,利用已知的固定節點坐標和盲節點到三點之間距離,計算出盲節點的相對坐標,實現機器人定位。基于ZigBee的三邊定位法,計算簡單,不受環境復雜度的影響,成本低。經過調試與測試,定位誤差小,滿足機器人室內定位的要求。
室內定位; ZigBee技術; 接收信號強度; 虛擬儀器技術
隨著機器人技術的發展,人們對室內外的機器人定位需求日益增大,基于GPS的室外定位已得到廣泛的應用,比如手機定位軟件,可以很方便知道目前的位置。但由于室內環境復雜、定位精度等要求,機器人室內定位難度很大。
在此背景下,本文將ZigBee技術應用到室內機器人的定位研究中,通過4個ZigBee模塊,1個協調器,采用三邊定位算法,實現機器人在室內的準確定位,相比傳統RFID定位,ZigBee技術定位具有低成本、低功耗的優點[1]。
ZigBee是一種距離近、功耗低、低復雜度、低成本的無線傳輸技術,其以IEEE 802.15.4標準為基礎,被業界廣泛運用于無線傳感網絡中、智能家居、無線讀表等領域[3]。
利用無線技術的定位,按不同的原理分為基于距離定位和無關距離定位兩種。利用距離定位、特定方法算出節點之間的距離,經算法實現最終定位,其算法有三邊測量法、三角定位算法等[4]。
1.1 距離的定位
(1) 基于TOA的定位。利用信號傳播速度與達到時間來計算距離。圖1所示為超聲波TOA的基本模型,CPU處理發送、接收超聲波的時間間隔,計算距離,即時間間隔與聲波速度。TOA定位精度高,但需節點時間準確。

圖1 超聲波TOA模型圖
(2) 基于TDOA的定位。利用不同傳輸速度的信號,根據多種信號的傳輸速度和到達節點的時間差來計算距離的。如圖2所示,發射節點在T0時刻發送兩種不同傳輸速度的信號(傳輸速度分別為v1和v2),接收節點分別在不同時刻T1和T2收到兩種信號,利用下式計算出節點之間距離:

(1)
TDOA同時接收兩種信號,提高了節點硬件成本。

圖2 TDOA技術示意圖
(3) 基于AOA的定位。利用信號到達方向,計算出角度,然后利用三角定位算法計算出節點的位置。如圖3所示,已知節點A、B坐標定為(x1,y1) 、(x2,y2) ,待定位為C,其坐標為(x,y) ,C分別與A、B兩節點角度為a、b,可列方程組:

(2)
解出方程組:
(3)

圖3 AOA技術示意圖
AOA定位受環境干擾大,需額外硬件支持。
(4) 基于RSSI的定位。利用已知發射節點發送信號時的信號強度(RSSI),接收節點收到RSSI值后,利用理論知識或者經驗模型將RSSI值轉為距離,再利用三邊定位算法算出節點的位置[5]。
1.2 無關距離定位
無關距離的定位方法:利用網絡特性確定網絡中節點的大致距離,然后估算出節點的位置[6]。主要有近似三角形定位算法、質心算法、距離向量-跳數算法是無關距離的算法,與距離無關的定位方法對硬件的要求較高,同時算法復雜。
無關距離的定位算法對節點的密集度要求較高,需大量的參考節點,成本高、定位條件要求高[7]。基于距離的定位方法主要有TOA、TDOA、AOA及RSSI 4種方法,其中TOA、TDOA、AOA雖然定位精度高,但需安裝額外的硬件,成本較高。本研究基于RSSI測距的定位方法[8]。
RSSI是指接收節點接收到的信號強度,ZigBee協議棧中,當子節點收到父節點信息時,會收到父節點的RSSI值。
2.1 ZigBee協議體系結構
ZigBee體系結構由物理層(PHY)、介質訪問層(MAC)、網絡層(NWK)、應用層(APL)組成,其結構圖如圖4所示。由圖可見,物理層和介質訪問層由IEEE 802.15.4標準定義;NWM層和APL層由ZigBee聯盟定義。ZigBee協議的具體表現由Z-stack協議棧完成,軟件部分重點介紹使用Z-stack協議棧。
2.2 ZigBee網絡的拓撲
ZigBee協議體系,網絡層主要負責網絡的建立,網絡拓撲結構由協調(Coordination)、路由器(Router)、終

圖4 ZigBee各層分布圖
負責網絡建立和管理網絡中的節點,網絡地址為0X0000,利用協調器將數據傳給上位機。路由節點在ZigBee網絡中負責數據的轉發,可以帶路由節點和終端節點。終端節點是ZigBee網絡的最后一級,終端節點不能轉發其他節點的數據。ZigBee網絡的拓撲結構有星形拓撲、簇狀拓撲、網狀拓撲,其結構如圖5所示。

圖5 網絡拓撲圖
2.3 ZigBee無線網絡的數據傳播方式
ZigBee網絡的數據發送方式有點播、組播、廣播,點播方式是一對一的發送格式,常見的點播是終端節點發送給協調器(地址0X0000)。組播是先將ZigBee網絡中的節點或協調器綁定在一起,只有綁定在一起的設備才能接收到信息。廣播是當一個設備發送數據時,ZigBee設備通過程序判斷是否收該信息,廣播可以根據地址要求來設置廣播對象。
發射機與接收機之間的距離d與接收機接收的信號強度RSSI的關系為:
(5)按嵌入域劃分:分為時/空域水印和變換域水印。時/空域水印是在時間/空間域嵌入水印,一般方法簡單、運算速度快,但是魯棒性較差。變換域水印通過對變換域系上施加操作完成嵌入水印的目的,變換域水印魯棒性較好,但是原理復雜、不易實現、運算速度較慢。
RSSI=-(A+10nlgd)
(4)
式中:n指信號路徑損耗常數;d為發射器與接收器之間的距離;A為另外一個傳播常量,A表示收、發器1 m間隔的RSSI,需要實際測量得出。
3.1 三邊定位測量方法
三邊定位方法是利用三點到未知點之間的距離關系求出未知點坐標[10]。如圖6所示,其中A、B、C三點分別是已知節點1、2、3,M為盲節點。已知(x1,y1)、(x2,y3)、(x3,y3)分別為A、B、C三點坐標。盲節點M坐標設為(x,y),固定節點A、B、C到盲節點M的距離分別為d1、d2、d3,由歐拉公式可得:
(5)

圖6 三邊定位模型
本文采用的方法是將RSSI值傳給LabVIEW軟件平臺,計算出M坐標(x,y)。三邊定位方法存在一個致命問題,當圖中3點在一條直線,無法求出M坐標。本文調試時,將A、B、C人為地標定在不同直線上。
3.2 機器人定位的實現
本文上位機采用LabVIEW軟件平臺,布置控件位置、設置控件參數等,如圖7~9所示。LabVIEW基于G語言編程方式,較VB與C#開發周期短,實現復雜的三邊定位算法,提高工作效率[11]。

圖7 上位機界面

圖8 機器人串口讀取程序

圖9 機器人串口發送程序
3.2.1 RSSI距離轉換程序
本文采用基于RSSI的距離定位方法, RSSI值轉為距離需要調用LabVIEW的公式節點,如圖10所示,包括3個輸入量(RSSI、A、n),一個輸出量(D)。

圖10 RSSI值轉距離程序
3.2.2 三邊定位的程序
本文采用三邊定位算法,通過LabVIEW調用Matlab公式節點算出目標的坐標,其中a、b、c三點坐標由自己標定。三邊定位程序如圖11所示。圖中Matlab公式節點中Da、Db、Dc為輸入量;p1為輸出量;Da,Db和Dc分別為固定節點1、2、3到盲節點距離。

圖11 三邊定位程序
3.2.3 串口數據傳輸
本文配置兩個串口程序,分別為機器人串口和ZigBee串口[12-13]。ZigBee串口波特率設置為115 200。串口讀取數據時,讀取的第1個字節為“A”時,繼續讀取11個字節數據;機器人串口波特率設置也為115 200。
機器人串口不僅接收數據還需發送數據,機器人發送的數據格式為0XFF、X、X、X、X,第1個字節為幀頭,通過程序判斷是否處理數據;最后4字節為PWM占空比(0~1 000)。
LabVIEW調用Matlab程序有兩種方法:①Matlab script節點;②ActiveX函數模版。本文采用Matlab script節點,支持多輸入、多輸出、處理速度快等特點[14-15]。
3.3 坐標顯示
如圖12所示,坐標顯示使用LabVIEW二維圖片控件,在二維圖片上打點實時顯示坐標。

圖12 坐標顯示程序
本文定位調試場地在實驗室300 cm×240 cm區域,調試場地圖如圖13所示。由圖可見,機器人搭載一個盲節點,即定位節點,場地的3個角放著對應3個固定節點[10]。圖14為實際調試結果,經多次測量,路徑損耗n取值4.3較為合適。

圖13 調試場地

(a)(b)(c)(d)
圖14 調試圖
圖14(a)~(d)分別對應一組實驗數據,圖14(a)計算出的坐標為(151.388,117.59),實際測量的坐標為(156,112);圖14(b)計算出的坐標為(196.228,148.908),實際測量的坐標為(200,150)。
本文對基于ZigBee技術的室內機器人三邊定位方法進行了研究,使用LabVIEW收集信息處理與控制,針對本實驗場地,定位誤差在5~7 cm之間。在實際調試中,當機器人離固定節點30 cm之內時,無法定位,誤差較大。
[1] 杜月林, 石欣然, 王克寒. 基于ZigBee技術的室內定位系統算法研究及實現[J].計算機技術與發展, 2014(7):245-249.
[2] 鄒宜成, 梁 紅. 室內智能移動機器人ZigBee無線網絡定位技術[J]. 武漢理工大學學報(信息與管理工程版), 2012, 34(2):151-155.
[3] 王 琦. 基于RSSI測距的室內定位技術[J].電子科技, 2012, 25(6):64-66.
[4] 朱明輝,張會清.基于RSSI的室內測距模型的研究[J].傳感器與微系統,2010,29(8):19-22.
[5] 丁 琳, 管小衛, 朱 霞. 基于RSSI的集群實時定位系統設計[J]. 國外電子測量技術, 2014, 33(12):69-73.
[6] 鄭學理,付敬奇. 基于PDR和RSSI的室內定位算法研究[J].儀器儀表學報, 2015, 36(5):1177-1185.
[7] 朱 劍, 趙 海, 孫佩剛, 等. 基于RSSI均值的等邊三角形定位算法[J]. 東北大學學報(自然科學版), 2007, 28(8):1094-1097.
[8] 邊明明. 基于STM32F103的移動智能車硬件設計[J].煤炭技術,2014, 33(8):183-185.
[9] 王天河, 馬慶龍. 基于射頻無源定位的智能跟蹤機器人系統[J]. 兵工自動化, 2010, 29(7):84-87.
[10] 楊佐龍, 陳 曦, 周智恒, 等. 基于RSSI的ZigBee定位節點布局優化[J]. 中國科技信息, 2013(14):101-103.
[11] 張世一, 黃 華, 劉永平. 基于ZigBee和LabVIEW的智能照明監控系統設計[J]. 研究與開發, 2014,33(5):63-66.
[12] 吳龍亮,薛 楠,權祎魁,等. 基于ZigBee與LabVIEW的火災預警系統的設計[J]. 網絡與通信, 2013,32(22):53-55.
[13] 徐攀峰,李麗娜,梁德骕,等. 基于LabVIEW與ZigBee的無線語音遙控機器人系統[J]. 遼寧大學學報(自然科學版), 2015,42(2):124-129.
[14] 李有堂,張正謙,丁海榮,等. 基于ZigBee和LABVIEW的車庫無線監測系統設計[J]. 蘭州理工大學學報, 2016,42(1):101-103.
[15] 包雪梅,任小洪,王 丹,等. 基于ZigBee和LabVIEW的數控機床振動信號分析采集系統設計[J]. 自動化與儀器儀表, 2016(3):75-77.
Design and Implementation of Indoor Positioning of Robot Based on ZigBee
PUYuhuan,MAOLimin,LIULongfei
(School of Electrical Engineering and Automation, Changshu Institute of Technology, Changshu 215500, Jiangsu, China)
An indoor location method based on ZigBee technology is proposed for positioning a robot in the complex indoor environment, because the classical algorithm is prone to error accumulation and zero drift,and the intelligent algorithm has high computational cost and poor real-time performance. The new positioning system consists of four ZigBee modules and one coordinator. Three of these modules are arranged in a triangular in the room as fixed nodes. The robot is equipped with a blind node, and these nodes communicate each other through the coordinator. The virtual instrument technology LabVIEW is used to achieve the
signal strength indication (RSSI) transferring to the inter-node distances. Because the coordinates of the fixed nodes are known, the relative coordinate of the blind node can be solved, so is the robot. The trilateral positioning method based on ZigBee is simple, low cost and can be used in complex environment. After debugging and testing, positioning error is small, hence the design meets the requirements of the robot indoor positioning.
indoor positioning; ZigBee technology; received signal strength indication (RSSI); virtual instrument technology
2016-08-28
蘇州市科技計劃項目(SYG201504)
浦宇歡(1992-),男,江蘇常熟人,碩士,研究方向為機器人控制技術。
Tel.:15651127957; E-mail: puyuhuan00@126.com
毛麗民(1981-),男,江蘇常熟人,碩士,高級實驗師,研究方向為機器人與目標跟蹤研究。
Tel.:13814928578;E-mail:maolimin_1981@163.com
TP 242.6
A
1006-7167(2017)04-0064-05