浦宇歡, 毛麗民, 劉龍飛
(常熟理工學(xué)院 電氣與自動化工程學(xué)院,江蘇 常熟 215500)
基于ZigBee的機器人室內(nèi)定位設(shè)計
浦宇歡, 毛麗民, 劉龍飛
(常熟理工學(xué)院 電氣與自動化工程學(xué)院,江蘇 常熟 215500)
針對機器人在室內(nèi)復(fù)雜環(huán)境中編碼器易出現(xiàn)誤差累計與零位漂移,智能算法計算成本高實時性差的定位困難,提出了一種基于ZigBee技術(shù)的室內(nèi)定位方法。該定位系統(tǒng)由4個ZigBee模塊,1個協(xié)調(diào)器組成。其中3個模塊作為節(jié)點呈三角形排布固定在室內(nèi),機器人搭載1個盲節(jié)點,通過協(xié)調(diào)器實現(xiàn)節(jié)點間通訊。使用LabVIEW虛擬儀器技術(shù)實現(xiàn)接收信號強度(RSSI)至節(jié)點間距離轉(zhuǎn)換的處理,利用已知的固定節(jié)點坐標和盲節(jié)點到三點之間距離,計算出盲節(jié)點的相對坐標,實現(xiàn)機器人定位?;赯igBee的三邊定位法,計算簡單,不受環(huán)境復(fù)雜度的影響,成本低。經(jīng)過調(diào)試與測試,定位誤差小,滿足機器人室內(nèi)定位的要求。
室內(nèi)定位; ZigBee技術(shù); 接收信號強度; 虛擬儀器技術(shù)
隨著機器人技術(shù)的發(fā)展,人們對室內(nèi)外的機器人定位需求日益增大,基于GPS的室外定位已得到廣泛的應(yīng)用,比如手機定位軟件,可以很方便知道目前的位置。但由于室內(nèi)環(huán)境復(fù)雜、定位精度等要求,機器人室內(nèi)定位難度很大。
在此背景下,本文將ZigBee技術(shù)應(yīng)用到室內(nèi)機器人的定位研究中,通過4個ZigBee模塊,1個協(xié)調(diào)器,采用三邊定位算法,實現(xiàn)機器人在室內(nèi)的準確定位,相比傳統(tǒng)RFID定位,ZigBee技術(shù)定位具有低成本、低功耗的優(yōu)點[1]。
ZigBee是一種距離近、功耗低、低復(fù)雜度、低成本的無線傳輸技術(shù),其以IEEE 802.15.4標準為基礎(chǔ),被業(yè)界廣泛運用于無線傳感網(wǎng)絡(luò)中、智能家居、無線讀表等領(lǐng)域[3]。
利用無線技術(shù)的定位,按不同的原理分為基于距離定位和無關(guān)距離定位兩種。利用距離定位、特定方法算出節(jié)點之間的距離,經(jīng)算法實現(xiàn)最終定位,其算法有三邊測量法、三角定位算法等[4]。
1.1 距離的定位
(1) 基于TOA的定位。利用信號傳播速度與達到時間來計算距離。圖1所示為超聲波TOA的基本模型,CPU處理發(fā)送、接收超聲波的時間間隔,計算距離,即時間間隔與聲波速度。TOA定位精度高,但需節(jié)點時間準確。
圖1 超聲波TOA模型圖
(2) 基于TDOA的定位。利用不同傳輸速度的信號,根據(jù)多種信號的傳輸速度和到達節(jié)點的時間差來計算距離的。如圖2所示,發(fā)射節(jié)點在T0時刻發(fā)送兩種不同傳輸速度的信號(傳輸速度分別為v1和v2),接收節(jié)點分別在不同時刻T1和T2收到兩種信號,利用下式計算出節(jié)點之間距離:
(1)
TDOA同時接收兩種信號,提高了節(jié)點硬件成本。
圖2 TDOA技術(shù)示意圖
(3) 基于AOA的定位。利用信號到達方向,計算出角度,然后利用三角定位算法計算出節(jié)點的位置。如圖3所示,已知節(jié)點A、B坐標定為(x1,y1) 、(x2,y2) ,待定位為C,其坐標為(x,y) ,C分別與A、B兩節(jié)點角度為a、b,可列方程組:
(2)
解出方程組:
(3)
圖3 AOA技術(shù)示意圖
AOA定位受環(huán)境干擾大,需額外硬件支持。
(4) 基于RSSI的定位。利用已知發(fā)射節(jié)點發(fā)送信號時的信號強度(RSSI),接收節(jié)點收到RSSI值后,利用理論知識或者經(jīng)驗?zāi)P蛯SSI值轉(zhuǎn)為距離,再利用三邊定位算法算出節(jié)點的位置[5]。
1.2 無關(guān)距離定位
無關(guān)距離的定位方法:利用網(wǎng)絡(luò)特性確定網(wǎng)絡(luò)中節(jié)點的大致距離,然后估算出節(jié)點的位置[6]。主要有近似三角形定位算法、質(zhì)心算法、距離向量-跳數(shù)算法是無關(guān)距離的算法,與距離無關(guān)的定位方法對硬件的要求較高,同時算法復(fù)雜。
無關(guān)距離的定位算法對節(jié)點的密集度要求較高,需大量的參考節(jié)點,成本高、定位條件要求高[7]?;诰嚯x的定位方法主要有TOA、TDOA、AOA及RSSI 4種方法,其中TOA、TDOA、AOA雖然定位精度高,但需安裝額外的硬件,成本較高。本研究基于RSSI測距的定位方法[8]。
RSSI是指接收節(jié)點接收到的信號強度,ZigBee協(xié)議棧中,當(dāng)子節(jié)點收到父節(jié)點信息時,會收到父節(jié)點的RSSI值。
2.1 ZigBee協(xié)議體系結(jié)構(gòu)
ZigBee體系結(jié)構(gòu)由物理層(PHY)、介質(zhì)訪問層(MAC)、網(wǎng)絡(luò)層(NWK)、應(yīng)用層(APL)組成,其結(jié)構(gòu)圖如圖4所示。由圖可見,物理層和介質(zhì)訪問層由IEEE 802.15.4標準定義;NWM層和APL層由ZigBee聯(lián)盟定義。ZigBee協(xié)議的具體表現(xiàn)由Z-stack協(xié)議棧完成,軟件部分重點介紹使用Z-stack協(xié)議棧。
2.2 ZigBee網(wǎng)絡(luò)的拓撲
ZigBee協(xié)議體系,網(wǎng)絡(luò)層主要負責(zé)網(wǎng)絡(luò)的建立,網(wǎng)絡(luò)拓撲結(jié)構(gòu)由協(xié)調(diào)(Coordination)、路由器(Router)、終
圖4 ZigBee各層分布圖
負責(zé)網(wǎng)絡(luò)建立和管理網(wǎng)絡(luò)中的節(jié)點,網(wǎng)絡(luò)地址為0X0000,利用協(xié)調(diào)器將數(shù)據(jù)傳給上位機。路由節(jié)點在ZigBee網(wǎng)絡(luò)中負責(zé)數(shù)據(jù)的轉(zhuǎn)發(fā),可以帶路由節(jié)點和終端節(jié)點。終端節(jié)點是ZigBee網(wǎng)絡(luò)的最后一級,終端節(jié)點不能轉(zhuǎn)發(fā)其他節(jié)點的數(shù)據(jù)。ZigBee網(wǎng)絡(luò)的拓撲結(jié)構(gòu)有星形拓撲、簇狀拓撲、網(wǎng)狀拓撲,其結(jié)構(gòu)如圖5所示。
圖5 網(wǎng)絡(luò)拓撲圖
2.3 ZigBee無線網(wǎng)絡(luò)的數(shù)據(jù)傳播方式
ZigBee網(wǎng)絡(luò)的數(shù)據(jù)發(fā)送方式有點播、組播、廣播,點播方式是一對一的發(fā)送格式,常見的點播是終端節(jié)點發(fā)送給協(xié)調(diào)器(地址0X0000)。組播是先將ZigBee網(wǎng)絡(luò)中的節(jié)點或協(xié)調(diào)器綁定在一起,只有綁定在一起的設(shè)備才能接收到信息。廣播是當(dāng)一個設(shè)備發(fā)送數(shù)據(jù)時,ZigBee設(shè)備通過程序判斷是否收該信息,廣播可以根據(jù)地址要求來設(shè)置廣播對象。
發(fā)射機與接收機之間的距離d與接收機接收的信號強度RSSI的關(guān)系為:
(5)按嵌入域劃分:分為時/空域水印和變換域水印。時/空域水印是在時間/空間域嵌入水印,一般方法簡單、運算速度快,但是魯棒性較差。變換域水印通過對變換域系上施加操作完成嵌入水印的目的,變換域水印魯棒性較好,但是原理復(fù)雜、不易實現(xiàn)、運算速度較慢。
RSSI=-(A+10nlgd)
(4)
式中:n指信號路徑損耗常數(shù);d為發(fā)射器與接收器之間的距離;A為另外一個傳播常量,A表示收、發(fā)器1 m間隔的RSSI,需要實際測量得出。
3.1 三邊定位測量方法
三邊定位方法是利用三點到未知點之間的距離關(guān)系求出未知點坐標[10]。如圖6所示,其中A、B、C三點分別是已知節(jié)點1、2、3,M為盲節(jié)點。已知(x1,y1)、(x2,y3)、(x3,y3)分別為A、B、C三點坐標。盲節(jié)點M坐標設(shè)為(x,y),固定節(jié)點A、B、C到盲節(jié)點M的距離分別為d1、d2、d3,由歐拉公式可得:
(5)
圖6 三邊定位模型
本文采用的方法是將RSSI值傳給LabVIEW軟件平臺,計算出M坐標(x,y)。三邊定位方法存在一個致命問題,當(dāng)圖中3點在一條直線,無法求出M坐標。本文調(diào)試時,將A、B、C人為地標定在不同直線上。
3.2 機器人定位的實現(xiàn)
本文上位機采用LabVIEW軟件平臺,布置控件位置、設(shè)置控件參數(shù)等,如圖7~9所示。LabVIEW基于G語言編程方式,較VB與C#開發(fā)周期短,實現(xiàn)復(fù)雜的三邊定位算法,提高工作效率[11]。
圖7 上位機界面
圖8 機器人串口讀取程序
圖9 機器人串口發(fā)送程序
3.2.1 RSSI距離轉(zhuǎn)換程序
本文采用基于RSSI的距離定位方法, RSSI值轉(zhuǎn)為距離需要調(diào)用LabVIEW的公式節(jié)點,如圖10所示,包括3個輸入量(RSSI、A、n),一個輸出量(D)。
圖10 RSSI值轉(zhuǎn)距離程序
3.2.2 三邊定位的程序
本文采用三邊定位算法,通過LabVIEW調(diào)用Matlab公式節(jié)點算出目標的坐標,其中a、b、c三點坐標由自己標定。三邊定位程序如圖11所示。圖中Matlab公式節(jié)點中Da、Db、Dc為輸入量;p1為輸出量;Da,Db和Dc分別為固定節(jié)點1、2、3到盲節(jié)點距離。
圖11 三邊定位程序
3.2.3 串口數(shù)據(jù)傳輸
本文配置兩個串口程序,分別為機器人串口和ZigBee串口[12-13]。ZigBee串口波特率設(shè)置為115 200。串口讀取數(shù)據(jù)時,讀取的第1個字節(jié)為“A”時,繼續(xù)讀取11個字節(jié)數(shù)據(jù);機器人串口波特率設(shè)置也為115 200。
機器人串口不僅接收數(shù)據(jù)還需發(fā)送數(shù)據(jù),機器人發(fā)送的數(shù)據(jù)格式為0XFF、X、X、X、X,第1個字節(jié)為幀頭,通過程序判斷是否處理數(shù)據(jù);最后4字節(jié)為PWM占空比(0~1 000)。
LabVIEW調(diào)用Matlab程序有兩種方法:①Matlab script節(jié)點;②ActiveX函數(shù)模版。本文采用Matlab script節(jié)點,支持多輸入、多輸出、處理速度快等特點[14-15]。
3.3 坐標顯示
如圖12所示,坐標顯示使用LabVIEW二維圖片控件,在二維圖片上打點實時顯示坐標。
圖12 坐標顯示程序
本文定位調(diào)試場地在實驗室300 cm×240 cm區(qū)域,調(diào)試場地圖如圖13所示。由圖可見,機器人搭載一個盲節(jié)點,即定位節(jié)點,場地的3個角放著對應(yīng)3個固定節(jié)點[10]。圖14為實際調(diào)試結(jié)果,經(jīng)多次測量,路徑損耗n取值4.3較為合適。
圖13 調(diào)試場地
(a)(b)(c)(d)
圖14 調(diào)試圖
圖14(a)~(d)分別對應(yīng)一組實驗數(shù)據(jù),圖14(a)計算出的坐標為(151.388,117.59),實際測量的坐標為(156,112);圖14(b)計算出的坐標為(196.228,148.908),實際測量的坐標為(200,150)。
本文對基于ZigBee技術(shù)的室內(nèi)機器人三邊定位方法進行了研究,使用LabVIEW收集信息處理與控制,針對本實驗場地,定位誤差在5~7 cm之間。在實際調(diào)試中,當(dāng)機器人離固定節(jié)點30 cm之內(nèi)時,無法定位,誤差較大。
[1] 杜月林, 石欣然, 王克寒. 基于ZigBee技術(shù)的室內(nèi)定位系統(tǒng)算法研究及實現(xiàn)[J].計算機技術(shù)與發(fā)展, 2014(7):245-249.
[2] 鄒宜成, 梁 紅. 室內(nèi)智能移動機器人ZigBee無線網(wǎng)絡(luò)定位技術(shù)[J]. 武漢理工大學(xué)學(xué)報(信息與管理工程版), 2012, 34(2):151-155.
[3] 王 琦. 基于RSSI測距的室內(nèi)定位技術(shù)[J].電子科技, 2012, 25(6):64-66.
[4] 朱明輝,張會清.基于RSSI的室內(nèi)測距模型的研究[J].傳感器與微系統(tǒng),2010,29(8):19-22.
[5] 丁 琳, 管小衛(wèi), 朱 霞. 基于RSSI的集群實時定位系統(tǒng)設(shè)計[J]. 國外電子測量技術(shù), 2014, 33(12):69-73.
[6] 鄭學(xué)理,付敬奇. 基于PDR和RSSI的室內(nèi)定位算法研究[J].儀器儀表學(xué)報, 2015, 36(5):1177-1185.
[7] 朱 劍, 趙 海, 孫佩剛, 等. 基于RSSI均值的等邊三角形定位算法[J]. 東北大學(xué)學(xué)報(自然科學(xué)版), 2007, 28(8):1094-1097.
[8] 邊明明. 基于STM32F103的移動智能車硬件設(shè)計[J].煤炭技術(shù),2014, 33(8):183-185.
[9] 王天河, 馬慶龍. 基于射頻無源定位的智能跟蹤機器人系統(tǒng)[J]. 兵工自動化, 2010, 29(7):84-87.
[10] 楊佐龍, 陳 曦, 周智恒, 等. 基于RSSI的ZigBee定位節(jié)點布局優(yōu)化[J]. 中國科技信息, 2013(14):101-103.
[11] 張世一, 黃 華, 劉永平. 基于ZigBee和LabVIEW的智能照明監(jiān)控系統(tǒng)設(shè)計[J]. 研究與開發(fā), 2014,33(5):63-66.
[12] 吳龍亮,薛 楠,權(quán)祎魁,等. 基于ZigBee與LabVIEW的火災(zāi)預(yù)警系統(tǒng)的設(shè)計[J]. 網(wǎng)絡(luò)與通信, 2013,32(22):53-55.
[13] 徐攀峰,李麗娜,梁德骕,等. 基于LabVIEW與ZigBee的無線語音遙控機器人系統(tǒng)[J]. 遼寧大學(xué)學(xué)報(自然科學(xué)版), 2015,42(2):124-129.
[14] 李有堂,張正謙,丁海榮,等. 基于ZigBee和LABVIEW的車庫無線監(jiān)測系統(tǒng)設(shè)計[J]. 蘭州理工大學(xué)學(xué)報, 2016,42(1):101-103.
[15] 包雪梅,任小洪,王 丹,等. 基于ZigBee和LabVIEW的數(shù)控機床振動信號分析采集系統(tǒng)設(shè)計[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-),男,江蘇常熟人,碩士,研究方向為機器人控制技術(shù)。
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