張開生,楊 武,趙 瓊
(陜西科技大學 電氣與信息工程學院,陜西 西安 710021)
物聯網時代的到來使得圖書館向著智能化的趨勢發展,人們已不再滿足于傳統形式的圖書館借閱方式[1]。目前國內大部分圖書館為讀者提供的書目信息查詢服務僅能顯示圖書的檢索號、在館數量及館藏位置等信息,而這些信息并不能直觀地指引讀者去取書,讀者在查找借閱書刊時需要根據圖書館的平面分布圖以及對應書刊的分類查找書刊的大致位置范圍,然后通過檢索編號在該范圍內查找,這種查找方式速度比較慢、智能化程度較低[2]。
為此提出了一種基于ZigBee的圖書檢索導航系統,通過該系統讀者可以在手持終端上輸入檢索信息來確定圖書位置,通過內置的定位模塊和構建的ZigBee無線定位網絡實現讀者定位,最后加載電子地圖實現導航。此外,提出了一種改進的加權質心算法,用于手持終端的定位,定位誤差在1 m以內。
基于ZigBee的圖書檢索導航系統由主控計算機、具有檢索導航功能的手持終端和無線定位傳感器網絡組成[3]。系統運用了ZigBee無線定位技術,讀者在專用的手持終端上輸入相關檢索信息后,可以顯示檢索結果(如檢索碼、摘要、作者、出版社、在館數量等),確定查找的圖書在館后,手持終端與主控計算機、無線定位傳感器網絡進行通信,計算手持終端的實時位置,并直觀地反映出行進路徑等信息,極大地方便了讀者。系統主體結構如圖1所示。

圖1 系統的主體結構
無線定位節點即為參考節點,分布于圖書館各個書架,各節點可根據實際需求來放置,其作用是在進行無線定位時接收定位信號,反饋節點坐標,為手持終端的定位提供坐標的參考[4]。網關用于創建一個ZigBee無線定位傳感器網絡,將通信范圍內的各節點掃描并加入到該網絡構成的一個區域,它是無線定位節點和帶檢索導航功能(在主體結構中為盲節點)的手持終端的控制中心,它將收集到的參考節點、盲節點坐標和外部環境參數等傳送給主控計算機。
主控計算機作為數據處理的中心,存放著各個網關、參考節點以及對應的圖書信息。盲節點與參考節點之間的通信方式為無線通信,通過接收信號強度值RSSI(received signal strength indication)來定位。讀者通過手持終端在主控計算機的數據庫中查找圖書信息,確定其對應存放位置的參考節點,網關將該節點的坐標發送至手持終端(盲節點)上,最后根據盲節點、參考節點的坐標以及圖書館電子地圖并通過相關算法來計算出最優路徑,進而進行快捷導航。
2.1.1 手持終端
手持終端在整個系統中作為盲節點使用,具有檢索導航功能,主要由微處理器、內置ZigBee定位模塊、I/O設備、接口電路及電源管理模塊組成。讀者在手持終端瀏覽器上輸入相關檢索信息,服務器對瀏覽器的請求進行處理,將讀者所需信息返回到瀏覽器上,實現手持終端上的OPAC(online public access catalogue,聯機公共目錄查詢系統)服務。確定查找的書刊后若該書刊在館,手持終端內部微處理器使能內置的ZigBee定位模塊,ZigBee定位模塊通過定位引擎來實現定位,定位算法選用下文提出的改進的定位算法,確定手持終端以及參考節點后,通過導航算法以及電子地圖來產生最優導航策略。
內置ZigBee定位模塊屬于可移動的盲節點,它將查詢其通信范圍內的參考節點位置,并從每一個響應節點的響應報文中獲取接收信號強度。內置的ZigBee定位模塊,選用德州儀器公司生產的CC2431。CC2431芯片具有2.4 GHz的射頻(radio frequency,RF)收發器,可以接收各個響應節點的信號(距離越短,接收信號強度越大)[5]。
2.1.2 無線定位節點和網關
無線定位節點在系統中作為參考節點使用,其主要任務是提供包含有RSSI值以及X、Y坐標的參考數據包給盲節點,這種節點不需要定位引擎,所以選用CC2430芯片。CC2430相比CC2431而言,內部沒有定位引擎,成本更低,此外CC2430的休眠模式和轉換到主動模式的超短時間的特性,特別適合那些要求電池壽命非常長的應用,滿足了系統中參考節點的供電要求。
網關采用CC2430芯片,在硬件配置上,網關與無線定位節點一樣,只是在軟件實現的功能上有差異。主要功能包括:
(1) 多跳路由。由于盲節點和參考節點的通信距離有限,必須由網關創建多個ZigBee網絡,每一個網關創建的ZigBee網絡中定位節點相互通信;而多個ZigBee網絡中網關將作為協調器使用,每個網關將選擇性地接收和處理各自網絡中的通信信息,然后與其他網關進行通信,這樣就將該網絡中的節點與其他網關中的節點互連起來,最終實現跨越多個網絡的、級聯的、點對點的傳輸連接。
(2) 不同協議的網絡互連。網關在接收和處理ZigBee網絡通信信息時,不僅需要將信息發送至計算機和數據庫,也要將上位機和數據庫發送來的控制信息發送至各個節點,其中涉及到不同網絡協議之間的傳輸就需要網關進行轉換,同時網關還要過濾不良信息,確保整個網絡的安全。
基于ZigBee的圖書檢索導航系統依據模塊化的思想和系統功能要求,軟件設計可以分為定位導航模塊和終端模塊。
定位導航模塊是基于IAR System公司開發的IAR Embedded Workbench V7.20H設計的[2]。定位導航模塊主要包括盲節點、參考節點以及網關的軟件開發,在進行盲節點、參考節點以及網關軟件開發時需調用定位導航模塊相關的庫文件進行開發。圖2是盲節點和參考節點的設計流程圖,盲節點發出計算的請求,它會向附近的參考節點廣播一個信息,參考節點接收到信息后會收集此次通信獲取的信號強度值,此過程重復多次(一般采用8次),然后參考節點會將這8次信號強度平均值連同自己的坐標發送給盲節點[6]。

