基于A(yíng)ndroid的車(chē)載導航系統的研究與設計
利用Android操作系統在A(yíng)RM硬件平臺上實(shí)現車(chē)載導航終端各功能模塊的整合,配合相應的串口驅動(dòng)、液晶屏驅動(dòng)等完成指定的功能,如對接收到的數據進(jìn)行處理,計算所在位置的經(jīng)度、緯度、海拔、速度和時(shí)間等,并且采用地圖匹配算法進(jìn)行定位誤差校正,自主導航路徑規劃采用Dijkstra算法,實(shí)現最短路徑導航。GPS系統具有全天候、全球覆蓋、三維定速、定時(shí)、高精度、快速、省時(shí)、高效率、應用廣泛、多功能等特點(diǎn),因此可廣泛應用于陸地、海洋以及航空航天等。電子地圖的使用,直觀(guān)地將豐富的城市地圖、全國的公路網(wǎng)圖、加油站、便利商店、政府機關(guān)、餐館、醫院、停車(chē)場(chǎng)等信息同步地在LCD液晶顯示屏上顯示出來(lái),方便中高端使用人員進(jìn)行查詢(xún)參考。
3 車(chē)載定位導航系統軟件設計
在車(chē)載導航系統軟件設計過(guò)程中,利用了Android軟件平臺的5大功能模塊,分別為Android應用程序層、應用框架層、普通函數庫Java程序運行環(huán)境和Linux內核層。在應用程序層利用Android的各種組件API接口開(kāi)發(fā)了針對車(chē)載導航的GPS、電子地圖的Java應用程序,并在內核層提供了相應串口以及液晶屏等其他的底層驅動(dòng)。
3.1 GPS定位模塊軟件設計
Android操作系統支持GPS API-LBS,可以通過(guò)集成GPS芯片或外接GPS設備來(lái)接收衛星信號,通過(guò)GPS全球定位系統中至少3顆衛星和原子鐘來(lái)獲取當前設備的坐標數據。對于定位功能而言,穩定性好是重中之重,而Android實(shí)現了這一點(diǎn)。Android提供了許多定位相關(guān)的類(lèi)以及相關(guān)的函數,使得開(kāi)發(fā)人員可以靈活應用。使用位置信息管理類(lèi)LocationManager進(jìn)行GPS定位,使用Critcria類(lèi)來(lái)實(shí)現自定義定位功能。當然在設計的導航系統中,我們希望所實(shí)現的GPS設備盡可能省電,定位盡可能精確,并且需要獲取運動(dòng)物體的速度。因此,設置的Criteria對象如下所示:

接著(zhù)將Criteria的參數傳遞給LocationManager對象。然后啟動(dòng)GPS定位功能,LocationManager對象就開(kāi)始通過(guò)自身的函數來(lái)獲取經(jīng)緯度和其他一些數據。其獲取數據的方法如下所示:
①對于經(jīng)緯度,getLatitude()返回維度數據,getLongitude()返回經(jīng)度數據;
②對于方向,hasBearing()判斷是否有方向數據,而getBearing()則以度為單位返回其值;
③對于海拔高度,hasAltitude()判斷是否有海拔數據,而getAltitude下則以m為單位返回海拔數據;
④對于速度,hasSpeed()判斷是否有速度值,而getSpeed()則以m/s為單位返回速度值。
⑤最后,LocationManager對象返回的數據及時(shí)地更新在電子地圖上,并且隨著(zhù)物體和時(shí)間位置的變化,開(kāi)發(fā)者可以利用Location Mana ger,使用定位監聽(tīng)器Location Listener根據時(shí)間和物體移動(dòng)距離進(jìn)行數據更新。
3.2 地圖匹配算法設計
地圖匹配以某個(gè)車(chē)輛位置點(diǎn)或某段車(chē)行軌跡曲線(xiàn)作為待匹配樣本,以該點(diǎn)或該軌跡曲線(xiàn)附近的所有道路上的位置點(diǎn)或道路曲線(xiàn)作為模板,通過(guò)待匹配樣本或模板間的匹配,選擇相似度最高的匹配樣本或模板作為匹配結果。最后根據匹配結果校正定位模塊的定位誤差。車(chē)載導航系統中將車(chē)輛定位顯示在電子地圖上時(shí),應該根據車(chē)輛的行駛方向,將車(chē)輛定位顯示于某一道路上。但是,由于各種誤差(主要是定位技術(shù)的誤差),電子地圖上顯示的車(chē)輛會(huì )偏離實(shí)際的道路,失去其導航的功能;而地圖匹配這一軟件技術(shù)能校正定位技術(shù)的誤差,使車(chē)輛位置準確地顯示在電子地圖上。
評論