《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 基于GPS和電子海圖的嵌入式船舶導(dǎo)航系統(tǒng)設(shè)計(jì)

基于GPS和電子海圖的嵌入式船舶導(dǎo)航系統(tǒng)設(shè)計(jì)

2008-09-01
作者:胡 力, 陳耀武, 汪樂宇

  摘 要:介紹了一種基于GPS和電子海圖,、使用嵌入式Linux操作系統(tǒng)的船舶導(dǎo)航系統(tǒng)" title="導(dǎo)航系統(tǒng)">導(dǎo)航系統(tǒng),討論了船舶導(dǎo)航GUI,、電子海圖數(shù)據(jù)的預(yù)處理和海圖顯示等關(guān)鍵技術(shù),,并給出了解決方案。
  關(guān)鍵詞: 船舶導(dǎo)航 電子海圖 嵌入式Linux QT MVCF


  以GPS和電子海圖為技術(shù)核心,,為航海用戶提供安全航行所必需的海圖,、航路等信息的船舶導(dǎo)航系統(tǒng)目前正在全世界得到廣泛應(yīng)用,,大大提高了船舶導(dǎo)航技術(shù)與船舶航行的安全性。
  船舶導(dǎo)航系統(tǒng)目前主要有PC機(jī)系統(tǒng),、單片機(jī)系統(tǒng)和嵌入式系統(tǒng)" title="嵌入式系統(tǒng)">嵌入式系統(tǒng)等三種實(shí)現(xiàn)方式,。常見的PC機(jī)船舶導(dǎo)航系統(tǒng)采用基于Windows的GIS軟件(如MapInfo、MapGIS)設(shè)計(jì),,具有系統(tǒng)功能豐富,、響應(yīng)速度快、人機(jī)交互界面友好等特點(diǎn),,但成本較高,、系統(tǒng)集成度差,不適合作為專業(yè)系統(tǒng)使用,。單片機(jī)電子海圖應(yīng)用系統(tǒng)" title="應(yīng)用系統(tǒng)">應(yīng)用系統(tǒng)由于處理器運(yùn)算能力較弱,,資源有限,支持網(wǎng)絡(luò)化困難,,而且在圖形用戶界面實(shí)現(xiàn)較為困難,,近年來已較少使用,。隨著嵌入式系統(tǒng)的發(fā)展,,電子海圖應(yīng)用系統(tǒng)有了更好的選擇,,使用嵌入式32位處理器和嵌入式操作系統(tǒng)的產(chǎn)品逐漸出現(xiàn),。由于系統(tǒng)集成度高、硬件成本較低等特點(diǎn),,在近幾年獲得較多應(yīng)用,。而采用Windows CE,、Vxworks,、Palm OS等商用嵌入式操作系統(tǒng),,存在軟件開發(fā)成本較高的缺點(diǎn),。
  本文提出并設(shè)計(jì)了一種基于GPS和電子海圖,,使用嵌入式32位處理器和嵌入式Linux的船舶導(dǎo)航系統(tǒng)。該系統(tǒng)采用Motorola公司的MPC823E嵌入式處理器,,外接GPS接收儀和256色液晶顯示器,,基于嵌入式Linux操作系統(tǒng),具有源碼開放,、易移植,、模塊化、資源豐富的優(yōu)勢(shì),。圖形用戶界面(GUI)采用QT/Embedded" title="QT/Embedded">QT/Embedded圖形開發(fā)庫,,電子海圖使用海司航保部的符合國(guó)家軍用標(biāo)準(zhǔn)的矢量海圖,并預(yù)先對(duì)電子海圖數(shù)據(jù)進(jìn)行預(yù)處理,,刪除冗余數(shù)據(jù),,進(jìn)行二維幾何數(shù)據(jù)壓縮,,建立網(wǎng)格索引。在此基礎(chǔ)之上進(jìn)行船舶導(dǎo)航系統(tǒng)軟件設(shè)計(jì),,使得系統(tǒng)響應(yīng)速度大大加快,。
