張開生,楊 武,趙 瓊
(陜西科技大學(xué) 電氣與信息工程學(xué)院,陜西 西安 710021)
物聯(lián)網(wǎng)時代的到來使得圖書館向著智能化的趨勢發(fā)展,人們已不再滿足于傳統(tǒng)形式的圖書館借閱方式[1]。目前國內(nèi)大部分圖書館為讀者提供的書目信息查詢服務(wù)僅能顯示圖書的檢索號、在館數(shù)量及館藏位置等信息,而這些信息并不能直觀地指引讀者去取書,讀者在查找借閱書刊時需要根據(jù)圖書館的平面分布圖以及對應(yīng)書刊的分類查找書刊的大致位置范圍,然后通過檢索編號在該范圍內(nèi)查找,這種查找方式速度比較慢、智能化程度較低[2]。
為此提出了一種基于ZigBee的圖書檢索導(dǎo)航系統(tǒng),通過該系統(tǒng)讀者可以在手持終端上輸入檢索信息來確定圖書位置,通過內(nèi)置的定位模塊和構(gòu)建的ZigBee無線定位網(wǎng)絡(luò)實現(xiàn)讀者定位,最后加載電子地圖實現(xiàn)導(dǎo)航。此外,提出了一種改進的加權(quán)質(zhì)心算法,用于手持終端的定位,定位誤差在1 m以內(nèi)。
基于ZigBee的圖書檢索導(dǎo)航系統(tǒng)由主控計算機、具有檢索導(dǎo)航功能的手持終端和無線定位傳感器網(wǎng)絡(luò)組成[3]。系統(tǒng)運用了ZigBee無線定位技術(shù),讀者在專用的手持終端上輸入相關(guān)檢索信息后,可以顯示檢索結(jié)果(如檢索碼、摘要、作者、出版社、在館數(shù)量等),確定查找的圖書在館后,手持終端與主控計算機、無線定位傳感器網(wǎng)絡(luò)進行通信,計算手持終端的實時位置,并直觀地反映出行進路徑等信息,極大地方便了讀者。系統(tǒng)主體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)的主體結(jié)構(gòu)
無線定位節(jié)點即為參考節(jié)點,分布于圖書館各個書架,各節(jié)點可根據(jù)實際需求來放置,其作用是在進行無線定位時接收定位信號,反饋節(jié)點坐標(biāo),為手持終端的定位提供坐標(biāo)的參考[4]。網(wǎng)關(guān)用于創(chuàng)建一個ZigBee無線定位傳感器網(wǎng)絡(luò),將通信范圍內(nèi)的各節(jié)點掃描并加入到該網(wǎng)絡(luò)構(gòu)成的一個區(qū)域,它是無線定位節(jié)點和帶檢索導(dǎo)航功能(在主體結(jié)構(gòu)中為盲節(jié)點)的手持終端的控制中心,它將收集到的參考節(jié)點、盲節(jié)點坐標(biāo)和外部環(huán)境參數(shù)等傳送給主控計算機。
主控計算機作為數(shù)據(jù)處理的中心,存放著各個網(wǎng)關(guān)、參考節(jié)點以及對應(yīng)的圖書信息。盲節(jié)點與參考節(jié)點之間的通信方式為無線通信,通過接收信號強度值RSSI(received signal strength indication)來定位。讀者通過手持終端在主控計算機的數(shù)據(jù)庫中查找圖書信息,確定其對應(yīng)存放位置的參考節(jié)點,網(wǎng)關(guān)將該節(jié)點的坐標(biāo)發(fā)送至手持終端(盲節(jié)點)上,最后根據(jù)盲節(jié)點、參考節(jié)點的坐標(biāo)以及圖書館電子地圖并通過相關(guān)算法來計算出最優(yōu)路徑,進而進行快捷導(dǎo)航。
2.1.1 手持終端
手持終端在整個系統(tǒng)中作為盲節(jié)點使用,具有檢索導(dǎo)航功能,主要由微處理器、內(nèi)置ZigBee定位模塊、I/O設(shè)備、接口電路及電源管理模塊組成。讀者在手持終端瀏覽器上輸入相關(guān)檢索信息,服務(wù)器對瀏覽器的請求進行處理,將讀者所需信息返回到瀏覽器上,實現(xiàn)手持終端上的OPAC(online public access catalogue,聯(lián)機公共目錄查詢系統(tǒng))服務(wù)。確定查找的書刊后若該書刊在館,手持終端內(nèi)部微處理器使能內(nèi)置的ZigBee定位模塊,ZigBee定位模塊通過定位引擎來實現(xiàn)定位,定位算法選用下文提出的改進的定位算法,確定手持終端以及參考節(jié)點后,通過導(dǎo)航算法以及電子地圖來產(chǎn)生最優(yōu)導(dǎo)航策略。
內(nèi)置ZigBee定位模塊屬于可移動的盲節(jié)點,它將查詢其通信范圍內(nèi)的參考節(jié)點位置,并從每一個響應(yīng)節(jié)點的響應(yīng)報文中獲取接收信號強度。內(nèi)置的ZigBee定位模塊,選用德州儀器公司生產(chǎn)的CC2431。CC2431芯片具有2.4 GHz的射頻(radio frequency,RF)收發(fā)器,可以接收各個響應(yīng)節(jié)點的信號(距離越短,接收信號強度越大)[5]。
2.1.2 無線定位節(jié)點和網(wǎng)關(guān)
無線定位節(jié)點在系統(tǒng)中作為參考節(jié)點使用,其主要任務(wù)是提供包含有RSSI值以及X、Y坐標(biāo)的參考數(shù)據(jù)包給盲節(jié)點,這種節(jié)點不需要定位引擎,所以選用CC2430芯片。CC2430相比CC2431而言,內(nèi)部沒有定位引擎,成本更低,此外CC2430的休眠模式和轉(zhuǎn)換到主動模式的超短時間的特性,特別適合那些要求電池壽命非常長的應(yīng)用,滿足了系統(tǒng)中參考節(jié)點的供電要求。
網(wǎng)關(guān)采用CC2430芯片,在硬件配置上,網(wǎng)關(guān)與無線定位節(jié)點一樣,只是在軟件實現(xiàn)的功能上有差異。主要功能包括:
(1) 多跳路由。由于盲節(jié)點和參考節(jié)點的通信距離有限,必須由網(wǎng)關(guān)創(chuàng)建多個ZigBee網(wǎng)絡(luò),每一個網(wǎng)關(guān)創(chuàng)建的ZigBee網(wǎng)絡(luò)中定位節(jié)點相互通信;而多個ZigBee網(wǎng)絡(luò)中網(wǎng)關(guān)將作為協(xié)調(diào)器使用,每個網(wǎng)關(guān)將選擇性地接收和處理各自網(wǎng)絡(luò)中的通信信息,然后與其他網(wǎng)關(guān)進行通信,這樣就將該網(wǎng)絡(luò)中的節(jié)點與其他網(wǎng)關(guān)中的節(jié)點互連起來,最終實現(xiàn)跨越多個網(wǎng)絡(luò)的、級聯(lián)的、點對點的傳輸連接。
(2) 不同協(xié)議的網(wǎng)絡(luò)互連。網(wǎng)關(guān)在接收和處理ZigBee網(wǎng)絡(luò)通信信息時,不僅需要將信息發(fā)送至計算機和數(shù)據(jù)庫,也要將上位機和數(shù)據(jù)庫發(fā)送來的控制信息發(fā)送至各個節(jié)點,其中涉及到不同網(wǎng)絡(luò)協(xié)議之間的傳輸就需要網(wǎng)關(guān)進行轉(zhuǎn)換,同時網(wǎng)關(guān)還要過濾不良信息,確保整個網(wǎng)絡(luò)的安全。
基于ZigBee的圖書檢索導(dǎo)航系統(tǒng)依據(jù)模塊化的思想和系統(tǒng)功能要求,軟件設(shè)計可以分為定位導(dǎo)航模塊和終端模塊。
定位導(dǎo)航模塊是基于IAR System公司開發(fā)的IAR Embedded Workbench V7.20H設(shè)計的[2]。定位導(dǎo)航模塊主要包括盲節(jié)點、參考節(jié)點以及網(wǎng)關(guān)的軟件開發(fā),在進行盲節(jié)點、參考節(jié)點以及網(wǎng)關(guān)軟件開發(fā)時需調(diào)用定位導(dǎo)航模塊相關(guān)的庫文件進行開發(fā)。圖2是盲節(jié)點和參考節(jié)點的設(shè)計流程圖,盲節(jié)點發(fā)出計算的請求,它會向附近的參考節(jié)點廣播一個信息,參考節(jié)點接收到信息后會收集此次通信獲取的信號強度值,此過程重復(fù)多次(一般采用8次),然后參考節(jié)點會將這8次信號強度平均值連同自己的坐標(biāo)發(fā)送給盲節(jié)點[6]。
圖2 盲節(jié)點、參考節(jié)點設(shè)計流程圖
終端軟件的操作系統(tǒng)選擇Linux[7],由于手持終端選擇的處理器是ARM9系列的處理器,Linux對于該處理器來說浪費的資源過于龐大,需要對Linux系統(tǒng)進行裁剪后移植到手持終端上,這樣能降低成本,提高性能。導(dǎo)航終端應(yīng)用程序是圖形用戶界面GUI(graphical user interface)程序,它借助人機交互的界面與讀者互動,其導(dǎo)航所選擇的最優(yōu)路徑是根據(jù)導(dǎo)航算法、盲節(jié)點與參考節(jié)點的坐標(biāo)、以及圖書館電子地圖所計算的,圖形化界面采用NOKIA公司的開發(fā)工具Qt/Embedded開發(fā)的,在開發(fā)前需要進行Bootloader移植以及驅(qū)動程序的設(shè)計[8]。終端上檢索軟件開發(fā)基于Microsoft SQL Server,采用B/S體系結(jié)構(gòu)。讀者通過該軟件可以向分布在網(wǎng)絡(luò)上的服務(wù)器發(fā)出請求,服務(wù)器對請求進行處理后將讀者所需信息返回到瀏覽器[9]。
手持終端的定位精度直接影響到導(dǎo)航精度以及系統(tǒng)可靠性,在實際場合中,存在各種不利因素的干擾,使得定位無法達到一個理想的目標(biāo),考慮到高精度的定位設(shè)備成本較高,采用具有良好容錯性和自適應(yīng)性的定位算法是很有必要的,不僅能夠很好地適應(yīng)環(huán)境的變化、減少錯誤和失效發(fā)生率,還能提高系統(tǒng)的定位精度。
2.3.1 傳統(tǒng)算法
質(zhì)心算法CL(lentral localization)將盲節(jié)點通信范圍內(nèi)所有參考節(jié)點構(gòu)成的多邊形的幾何質(zhì)心作為自身的估計位置。加權(quán)質(zhì)心算法WCL (weighted central localization)的主要思想是:根據(jù)參考節(jié)點到盲節(jié)點的距離來確定各參考節(jié)點的權(quán)值大小,距離越近,權(quán)值越大,反之亦然[10]。加權(quán)質(zhì)心算法的公式如下:
(1)
其中,wi即各信標(biāo)節(jié)點的權(quán)值。權(quán)值的選擇決定了盲節(jié)點的計算坐標(biāo),(Xi,Yi)為參考節(jié)點坐標(biāo),(Xest,Yest)是估計盲節(jié)點坐標(biāo)。
2.3.2 PDR-WCL算法
PDR-WCL算法是一種加權(quán)質(zhì)心算法,在該算法中認為:盲節(jié)點通信半徑內(nèi)的參考節(jié)點為有效節(jié)點,即R(comm_r)為接收信號強度臨界值,comm_r處參考節(jié)點的權(quán)值為1,接收信號強度越大,權(quán)值就越大[11]。因此,選擇d0處參考節(jié)點(一般d0取1 m)和通信半徑處節(jié)點作為權(quán)值公式的基準(zhǔn)節(jié)點,并按公式(2)計算參考節(jié)點的權(quán)值為wi
(2)
其中,R(d0)為d0處參考節(jié)點的接收信號強度,Ri為其他參考節(jié)點的接收信號強度值。
2.3.3 改進算法
分析公式(2),由于R(d0)為事先采集好的實驗數(shù)據(jù),其值是固定的,在不同的應(yīng)用環(huán)境下該值是不同的,特別是在圖書館中,由于書架等障礙物較多,導(dǎo)致各個區(qū)域的R(d0)不同,R(d0)無法通用。此外,R(comm_r)為接收信號強度臨界值,在實際應(yīng)用過程中,臨界點并不好測量?;谝陨显?,提出了一種改進的加權(quán)質(zhì)心算法(PDR-WCL-I)。
改進的加權(quán)質(zhì)心算法采用公式(3)計算參考節(jié)點加權(quán)權(quán)值wi
(3)
在盲節(jié)點通信范圍內(nèi)所有的參考節(jié)點中,距離盲節(jié)點最遠的參考節(jié)點其RSSI最小,記為Rmin,對應(yīng)的權(quán)值應(yīng)為1;而距離盲節(jié)點最近的參考節(jié)點其RSSI最大,記為Rmax,對應(yīng)的權(quán)值設(shè)為2。
在實際應(yīng)用中,只需選取待測盲節(jié)點通信范圍內(nèi)所有的參考節(jié)點的RSSI最大、最小值,根據(jù)公式(3)計算出參考節(jié)點加權(quán)權(quán)值wi,將wi代入公式(1)中,就可計算出當(dāng)前盲節(jié)點的坐標(biāo)位置。這種定位算法應(yīng)用方便,具有實時性,定位精度更高。
目前定位算法有很多,每種算法都有其優(yōu)劣性和適用場合,另外影響算法精度的因素有很多,有的算法對于特定因素(如不同比例的節(jié)點數(shù))的抗干擾能力強,經(jīng)過大量的實驗分析,選取3種算法進行了對比。實驗如下:在Matlab中對提出的改進的加權(quán)質(zhì)心算法(PDR-WCL-I)、質(zhì)心算法(CL)以及PDR-WCL進行了比較,具體的仿真條件為在100 m×100 m的正方形區(qū)域中均勻分布100個節(jié)點,該區(qū)域左下角坐標(biāo)為(0,0),右上角的坐標(biāo)為(100,100),盲節(jié)點和參考節(jié)點的通信半徑均為50 m,盲節(jié)點發(fā)射功率為0 dBm,參考距離d0=1 m的接收功率為55 dBm。在仿真測試中,所有數(shù)據(jù)點取100次實驗結(jié)果的平均值,不同比例的參考節(jié)點對定位誤差的影響曲線如圖3所示。
圖3 不同比例的參考節(jié)點對定位誤差的影響曲線
圖3為不同比例的參考節(jié)點對定位誤差的影響,橫坐標(biāo)表示不同比例的參考節(jié)點,縱坐標(biāo)為定位誤差L[12],定義為
(4)
式中,R即通信半徑,Nest是待定位的盲節(jié)點數(shù),(Xi,Yi)是盲節(jié)點實際坐標(biāo)值,(Xesti,Yesti)是盲節(jié)點的估計坐標(biāo)值。
從圖3可以看出:參考節(jié)點比例在10%~30%的范圍內(nèi),定位誤差隨參考節(jié)點的比例增大而減小。對比3種算法,改進的加權(quán)質(zhì)心算法(PDR-WCL-I)在定位精度上更高,且其定位誤差L在1.8%~2.1%。將通信半徑R=50,1.8%≤L≤2.1%代入公式(4),可以計算出
(5)
即計算出的盲節(jié)點坐標(biāo)距離其實際坐標(biāo)的最大誤差為0.9 m到1.05 m。
在進行定位實驗時,按圖4所示將參考節(jié)點放置在空曠地帶,為了保證可靠的發(fā)射強度和節(jié)點連通度,節(jié)點通信半徑R設(shè)定為20 m。設(shè)定下排參考節(jié)點的ID分別為0x0001、0x0003、0x0005,各自的坐標(biāo)分別為(0,0)、(20,0)、(40,0);上排參考節(jié)點的ID分別為0x0002、0x0004、0x0006,各自的坐標(biāo)為(10,17)、(30,17)、(50,17),單位均為m。盲節(jié)點作為移動的節(jié)點,在參考節(jié)點組成的區(qū)域內(nèi)移動,分別用加權(quán)質(zhì)心算法(PDR-WCL-I)和PDR-WCL對3個不同位置的盲節(jié)點的坐標(biāo)進行定位計算,每個位置測量10次,取平均值作為最終的測量結(jié)果。定位結(jié)果見表1。
圖4 定位顯示界面
表1 定位結(jié)果 m
上述Matlab仿真實驗和定位實驗證明了改進的加權(quán)質(zhì)心算法具有一定的可行性,就整個圖書檢索導(dǎo)航系統(tǒng)而言,將該算法應(yīng)用于手持終端定位時系統(tǒng)的定位精度更高。具體的應(yīng)用步驟如下:
(1) 在圖書館各個書架上安裝無線定位傳感器,每個傳感器的坐標(biāo)固定,同時將傳感器與對應(yīng)書架上的圖書進行綁定,圖書的定位是根據(jù)檢索時圖書所對應(yīng)的定位傳感器位置確定的;
(2) 讀者的定位即為盲節(jié)點的定位,在定位時將無線定位傳感器的位置以及各自的RSSI值作為計算參數(shù),并通過改進的加權(quán)質(zhì)心算法進行計算;
(3) 確定了圖書和讀者的位置后,在手持終端上加載電子地圖即可實現(xiàn)導(dǎo)航。
在實際應(yīng)用中,圖書館室內(nèi)是多書架、多障礙物的環(huán)境,而在進行定位時的無線信號在傳輸過程中穿透能力不強,在計算坐標(biāo)時會受到一定的干擾,因此,在實際應(yīng)用中建議增加無線收發(fā)的功率,以及在障礙物較多的區(qū)域內(nèi)應(yīng)加大分布節(jié)點的密度。
經(jīng)實驗室測試,采用改進的加權(quán)質(zhì)心算法的圖書檢索導(dǎo)航系統(tǒng)運行良好,且實時性更強,定位的精度更高。在初步應(yīng)用中,讀者在查找圖書時的查找范圍是實際書架的前一排書架到后一排書架。當(dāng)然,該系統(tǒng)離真正意義上的智能圖書館檢索導(dǎo)航系統(tǒng)仍有一段較長的距離,找到一個成本低、定位精度高的平衡點將是下一階段的研究重點。
[1] 李峰,李書寧.基于物聯(lián)網(wǎng)技術(shù)的智能圖書館發(fā)展研究[J].圖書情報工作,2013,57(5):66-70.
[2] 董曉霞,龔向陽,張若林,等.基于物聯(lián)網(wǎng)的智能圖書館設(shè)計與實現(xiàn)[J].圖書館雜志,2011,30(3):65-68.
[3] 陜西科技大學(xué).一種圖書檢索導(dǎo)航系統(tǒng):中國,201110372802.1[P].2011.11.22.
[4] 孫發(fā),廖文獻,潘鵬程.圖書館書架定位系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代圖書情報技術(shù),2008(12):95-98.
[5] 程雪穎,孫魁明.基于Google Maps API 和 RFID 技術(shù)的圖書館書架導(dǎo)航系統(tǒng)[J].國家圖書館學(xué)刊,2012,79(1):33-37.
[6] 王小強,歐陽駿,黃寧淋.ZigBee無線傳感器網(wǎng)絡(luò)設(shè)計與實現(xiàn)[M].北京:化學(xué)工業(yè)出版社,2012.
[7] 汪玉鳳,馮澤中.基于S3C2440A和ZigBee技術(shù)的智能家居系統(tǒng)[J].微計算機信息,2010(29):35-36,22.
[8] 韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.
[9] 謝艷芳.高校圖書館管理系統(tǒng)的設(shè)計與實現(xiàn)[D].上海:上海交通大學(xué),2011.
[10] 楊新宇,孔慶茹,戴湘軍.一種改進的加權(quán)質(zhì)心定位算法[J].西安交通大學(xué)學(xué)報,2010,44(8):1-4.
[11] Zhang Kaisheng,Xu Yaming.Improved Localization Algorithm Based on Proportion of Differential RSSI[C]//2012 International Conference on Advanced Mechanical Engineering.Advanced Mechanical Engineering Ⅱ.Germany: Trans Tech Publication,2012:401-405.
[12] Kerem Kucuk,Adnan Kavak.Scalable Location Estimation Using Smart Antennas in Wireless Sensor Networks [J].Ad Hoc Network,2010,8(8):889-903.