筆記本計算機與GPS構(gòu)成實時立體導(dǎo)航系統(tǒng)的研究
關(guān)鍵詞:實時 立體 導(dǎo)航 GPS 3S
1 引言
對于實時導(dǎo)航而言,往往不能將所有的地圖全部調(diào)入內(nèi)存而必須很好的管理圖庫[1],而在導(dǎo)航精度方面GPS的精度與導(dǎo)航圖的精度都同等重要[2]。但無論何種導(dǎo)航,使用者往往要通過圖上表示的地物和現(xiàn)地地物來識別位置,本文所建立的立體導(dǎo)航圖正是為提高導(dǎo)航圖的易識別性來提高導(dǎo)航的效果。
本文所建立的實時立體導(dǎo)航系統(tǒng)可以很方便地用做車載GPS,其成本較低。由于GPS和筆記本計算機的更新速度都很快,本系統(tǒng)能同時獲得兩方面的科技進步的支持,有更多的可選擇性。
2 立體導(dǎo)航圖的研制
立體導(dǎo)航圖是根據(jù)等高線及地圖來進行創(chuàng)建的,將等高線表達的地形作為場景幾何并假設(shè)了太陽光照模型的條件下,應(yīng)用掃描算法或光線跟蹤算法編程創(chuàng)建立體地形圖[3],再將立體地形圖與地圖合成立體地圖并賦予相應(yīng)坐標系即是立體導(dǎo)航圖。
立體導(dǎo)航圖是光柵圖像,筆記本用的光柵圖像顯示器的屏幕由一系列顯示單元組成,每一個顯示單元為一個象素,生成立體圖時,必須逐個像素地計算畫面上相應(yīng)景物表面區(qū)域的明暗度,為此不但要考慮光源對該區(qū)域入射光亮度和光譜組成,而且還要考慮該表面區(qū)域?qū)庠吹某颍砻娴姆瓷湫再|(zhì),所以,建立立體導(dǎo)航圖必須基于一定的光學(xué)物理模型。
2.1 場景坐標系
景物立體圖像的建立是在三維直角坐標系統(tǒng)中進行的,首先必須確定XY平面。地球表面是曲面,必須將曲面投影成為平面,并將此平面定義為立體地形圖的XY平面,將高程方向定義為場景坐標系的Z軸方向。本文所建立的立體導(dǎo)航圖的立體造型是在Gauss-Kruger投影下的坐標系中進行的,Gauss-Kruger投影是等角圓柱投影,沿赤道每6°分帶。本文的場景選在黑龍江省尚志縣境內(nèi)的帽兒山地區(qū),該地區(qū)在投影分帶中處于22帶,所以,XY平面是以赤道為x軸,129度經(jīng)線為Y軸的直角坐標系。在這一坐標系下對地形的表示和運動描述比較方便。需要注意的是,Gauss-Kruger投影中的x方向應(yīng)設(shè)為場景坐標系的Y方向,而Y方向應(yīng)設(shè)為X方向。由于等高線在矢量化時就已經(jīng)是Gauss-Kruger投影,而且“UP”方向是N方向(即Y方向),所以只需將地形圖正向掃描并按圖上的坐標設(shè)置控制點,將等高線矢量化即可得到正確的場景坐標系。
矢量的等高線在場景描述中不方便于直接操作使用,將研究區(qū)域按一定的柵格大小柵格化是場景描述的第二步工作,在柵格化過程中,沒有高程值的柵格通過內(nèi)插處理將它們賦予高程值。而且柵格DEM的算法已有現(xiàn)成的程序可用。
通常每一個DEM的柵格數(shù)據(jù)使用無符號雙字節(jié)表示,但有時為節(jié)省內(nèi)存空間而使用單字節(jié),使用單字節(jié)會損失一部分地形信息。
在Visual C++編程時,將場景坐標系中的DEM數(shù)據(jù)讀入一個雙字節(jié)的數(shù)組中使用如下的命令:
其中ar是Carchive類的引用,m和n是DEM模型中的行數(shù)和列數(shù),通過上述操作,即可存放全部DEM數(shù)據(jù)并進行變換。
2.2 立體導(dǎo)航圖的視點坐標系
視點坐標系是指以觀察者的視線為Z軸,以“UP’方向為Y方向,X軸方向由Y×Z所確定的方向的坐標系。
為了建立立體導(dǎo)航圖就必須將場景坐標系變換為視點坐標系,其變換方程如下:
顯然變換由兩部分組成,即平移和旋轉(zhuǎn)。(1)式中前一矩陣為平移,后一矩陣為旋轉(zhuǎn)。
一般而言有了視點坐標系,還需將視點坐標系轉(zhuǎn)換至屏幕坐標系,并進行視窗剪切,這樣產(chǎn)生的立體圖像是實時產(chǎn)生的,隨著用戶位置和方向的移動可以產(chǎn)生相應(yīng)的移動的實時動畫。但這樣導(dǎo)航圖的實時計算時間會較長,對實時導(dǎo)航不利。所以,本文采用了將視點位置設(shè)于很遠的位置,這樣可以認為場景的全部區(qū)域均在視窗之內(nèi),在圖像生產(chǎn)時不需進行視窗剪切(見圖1)。
創(chuàng)建了立體地形圖還必須與地圖疊加才能成為立體導(dǎo)航圖。立體地形圖從本質(zhì)上講仍是平面圖像,立體是在陰影的襯托下表現(xiàn)出來的,其平面特性即是缺點也是優(yōu)點。其優(yōu)點是它能很方便地與任何坐標一致的矢量和柵格圖配準。將立體的地形圖與等高線配準更能體現(xiàn)立體的視覺特性,并能適時的查詢?nèi)魏挝恢玫母叱讨?,配準的結(jié)果見圖2。
立體地形圖與等高線配準后顯然增加了立體效果,但也增加了圖上信息的飽和度。在此基礎(chǔ)上疊加地圖,其效果見圖3。
從圖3可見,三圖配準只能在特殊情況下或在計算機里使用,用于輸出到紙上是難以閱讀的。但在計算機中用做導(dǎo)航圖是非常方便和實用的,因為在計算機中立體地圖中的三層可以方便組合和縮放。
3 手持GPS與筆記本連接
3.1 手持GPS的設(shè)定
為了將GPS與筆記本計算機相連接,并將GPS的數(shù)據(jù)實時采集到計算機,必須在GPS上的參數(shù)進行設(shè)定,并在編程時將對應(yīng)的參數(shù)寫入程序。本項研究使用了美國MAGELLAN公司生產(chǎn)的GPS 315和GARMIN公司生產(chǎn)的etrex(也稱小博士),在此GPS 315上進入主菜單按MENU鍵,進入主菜單后再按“設(shè)置”鍵,在“設(shè)置”子菜單下按“波特率”,共有四種波特率供選擇:l 2 0 0、4 8 0 0、9 6 0 0、l 9 2 0 0,本文選擇傳輸波特率為9 6 0 0,在“設(shè)置”子菜單中還需要選擇相應(yīng)的數(shù)據(jù)格式NMEA-0183。
NMEA-0183是美國國家海洋電子協(xié)會為海用電子設(shè)備制定的標準格式。它是在過去海用電子設(shè)備的標準格式0810和0812的基礎(chǔ)上,增加了GPS接收機輸出的內(nèi)容而完成的。數(shù)據(jù)采用ANSI標準,以串口非同步傳送,使用ASCⅡ格式如下:
設(shè)置了傳輸參數(shù)還需要設(shè)置GPS的坐標系統(tǒng)和橢球參數(shù),在GPS315中坐標系是指公里網(wǎng)坐標(USER GRID)和經(jīng)緯度坐標的選擇,這確定GPS上的顯示方式,但在傳輸時沒有差別,因為從GPS實時傳輸進計算機的數(shù)據(jù)均是沒有經(jīng)過投影換算的經(jīng)緯度,投影換算必須在計算機中進行。在GPS上橢球參數(shù)的設(shè)定只需要在相應(yīng)的菜單中選擇BJ54即可。
3.2 筆記本計算機的設(shè)定與操作
一般而言,計算機有多個通迅端口,通迅端口的列表可以通過WINDOWS的設(shè)備管理器來查詢(COM1,COM4,COM5),當(dāng)GPS與計算機的連線插在計算機的某一串行口(Serial Port)后,計算機對端口操作時就必須選擇相應(yīng)的端口名,本文使用的COM5。在實驗中使用的是COMPAQ筆記本計算機,這一品牌的計算機沒有現(xiàn)成的COM端口,而只有USB接口。實驗時通過一條端口轉(zhuǎn)換線來模擬一個COM5端口。
在VB編程時,通過加入MSCOMM(通訊控件)來實現(xiàn)對COM5的控制,對通訊控件的參數(shù)設(shè)置如下:
從COM5讀入計算機的數(shù)據(jù)是由(2)式定義的數(shù)據(jù)串,而這里最關(guān)心的是經(jīng)度和緯度,將讀入的經(jīng)度和緯度經(jīng)過Gauss-Kruger投影換算成為(X,Y)坐標,并將它與前面的立體導(dǎo)航圖進行坐標配準便構(gòu)成了立體導(dǎo)航系統(tǒng)。
在處理立體導(dǎo)航圖時使用了VC++,將立體導(dǎo)航圖用文件方式存貯。當(dāng)用VB實時處理導(dǎo)航時將導(dǎo)航圖調(diào)入并與經(jīng)投影變換的GPS采集的坐標點配準而構(gòu)成立體導(dǎo)航系統(tǒng)。
4 立體導(dǎo)航系統(tǒng)的應(yīng)用
應(yīng)用本文所建立的實時立體導(dǎo)航系統(tǒng)于2002年5月在帽兒山林場進行了實地操作。該系統(tǒng)被用于對帽兒山林場1994年以來的采伐跡地進行全面調(diào)查。
帽兒山林場從1994年至2001年間
評論