李紫艷 劉奇付
(漯河食品職業(yè)學(xué)院,河南 漯河 462300)
基于誘導(dǎo)線描畫(huà)算法的車(chē)載導(dǎo)航系統(tǒng)的研究
李紫艷 劉奇付
(漯河食品職業(yè)學(xué)院,河南 漯河 462300)
車(chē)載導(dǎo)航系統(tǒng)中,D r a w是實(shí)現(xiàn)地圖描畫(huà)和控制的主要模塊。地圖和m a r k的描畫(huà)工作都由D r a w來(lái)實(shí)現(xiàn)。具有誘導(dǎo)方向表示功能的誘導(dǎo)線,我們將其作為一種特殊的m a r k來(lái)描畫(huà)。其主要功能分為:誘導(dǎo)線的表示控制、誘導(dǎo)線的數(shù)據(jù)取得、誘導(dǎo)線的描畫(huà)實(shí)行。
車(chē)載導(dǎo)航;地圖描畫(huà);誘導(dǎo)方向;誘導(dǎo)線
汽車(chē)導(dǎo)航是由GPS定位功能、路徑引導(dǎo)功能,以及將信息通知給汽車(chē)司機(jī)的地圖顯示器構(gòu)成。
本文設(shè)計(jì)的汽車(chē)導(dǎo)航系統(tǒng)是由集GPS天線和接收器于一體的GPSECU,陀螺儀傳感器,車(chē)速傳感器,DVD-ROM,DVD ECU,以及導(dǎo)航ECU構(gòu)成的。定位技術(shù)使用了混合航法。這個(gè)混合導(dǎo)航法是由以下內(nèi)容構(gòu)成:
(1)使用推測(cè)航法,通過(guò)陀螺儀傳感器算出車(chē)輛的相對(duì)方位,通過(guò)車(chē)速傳感器算出距離。
(2)對(duì)照通過(guò)推測(cè)導(dǎo)航法取得的車(chē)輛軌跡和地圖DVDROM內(nèi)的道路形狀數(shù)據(jù),求得當(dāng)前行駛中的道路,并和地圖匹配。
(3)防止車(chē)輛的軌跡和道路形狀數(shù)據(jù)之間的誤差被積累,致使當(dāng)前位置被誘導(dǎo)到錯(cuò)誤的道路上。
本文主要采用誘導(dǎo)線功能來(lái)滿(mǎn)足用戶(hù)要求,實(shí)現(xiàn)導(dǎo)航系統(tǒng)的功能。
誘導(dǎo)線的作用是在用戶(hù)設(shè)定目的地后,將現(xiàn)在地和目的地連接起來(lái),用來(lái)提示用戶(hù)目的地在用戶(hù)的哪個(gè)方向。而這條連接線被稱(chēng)為“誘導(dǎo)線”。對(duì)于誘導(dǎo)線有如下規(guī)定:
(1)誘導(dǎo)線用黃色表示,它以直線的形式描畫(huà)在地圖上;
(2)誘導(dǎo)線的長(zhǎng)度和方向會(huì)隨著自車(chē)的行走、目的地的添加、變更和刪除而變化;
(3)用戶(hù)可以沿著誘導(dǎo)線找到目的地和自車(chē)Mark。
3.1 模塊的劃分
描畫(huà)模塊是實(shí)現(xiàn)地圖描畫(huà)和控制的主要模塊。功能是收集、整理描畫(huà)地圖所需信息和控制地圖描畫(huà)動(dòng)作。描畫(huà)模塊與外部模塊通過(guò)Message進(jìn)行信息交互,當(dāng)描畫(huà)模塊接收到外部Message后,將其映射到相應(yīng)的Event。描畫(huà)任務(wù)內(nèi)部各子模塊之間的協(xié)調(diào)通過(guò)內(nèi)部Event來(lái)實(shí)現(xiàn)。描畫(huà)任務(wù)的內(nèi)部結(jié)構(gòu)圖如圖1所示。
圖1 MapDraw模塊結(jié)構(gòu)圖
為了實(shí)現(xiàn)任務(wù)之間的通信功能,ITRON提供了郵箱,我們?cè)诔绦蛑幸彩侵饕褂孟⑦M(jìn)行任務(wù)間的通信。但在任務(wù)內(nèi),則采用Event調(diào)用方式。即為任務(wù)定義一個(gè)Msg到達(dá)的Event,將該任務(wù)發(fā)送消息變?yōu)镸ailBox+發(fā)送Msg到達(dá)Event。則任務(wù)可以等待Msg的到達(dá),也可以等待其他Event,在接收到了Event后,才調(diào)用事件處理函數(shù)。
因此,誘導(dǎo)線的描畫(huà)可以作為一種Mark來(lái)進(jìn)行管理,誘導(dǎo)線的生存周期與其它Mark有相似性,與目的地Mark關(guān)系緊密,在目的地存在的情況下,對(duì)誘導(dǎo)功能設(shè)定后,誘導(dǎo)線將與目的地Mark有相同的生命期。同時(shí),目的地Mark子模塊可以提供誘導(dǎo)線所需要的描畫(huà)線端點(diǎn)數(shù)據(jù)。而自車(chē)的位置定位是一個(gè)單獨(dú)的模塊,我們也比較容易獲得誘導(dǎo)線的另一個(gè)端點(diǎn)的數(shù)據(jù)信息。
3.2 誘導(dǎo)線描畫(huà)算法
首先確定自車(chē)位置和目的地位置是否在顯示畫(huà)面上。
從描畫(huà)模塊獲取顯示畫(huà)面的兩個(gè)端點(diǎn)的坐標(biāo)(在此取左下點(diǎn)坐標(biāo)及右上點(diǎn)坐標(biāo)),并在模塊內(nèi)計(jì)算出自車(chē)與目的地在地圖中的坐標(biāo),然后根據(jù)這兩個(gè)點(diǎn)的坐標(biāo)所定的范圍來(lái)確定自車(chē)(A)和目的地(G)是否在顯示畫(huà)面面上。
(1)兩點(diǎn)同時(shí)在顯示畫(huà)面中時(shí):
將兩個(gè)點(diǎn)的坐標(biāo)以消息模式傳給描畫(huà)模塊,由描畫(huà)模塊描畫(huà)誘導(dǎo)線。
(2)兩點(diǎn)都不在顯示畫(huà)面中時(shí):
①根據(jù)兩點(diǎn)坐標(biāo)計(jì)算出一條直線:ax+by+c=0;
②然后將平面對(duì)角線上兩個(gè)端點(diǎn)的坐標(biāo)分別代入這個(gè)直線公式,結(jié)果同時(shí)小于0或者同時(shí)大于0時(shí),則表示誘導(dǎo)線與顯示畫(huà)面沒(méi)有相交,反之則有相交。
圖2 誘導(dǎo)線所在直線與畫(huà)面不相交示例
沒(méi)有相交:不需要畫(huà)誘導(dǎo)線。
相交:根據(jù)兩個(gè)端點(diǎn)坐標(biāo)和直線計(jì)算出兩個(gè)交點(diǎn)的坐標(biāo),將兩交點(diǎn)的坐標(biāo)以消息模式傳給描畫(huà)模塊。
圖3 誘導(dǎo)線所在直線與畫(huà)面相交示例
(3)自車(chē)或者目的地有一者在畫(huà)面上時(shí):
①根據(jù)兩點(diǎn)坐標(biāo)計(jì)算出一條直線:ax+by+c=0;
②然后根據(jù)四個(gè)端點(diǎn)的坐標(biāo)求出相交點(diǎn)的坐標(biāo)將兩點(diǎn)的坐標(biāo)以消息模式傳給描畫(huà)模塊。
圖4 誘導(dǎo)線所在直線與畫(huà)面相交示例
3.3 誘導(dǎo)線的描畫(huà)
誘導(dǎo)線的描畫(huà)是通過(guò)GuideLine_Draw()函數(shù)實(shí)現(xiàn)的,函數(shù)流程圖如圖5:
圖5 GuideLine_Draw()函數(shù)流程圖
3.4 誘導(dǎo)線描畫(huà)算法實(shí)現(xiàn)
對(duì)描畫(huà)數(shù)據(jù)有效性進(jìn)行檢測(cè),判定描畫(huà)數(shù)據(jù)的合法性,需要顯示平面的左下點(diǎn)坐標(biāo)和右上點(diǎn)坐標(biāo),然后根據(jù)自車(chē)坐標(biāo)與目的地坐標(biāo)確定的直線與平面坐標(biāo)邊的交點(diǎn)獲得實(shí)際描畫(huà)線端點(diǎn)坐標(biāo)數(shù)據(jù)。在實(shí)際的誘導(dǎo)線描畫(huà)判定及處理過(guò)程中,我們將流程圖輸入數(shù)據(jù)判斷是否有效與誘導(dǎo)線的實(shí)行一起處理。
整個(gè)描畫(huà)模塊任務(wù)與其它任務(wù)的通信是通過(guò)消息來(lái)傳達(dá)的,然后將收到的消息映射為相應(yīng)事件來(lái)處理。所以,將誘導(dǎo)線的描畫(huà)作為一個(gè)事件,并將其放到Mark描畫(huà)模塊,我們只需要添加一個(gè)事件的消息映射,其它方面都不需要作改動(dòng),就可以完成軟件的功能擴(kuò)展。
最后,經(jīng)過(guò)編碼、單體測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試后,完成誘導(dǎo)線功能。
車(chē)載導(dǎo)航系統(tǒng)是實(shí)時(shí)嵌入式系統(tǒng)的又一成功應(yīng)用。隨著計(jì)算機(jī)的發(fā)展和應(yīng)用的普及,實(shí)時(shí)計(jì)算機(jī)系統(tǒng)已經(jīng)在工業(yè)、交通、能源、科學(xué)學(xué)習(xí)和科學(xué)實(shí)驗(yàn)、國(guó)防等各個(gè)領(lǐng)域發(fā)揮著極其重要的作用。車(chē)載導(dǎo)航系統(tǒng)給人們的出行帶來(lái)各種便利,極大地改變著人們的生活方式。
[1]劉奇付,李紫艷.艦船磁定位算法實(shí)現(xiàn)及計(jì)算分析[J].艦船科學(xué)技術(shù),2 0 16,3 8(2):10 7-110.
[2]李紫艷,劉奇付.基于VT K的圖像可視化研究[J].信息系統(tǒng)工程,2 0 14(7):13 6-13 8.
Research of Vehicle Navigation System Based on Induced Wire Drawing
Li Ziyan Liu Qifu
(Luohe Food Vocational College,Luohe 462300,Henan)
In vehicle navigation system,Draw is the main part of the map drawing and control.Map and mark drawing is realized by Draw.The induced wire shows the direction.We use it as a special mark drawing.Its main functions are induced wire control,data acquisition of induced wire and induced wire drawing practice.
vehicle navigation;map drawing;induced orientation;induced wire
U495
A
1008-6609(2016)11-0032-03
李紫艷(19 79-),女,河南漯河人,碩士,高校講師,研究方向?yàn)檐浖夹g(shù)、數(shù)據(jù)庫(kù)技術(shù)。
漯河食品職業(yè)學(xué)院2 0 15年重點(diǎn)科研攻關(guān)項(xiàng)目,項(xiàng)目編號(hào):2 0 150 2 0 10。