圖2 盲節點、參考節點設計流程圖
終端軟件的操作系統選擇Linux[7],由于手持終端選擇的處理器是ARM9系列的處理器,Linux對于該處理器來說浪費的資源過于龐大,需要對Linux系統進行裁剪后移植到手持終端上,這樣能降低成本,提高性能。導航終端應用程序是圖形用戶界面GUI(graphical user interface)程序,它借助人機交互的界面與讀者互動,其導航所選擇的最優路徑是根據導航算法、盲節點與參考節點的坐標、以及圖書館電子地圖所計算的,圖形化界面采用NOKIA公司的開發工具Qt/Embedded開發的,在開發前需要進行Bootloader移植以及驅動程序的設計[8]。終端上檢索軟件開發基于Microsoft SQL Server,采用B/S體系結構。讀者通過該軟件可以向分布在網絡上的服務器發出請求,服務器對請求進行處理后將讀者所需信息返回到瀏覽器[9]。
手持終端的定位精度直接影響到導航精度以及系統可靠性,在實際場合中,存在各種不利因素的干擾,使得定位無法達到一個理想的目標,考慮到高精度的定位設備成本較高,采用具有良好容錯性和自適應性的定位算法是很有必要的,不僅能夠很好地適應環境的變化、減少錯誤和失效發生率,還能提高系統的定位精度。
2.3.1 傳統算法
質心算法CL(lentral localization)將盲節點通信范圍內所有參考節點構成的多邊形的幾何質心作為自身的估計位置。加權質心算法WCL (weighted central localization)的主要思想是:根據參考節點到盲節點的距離來確定各參考節點的權值大小,距離越近,權值越大,反之亦然[10]。加權質心算法的公式如下:
(1)
其中,wi即各信標節點的權值。權值的選擇決定了盲節點的計算坐標,(Xi,Yi)為參考節點坐標,(Xest,Yest)是估計盲節點坐標。
2.3.2 PDR-WCL算法
PDR-WCL算法是一種加權質心算法,在該算法中認為:盲節點通信半徑內的參考節點為有效節點,即R(comm_r)為接收信號強度臨界值,comm_r處參考節點的權值為1,接收信號強度越大,權值就越大[11]。因此,選擇d0處參考節點(一般d0取1 m)和通信半徑處節點作為權值公式的基準節點,并按公式(2)計算參考節點的權值為wi
(2)
其中,R(d0)為d0處參考節點的接收信號強度,Ri為其他參考節點的接收信號強度值。
2.3.3 改進算法
分析公式(2),由于R(d0)為事先采集好的實驗數據,其值是固定的,在不同的應用環境下該值是不同的,特別是在圖書館中,由于書架等障礙物較多,導致各個區域的R(d0)不同,R(d0)無法通用。此外,R(comm_r)為接收信號強度臨界值,在實際應用過程中,臨界點并不好測量。基于以上原因,提出了一種改進的加權質心算法(PDR-WCL-I)。
改進的加權質心算法采用公式(3)計算參考節點加權權值wi
(3)
在盲節點通信范圍內所有的參考節點中,距離盲節點最遠的參考節點其RSSI最小,記為Rmin,對應的權值應為1;而距離盲節點最近的參考節點其RSSI最大,記為Rmax,對應的權值設為2。
在實際應用中,只需選取待測盲節點通信范圍內所有的參考節點的RSSI最大、最小值,根據公式(3)計算出參考節點加權權值wi,將wi代入公式(1)中,就可計算出當前盲節點的坐標位置。這種定位算法應用方便,具有實時性,定位精度更高。
目前定位算法有很多,每種算法都有其優劣性和適用場合,另外影響算法精度的因素有很多,有的算法對于特定因素(如不同比例的節點數)的抗干擾能力強,經過大量的實驗分析,選取3種算法進行了對比。實驗如下:在Matlab中對提出的改進的加權質心算法(PDR-WCL-I)、質心算法(CL)以及PDR-WCL進行了比較,具體的仿真條件為在100 m×100 m的正方形區域中均勻分布100個節點,該區域左下角坐標為(0,0),右上角的坐標為(100,100),盲節點和參考節點的通信半徑均為50 m,盲節點發射功率為0 dBm,參考距離d0=1 m的接收功率為55 dBm。在仿真測試中,所有數據點取100次實驗結果的平均值,不同比例的參考節點對定位誤差的影響曲線如圖3所示。