1 系統(tǒng)硬件結(jié)構(gòu)和軟件開發(fā)平臺(tái)
  系統(tǒng)整體結(jié)構(gòu)如圖1所示。本系統(tǒng)使用Motolora公司的MPC823E嵌入式處理器,,該處理器采用嵌入式PowerPC處理核,,采用RISC技術(shù),主頻為75MHz,,具有強(qiáng)大的處理能力,,并針對(duì)通信進(jìn)行優(yōu)化,通過獨(dú)立的通信處理模塊(CPM)專門處理通信事務(wù),。系統(tǒng)通過通用串行總線控制器(USB)外接鍵盤和鼠標(biāo),;通過液晶顯示(LCD)控制器外接一個(gè)256色的TFT LCD 640×480彩色液晶顯示器,用于圖形用戶界面的顯示,;通過RS232外接GPS接收儀,;系統(tǒng)外擴(kuò)32MB Flash空間,用于存儲(chǔ)Linux內(nèi)核,、應(yīng)用程序和電子海圖數(shù)據(jù),;系統(tǒng)外擴(kuò)32MB SDRAM,用于操作系統(tǒng)內(nèi)存空間,,存放動(dòng)態(tài)數(shù)據(jù)和運(yùn)行程序,。


  系統(tǒng)軟件基于嵌入式Linux操作系統(tǒng),使用C++語言進(jìn)行軟件開發(fā),,并選擇QT/Embedded作為圖形用戶界面(GUI)開發(fā)環(huán)境,。QT是Trolltech公司推出的跨平臺(tái)C++圖形用戶開發(fā)庫,QT/Embedded是QT面向嵌入式應(yīng)用的版本,,具有可移植性強(qiáng),,支持Linux、Windows,、Mac的優(yōu)點(diǎn),,移植到新平臺(tái)時(shí),只需用該平臺(tái)的編譯器重新編譯即可,;面向?qū)ο?,采用C++語言,加上特有的信號(hào)/槽(singal/slot)機(jī)制,,使得面向?qū)ο蟮某绦蛟O(shè)計(jì)變得簡(jiǎn)單而有效,;可裁剪,通過去掉無關(guān)模塊可以調(diào)整庫文件的大小,適合嵌入式系統(tǒng)使用,;GUI界面支持大量標(biāo)準(zhǔn)的窗口部件,,并提供了界面設(shè)計(jì)工具designer;支持國(guó)際化,,支持中文顯示,,并提供了多語言支持工具linguist。QT/Embedded強(qiáng)大的圖形繪制功能在電子海圖的應(yīng)用系統(tǒng)中得到了充分的應(yīng)用,。
  系統(tǒng)從全球定位系統(tǒng)GPS實(shí)時(shí)獲取船舶位置(包括經(jīng)緯度與時(shí)間等)和航行信息(包括船速與航向等),,在電子海圖上顯示相關(guān)導(dǎo)航信息,用戶通過精簡(jiǎn)的鼠標(biāo)鍵盤操作,,提供海圖漫游,、海圖查詢和航行信息管理等功能。
2 電子海圖數(shù)據(jù)處理
2.1 電子海圖數(shù)據(jù)組織結(jié)構(gòu)

  本系統(tǒng)使用海司航保部的軍用矢量海圖格式MVCF(Military Vector Chart Format)[1]海圖,。MVCF以圖幅為單位組織,,采用目錄結(jié)構(gòu),目錄名即為電子海圖的編號(hào),。一個(gè)圖幅目錄由一個(gè)元數(shù)據(jù)文件和多個(gè)海圖層次文件組成,。元數(shù)據(jù)文件記錄每幅圖的比例尺、基準(zhǔn)緯度等控制信息,,海圖層次文件由40多種圖層文件組成,。例如海洋陸地層、港口設(shè)施層等,。每一種圖層文件由圖形文件,、索引文件和屬性文件組成。其中圖形文件記錄了海圖要素的墨卡托投影坐標(biāo)數(shù)據(jù),,索引文件記錄了對(duì)應(yīng)的圖形文件中海圖要素在圖形文件中的偏移量,,屬性文件是dbase表文件,記錄了海圖要素的屬性,,包括要素的名字,、備注等。
  這樣一幅海圖包括130多個(gè)文件,,本系統(tǒng)使用的海圖包括中國(guó)總圖,、沿海航行圖,、港灣圖等共74幅海圖,,占用空間260多兆字節(jié)。由于嵌入式系統(tǒng)存儲(chǔ)空間和處理器運(yùn)算能力的限制,,需要在PC機(jī)上對(duì)電子海圖進(jìn)行數(shù)據(jù)精簡(jiǎn)壓縮和優(yōu)化,,以提高系統(tǒng)響應(yīng)速度。
