張琳琳,黃圣國,陶 誠
(南京航空航天大學(xué) 民航學(xué)院,南京 210016)
近年來,隨著世界經(jīng)濟(jì)的高速、穩(wěn)定發(fā)展,從事民用航空的飛機(jī)逐年增多,機(jī)場內(nèi)部的飛機(jī)、車輛和人員數(shù)量以驚人的速度增長,機(jī)場場面安全受到了嚴(yán)重的威脅.在機(jī)場場面,經(jīng)常出現(xiàn)車輛與飛機(jī)、車輛與車輛的碰撞沖突,跑道入侵也不斷增長.在大霧等惡劣天氣條件下,目視指揮十分艱難,情況更為嚴(yán)重.目前,為了提高機(jī)場場面的安全,國際上的通常做法是建立機(jī)場場面的飛機(jī)(車輛)監(jiān)視系統(tǒng)來進(jìn)行科學(xué)化的輔助管理,從而擺脫以往的目視指揮方法,更加適應(yīng)惡劣天氣情況下的工作[1].
在場面監(jiān)視系統(tǒng)中,車載終端是整個(gè)場面監(jiān)視系統(tǒng)的移動(dòng)終端,安裝在場面的移動(dòng)目標(biāo)上,接收來自監(jiān)控中心的指令和數(shù)據(jù)信息.根據(jù)車載電子地圖顯示的機(jī)場場面情況,提供提示和告警信息.本文介紹了以 ARM微處理器為平臺(tái)的嵌入式車載終端的軟硬件設(shè)計(jì),基于 Qt/Embedded Linux的電子地圖實(shí)現(xiàn)以及沿路徑的告警算法.
車載終端通過差分 GPS(DGPS)接收機(jī)獲取自身的高精度定位信息,包括位置、速度和航向等;采用 GPRS向監(jiān)控中心發(fā)送車輛定位信息;需要時(shí),通過 GPRS向監(jiān)控中心發(fā)送“指令請求”信息(如:報(bào)告、路徑規(guī)劃、求助等信息);接收來自監(jiān)控中心的控制指令和數(shù)據(jù),更新地圖上的指定路徑、受控或限制區(qū)域;在終端電子地圖上顯示車輛位置、指定路徑以及沖突區(qū)域(沖突點(diǎn)、停止線和禁行區(qū)等);通過車載終端系統(tǒng)軟件解析判斷,對可能發(fā)生的和已經(jīng)發(fā)生的沖突以多種方式(文本、聲音以及語言)向司乘人員提供提示或告警[2].
車載終端由硬件和軟件 2部分組成,如圖1.硬件包括 GPS模塊、GPRS模塊、人機(jī)交互模塊和嵌入式處理模塊.其中,人機(jī)交互模塊由顯示屏、按鍵、蜂鳴器以及音頻輸出組成.顯示屏顯示電子地圖、車輛的位置、指定路徑、沖突區(qū)域以及文本提示和告警信息.按鍵的作用包括復(fù)位、地圖縮放與定位、屏幕鎖定等.蜂鳴器發(fā)出開機(jī)提示音以及沖突告警,而音頻輸出用于語音告警提示.終端的軟件基于嵌入式操作系統(tǒng),可以降低開發(fā)難度.
圖1 車載終端的軟硬件組成
基于低成本、高性能的要求,車載終端選擇了Samsung公司 ARM 9系列的 S3C2410微處理器芯片.該芯片是基于 ARM920T內(nèi)核的 16/32位 RISC嵌入式微處理器,集成了一個(gè)具有日歷功能的RTC和具有 PLL(MPLL和 UPLL)的芯片時(shí)鐘發(fā)生器,工作頻率最高可以達(dá)到 203 MHz.這個(gè)頻率能夠使其輕松運(yùn)行在 WinCE、Linux等嵌入式操作系統(tǒng)上以及進(jìn)行較復(fù)雜的信息處理.而且 S3C2410提供了豐富的標(biāo)準(zhǔn)接口資源,可以方便與其他功能模塊連接.
車載終端的硬件結(jié)構(gòu)如圖2.其中,S3C2410通過 UART0連接 GPRS模塊—H7118 GPRSDTU向監(jiān)控中心發(fā)送“指令請求”,并實(shí)時(shí)接收來自監(jiān)控中心的控制指令和數(shù)據(jù)信息;DGPS接收機(jī)—JNS100 GG輸出高精度定位信息給 UART1以傳送至 S3C2410;MAX3232的作用是實(shí)現(xiàn) TTL/CMOS與 RS-232電平信號之間的轉(zhuǎn)換;音頻輸出用于語音告警,由 IIS信號連接音頻解碼芯片 UDA1341構(gòu)成;顯示屏與 LCD接口連接,顯示電子地圖;蜂鳴器由 PWM信號進(jìn)行驅(qū)動(dòng),發(fā)出指定頻率的提示音;按鍵作為外部中斷源與 S3C2410連接,實(shí)現(xiàn)地圖縮放等功能.
終端軟件的嵌入式操作系統(tǒng)選擇 Linux,一方面是因?yàn)槠淇梢苑€(wěn)定運(yùn)行在 ARM微處理器上,并為 ARM直接提供網(wǎng)絡(luò)支持和典型的串口驅(qū)動(dòng);另一方面 Linux開放源代碼,系統(tǒng)具有可裁剪性,可以極大的降低對系統(tǒng)資源的使用,從而滿足低成本、高性能的要求[3].見圖2.
圖2 車載終端的硬件結(jié)構(gòu)圖
GUI(圖形用戶界面)開發(fā)平臺(tái)采用由挪威TrollTech公司出品 Qt/Embedded Linux(也稱 Qtopia Core).它是一個(gè)跨平臺(tái)的 C++圖形用戶界面庫,是該公司為嵌入式優(yōu)化過的 Qt版本,加入了嵌入式編程所需的類和工具,具有豐富的 API,可以穩(wěn)定的運(yùn)行在 Linux的任何硬件上,包括 ARM.Qt/Embedded Linux不同于其他的嵌入式 Linux GUI開發(fā)平臺(tái),它實(shí)現(xiàn)的是自己的窗口系統(tǒng),可裁剪,為嵌入式系統(tǒng)設(shè)計(jì)大大節(jié)省了存儲(chǔ)和內(nèi)存.其提供的多線程技術(shù)以及 signal/slot(信號/槽)事件信號傳遞機(jī)制為嵌入式編程提供了很大的方便[4].
終端應(yīng)用程序采用模塊化設(shè)計(jì),包括屏幕顯示模塊、音頻告警模塊、數(shù)據(jù)處理模塊、告警算法模塊、按鍵中斷接收模塊、按鍵中斷處理模塊、GPS數(shù)據(jù)接收模塊以及 GPRS數(shù)據(jù)收發(fā)模塊.各個(gè)模塊之間的關(guān)系如圖3.
圖3 應(yīng)用程序結(jié)構(gòu)圖
在整個(gè)系統(tǒng)中,司乘人員根據(jù)車載電子地圖顯示的機(jī)場場面道路情況以及告警信息,作出相應(yīng)的反應(yīng)操作.因此,車載電子地圖是司乘人員與系統(tǒng)進(jìn)行交互的重要工具.
3.3.1 地圖數(shù)據(jù)的來源
繪制電子地圖的首要條件是獲取相關(guān)的地圖數(shù)據(jù).其來源是通過 DGPS接收機(jī)靜態(tài)測量,表示為經(jīng)緯度坐標(biāo).由于 GPS衛(wèi)星定位系統(tǒng)的坐標(biāo)系基準(zhǔn)為 WGS-84坐標(biāo)系,而該坐標(biāo)系是一種地心坐標(biāo)系,因此需要將測得的經(jīng)緯度坐標(biāo)轉(zhuǎn)換為平面直角坐標(biāo)系下的坐標(biāo)[5].本設(shè)計(jì)首先采用 UTM(U-niversal Transverse Mercator,通用墨卡托)投影將經(jīng)緯度坐標(biāo)轉(zhuǎn)換為平面直角坐標(biāo),再根據(jù)顯示屏的窗口范圍將平面直角坐標(biāo)轉(zhuǎn)換為屏幕坐標(biāo),從而獲得繪制電子地圖所需的地圖數(shù)據(jù).
3.3.2 電子地圖的繪制
基于車載終端性能的考慮,車載電子地圖不同于監(jiān)控中心的電子地圖,為簡單的道路地圖.其中道路由折線表示,因此車載電子地圖的繪制實(shí)際為折線的繪制.在 Qt/Embedded Linux中,QPainter-Path類可以通過連接基本的圖形元素來確定任意的矢量形狀:直線、橢圓、多邊形、弧形、貝塞爾曲線和其它的繪制路徑[6-7],所以可以方便地實(shí)現(xiàn)電子地圖中道路的繪制.過程如下:首先,使用繪圖路徑(QPainterPath)繪制折線,然后使用畫筆(QPen)設(shè)置折線(即道路)的寬度以及顏色.基于機(jī)場附近的地理數(shù)據(jù)比較敏感,在實(shí)驗(yàn)初期不方便架設(shè)儀器進(jìn)行測量等原因,以校園為例進(jìn)行實(shí)驗(yàn),繪制生成的電子地圖如圖4.
圖4 電子地圖
車載終端的一個(gè)重要作用是給司乘人員提供提示或告警,以避免沖突事件的發(fā)生.因此,告警算法顯得至關(guān)重要.
3.4.1 沿路徑的告警算法
在以往使用過的告警算法中,存在司乘人員對沖突事件無反應(yīng)時(shí)間以及對告警距離發(fā)生誤判等問題.為了解決上述問題,本設(shè)計(jì)提出了沿路徑的告警算法.
在監(jiān)控區(qū)域內(nèi),車輛按照指定路徑行駛,而在電子地圖上指定路徑的每條道路用折線表示.為了便于判斷,將指定路徑的每個(gè)路段,即折線的每個(gè)線段,按行駛方向進(jìn)行編號.如圖5所示,指定路徑為 P0到 Pn的一段道路,道路的端點(diǎn) Pi(0≤i≤n)按照行駛方向排列,線段 Pi-1Pi為 i號路段.如果點(diǎn) P位于 (Pi-1,Pi■(0≤i≤n)區(qū)域內(nèi),那么 P所在的路段號為 i.
圖5 指定路徑分段示意圖
經(jīng)過上述對指定路徑的處理,沿路徑告警算法的步驟如下:
1)根據(jù)車輛的位置點(diǎn) a判斷車輛是否位于指定路徑上.如果是,轉(zhuǎn)入 2);否則,發(fā)出車輛偏離指定路徑告警,程序結(jié)束.
2)根據(jù)沖突區(qū)域(沖突點(diǎn)、停止線或禁行區(qū))的參數(shù),判斷其與指定路徑的相對位置.如果沖突區(qū)域與制定路徑無相交區(qū)域,程序結(jié)束;否則,轉(zhuǎn)入3).
3)判斷車輛是否位于沖突區(qū)域,如果是,發(fā)出車輛進(jìn)入沖突區(qū)域告警,程序結(jié)束;否則,轉(zhuǎn)入 4).
4)計(jì)算告警點(diǎn) b(沖突點(diǎn)、停止線的中心點(diǎn)或禁行區(qū)沿指定路徑方向的進(jìn)入點(diǎn)).
5)計(jì)算車輛的位置點(diǎn) a和告警點(diǎn) b所在的路段號,分別為 i和 c.
6)通過比較 i和 c,判斷車輛位置與沖突區(qū)域的相對位置.i=c,轉(zhuǎn)入 7);i<c,如圖6(A)所示,說明車輛未進(jìn)入沖突區(qū)域,轉(zhuǎn)入 8);i>c,如圖6(B)所示,說明車輛已越過沖突區(qū)域,無需告警,程序結(jié)束.
7)進(jìn)一步判斷車輛與告警點(diǎn)的位置關(guān)系.如果 a到 Pi的距離 DaPi大于 b到 Pi的距離 DbPi,如圖6(C)所示,說明車輛未進(jìn)入沖突區(qū)域,轉(zhuǎn)入 8);否則,DaPi<DbPi,如圖6(D)所示,無需告警,程序結(jié)束.
8)計(jì)算車輛沿路徑到達(dá)告警點(diǎn) b的距離 D,并與閾值D0進(jìn)行比較;如果 D≤D0,發(fā)出即將進(jìn)入沖突區(qū)域告警;否則,程序結(jié)束.
3.4.2 測試結(jié)果
本文采用 PC機(jī)模擬車載終端對提出的沿路徑告警算法進(jìn)行測試.測試中,車輛按照指定路徑行駛,終端每隔 1 s計(jì)算一次車輛到達(dá)前方?jīng)_突區(qū)域的距離.當(dāng)計(jì)算出的距離小于設(shè)定的閾值時(shí),終端發(fā)出告警提示.因此,司乘人員對可能發(fā)生的沖突事件存在一定的反應(yīng)時(shí)間,避免了沖突事件的發(fā)生.
圖6 沿路徑告警算法示意圖(以禁行區(qū)為例)
隨著機(jī)場流量的日益增加,機(jī)場場面的安全受到了嚴(yán)重的威脅.場面監(jiān)視系統(tǒng)可以對機(jī)場場面的移動(dòng)目標(biāo)(飛機(jī)、車輛以及其他移動(dòng)物體)進(jìn)行監(jiān)控和引導(dǎo),提高車輛運(yùn)行效率以及預(yù)防沖突事件的發(fā)生,有效的改善了機(jī)場場面的安全.
[1] [美]理查德·德·紐弗威爾,[美]阿米第 R.歐都尼.機(jī)場系統(tǒng):規(guī)劃、設(shè)計(jì)和管理[M].北京:中國民航出版社,2006:8.
[2] 機(jī)場場面監(jiān)控管理系統(tǒng)方案建議書[Z].北京:北京合眾思壯有限公司,2007.9.
[3] 鄭靈翔.嵌入式Linux系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2008.3.
[4] BLANCHETT J,MARK S.C++GUI Programming with Qt4(Second Edition)[M].7版.北京:電子工業(yè)出版社,2008.
[5] 孫 達(dá),蒲英霞.地圖投影[M].南京:南京大學(xué)出版社,2005.
[6] 怯肇乾.嵌入式圖形系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2009.
[7] 孟凡金,劉嵩巖,來逢昌,等 .嵌入式車載導(dǎo)航系統(tǒng)的地圖數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)[J].哈爾濱商業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2007,23(4):472-475.