文獻標識碼: A
文章編號: 0258-7998(2012)05-0145-04
盲人作為社會上一類特殊群體,如何讓他們能夠更安全地獨立行走[1],越來越受到世界各國學者的關注和重視。目前已經研制了多種盲人輔助路徑誘導工具,特別是近年來越來越人性化的導盲系統的研發,使盲人可以更好地享受數字生活。盲杖作為行動輔助工具被廣泛地采用,但由于行動上的諸多受限使得使用者面臨很大挑戰。現在導盲市場上電子導盲設備類較為常見,通過聲音信號進行提示的盲人語音提示系統[2],采用超聲波對障礙物、路面變化情況等進行探測。佛羅里達大學(University of Florida)Ran研制了適合室內、室外的視障者行動導盲裝置[3],由該設備測量系統探測障礙物的位置后, 通過語音提示盲人達到路徑誘導避障目的;日本山梨大學(University of Yamanashi)研制了一種智能手推車ROTA(Robotic Travel Aid)[4],該款小車高1 m,重60 kg,配備視覺傳感器和聲音傳感器,能夠識別路標、交通信號燈等,并能引導盲人穿過馬路,遇到問題會與服務中心取得聯系。但這些器具不但使用不便,而且造價也相當昂貴,不適合普通消費者使用。陳美鑾等采用超聲測距、語音提示的方式設計了智能盲人導行儀[5];賀菊方等將超聲波轉化為聲波的方式設計幫助盲人行走、識別障礙物的電子裝置[6]。基本上都屬于語音導盲范疇,存在難以克服的弱點與不足。
隨著電子計算機技術的快速發展,各種新式的、更加人性化的導盲系統逐漸涌入導盲市場,寧志剛等設計的新型盲人導行識別系統[7]利用GPS(Global Positioning System)定位、超聲測距、圖像識別方法進行語音提示導盲;何婧等設計的聽覺引導助盲系統[8];徐珠寶等基于Windows Mobile平臺下設計的盲人導航軟件系統[9]等。但這類產品也都是基于聲音達到路徑誘導功能的目的,當環境噪嘈雜中時,語音的功效可能會大大降低甚至失去作用。AMEMIYA T [10]、YAO H Y [11]、JACOB R[12]等人基于盲人具有敏銳于常人的觸覺資源研討了震動技術,并為其對觸覺資源產生的影響進行了探索。為此,本文嘗試性地將震動技術結合GPS、GIS等技術運用到Android系統的智能手機平臺上,開發研制了一種盲人路徑誘導新模式,使其具有抗噪聲干擾、反饋及時和高有效性等優點,彌補了語音導盲在特定環境下弱點和不足。在實現過程中可以與日益成熟的語音導盲集成使用,為盲人出行提供更安全、更人性化的輔助工具。
1 系統的開發平臺與開發環境
1.1 Android平臺簡介
目前智能手機的主流操作系統主要有Symbian、iPhone和Android。Android是Google于2007年底發布的基于Linux開放性內核的手機操作系統平臺,2008年9月T-Mobile正式發布了第一款Android智能手機T-Mobile G1[13]。Android與Symbian、iPhone相比具有如下顯著特點[14]:(1)真正開發;(2)應用程序相互平等;(3)應用程序之間溝通無界限。
1.2 系統開發環境
Android SDK支持多種集成開發環境IDE(Integrated Development Environment),因為Eclipse與Android SDK集成最好,而且Eclipse是完全開源的,本開發采用Eclipse與Android SDK集成環境。硬件平臺選擇運行Android操作系統和內置GPS模塊的Google Legend智能手機,軟件開發語言使用Java。
2 系統的設計與實現
2.1 系統設計目標及思路
本軟件系統的總體設計目標是給無法獲得視覺信息的盲人用戶,在行走時提供差異性震動而進行路徑誘導,使其高效、及時、準確地向正確的方向行走,具體設計如圖1所示。
2.2 系統基本框架
在分析通用導航系統的結構框架基礎上,結合本系統軟件的預期實現目標,設計并初步實現了系統的基本框架,由提取經緯度信息的GPS模塊、盲人專用小區域疊加電子地圖、地圖匹配模塊、尋徑模塊、差異震動提示模塊和人機交互界面等模塊組成。如圖2所示。
2.3 系統工作原理
系統的工作原理:主程序運行后載入地圖,根據用戶輸入的起點、終點,經查詢路徑后,首先在Google Map地圖上顯示最適路徑信息,在用戶行走的過程中,再根據所在的路徑節點信息及讀取的GPS模塊提供的當前經緯度信息,實時判斷是否偏離路徑或到達下一路口節點,震動模塊提供差異性震動進行路徑誘導,如圖3所示。
2.4 系統核心模塊開發
在整個系統的設計與開發過程中,核心模塊主要包括GPS的經緯度信息采集、在谷歌電子地圖上自制疊加地圖數據、尋徑和差異震動提示模塊。下面將對其設計與實現進行詳細介紹。
2.4.1 GPS的經緯度信息采集
本系統使用的Google Legend手機內置支持步行模式的GPS模塊,采用Serf star III芯片組,連接方式為RS232串口,通過手機上的GPS功能,用戶可以精確地確定自己的地理位置。
Android SDK提供了GPS API,利用LocationManager類的對象提供了位置服務,隨著位置的變化可以使應用程序周期性地獲取設備位置數據的更新,具體方法是為LocationManager添加一個LocationListener監聽器,用來判斷GPS坐標的改變,一旦坐標改變則調用OnLocationChanged()方法動態且實時取得當前的Location對象,在這個對象中包含了經緯度坐標值。
2.4.2 在谷歌電子地圖上自制疊加地圖數據
Android系統剛剛起步時,Google就看到了其巨大應用潛力的位置服務,并將Google地圖的成功經驗帶入Android系統中。在開發中通過申請獲取Google Map API Key把Google Map服務整合到Android平臺下。在基于Google Map的導航應用中,提供了駕車、公交、步行三種模式(不包含盲人導航模式),即便是最精細的步行地圖模式對于小區域(如某小區或校園)的數據也是很不完善的,鑒于本模式開發利用的是小區域地圖數據供系統測試,考慮到地圖表達的正確性和準確性,自制地圖數據疊加到Google Map上,以點、線以及實心圓等簡單的圖形式顯示。
2.4.3 尋徑模塊
關于尋徑問題,即最短路徑問題,目前所公認的最好的求解方法是1959年由DIJKSTRA E W提出的標號法,即經典的Dijkstra算法,該算法是目前多數系統解決最短路徑問題采用的理論基礎[15]。
在經典Dijkstra算法的基礎之上,在存儲結構方面對算法作了一定的改進,使用了一些獨特的數據結構,如前趨表和最短路徑結構體鏈表,使算法的性能有了較大的提高,能更有效地求出圖中一個頂點到其他頂點的所有最短路徑。計算最短路徑完畢后,對最短路徑經過的所有路段建立單向結構體鏈表以表示預規劃路徑,如圖4所示[9]。
2.4.4 差異震動提示模塊
鑒于常人的觸覺靈敏度是視覺的近20倍,而盲人具有敏銳于常人的觸覺資源[12]以及震動形式提示具有抗噪聲干擾、反饋及時和高有效性等優點,在開發過程中開創性地提出利用差異性震動作為路徑誘導的主要驅動力。
Android SDK提供了震動API,首先創建Vibrator對象,通過調用vibrate方法設置震動時間的長短、震動事件的周期等來實現差異性震動。主要核心代碼如下:
Vibrator = (Vibrator)getSystemService(Service.VIBRATOR_
SERVICE); //創建Vibrator對象
vibrator.vibrate(new long[]{t1,t2,t3,t4},repeat);
//調用vibrate方法設置震動(以4個參數為例)
在Vibrator構造器中有4個參數,其中t1、t3是等待多長時間啟動震動, t2、t4是震動持續時間, 單位為ms(1 000 ms=1s);repeat用來設置是否重復震動,當repeat=0時,震動會一直持續,若repeat=-1時,震動只會出現一輪。
3 系統測試與討論
為了驗證本路徑誘導新模式的實用性和可靠性,選用小區域地圖數據供系統測試,以大學校園為測試區,并自制了校園的簡單地圖來進行實地路徑誘導測試。
測試環境選在室外較為空曠地帶,當獲取的GPS定位信息滿足路徑誘導定位需求時,運行程序并載入地圖。尋徑模塊根據輸入的起始位置與目的地規劃出一條最適路徑,再根據預設的偏離路徑閾值、震動持續時間和周期,在行走過程中,當不同程度的與規劃路徑偏離或到達路口節點時,能夠以不同形式的震動提示報警,測試者能明顯地感覺到震動的差異性,從而達到測試目的。
根據設置等待時間、震動持續時間以及是否重復震動的不同來控制震動的差異性。在此設定輕微偏離路徑為短震動,嚴重偏離路徑為長震動,而到達路口節點為一般震動,以此三組為例加以討論說明。(1)短震動4個參數設置為vibrator.vibrate(new long[]{200,200,200,200},0),震動持續時間、等待時間均為200 ms;(2)一般震動4個參數設置為vibrator.vibrate(new long[]{200,500,200,500},0),震動持續時間和等待時間分別為500 ms和200 ms;(3)長震動4個參數設置為vibrator.vibrate(new long[]{200, 1 000,200,1 000},0),震動持續時間為1 000 ms,等待時間為200 ms,這三組震動主要基于震動持續時間區分,具體如圖5所示。根據測試能夠明顯地感覺到震動的差異性,較易區別。后續工作還可以考慮震動頻率大小來設計震動差異性等。
本系統實現了盲人路徑誘導所必須的基本功能,能夠有效地對兩地點間路徑進行最優規劃并提供差異性震動提示,使用戶高效、及時、準確地行走。對于日益成熟的語音導盲來說,當在極其嘈雜的環境中時,語音功效就會大打折扣甚至失去作用,而這種差異性震動路徑誘導新模式的研制則能很好地彌補語音的不足,二者的集成使用將增強盲人路徑誘導服務系統的環境適應性,增大了其市場化的潛力。
參考文獻
[1] 夏岳勇,楊峻.盲人導航儀[J].醫療設備信息,2007,22(1):111-113.
[2] KUC R. Binaural sonic electronic aid provids vibrotactile cues for landmark,reflector motion and surface texture classification[J]. IEEE Trans on Biomedical Engineering,2002,49(10):1173-1180.
[3] RAN L, HELAL S, MOORE S. Drishti: An integrated indoor/outdoor blind navigation system and service[C]. Proceedings of the second IEEE Annual Conference on Pervasive Computing and Communications, Florida ,USA,2004:23-30.
[4] MORI H, KOTANI S, SANEYOSHI K, et al. The matching fund project for practical use of robotic travel aid for the visually impaired[J].Advanced Robotics,2004,18(5):453-472.
[5] 陳美鑾,尹浩,黎飄,等.智能盲人導航儀的設計與實現[J].電子技術應用,2006,32(10):4-6.
[6] 賀菊方,潘國華,何俊峰.用于幫助盲人行走、識別障礙物的電子裝置[P].中國專利,CN2843397.2006-12-06.
[7] 寧志剛,楊保柱,楊玲,等.一種新型盲人導行識別系統的設計[J].電子技術應用,2010, 36(6) :141-143
[8] 何婧,聶旻,羅蘭,等.聽覺引導助盲系統[J].生物醫學工程學,2010,27(2):467-470.
[9] 徐珠寶,許勇,楊軍.Windows Mobile平臺下的盲人導航軟件系統開發[J].計算機與現代化,2010(10):116-119.
[10] AMEMIYA T, SUGIYAMA H. Haptic handheld wayfinder with pseudo-attraction force for pedestrians with visual impairments[C]. Proceedings of the 11th International ACM SIGACCESS Conference on Computers and Accessibility, New York,USA,2009.
[11] YAO H Y, GRANT D, CRUZ M. Perceived vibration strength in mobile devices: The effect of weight and frequency[J].Haptics,IEEE Transactions on, 2010,3(1):56-62.
[12] JACOB R, MOONEY P, CORCORAN P, et al. PhD Showcase: Haptic-GIS: Exploring the Possibilities[J].SIGSPATIAL Special,2010,3(2) : 13-18
[13] Google. Android official website[EB/OL]. [2009-11-12].http://www.android.com/.
[14] 吳亞峰,索依娜.Android核心技術與實例詳解[M].北京:電子工業出版社,2010.
[15] 嚴蔚敏,吳偉民.數據結構(第2版) [M].北京:清華大學出版社,1997.