東北大學(xué)通信與信息系統(tǒng)研究所 沙 毅 王志遠(yuǎn) 隋金坪 候淇濱
嵌入式智能沙盤上位機(jī)的實(shí)現(xiàn)與研究
東北大學(xué)通信與信息系統(tǒng)研究所 沙 毅 王志遠(yuǎn) 隋金坪 候淇濱
沙盤在當(dāng)今社會(huì)尤其是戰(zhàn)爭(zhēng)方面仍然扮演舉足輕重的角色。虛擬電子沙盤與實(shí)物沙盤的結(jié)合更能反應(yīng)出真實(shí)的地形地貌,給人以大局與細(xì)節(jié)的統(tǒng)籌。本文采用模擬簡(jiǎn)單山地地形,深入淺出地詳細(xì)闡述智能沙盤系統(tǒng)的幾大主要模塊技術(shù):地形三維數(shù)據(jù)的處理技術(shù),PC機(jī)上的可視化技術(shù),嵌入式控制技術(shù),等。
智能沙盤;嵌入式;地形仿真
隨著科學(xué)技術(shù)的發(fā)展,我國也在加快軍隊(duì)信息化現(xiàn)在化建設(shè)的腳步,作為非常重要的作戰(zhàn)工具——沙盤,沙盤的智能化對(duì)部隊(duì)信息化建設(shè)起到了非常重要的作用。
目前普通沙盤只能對(duì)一塊地形或一個(gè)建筑群進(jìn)行模擬,要想再獲取其他地形地貌的信息,就必須另制沙盤。智能沙盤可以靈活多變,不拘泥于一種地形的限制,從環(huán)保角度考慮,節(jié)約了大量的原材料以及資金,從時(shí)間角度考慮,通過傳來的三維數(shù)據(jù),可以快速的模擬出不同地區(qū)的地形地貌,并同時(shí)配以三維仿真技術(shù)進(jìn)行效果輔助。
智能沙盤其原理是利用步進(jìn)電機(jī)陣列(軸桿)托起沙盤平面,通過控制電機(jī),使陣列各個(gè)軸桿上升不同高度,以構(gòu)成各種各樣的沙盤地形。通過嵌入式操作系統(tǒng)可以實(shí)現(xiàn)一個(gè)智能沙盤的重復(fù)利用。通過曲面擬合算法、曲面分割采點(diǎn)等算法對(duì)目標(biāo)地區(qū)相應(yīng)地理三維數(shù)據(jù)、地理信息進(jìn)行處理、整合,再結(jié)合嵌入式技術(shù),控制步進(jìn)電機(jī)從而模擬出目標(biāo)地區(qū)地形地貌,并同時(shí)在PC機(jī)上配以基于VC++ OPENGL的三維仿真效果。其主體結(jié)構(gòu)框圖及實(shí)現(xiàn)流程圖如圖1、圖2。
圖1 主體結(jié)構(gòu)框圖
圖2 智能沙盤實(shí)現(xiàn)流程圖
3.1.1 數(shù)據(jù)高程模型(DEM)簡(jiǎn)介與獲取
DEM是一定范圍內(nèi)規(guī)格網(wǎng)點(diǎn)的平面坐標(biāo)(x,y)及高程(z)的數(shù)據(jù)集,主要是描述區(qū)域地貌形態(tài)空間分布,由其可派生出等高線.坡度圖等信息。建立DEM的常用方法主要有以下幾種:
(1)直接從地面測(cè)量。
(2)根據(jù)航拍測(cè)量途徑獲取數(shù)據(jù)。
(3)從現(xiàn)有地形圖上采集。
3.1.2 地形曲面的插值擬合
在地形曲面的插值擬合中,是基于matlab中的griddata函數(shù)完成的。Matlab中的griddata函數(shù)可以將位于同一空間坐標(biāo)系下的散點(diǎn)插值為規(guī)則格網(wǎng),提供了包括基于Dclaunay三角形的線性插值、三次多項(xiàng)式插值及最近點(diǎn)插值,可以方便地實(shí)現(xiàn)結(jié)合鄰近離散點(diǎn)分布特征的光滑曲面擬合。
3.1.3 地形數(shù)據(jù)的采樣
根據(jù)硬件部分所有電機(jī)進(jìn)行矩陣排列,在matlab中對(duì)所擬合好的曲面進(jìn)行曲面分割,此過程是基于matlab中的interp2函數(shù)完成的,使得采樣出的每個(gè)高程數(shù)據(jù)都能對(duì)應(yīng)相應(yīng)位置的步進(jìn)電機(jī)。將采出的的高程數(shù)據(jù)進(jìn)行數(shù)據(jù)等價(jià)轉(zhuǎn)換,轉(zhuǎn)換為電機(jī)旋轉(zhuǎn)的脈沖,通過串口傳輸至嵌入式控制模塊。
圖3
數(shù)據(jù)的插值擬合、采樣部分代碼如下:
3.1.4 matlab的后續(xù)處理
在完成插值擬合,采點(diǎn)的基礎(chǔ)上,借助matlab,可以觀察到插值擬合后的真實(shí)圖樣,以及由采樣點(diǎn)形成的仿真圖樣,可以通過兩圖的對(duì)比,可以觀察到兩者之間是否存在較大差異,若出現(xiàn)較大差異,則可通過增多或改變采點(diǎn)模式來改善仿真圖樣,以使其更加接近真實(shí)圖樣,使其真實(shí)展示現(xiàn)實(shí)。另外可借助matlab中的contour3(),contour()來顯示地形的三維等高線和二維等高線,使非常直接的清楚的了解地形特征。(圖形為隨意舉例出的,見圖3、圖4)
圖4
3.2.1 OPENGL簡(jiǎn)介
PC仿真是基于VC6.0上封裝的OPENGL圖形庫完成的。OpenGL是一個(gè)開放的三維圖形軟件包,它獨(dú)立于窗口系統(tǒng)和操作系統(tǒng),以它為基礎(chǔ)開發(fā)的應(yīng)用程序可以十分方便地在各種平臺(tái)間移植;OpenGL可以與V C++緊密接口,便于實(shí)現(xiàn)機(jī)械手的有關(guān)計(jì)算和圖形算法,可保證算法的正確性和可靠性;OpenGL使用簡(jiǎn)便,效率高。它具有七大功能:包括建模、變換、顏色模式設(shè)置、光照和材質(zhì)設(shè)置、紋理映射、位圖顯示和圖像增強(qiáng)、雙緩存動(dòng)畫等功能,可以逼真的仿真模擬出地形,是實(shí)現(xiàn)沙盤PC機(jī)上可視化的最佳開發(fā)平臺(tái)。
3.2.2 仿真地形的生成
3.2.2.1 場(chǎng)景坐標(biāo)系
在從場(chǎng)景物體位置轉(zhuǎn)化成設(shè)備坐標(biāo)系位置,最后物體顯示在屏幕上的過程中存在四種坐標(biāo)系:建模坐標(biāo)系(Modeling Coordinate),世界坐標(biāo)系(World Coordingate),規(guī)范化設(shè)備坐標(biāo)系(Normalized Device Coordinate)和設(shè)備坐標(biāo)系(Device Coordinate)。
3.2.2.2 圖形變換
圖5 頂點(diǎn)變換過程
圖6 云的繪制流程圖
三維圖形的顯示是一個(gè)復(fù)雜的過程,首先將世界坐標(biāo)系中的三維物體經(jīng)過一系列三維幾何變換,為了使要顯示的物體位置、大小和方向適當(dāng),還必須要經(jīng)過投影,然后在通過定義一個(gè)三維視景對(duì)物體進(jìn)行裁剪,只顯示出投影在視景內(nèi)的部分;接著在屏幕窗口內(nèi)定義一個(gè)矩形,稱為視口,視景體投影后的圖形就在該視口內(nèi)顯示;最后通過再做一些適當(dāng)變換,使圖形在屏幕坐標(biāo)系中顯示出來。
在基本OPengl渲染過程中主要有以下幾種變換:
(1)視圖變換:用于指定觀察者的位置和方向。在一個(gè)場(chǎng)景中,我們希望改變觀察者的位置和觀察者角度。用于改變觀察者方位和角度的變換,就是視圖變換。觀察者位于點(diǎn)(0,0,0),且視線朝著-Z方向。也就是說,只有在Z<0的地方繪圖,才有可能被觀察到。
(2)模型視圖變換:移動(dòng)和變換場(chǎng)景中的模型。此變換用于移動(dòng)和旋轉(zhuǎn)場(chǎng)景中的物體。使用模型視圖變換完全可以代替視圖變換。模型變換主要包括:模型平移glTranslate{fd}(TYPEx,TYPEy,TYPEz);模型旋轉(zhuǎn)glRotate{fd}(TYPE angle,TYPEx,TYPEy,TYPEz);模型縮放glScale{fd}(TYPEx,TYPEy,TYPEz)。
(3)投影變換:對(duì)視見空間進(jìn)行裁剪和扭曲;投影變換有兩種形式,及平行投影變換和透視投影變換。透視投影變換,對(duì)于相同大小的物體,離視點(diǎn)越近投影越大,離視點(diǎn)越遠(yuǎn)投影越小,遠(yuǎn)到極點(diǎn)時(shí)消失成為滅點(diǎn)。平行投影,無論物體距離相機(jī)多遠(yuǎn),投影后的物體大小尺寸不變。平行投影直接把物體投影到屏幕上,反映了物體的真實(shí)大小,主要用于工程圖紙繪制方面。
(4)視口變換:對(duì)最終輸出進(jìn)行縮放;視口變換就是將視景體內(nèi)投影的物體顯示在二維的視口平面上。運(yùn)用相機(jī)模擬方式,將經(jīng)過幾何變換、投影變換和裁剪變換后的物體顯示于屏幕窗口內(nèi)指定的區(qū)域內(nèi)。
下面簡(jiǎn)單介紹頂點(diǎn)變換過程:OpenGL將圖形顯示在屏幕上要經(jīng)過多個(gè)變換過程,對(duì)應(yīng)三維圖形顯示過程,OpenGL中物體頂點(diǎn)的變換過程如圖5所示。
3.2.2.3 光照系統(tǒng)的設(shè)置
光照系統(tǒng)主要分為光源、模型材質(zhì)、光照模型三個(gè)部分。材質(zhì)是指構(gòu)成三維實(shí)體的材料在光照模型中對(duì)于紅、綠、藍(lán)、三原色的反射率,其定義分為環(huán)境、漫射、鏡面反射成分,通過材質(zhì)定義可以大大提高所繪制的三維場(chǎng)景的逼真度。而光照模型主要有環(huán)境光、漫射光、反射光等。可逼真模仿真實(shí)光源效果。
3.2.2.4 紋理映射
顏色紋理生成的方法一般是預(yù)先定義紋理模式,然后在物體表面的點(diǎn)與紋理模式的點(diǎn)之間建立對(duì)應(yīng)關(guān)系,即物體空間與紋理空間對(duì)應(yīng)。當(dāng)物體表面的可見點(diǎn)確定后,接著用紋理模式的對(duì)應(yīng)點(diǎn)參與到光照模型計(jì)算中,這樣就可把紋理模式加在物體表面上。紋理映射技術(shù)將在現(xiàn)實(shí)世界拍攝的位圖文件映射到物體的表面,使我們感覺到物體的外觀與現(xiàn)實(shí)世界中的真實(shí)物體一樣,增強(qiáng)了所繪制物體的真實(shí)感。該過程采用的是BMP格式的位圖。
3.2.2.5 仿真地形天空的生成
在進(jìn)行虛擬3D場(chǎng)景構(gòu)建時(shí),一般都需要生成天空?qǐng)鼍?。在此采用盒子的方法生成天空,這種方法是首先繪制一個(gè)多邊形,然后再進(jìn)行紋理貼圖。當(dāng)紋理貼圖使用得很好時(shí)盒子式的天空也會(huì)取得很好的視覺效果。但當(dāng)紋理使用不當(dāng)時(shí)在一個(gè)較大多邊形邊上的紋理易產(chǎn)生拉伸變形。此方法通常在繪制透過窗戶的天空時(shí)被采用,而在繪制戶外場(chǎng)景時(shí)不適合采用,天空中的云也是采用紋理貼圖技術(shù)來實(shí)現(xiàn)的,圖6是云的繪制流程圖。
3.2.2.6 山地起伏的實(shí)現(xiàn)
在地理科學(xué)描述山地的方法,一般使用山地等高線來描述。等高線圖可以形象地反映山地的情況,在計(jì)算機(jī)圖形處理技術(shù)上,等高線地圖給我們提供了還原山勢(shì)地貌的可行性。該過程中,采用灰度等高線圖,用黑白色的深淺表示山勢(shì)的高低。使用InitTerrain(…)建立地域數(shù)組函數(shù),由圖形讀出對(duì)應(yīng)點(diǎn)高度,灰度等高線圖的制作可通過matlab完成,可利用matlab中的mat2gray()函數(shù)進(jìn)行繪制,最終再進(jìn)過Photo shop的加工修飾就可得到(見圖7)。
3.2.2.7 3DS模型導(dǎo)入
模型信息包括模型的頂點(diǎn),圖元類型,頂點(diǎn)法線,模型的材質(zhì)等,但由于openGL只提供了最基本的圖元繪制方法,所以在繪制具有大量圖元的復(fù)雜物體時(shí),顯得力不從心。由于。3ds模型文件格式是很常用的格式,所以采用3DSMax建模,可根據(jù)地形需要在3DSMax進(jìn)行建模,后根據(jù)其所在位置,進(jìn)行導(dǎo)入。這樣就可使觀察者有未到其地,便觀其物之感。
圖7 灰度等高線圖
智能沙盤新型靈活,并可重復(fù)使用。所采用的技術(shù)手段具有面向性,并不針對(duì)某一特定地區(qū),原則上只要我們可以獲取目標(biāo)地區(qū)三維數(shù)據(jù)信息,即可應(yīng)用智能沙盤進(jìn)行模擬,方便快捷,而且節(jié)約材料,可重復(fù)利用,有利于環(huán)境保護(hù)和可持續(xù)發(fā)展。
[1]費(fèi)廣正,喬林編著.Visual C++6.0高級(jí)編程技術(shù)OPENGL篇[M].北京:中國鐵道出版社,2000,9.
[2][美]Dave Shreiner主編。OPENGL編程指南[M].機(jī)械工業(yè)出版社,2010,3.
[3][美]亨塞爾曼編著.精通Matlab7[M].清華大學(xué)出版社,2006,5.
[4]柳超,卜淮原.虛擬電子沙盤實(shí)現(xiàn)技術(shù)探析[J].重慶工業(yè)高等專科學(xué)校校報(bào),2002,3.
[5]陳本富,王貴武等.基于Matlab的數(shù)據(jù)處理方法在GPS高程擬合中的應(yīng)用[J].昆明理工大學(xué)學(xué)報(bào),2009,10.
沙毅(1959—),男,東北大學(xué)通信與信息系統(tǒng)研究所副教授,1982年7月獲得北京航空航天大學(xué)無線電通訊專業(yè)學(xué)士學(xué)位,1988年4月獲西北工業(yè)大學(xué)數(shù)字信號(hào)處理方向碩士學(xué)位,2000年9月晉升為副教授,主要研究方向:軟件無線電理論與應(yīng)用技術(shù)研究,圖像處理與識(shí)別技術(shù)研究,嵌入工系統(tǒng)與FPGA、DSP技術(shù)研究,GPS與GSM/GPRS結(jié)合的定位和跟蹤系統(tǒng)研究,無線射頻卡(RFID)應(yīng)用技術(shù)研究。