圖3 不同比例的參考節點對定位誤差的影響曲線
圖3為不同比例的參考節點對定位誤差的影響,橫坐標表示不同比例的參考節點,縱坐標為定位誤差L[12],定義為
(4)
式中,R即通信半徑,Nest是待定位的盲節點數,(Xi,Yi)是盲節點實際坐標值,(Xesti,Yesti)是盲節點的估計坐標值。
從圖3可以看出:參考節點比例在10%~30%的范圍內,定位誤差隨參考節點的比例增大而減小。對比3種算法,改進的加權質心算法(PDR-WCL-I)在定位精度上更高,且其定位誤差L在1.8%~2.1%。將通信半徑R=50,1.8%≤L≤2.1%代入公式(4),可以計算出
(5)
即計算出的盲節點坐標距離其實際坐標的最大誤差為0.9 m到1.05 m。
在進行定位實驗時,按圖4所示將參考節點放置在空曠地帶,為了保證可靠的發射強度和節點連通度,節點通信半徑R設定為20 m。設定下排參考節點的ID分別為0x0001、0x0003、0x0005,各自的坐標分別為(0,0)、(20,0)、(40,0);上排參考節點的ID分別為0x0002、0x0004、0x0006,各自的坐標為(10,17)、(30,17)、(50,17),單位均為m。盲節點作為移動的節點,在參考節點組成的區域內移動,分別用加權質心算法(PDR-WCL-I)和PDR-WCL對3個不同位置的盲節點的坐標進行定位計算,每個位置測量10次,取平均值作為最終的測量結果。定位結果見表1。

圖4 定位顯示界面

表1 定位結果 m
上述Matlab仿真實驗和定位實驗證明了改進的加權質心算法具有一定的可行性,就整個圖書檢索導航系統而言,將該算法應用于手持終端定位時系統的定位精度更高。具體的應用步驟如下:
(1) 在圖書館各個書架上安裝無線定位傳感器,每個傳感器的坐標固定,同時將傳感器與對應書架上的圖書進行綁定,圖書的定位是根據檢索時圖書所對應的定位傳感器位置確定的;
(2) 讀者的定位即為盲節點的定位,在定位時將無線定位傳感器的位置以及各自的RSSI值作為計算參數,并通過改進的加權質心算法進行計算;
(3) 確定了圖書和讀者的位置后,在手持終端上加載電子地圖即可實現導航。
在實際應用中,圖書館室內是多書架、多障礙物的環境,而在進行定位時的無線信號在傳輸過程中穿透能力不強,在計算坐標時會受到一定的干擾,因此,在實際應用中建議增加無線收發的功率,以及在障礙物較多的區域內應加大分布節點的密度。
經實驗室測試,采用改進的加權質心算法的圖書檢索導航系統運行良好,且實時性更強,定位的精度更高。在初步應用中,讀者在查找圖書時的查找范圍是實際書架的前一排書架到后一排書架。當然,該系統離真正意義上的智能圖書館檢索導航系統仍有一段較長的距離,找到一個成本低、定位精度高的平衡點將是下一階段的研究重點。
[1] 李峰,李書寧.基于物聯網技術的智能圖書館發展研究[J].圖書情報工作,2013,57(5):66-70.
[2] 董曉霞,龔向陽,張若林,等.基于物聯網的智能圖書館設計與實現[J].圖書館雜志,2011,30(3):65-68.
[3] 陜西科技大學.一種圖書檢索導航系統:中國,201110372802.1[P].2011.11.22.
[4] 孫發,廖文獻,潘鵬程.圖書館書架定位系統的設計與實現[J].現代圖書情報技術,2008(12):95-98.
[5] 程雪穎,孫魁明.基于Google Maps API 和 RFID 技術的圖書館書架導航系統[J].國家圖書館學刊,2012,79(1):33-37.
[6] 王小強,歐陽駿,黃寧淋.ZigBee無線傳感器網絡設計與實現[M].北京:化學工業出版社,2012.
[7] 汪玉鳳,馮澤中.基于S3C2440A和ZigBee技術的智能家居系統[J].微計算機信息,2010(29):35-36,22.
[8] 韋東山.嵌入式Linux應用開發完全手冊[M].北京:人民郵電出版社,2008.
[9] 謝艷芳.高校圖書館管理系統的設計與實現[D].上海:上海交通大學,2011.
[10] 楊新宇,孔慶茹,戴湘軍.一種改進的加權質心定位算法[J].西安交通大學學報,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.