基于Android的車載導(dǎo)航系統(tǒng)的研究與設(shè)計(jì)
利用Android操作系統(tǒng)在ARM硬件平臺(tái)上實(shí)現(xiàn)車載導(dǎo)航終端各功能模塊的整合,配合相應(yīng)的串口驅(qū)動(dòng)、液晶屏驅(qū)動(dòng)等完成指定的功能,如對(duì)接收到的數(shù)據(jù)進(jìn)行處理,計(jì)算所在位置的經(jīng)度、緯度、海拔、速度和時(shí)間等,并且采用地圖匹配算法進(jìn)行定位誤差校正,自主導(dǎo)航路徑規(guī)劃采用Dijkstra算法,實(shí)現(xiàn)最短路徑導(dǎo)航。GPS系統(tǒng)具有全天候、全球覆蓋、三維定速、定時(shí)、高精度、快速、省時(shí)、高效率、應(yīng)用廣泛、多功能等特點(diǎn),因此可廣泛應(yīng)用于陸地、海洋以及航空航天等。電子地圖的使用,直觀地將豐富的城市地圖、全國(guó)的公路網(wǎng)圖、加油站、便利商店、政府機(jī)關(guān)、餐館、醫(yī)院、停車場(chǎng)等信息同步地在LCD液晶顯示屏上顯示出來,方便中高端使用人員進(jìn)行查詢參考。
3 車載定位導(dǎo)航系統(tǒng)軟件設(shè)計(jì)
在車載導(dǎo)航系統(tǒng)軟件設(shè)計(jì)過程中,利用了Android軟件平臺(tái)的5大功能模塊,分別為Android應(yīng)用程序?qū)?、?yīng)用框架層、普通函數(shù)庫Java程序運(yùn)行環(huán)境和Linux內(nèi)核層。在應(yīng)用程序?qū)永肁ndroid的各種組件API接口開發(fā)了針對(duì)車載導(dǎo)航的GPS、電子地圖的Java應(yīng)用程序,并在內(nèi)核層提供了相應(yīng)串口以及液晶屏等其他的底層驅(qū)動(dòng)。
3.1 GPS定位模塊軟件設(shè)計(jì)
Android操作系統(tǒng)支持GPS API-LBS,可以通過集成GPS芯片或外接GPS設(shè)備來接收衛(wèi)星信號(hào),通過GPS全球定位系統(tǒng)中至少3顆衛(wèi)星和原子鐘來獲取當(dāng)前設(shè)備的坐標(biāo)數(shù)據(jù)。對(duì)于定位功能而言,穩(wěn)定性好是重中之重,而Android實(shí)現(xiàn)了這一點(diǎn)。Android提供了許多定位相關(guān)的類以及相關(guān)的函數(shù),使得開發(fā)人員可以靈活應(yīng)用。使用位置信息管理類LocationManager進(jìn)行GPS定位,使用Critcria類來實(shí)現(xiàn)自定義定位功能。當(dāng)然在設(shè)計(jì)的導(dǎo)航系統(tǒng)中,我們希望所實(shí)現(xiàn)的GPS設(shè)備盡可能省電,定位盡可能精確,并且需要獲取運(yùn)動(dòng)物體的速度。因此,設(shè)置的Criteria對(duì)象如下所示:
接著將Criteria的參數(shù)傳遞給LocationManager對(duì)象。然后啟動(dòng)GPS定位功能,LocationManager對(duì)象就開始通過自身的函數(shù)來獲取經(jīng)緯度和其他一些數(shù)據(jù)。其獲取數(shù)據(jù)的方法如下所示:
①對(duì)于經(jīng)緯度,getLatitude()返回維度數(shù)據(jù),getLongitude()返回經(jīng)度數(shù)據(jù);
②對(duì)于方向,hasBearing()判斷是否有方向數(shù)據(jù),而getBearing()則以度為單位返回其值;
③對(duì)于海拔高度,hasAltitude()判斷是否有海拔數(shù)據(jù),而getAltitude下則以m為單位返回海拔數(shù)據(jù);
④對(duì)于速度,hasSpeed()判斷是否有速度值,而getSpeed()則以m/s為單位返回速度值。
⑤最后,LocationManager對(duì)象返回的數(shù)據(jù)及時(shí)地更新在電子地圖上,并且隨著物體和時(shí)間位置的變化,開發(fā)者可以利用Location Mana ger,使用定位監(jiān)聽器Location Listener根據(jù)時(shí)間和物體移動(dòng)距離進(jìn)行數(shù)據(jù)更新。
3.2 地圖匹配算法設(shè)計(jì)
地圖匹配以某個(gè)車輛位置點(diǎn)或某段車行軌跡曲線作為待匹配樣本,以該點(diǎn)或該軌跡曲線附近的所有道路上的位置點(diǎn)或道路曲線作為模板,通過待匹配樣本或模板間的匹配,選擇相似度最高的匹配樣本或模板作為匹配結(jié)果。最后根據(jù)匹配結(jié)果校正定位模塊的定位誤差。車載導(dǎo)航系統(tǒng)中將車輛定位顯示在電子地圖上時(shí),應(yīng)該根據(jù)車輛的行駛方向,將車輛定位顯示于某一道路上。但是,由于各種誤差(主要是定位技術(shù)的誤差),電子地圖上顯示的車輛會(huì)偏離實(shí)際的道路,失去其導(dǎo)航的功能;而地圖匹配這一軟件技術(shù)能校正定位技術(shù)的誤差,使車輛位置準(zhǔn)確地顯示在電子地圖上。
評(píng)論