張瑞霞,魏寧波,鄭海鵬,潘江峰
(西北機(jī)電工程研究所,陜西咸陽 712099)
火炮裝填系統(tǒng)實時三維人機(jī)界面顯示技術(shù)研究
張瑞霞,魏寧波,鄭海鵬,潘江峰
(西北機(jī)電工程研究所,陜西咸陽 712099)
實現(xiàn)了一種火炮裝填系統(tǒng)三維實時顯示的人機(jī)界面,將傳統(tǒng)虛擬現(xiàn)實與總線通信技術(shù)結(jié)合起來,形成一種三維模型+數(shù)據(jù)驅(qū)動的模式。通過CAN總線采集現(xiàn)場傳感器數(shù)據(jù)并根據(jù)通信協(xié)議進(jìn)行數(shù)據(jù)處理,再將運(yùn)算后的數(shù)據(jù)賦予部件模型對應(yīng)的變量,使界面顯示出當(dāng)前部件模型的實時運(yùn)行狀態(tài),從而在操作終端實現(xiàn)與實際裝填系統(tǒng)狀態(tài)準(zhǔn)確一致的虛擬視景。此方法達(dá)到了可視化的實時顯示效果,增強(qiáng)了操作手的真實感,以及作戰(zhàn)指揮人員的真實性和交互性,提高了指揮自動化系統(tǒng)的實用性。
火炮裝填系統(tǒng);現(xiàn)場數(shù)據(jù);三維;虛擬樣機(jī);人機(jī)界面
上個世紀(jì)50年代初,火炮裝填系統(tǒng)人機(jī)界面的形式是由按鈕式開關(guān)和顯示燈組成的簡單通斷信號,這一階段沒有圖形化的界面顯示。隨著計算機(jī)信息科技的發(fā)展,裝填系統(tǒng)人機(jī)界面的狀態(tài)顯示形式轉(zhuǎn)變?yōu)橐环N由計算機(jī)和可編程終端所組成的可以生成一系列二維符號曲線圖表的方式。這種工作方式是從可編程控制器、各種數(shù)據(jù)采集卡等現(xiàn)場設(shè)備中采集實時數(shù)據(jù),發(fā)出控制命令并監(jiān)控系統(tǒng)運(yùn)行是否正常,同時進(jìn)行二維圖形顯示和描述。隨著裝填控制系統(tǒng)復(fù)雜度的提高,二維圖形的顯示已不能滿足需求,人們可以使用計算機(jī)來精確地再現(xiàn)現(xiàn)實世界中的三維物體,通過計算機(jī)圖形學(xué)來實現(xiàn)模擬現(xiàn)實物體的目的。在運(yùn)用三維人機(jī)界面顯示技術(shù)時,國外也進(jìn)行了相應(yīng)的研究,如德國的Donar模塊化火炮終端界面就是對實際的裝填系統(tǒng)運(yùn)行狀態(tài)進(jìn)行了全面三維仿真顯示。這種方式能夠充分顯示裝填系統(tǒng)的動作流程,使得操作者更加清晰直觀看到火炮的運(yùn)行狀態(tài),并快速對系統(tǒng)作出響應(yīng),大大提高了終端界面的可視化程度,操作更加便捷[1]。
裝填系統(tǒng)實時三維人機(jī)界面的硬件裝置由裝填手終端、裝填控制器、各輸入開關(guān)、位置傳感器、驅(qū)動器件及半自動輔助運(yùn)行開關(guān)等組成。裝填手終端是一個帶3D圖形加速卡和總線網(wǎng)絡(luò)接口的嵌入式計算機(jī),它是整個裝填控制系統(tǒng)狀態(tài)人機(jī)交互的主體,是裝填系統(tǒng)綜合信息的顯示窗口和控制指令的主要操作窗口,通過總線網(wǎng)絡(luò)接口與裝填控制器、火指控系統(tǒng)保持信息通信和實時數(shù)據(jù)交換,完成現(xiàn)場指令的采集;裝填控制器主要完成輸入輸出采集、驅(qū)動,根據(jù)控制系統(tǒng)工作狀態(tài)及火指控指令實現(xiàn)流程控制、彈藥管理等功能,并通過CAN總線保持與裝填手終端的數(shù)據(jù)交換,傳遞設(shè)備狀態(tài)及運(yùn)行狀態(tài)等信息;輸入開關(guān)和驅(qū)動器件包括:行程開關(guān)、光電編碼器、伺服電機(jī)、電磁閥和比例閥等,由裝填控制器對其進(jìn)行采集和相應(yīng)控制;位置傳感器是各運(yùn)動部件運(yùn)行到位時的感應(yīng)器,通過傳遞位置傳感器的現(xiàn)場數(shù)據(jù)值來實現(xiàn)實時顯示;半自動輔助運(yùn)行開關(guān)是指在線人工裝填、彈藥人工補(bǔ)給和人工開關(guān)閂的情況下,為配合控制系統(tǒng)完成協(xié)同動作所需的動作銜接開關(guān),是裝填系統(tǒng)射速和安全性的必要保證。
裝填系統(tǒng)人機(jī)界面的主要特點(diǎn)是將傳統(tǒng)虛擬現(xiàn)實技術(shù)與總線通信技術(shù)結(jié)合起來,形成一種模型+數(shù)據(jù)驅(qū)動的模式。即首先通過現(xiàn)場數(shù)據(jù)驅(qū)動模塊經(jīng)由CAN總線采集現(xiàn)場傳感器的數(shù)據(jù),再通過三維仿真生成模塊將運(yùn)算后的數(shù)據(jù)賦予部件模型,從而在終端實現(xiàn)裝填系統(tǒng)的實時三維顯示。
界面采用計算機(jī)圖形學(xué)技術(shù),針對裝填系統(tǒng)的特點(diǎn)及工作流程,設(shè)計開發(fā)了一個裝填系統(tǒng)的三維人機(jī)界面顯示系統(tǒng),裝填手終端與裝填控制器進(jìn)行實時通信,采集CAN總線傳輸?shù)默F(xiàn)場傳感器數(shù)據(jù),從而使虛擬樣機(jī)與實際裝填系統(tǒng)狀態(tài)準(zhǔn)確一致。整個裝填系統(tǒng)實時三維人機(jī)界面體系架構(gòu)如圖1所示。
該裝填控制系統(tǒng)中三維人機(jī)界面的設(shè)計首先要對每個運(yùn)動部件進(jìn)行三維建模,建立合適三角形數(shù)量的部件模型,使用Direct3DAPI圖形開發(fā)技術(shù),在Visual Studio.NET平臺下設(shè)計而完成,人機(jī)界面的實現(xiàn)主體由控制界面模塊、現(xiàn)場數(shù)據(jù)驅(qū)動模塊和三維仿真生成模塊三個部分組成。
3.1 控制界面模塊
該模塊主要是一個友好簡潔的人機(jī)交互控制面板。界面主窗體主要包括火指控通信區(qū)、運(yùn)行狀態(tài)顯示區(qū)和三維模擬仿真顯示區(qū)?;鹬缚赝ㄐ艆^(qū)通過CAN總線局域網(wǎng)與上位計算機(jī)連接通信,并顯示通信數(shù)據(jù);運(yùn)行狀態(tài)區(qū)顯示系統(tǒng)的運(yùn)行狀態(tài)、運(yùn)行時間等;三維模擬仿真顯示區(qū)中,用戶可根據(jù)需要在裝填過程中對不同視角的顯示手動進(jìn)行相應(yīng)選擇,或者系統(tǒng)針對觀察者自動以最佳視角角度對動作流程軌跡進(jìn)行三維仿真的跟蹤模擬顯示。
3.2 現(xiàn)場數(shù)據(jù)驅(qū)動模塊
如圖2所示,實現(xiàn)裝填系統(tǒng)的實時三維顯示,需在裝填系統(tǒng)人機(jī)界面裝置的計算機(jī)內(nèi)存中創(chuàng)建一塊數(shù)據(jù)存儲區(qū)域,用來存儲CAN總線的實時通信數(shù)據(jù)。通過內(nèi)存共享接收CAN總線實時數(shù)據(jù),需要完成以下兩步:
1)裝填控制器采集現(xiàn)場傳感器實時數(shù)據(jù)并根據(jù)通信協(xié)議打包,上傳至裝填系統(tǒng)內(nèi)部CAN總線,同時寫入內(nèi)存共享區(qū)域中。
2)人機(jī)界面中的現(xiàn)場數(shù)據(jù)驅(qū)動模塊從內(nèi)存共享取得內(nèi)部CAN總線上的實時數(shù)據(jù)包并進(jìn)行解包,將數(shù)據(jù)賦予對應(yīng)的變量,供三維仿真生成模塊使用。
在具體實時顯示時,圖2中的3個程序架構(gòu)都需做好準(zhǔn)備。在CAN通信程序架構(gòu)中,要先在內(nèi)存中開辟一塊數(shù)據(jù)存儲區(qū)域,按照CAN通信協(xié)議發(fā)送或者接收總線上經(jīng)過傳感器傳來的實時數(shù)據(jù),并將需要發(fā)送或接收的實時數(shù)據(jù)按順序排放在開辟好的內(nèi)存共享區(qū)域中;在內(nèi)存共享程序架構(gòu)中,需要有創(chuàng)建、打開和關(guān)閉內(nèi)存區(qū)域的程序,供CAN通信和人機(jī)界面調(diào)用;在人機(jī)界面程序架構(gòu)中有3個程序模塊,現(xiàn)場數(shù)據(jù)驅(qū)動模塊首先將總線上各傳感器標(biāo)定數(shù)據(jù)進(jìn)行打包,由控制界面模塊實時調(diào)用,三維模型需要用到現(xiàn)場數(shù)據(jù)時,再通過現(xiàn)場數(shù)據(jù)驅(qū)動模塊對實時傳來的打包數(shù)據(jù)包進(jìn)行解包,將解包數(shù)據(jù)進(jìn)行坐標(biāo)轉(zhuǎn)換運(yùn)算,再賦予模型,完成動態(tài)仿真的虛擬顯示。這種通過內(nèi)存共享實現(xiàn)人機(jī)界面與CAN總線實時交互的技術(shù)方法,大大提高了顯示系統(tǒng)的時效性。
在數(shù)據(jù)驅(qū)動的三維仿真系統(tǒng)中,用戶輸入的動作仿真程序必須經(jīng)過編譯、速度計算和信息過濾等多種數(shù)據(jù)處理后,才能被終端程序使用。所以數(shù)據(jù)處理相當(dāng)于仿真系統(tǒng)的指揮中心,以程序行為單位處理模塊程序函數(shù),將仿真系統(tǒng)中的各種數(shù)據(jù)編譯成便于計算機(jī)處理的數(shù)據(jù)包格式,存放在指定的內(nèi)存專用區(qū)域。在裝填動作運(yùn)行過程中選取逐行讀取、分析和畫圖的方式,有利于提高系統(tǒng)實時性和直觀性。最終生成的重要數(shù)據(jù),系統(tǒng)自動存儲以便通過CAN總線局域網(wǎng)通信與主控計算機(jī)進(jìn)行數(shù)據(jù)傳送。
3.3 三維仿真生成模塊
根據(jù)數(shù)據(jù)處理模塊傳遞的指令在控制面板的顯示窗口中動態(tài)演示裝填過程。此時根據(jù)需要,對演示的場景及圖像的觀察視角和位置可進(jìn)行調(diào)節(jié),這就需要針對不同需求進(jìn)行相應(yīng)的觀察變換。觀察變換確定觀察者在世界空間中的位置,把頂點(diǎn)變換到攝像機(jī)空間。在攝像機(jī)空間,攝像機(jī)(或觀察者)在原點(diǎn)向正z方向看(Direct3D使用左手坐標(biāo)系,所以z的正方向指向場景)。觀察矩陣把世界空間中的對象圍繞這一個攝像機(jī)的位置(原點(diǎn))和方向重新定位。創(chuàng)建觀察矩陣的方法,就是把一個平移矩陣同旋轉(zhuǎn)矩陣關(guān)于每個軸組合起來。表示為
式中:W 是被創(chuàng)建的觀察矩陣;T是重新定位世界中對象位置的平移矩陣;Rz、Ry、Rx分別是圍繞z,y和x軸旋轉(zhuǎn)對象的旋轉(zhuǎn)矩陣。平移和旋轉(zhuǎn)矩陣是基于攝像機(jī)在世界空間中的邏輯位置和方向的。
平移變換為
縮放變換為:
旋轉(zhuǎn)變換為:繞x軸旋轉(zhuǎn):
繞y軸旋轉(zhuǎn):
由此可知,進(jìn)行坐標(biāo)變換的實質(zhì)就是變換描述坐標(biāo)系統(tǒng)的矩陣,在進(jìn)行了坐標(biāo)變換之后,三維坐標(biāo)的場景才能投影到二維屏幕上。
考慮到計算機(jī)顯卡的性能,采用合適數(shù)量的低多邊形實體建模方式,使得模型的三角形數(shù)量可以足夠的小,這樣在三維顯示渲染時可以顯著地提高圖像顯示速度,從而達(dá)到實時顯示的效果。模塊主要利用三維造型軟件3dsMAX進(jìn)行整體部件低多邊形建模,用Direct3DAPI實現(xiàn)了裝填系統(tǒng)的三維仿真顯示。首先利用3dsMAX進(jìn)行實體部件建模并保存為多個數(shù)據(jù)文件,通過程序調(diào)用對應(yīng)文件到Direct3D環(huán)境設(shè)置中,根據(jù)這些文件所需使用的矩陣、視口以及光線來建立T&L流水線[3],即通過世界轉(zhuǎn)換、視圖轉(zhuǎn)換、照明和裁減,將其投影到屏幕空間,并根據(jù)視口的規(guī)定進(jìn)行縮放。最后在Direct3D圖形庫中,利用雙緩存技術(shù),使前后幀不斷調(diào)換,從而實現(xiàn)連續(xù)動畫的效果。
下面以彈協(xié)調(diào)器為例說明動態(tài)仿真的全過程。首先運(yùn)用三維造型軟件建立低多邊形的彈協(xié)調(diào)器模型,模型中包括彈、彈協(xié)調(diào)器、托彈盤、抱彈、擋彈板四個部件,對應(yīng)的模型矩陣取名為彈、彈協(xié)調(diào)器、彈協(xié)調(diào)器-托彈盤、彈協(xié)調(diào)器-托彈盤-抱彈、彈協(xié)調(diào)器-托彈盤-擋彈板,將這4個模型分別存儲為.x的文件格式,在Visual Studio.NET平臺下,人機(jī)界面的三維仿真生成模塊中調(diào)入對應(yīng)仿真部件模型的名稱.x文件,再設(shè)置Direct3D的環(huán)境,包括不同角度的光線、材質(zhì)和視口,在人機(jī)界面的顯示終端上就呈現(xiàn)出靜態(tài)時的彈協(xié)調(diào)器狀態(tài)。三維動態(tài)仿真時通過內(nèi)存共享程序?qū)AN總線上實時傳感器數(shù)據(jù)調(diào)入,如果接收到“彈協(xié)調(diào)器上升”的信號,就為彈協(xié)調(diào)器的材質(zhì)調(diào)入運(yùn)行時的材質(zhì)。當(dāng)收到“彈協(xié)調(diào)器翻轉(zhuǎn)末位開關(guān)”為True時,彈協(xié)調(diào)器-托彈盤矩陣需要將彈協(xié)調(diào)器矩陣和某一個經(jīng)過Rotation和Translation運(yùn)算后的矩陣相乘,而使得彈協(xié)調(diào)器-托彈盤精確定位到翻轉(zhuǎn)到位的位置;當(dāng)收到“彈協(xié)調(diào)器抱彈油缸初位開關(guān)”信號為True時,矩陣將彈協(xié)調(diào)器-托彈盤和一個經(jīng)過Rotation和Translation運(yùn)算后矩陣相乘,而使彈協(xié)調(diào)器-托彈盤-抱彈定位到目標(biāo)位置;就這樣,目標(biāo)部件的運(yùn)行相對其他部件經(jīng)過一定的角度旋轉(zhuǎn)和位移移動而達(dá)到目標(biāo)位置的精確定位,從而,在人機(jī)界面終端裝置實現(xiàn)與實際裝填系統(tǒng)狀態(tài)準(zhǔn)確一致的虛擬彈協(xié)調(diào)器模擬的過程。以此類推,可以實現(xiàn)整個火炮裝填系統(tǒng)各個運(yùn)行部件的虛擬仿真。
三維人機(jī)界面最重要的一部分內(nèi)容就是如何快速簡便地對復(fù)雜虛擬結(jié)構(gòu)模型進(jìn)行三維建模以及對模型進(jìn)行人機(jī)交互控制。在計算機(jī)上用逼真的三維幾何造型構(gòu)建一個實時信息環(huán)境,使得用戶如同在現(xiàn)場一樣,能完全真實地以圖像的形式觀察裝填系統(tǒng)執(zhí)行中每個結(jié)構(gòu)部件的各種狀態(tài)和各種運(yùn)行參數(shù),可大大提高客戶端的真實感[4]。裝填系統(tǒng)的三維仿真模型如圖3所示。
火炮裝填系統(tǒng)實時三維人機(jī)界面是針對火炮結(jié)構(gòu)動作過程和信息環(huán)境構(gòu)建了一個虛擬樣機(jī),是對真實裝填系統(tǒng)在更高層次上的抽象,是三維圖形技術(shù)在火炮人機(jī)界面上的一次探索。通過低多邊形的實體建模方式,使得模型的三角形數(shù)量可以足夠的小,在實時渲染時可顯著地提高圖像顯示速度,減少計算量,達(dá)到實時顯示的效果。這種開放直觀的圖像效果和簡便實用的操作方法,可使操作手全面直觀地觀測到火炮裝填結(jié)構(gòu)動作的實時運(yùn)行狀態(tài),充分體現(xiàn)其實時直觀性和交互真實感。
(References)
[1]王長斌,陳運(yùn)生,楊國來.虛擬自行火炮分布式實時動力學(xué)仿真系統(tǒng)[J].計算機(jī)工程,2001,27(9):35-36.WANG Chang-bin,CHEN Yun-sheng,YANG Guo-lai.The distributed real-time dynamics simulation system of the virtual self-propelled artillery[J].Computer Engineering,2001,27(9):35-36.(in Chinese)
[2]武永康.Direct3D原理與API參考[M].北京:清華大學(xué)出版社,2001.WU Yong-kang.The principle of Direct3Dand its API reference[M].Beijing:Tsinghua University Press,2001.(in Chinese)[3]Peter J Kovach.Direct3D技術(shù)內(nèi)幕[M].李曄,譯.北京:清華大學(xué)出版社,2001.Peter J Kovach.The technological insider of Direct3D[M].LI Ye,translated.Beijing:Tsinghua University Press,2001.(in Chinese)
[4]劉雷.火炮虛擬樣機(jī)研究[J].系統(tǒng)仿真學(xué)報,2005,17(1):111-113.LIU Lei.Research on the virtual prototype of the artillery[J].Journal of System Simulation,2005,17(1):111-113.(in Chinese)
Display Technology Research of Gun Loading System in 3D and Real-time Man-machine Interface
ZHANG Rui-xia,WEI Ning-bo,ZHENG Hai-peng,PAN Jiang-feng
(Northwest Institute of Mechanical &Electrical Engineering,Xianyang 712099,Shaanxi,China)
A kind of man-machine interface that can display the gun loading system in 3Dreal-time was designed to form a mode of 3Dmodel &data drive by use of combining the traditional virtual prototype technology with bus communication technology.Field sensor data were collected by means of CAN bus,and data process was performed according to communication protocols.Corresponding variable quantity of the component model with processed data were decided and thus to display the real-time running state of the current component model,and the virtual prototype can realize the accuracy and consistent virtual scene agreed with the actual loading system at the operation terminal.This method can obtain the real-time display effect of visualization,enhance the reality sense of operation staff as well as the authenticity and interactivity of combat command personnel,and greatly improve the practicability of the command automation system.
gun loading system;field data;3D;virtual prototype;man-machine interface
TJ302
A
1673-6524(2014)01-0088-04
2013-08-15;
2013-10-14
張瑞霞(1982-),女,碩士,工程師,主要從事火炮控制與計算機(jī)圖形學(xué)理論與應(yīng)用研究。E-mail:651356897@qq.com