2.2 電子海圖數(shù)據(jù)壓縮
  (1)刪除冗余數(shù)據(jù)
  MVCF海圖數(shù)據(jù)量大,線狀" title="線狀">線狀要素和多邊形要素細(xì)節(jié)豐富,,而嵌入式電子海圖應(yīng)用系統(tǒng)由于液晶顯示器的大小和分辨率的限制,,有相當(dāng)一部分?jǐn)?shù)據(jù)浪費(fèi)。本系統(tǒng)使用的液晶顯示器分辨率為640×480,,長(zhǎng)和寬為21cm×15cm,,可以計(jì)算出像素間距約為0.031cm。用各種比例尺的電子海圖顯示時(shí),,線狀或面狀實(shí)體的某些點(diǎn)的間隔如果小于像素間距,,顯然無法顯示,應(yīng)刪除這種冗余點(diǎn),。以像素間距作為閥值,,刪除海圖冗余數(shù)據(jù),算法如下:
  選定一個(gè)線狀或面狀實(shí)體,,順序遍歷其坐標(biāo)點(diǎn),,除起點(diǎn)和終點(diǎn)外,對(duì)每個(gè)點(diǎn)計(jì)算該點(diǎn)與上一個(gè)點(diǎn)的距離,,若小于閥值,,則刪除該點(diǎn)。
  (2)二維幾何壓縮
  使用合適的二維幾何壓縮算法能使電子海圖在保持形狀的前提下減少數(shù)據(jù)量,。本系統(tǒng)使用Douglas-Poiker算法[2]進(jìn)行線狀和面狀實(shí)體的壓縮,。該算法的思想是,從一個(gè)近似的形狀開始,,逐步修正,。該算法同樣需要一個(gè)閥值,本系統(tǒng)可使用上文的同一閥值,。以面狀實(shí)體為例,,算法過程如下:
  選擇多邊形P的兩個(gè)頂點(diǎn)V1和V2,考慮V1,、V2,,V1組成的多邊形Q是P的一個(gè)近似,掃描P中其他頂點(diǎn),,選擇距離Q的邊最遠(yuǎn)的頂點(diǎn)W,,把W加入到Q中形成新的多邊形,繼續(xù)掃描P中的其他頂點(diǎn),,直到P中剩余的頂點(diǎn)距離Q邊的最長(zhǎng)距離小于閥值為止,。多邊形Q即為壓縮結(jié)果。
2.3 建立網(wǎng)格索引
  高效的索引結(jié)構(gòu)是提高數(shù)據(jù)訪問效率的關(guān)鍵,。MVCF海圖數(shù)據(jù)量大,,電子海圖應(yīng)用系統(tǒng)實(shí)際使用過程中,顯示的區(qū)域通常只是一個(gè)圖幅的一部分,如果能快速搜索到這部分的海圖數(shù)據(jù),,系統(tǒng)的響應(yīng)速度將大大提高,。本系統(tǒng)使用網(wǎng)格索引,MVCF海圖按比例尺分為從1:4000000到1:25000共10多級(jí),,對(duì)每一種比例尺的海圖,,都建立一個(gè)網(wǎng)格索引,方法如下:
  用一個(gè)矩形網(wǎng)格與海圖要素逐個(gè)進(jìn)行相交或包容判斷,,凡是在網(wǎng)格中的海圖要素,,就記錄下該要素在圖形文件內(nèi)的偏移量,最后形成網(wǎng)格索引文件,。其中,,多邊形要素與矩形網(wǎng)格的相交判斷方法是,若多邊形的一部分端點(diǎn)落在矩形內(nèi),,而另一部分卻落在矩形的外部,,則兩者是相交的;多邊形與矩形的包容判斷是,,若多邊形所有的端點(diǎn)落在矩形內(nèi)則是包容于關(guān)系,,若矩形所有的端點(diǎn)落在多邊形內(nèi)則是包容關(guān)系。線狀要素也可用相似的方法判斷,。
