摘 要:目前國(guó)內(nèi)各大高校圖書館由于館內(nèi)面積大,書籍分布分散,普遍存在人工查詢低效和找書困難的問(wèn)題。對(duì)此,提出了利用無(wú)線技術(shù)自動(dòng)導(dǎo)航系統(tǒng)取代原來(lái)的人工查詢系統(tǒng)的解決方案。本系統(tǒng)利用藍(lán)牙定位技術(shù),用藍(lán)牙信號(hào)發(fā)射點(diǎn)全面覆蓋圖書館,采用改進(jìn)的TOA算法,并綜合運(yùn)用Web以及數(shù)據(jù)庫(kù)作為后臺(tái)支持,實(shí)現(xiàn)了讀者使用手持設(shè)備搜索書籍并自動(dòng)導(dǎo)航到書籍所在位置的一體化功能。通過(guò)實(shí)地測(cè)試,系統(tǒng)可以在一定程度上輔助讀者,提高尋書效率。
關(guān)鍵詞:藍(lán)牙;TOA算法;定位;廣度優(yōu)先搜索算法
中圖分類號(hào):TN919 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004373X(2008)1710803
Auto-navigation System for Library Based on Bluetooth Positioning and TOA Algorithm
NING Zi,ZHANG Yuzhe
(East China Normal University,Shanghai,200241,China)
Abstract:Owning to the large area of library and decentralized distribution of books,the problems of low efficiency by mankind and difficulty in finding out where the book is,exist in most domestic library of universities.Therefore,a bluetooth auto-navigation system for library to replace the original artificial query system is proposed.This auto-navigation system uses bluetooth positioning technology,and bluetooth signal transmission points comprehensively coverage Library.Meanwhile,the adoption of improved TOA algorithm,and the integrated use of Web and database as a back-office support realizes the integrative function for readers to search books with handheld devices and automatically navigation.Through tests,the system can assist readers to improve the efficiency of searching to a certain extend.
Keywords:bluetooth;TOA algorithm;location;heuristic breadth-first-search
近年來(lái),隨著無(wú)線技術(shù)和移動(dòng)通信的飛速發(fā)展,以及Bluetooth,Wifi,GPRS等無(wú)線技術(shù)的日趨成熟,同時(shí),各種無(wú)線定位技術(shù)的出現(xiàn),極大的方便了生活,推進(jìn)了社會(huì)的發(fā)展。藍(lán)牙技術(shù) (Bluetooth)作為一種短距離無(wú)線通訊技術(shù),其實(shí)質(zhì)內(nèi)容是為固定設(shè)備或移動(dòng)設(shè)備之間的通信環(huán)境建立通用的無(wú)線電空中接口(Radio Air Interface),將通信技術(shù)與計(jì)算機(jī)技術(shù)進(jìn)一步結(jié)合起來(lái),使各種3C設(shè)備在沒(méi)有電線或電纜相互連接的情況下,能在近距離范圍內(nèi)實(shí)現(xiàn)相互通信或操作,實(shí)現(xiàn)數(shù)據(jù)共享。利用藍(lán)牙設(shè)備近距離范圍內(nèi)相互通信的特性,結(jié)合TOA算法,并全面考慮實(shí)際應(yīng)用中信號(hào)衰減、障礙物阻隔等情況,就可以實(shí)現(xiàn)較為精準(zhǔn)的藍(lán)牙定位系統(tǒng),再進(jìn)一步結(jié)合Web、數(shù)據(jù)庫(kù)等后臺(tái)支持,可以開發(fā)一套圖書館藍(lán)牙自動(dòng)導(dǎo)航系統(tǒng),以實(shí)現(xiàn)移動(dòng)終端書籍自助查詢與導(dǎo)航功能。
1 系統(tǒng)結(jié)構(gòu)及功能
圖書館書籍定位系統(tǒng)由三部分組成:安裝在用戶手機(jī)上的定位軟件(客戶端),后臺(tái)服務(wù)器以及分布在圖書館里的藍(lán)牙信號(hào)發(fā)射點(diǎn),如圖1所示。
客戶端實(shí)現(xiàn)了用戶在手持設(shè)備無(wú)線查詢書籍以及用戶的定位導(dǎo)航功能。用戶首次登錄軟件后,軟件通過(guò)無(wú)線網(wǎng)絡(luò)自動(dòng)從后臺(tái)數(shù)據(jù)庫(kù)下載地形和藍(lán)牙點(diǎn)分布的XML文件,并根據(jù)文件描述繪制出圖書館地形圖。之后用戶可以在書籍查詢界面以書名,作者,ISBN方式模糊查詢所需要的書籍。用戶選擇書籍后,軟件將所選書籍的位置標(biāo)注在地圖上,同時(shí)開啟藍(lán)牙,檢測(cè)周邊藍(lán)牙信號(hào)點(diǎn)信號(hào)強(qiáng)度并進(jìn)行定位。定位成功后軟件自動(dòng)計(jì)算用戶從當(dāng)前位置到書籍位置的最佳路徑,并標(biāo)注在地圖上。同時(shí),在用戶找書的過(guò)程中,系統(tǒng)會(huì)實(shí)時(shí)測(cè)量用戶所在位置,實(shí)時(shí)更新最佳路徑,引導(dǎo)用戶找到所需書籍。
后臺(tái)服務(wù)器儲(chǔ)存書籍詳細(xì)信息、圖書館地形圖以及各個(gè)藍(lán)牙信號(hào)發(fā)射點(diǎn)分布情況。并及時(shí)響應(yīng)用戶的不同請(qǐng)求。
藍(lán)牙信號(hào)發(fā)射點(diǎn)分布在整個(gè)圖書館內(nèi),信號(hào)范圍覆蓋整個(gè)圖書館,每個(gè)藍(lán)牙信號(hào)發(fā)射點(diǎn)有自己惟一的ID標(biāo)識(shí)號(hào),當(dāng)用戶定位時(shí)通過(guò)標(biāo)識(shí)號(hào)即可從配置文件中知道此藍(lán)牙信號(hào)發(fā)射點(diǎn)的位置。
通過(guò)三個(gè)子系統(tǒng)的分工合作,系統(tǒng)實(shí)現(xiàn)了查詢定位導(dǎo)航一體化的高效圖書查詢功能。
圖1 系統(tǒng)架構(gòu)圖
2 定位系統(tǒng)軟件設(shè)計(jì)
2.1 定位系統(tǒng)客戶端軟件設(shè)計(jì)
軟件采用Windows Mobile 6.0作為開發(fā)平臺(tái),多普達(dá)838手機(jī)作為軟件測(cè)試平臺(tái),使用C#編程實(shí)現(xiàn)。目標(biāo)手機(jī)內(nèi)置藍(lán)牙協(xié)議棧,直接調(diào)用Winsock API搜索周圍藍(lán)牙設(shè)備并得到信號(hào)強(qiáng)度信息。軟件主要分為四部分:書籍搜索部分;地圖繪制引擎部分;藍(lán)牙定位部分;路徑計(jì)算部分。
書籍搜索 用戶在搜索界面里(圖2)選擇搜索條件(書名,ISBN,作者)輸入關(guān)鍵字進(jìn)行搜索,數(shù)據(jù)包利用HTTP協(xié)議通過(guò)無(wú)線網(wǎng)絡(luò)以POST請(qǐng)求方式發(fā)送到服務(wù)器,服務(wù)器解析出關(guān)鍵字(Query Word)后查詢數(shù)據(jù)庫(kù)得到書籍詳細(xì)信息,并序列化(Serialization)為標(biāo)準(zhǔn)XML文檔通過(guò)HTTP協(xié)議返回到用戶手機(jī)。軟件反序列化(Deserialization)這些信息并呈現(xiàn)給用戶。
地圖繪制引擎 在獲得圖書館地形描述的XML數(shù)據(jù)后,繪制引擎解析文檔中的地形輪廓、書架位置以及藍(lán)牙點(diǎn)位置數(shù)據(jù),當(dāng)用戶選擇地圖界面時(shí),繪制引擎生成地圖,并將人物當(dāng)前位置、計(jì)算好的最佳路徑繪制到地圖上,最后顯示在PictureBox中(圖3)。
藍(lán)牙定位 定位系統(tǒng)每隔2 min搜索周圍藍(lán)牙信號(hào)發(fā)射點(diǎn),并把ID號(hào)有效的10個(gè)藍(lán)牙信號(hào)發(fā)射點(diǎn)存入隊(duì)列中。每10 s從隊(duì)列中選取6個(gè)點(diǎn)并且三三組合測(cè)試信號(hào)強(qiáng)度并利用TOA算法估算出用戶所在位置,最后從得到的20個(gè)點(diǎn)中計(jì)算中心位置作為當(dāng)前用戶位置。
路徑計(jì)算 系統(tǒng)得到用戶位置后,路徑計(jì)算系統(tǒng)通過(guò)啟發(fā)式搜索算法計(jì)算出用戶到書籍的最短路徑,并儲(chǔ)存在內(nèi)存中。
圖2 用戶搜索界面 圖3 導(dǎo)航界面
2.2 定位系統(tǒng)服務(wù)器端軟件設(shè)計(jì)
服務(wù)器端使用Asp.net 開發(fā),具備以下3項(xiàng)主要功能:在線書籍查詢;在線幫助服務(wù);客戶端配置更新。
當(dāng)接收到客戶端書籍查詢請(qǐng)求時(shí),在線書籍查詢根據(jù)請(qǐng)求類型查詢數(shù)據(jù)庫(kù)系統(tǒng)并以XML文檔的形式返回結(jié)果。書籍信息包括書名,作者,所在的書架,這樣通過(guò)書架位置就可以大致確定書的確切位置。所有數(shù)據(jù)利用無(wú)線網(wǎng)絡(luò)傳輸,極大地方便了用戶。
圖書館地形信息以及藍(lán)牙點(diǎn)分布圖的數(shù)據(jù)儲(chǔ)存在數(shù)據(jù)庫(kù)中。地形信息包括圖書館的形狀以及各個(gè)書架的位置、長(zhǎng)度,以數(shù)據(jù)庫(kù)表的形式存放。藍(lán)牙信號(hào)發(fā)射點(diǎn)分布圖包括每個(gè)藍(lán)牙信號(hào)發(fā)射點(diǎn)位置,惟一標(biāo)識(shí)符(ID)。手機(jī)客戶端可以通過(guò)客戶端自動(dòng)更新模塊獲得這些信息。
3 關(guān)鍵技術(shù)的設(shè)計(jì)與研究
3.1 藍(lán)牙定位原理
3.1.1 傳統(tǒng)測(cè)量算法
(1) 通過(guò)傳播時(shí)間測(cè)量方法
它通過(guò)在已知傳播速度的情況下,無(wú)線電波傳播的距離與它傳播的時(shí)間成正比。但上述方法存在兩個(gè)問(wèn)題,影響了方法的使用性:
時(shí)鐘精度 因?yàn)樗{(lán)牙信號(hào)的傳播速度很快,又考慮到各種延遲,所以為了減小測(cè)量誤差必須使用高精度的時(shí)鐘,時(shí)間單位采用ns,這對(duì)硬件的要求過(guò)高,不實(shí)用。
時(shí)鐘同步 參與同一個(gè)定位過(guò)程的參考點(diǎn)之間必須保證時(shí)鐘的同步,這樣才能保證測(cè)量結(jié)果的正確性和精度。
(2) 信號(hào)衰減測(cè)量方法
在理想的傳播環(huán)境下,無(wú)線信號(hào)的衰減與1/r2成正比(其中r為傳播距離)。但實(shí)際上,無(wú)線信號(hào)在空間傳播時(shí)能量的衰減是多種因素共同作用的結(jié)果,而不單單與傳播距離有關(guān)。在一個(gè)地形地物較為復(fù)雜的環(huán)境中,無(wú)線信號(hào)傳播時(shí)的衰減會(huì)受到反射、折射、多徑效應(yīng)等多種因素的影響,所以這種利用能量衰減測(cè)量距離的方法不如傳播時(shí)間測(cè)量方法精度高。
3.1.2 改進(jìn)的TOA算法
從可行性和精度兩個(gè)方面綜合考慮之后,我們決定采用依靠經(jīng)驗(yàn)的定位方法:它同樣是基于無(wú)線電波能量來(lái)定位的,不同的是它不是根據(jù)能量衰減與距離平方的正比關(guān)系來(lái)計(jì)算距離,而是通過(guò)一個(gè)數(shù)據(jù)庫(kù)來(lái)記錄一定數(shù)量的參考位置的信號(hào)強(qiáng)度,然后把待測(cè)物體檢測(cè)到的信號(hào)強(qiáng)度與之相比而得到待測(cè)物體的信號(hào)強(qiáng)度。如果參考位置足夠多的話,這種方法具有很好的精度,并且不受實(shí)際地理位置的影響,因?yàn)閰⒖嘉恢谜菑膶?shí)際的測(cè)量中來(lái)的。這種方法的一個(gè)缺陷是它要求每次實(shí)施時(shí)要測(cè)量大量的參考位置上的信號(hào)強(qiáng)度,并且隨著時(shí)間推移,地理環(huán)境必定會(huì)有所改變,這時(shí)又要對(duì)所有的參考位置重新進(jìn)行測(cè)量。
如圖4所示,系統(tǒng)從檢測(cè)到的有效藍(lán)牙點(diǎn)(通過(guò)ID判斷)選取三個(gè)點(diǎn)利用圖3所示方法定位。我們檢測(cè)到的信號(hào)強(qiáng)度值在263~230,隨著距離增大而減小,但不是線性變化。通過(guò)數(shù)據(jù)分析發(fā)現(xiàn)0~3 m,3~6 m,6~9 m區(qū)間內(nèi)可以近似成三個(gè)線性區(qū)間。于是分別測(cè)量并統(tǒng)計(jì)了一些藍(lán)牙點(diǎn)0,3,6,9 m的信號(hào)強(qiáng)度值,用來(lái)輔助計(jì)算。藍(lán)牙信號(hào)強(qiáng)度數(shù)據(jù)擬合結(jié)果如圖5所示。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文