李紫艷 劉奇付
(漯河食品職業學院,河南 漯河 462300)
基于誘導線描畫算法的車載導航系統的研究
李紫艷 劉奇付
(漯河食品職業學院,河南 漯河 462300)
車載導航系統中,D r a w是實現地圖描畫和控制的主要模塊。地圖和m a r k的描畫工作都由D r a w來實現。具有誘導方向表示功能的誘導線,我們將其作為一種特殊的m a r k來描畫。其主要功能分為:誘導線的表示控制、誘導線的數據取得、誘導線的描畫實行。
車載導航;地圖描畫;誘導方向;誘導線
汽車導航是由GPS定位功能、路徑引導功能,以及將信息通知給汽車司機的地圖顯示器構成。
本文設計的汽車導航系統是由集GPS天線和接收器于一體的GPSECU,陀螺儀傳感器,車速傳感器,DVD-ROM,DVD ECU,以及導航ECU構成的。定位技術使用了混合航法。這個混合導航法是由以下內容構成:
(1)使用推測航法,通過陀螺儀傳感器算出車輛的相對方位,通過車速傳感器算出距離。
(2)對照通過推測導航法取得的車輛軌跡和地圖DVDROM內的道路形狀數據,求得當前行駛中的道路,并和地圖匹配。
(3)防止車輛的軌跡和道路形狀數據之間的誤差被積累,致使當前位置被誘導到錯誤的道路上。
本文主要采用誘導線功能來滿足用戶要求,實現導航系統的功能。
誘導線的作用是在用戶設定目的地后,將現在地和目的地連接起來,用來提示用戶目的地在用戶的哪個方向。而這條連接線被稱為“誘導線”。對于誘導線有如下規定:
(1)誘導線用黃色表示,它以直線的形式描畫在地圖上;
(2)誘導線的長度和方向會隨著自車的行走、目的地的添加、變更和刪除而變化;
(3)用戶可以沿著誘導線找到目的地和自車Mark。
3.1 模塊的劃分
描畫模塊是實現地圖描畫和控制的主要模塊。功能是收集、整理描畫地圖所需信息和控制地圖描畫動作。描畫模塊與外部模塊通過Message進行信息交互,當描畫模塊接收到外部Message后,將其映射到相應的Event。描畫任務內部各子模塊之間的協調通過內部Event來實現。描畫任務的內部結構圖如圖1所示。

圖1 MapDraw模塊結構圖
為了實現任務之間的通信功能,ITRON提供了郵箱,我們在程序中也是主要使用消息進行任務間的通信。但在任務內,則采用Event調用方式。即為任務定義一個Msg到達的Event,將該任務發送消息變為MailBox+發送Msg到達Event。則任務可以等待Msg的到達,也可以等待其他Event,在接收到了Event后,才調用事件處理函數。
因此,誘導線的描畫可以作為一種Mark來進行管理,誘導線的生存周期與其它Mark有相似性,與目的地Mark關系緊密,在目的地存在的情況下,對誘導功能設定后,誘導線將與目的地Mark有相同的生命期。同時,目的地Mark子模塊可以提供誘導線所需要的描畫線端點數據。而自車的位置定位是一個單獨的模塊,我們也比較容易獲得誘導線的另一個端點的數據信息。
3.2 誘導線描畫算法
首先確定自車位置和目的地位置是否在顯示畫面上。
從描畫模塊獲取顯示畫面的兩個端點的坐標(在此取左下點坐標及右上點坐標),并在模塊內計算出自車與目的地在地圖中的坐標,然后根據這兩個點的坐標所定的范圍來確定自車(A)和目的地(G)是否在顯示畫面面上。
(1)兩點同時在顯示畫面中時:
將兩個點的坐標以消息模式傳給描畫模塊,由描畫模塊描畫誘導線。
(2)兩點都不在顯示畫面中時:
①根據兩點坐標計算出一條直線:ax+by+c=0;
②然后將平面對角線上兩個端點的坐標分別代入這個直線公式,結果同時小于0或者同時大于0時,則表示誘導線與顯示畫面沒有相交,反之則有相交。

圖2 誘導線所在直線與畫面不相交示例
沒有相交:不需要畫誘導線。
相交:根據兩個端點坐標和直線計算出兩個交點的坐標,將兩交點的坐標以消息模式傳給描畫模塊。

圖3 誘導線所在直線與畫面相交示例
(3)自車或者目的地有一者在畫面上時:
①根據兩點坐標計算出一條直線:ax+by+c=0;
②然后根據四個端點的坐標求出相交點的坐標將兩點的坐標以消息模式傳給描畫模塊。

圖4 誘導線所在直線與畫面相交示例
3.3 誘導線的描畫
誘導線的描畫是通過GuideLine_Draw()函數實現的,函數流程圖如圖5:

圖5 GuideLine_Draw()函數流程圖
3.4 誘導線描畫算法實現
對描畫數據有效性進行檢測,判定描畫數據的合法性,需要顯示平面的左下點坐標和右上點坐標,然后根據自車坐標與目的地坐標確定的直線與平面坐標邊的交點獲得實際描畫線端點坐標數據。在實際的誘導線描畫判定及處理過程中,我們將流程圖輸入數據判斷是否有效與誘導線的實行一起處理。
整個描畫模塊任務與其它任務的通信是通過消息來傳達的,然后將收到的消息映射為相應事件來處理。所以,將誘導線的描畫作為一個事件,并將其放到Mark描畫模塊,我們只需要添加一個事件的消息映射,其它方面都不需要作改動,就可以完成軟件的功能擴展。
最后,經過編碼、單體測試、集成測試和系統測試后,完成誘導線功能。
車載導航系統是實時嵌入式系統的又一成功應用。隨著計算機的發展和應用的普及,實時計算機系統已經在工業、交通、能源、科學學習和科學實驗、國防等各個領域發揮著極其重要的作用。車載導航系統給人們的出行帶來各種便利,極大地改變著人們的生活方式。
[1]劉奇付,李紫艷.艦船磁定位算法實現及計算分析[J].艦船科學技術,2 0 16,3 8(2):10 7-110.
[2]李紫艷,劉奇付.基于VT K的圖像可視化研究[J].信息系統工程,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-),女,河南漯河人,碩士,高校講師,研究方向為軟件技術、數據庫技術。
漯河食品職業學院2 0 15年重點科研攻關項目,項目編號:2 0 150 2 0 10。