3 系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn)
  系統(tǒng)軟件如圖2所示,,主要由以下模塊組成:系統(tǒng)界面與管理模塊、海圖數(shù)據(jù)模塊,、海圖算法模塊,、海圖顯示模塊、航行信息管理模塊,、GPS接收模塊等,。


  系統(tǒng)界面與管理模塊:實(shí)現(xiàn)系統(tǒng)主界面和操作菜單,通過調(diào)用其它模塊實(shí)現(xiàn)海圖漫游,、自動(dòng)對(duì)中,、海圖查詢、管理航線,、保存航行記錄等功能,。
  海圖數(shù)據(jù)模塊:負(fù)責(zé)讀取電子海圖文件,實(shí)現(xiàn)海圖查詢功能,。通過dbase屬性文件搜索地圖要素,,可以通過SQL語句在屬性文件中找到該要素,從而得到該要素在索引文件中的位置,。
  海圖算法模塊:包括程序中用到的各種算法,,如地理坐標(biāo)、墨卡托投影坐標(biāo)和屏幕坐標(biāo)之間的相互轉(zhuǎn)換[3],,點(diǎn)與點(diǎn),、點(diǎn)與線之間距離,線的長(zhǎng)度,,多邊形的周長(zhǎng)和面積等,。
  海圖顯示模塊:海圖顯示是系統(tǒng)的核心模塊。該模塊根據(jù)管理模塊給出的中心點(diǎn)位置及顯示范圍的參數(shù),,確定需要繪圖的網(wǎng)格,,根據(jù)網(wǎng)格索引,快速完成繪制海圖的功能,??紤]到海圖漫游通常是連續(xù)的,使用了位圖緩存來提高響應(yīng)速度,,每次畫圖的時(shí)候,,先在緩存中找,找不到則擴(kuò)大范圍畫圖,,并保存到位圖緩存,,對(duì)緩存的管理采用最近最少使用替換算法(LRU)。具體流程如圖3所示,。


  航行信息管理模塊:完成航線設(shè)置,、航線偏移報(bào)警、保存航跡等航行管理功能,。航線設(shè)置是根據(jù)航海用戶對(duì)目的點(diǎn)的連續(xù)選擇,,形成一條航線,并對(duì)該航線設(shè)置一個(gè)偏航極限,。本模塊定時(shí)從GPS接收模塊獲取地圖坐標(biāo)信息,,判斷當(dāng)前位置到航線的距離,若超出偏航極限,,則發(fā)出報(bào)警,。航跡保存是定時(shí)記錄船舶位置并顯示,醒目,、直觀的航跡顯示可以使航海人員對(duì)船位信息,、航行歷程及周邊環(huán)境有清楚的了解。
  GPS接收模塊:負(fù)責(zé)定時(shí)讀取GPS接收儀的數(shù)據(jù),,解析出地理經(jīng)緯度坐標(biāo),、時(shí)間、航速與航向等信息,。外置的GPS接收儀通過RS232連接到系統(tǒng),,GPS接收儀會(huì)定時(shí)往系統(tǒng)發(fā)送符合NMEA(美國(guó)航海電子協(xié)會(huì))標(biāo)準(zhǔn)的數(shù)據(jù),。該模塊只需定向讀取RS232串口數(shù)據(jù),根據(jù)NMEA格式解析出地理經(jīng)緯度坐標(biāo),、時(shí)間,、航速與航向的信息即可。


  本系統(tǒng)的部分界面如圖4所示,。目前本系統(tǒng)已經(jīng)出海試運(yùn)行,,實(shí)踐證明本系統(tǒng)能實(shí)時(shí)顯示船舶當(dāng)前航行狀況,快速響應(yīng)用戶操作,,為航海人員提供可靠的電子海圖信息,。
  隨著嵌入式技術(shù)的發(fā)展,嵌入式系統(tǒng)設(shè)備的性能逐步提高,,船舶導(dǎo)航系統(tǒng)的構(gòu)建有了更多的選擇,。本文提出的基于GPS和電子海圖的嵌入式船舶導(dǎo)航系統(tǒng),使用嵌入式32位處理器和嵌入式Linux操作系統(tǒng),,具有海圖漫游,、海圖查詢和航行信息管理等豐富的功能,具有經(jīng)濟(jì)實(shí)用,、操作簡(jiǎn)便,、功能可靠、快速響應(yīng)的優(yōu)點(diǎn),,已經(jīng)得到實(shí)際的海上應(yīng)用,。
參考文獻(xiàn)
1 GJB 4887-2003. 軍用數(shù)字矢量海圖數(shù)據(jù)交換標(biāo)準(zhǔn)[S].
2 D.H.Douglas,T. K.Peucker. Algorithms for the reduction of the number of points required to represent a digitized line or its caricature[J]. Canadian Cartographer,,1973,;10(2):112~122
3 Donald Hearn,M.Pauline Baker. Computer Graphics[M]. Prentice Hall,,1997
4 夏一行, 胡力, 周 泓等. 電子海圖應(yīng)用系統(tǒng)中坐標(biāo)變換算法的研究[J].工程設(shè)計(jì)學(xué)報(bào),2003;10(5):299~302

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected],。