趙育良 黎志強 黃 詰
(海軍航空大學(xué)青島校區(qū),青島266041)
作為無人機系統(tǒng)不可或缺的組成部分,無人機地面檢測設(shè)備(后簡稱地檢設(shè)備)主要用以在地面實施對無人機及機載設(shè)備的狀態(tài)檢測,為無人機的放飛提供必要的依據(jù)。所研究的這種無人機地檢設(shè)備主要由二次電源、綜合計算機及控制面板組成,整個操作過程包括交流電的供電、直流電源箱啟動、檢測臺供電、綜合計算機供電啟動及電源輸出控制、機載設(shè)備檢測等,在檢測過程中地勤人員還要協(xié)同觀察飛機舵面等部件的相應(yīng)動作,整個檢測過程操作復(fù)雜煩瑣,要求嚴(yán)格。而這種無人機系統(tǒng)一般四套飛機只有一臺地面檢測設(shè)備,如果單純依靠實裝訓(xùn)練,不可避免會損害裝備影響其使用壽命,訓(xùn)練費效比高,訓(xùn)練時常被迫降低訓(xùn)練難度,簡化訓(xùn)練程序,影響訓(xùn)練效果?;诖耍兄埔惶啄M仿真訓(xùn)練系統(tǒng),為受訓(xùn)者提供一個極為逼真的訓(xùn)練環(huán)境,使受訓(xùn)者最大限度地得到接近現(xiàn)實場景的訓(xùn)練,顯得尤為重要。當(dāng)前,針對不同的應(yīng)用場景,國內(nèi)外有Virtools、VegaPrime、Quest3D、Unity3D、EON 等多種三維仿真開發(fā)平臺,這些不同的平臺在各自不同的領(lǐng)域有著各自的優(yōu)勢,但也不同程度存在短板。如Virtools 對CAD 模型支持和管理不夠,VegaPrime 多用于視景開發(fā)但交互性差,Quest3D 兼容整合性差。相對而言,EON 對于機載及地面設(shè)備模擬通電及拆裝訓(xùn)練則有著獨特的優(yōu)勢,雖然其視景效果有限,但其在面片的管理、軟件兼容性等方面優(yōu)勢明顯,且提供EonX 標(biāo)準(zhǔn)插件供高級語言平臺調(diào)用,具有較好的二次開發(fā)能力和交互性,是公認(rèn)的整合性、延展性較好的虛擬現(xiàn)實開發(fā)平臺之一?;诖?,本項目以C#為平臺,基于EON 和LabWindows/CVI 研制了一套基于桌面的地檢設(shè)備的模擬仿真訓(xùn)練系統(tǒng),該系統(tǒng)采用分布計算的C/S 體系結(jié)構(gòu),利用UDP 協(xié)議進(jìn)行通訊,實現(xiàn)各客戶端的協(xié)同控制,可同時供多用戶單獨或協(xié)同訓(xùn)練。
整個模擬仿真訓(xùn)練系統(tǒng)以C#為平臺,采用分布計算的C/S 體系結(jié)構(gòu)設(shè)計實現(xiàn),系統(tǒng)將人機交互、數(shù)據(jù)解析及邏輯解算分別在不同的進(jìn)程中在服務(wù)器端進(jìn)行計算,這樣可保證人機交互的實時性與系統(tǒng)邏輯的可靠和一致性。用戶通過客戶端程序?qū)崿F(xiàn)人機交互,并將操作內(nèi)容以預(yù)置變量的形式實時發(fā)送至服務(wù)器,服務(wù)器則通過預(yù)置邏輯對動作解算響應(yīng)利用UDP 協(xié)議與客戶端進(jìn)行通訊,通過SOCKET 接收服務(wù)器端數(shù)據(jù),通過數(shù)據(jù)解析獲得當(dāng)前無人機及地檢設(shè)備各子系統(tǒng)組件的工作狀態(tài),并利用數(shù)據(jù)驅(qū)動客戶端相應(yīng)面板及操作界面顯示相應(yīng)狀態(tài)。根據(jù)分布式原則,只要網(wǎng)內(nèi)有客戶端接入服務(wù)器,即可隨時加入該組,實時動態(tài)操作并顯示動態(tài)畫面。對于機場、無人機及地面檢測設(shè)備,為了便于管理及交互設(shè)計實現(xiàn),系統(tǒng)選用3dsMax 建立仿真對象的物理模型,通過EON Studio 實現(xiàn)三維視景下的交互操作及狀態(tài)顯示,而對于綜合計算機檢測畫面,為了與原設(shè)備完全一致,系統(tǒng)則通過LabWindows/CVI 設(shè)計實現(xiàn),針對本客戶端軟件的完整性,系統(tǒng)將該模擬封裝成一個動態(tài)鏈接庫進(jìn)行調(diào)用,并通過C#平臺進(jìn)行數(shù)據(jù)中轉(zhuǎn),實現(xiàn)服務(wù)器與客戶端、三維場景與動態(tài)鏈接庫之間的數(shù)據(jù)交互。為了更好地適應(yīng)無人機保障維護(hù)人員的實際訓(xùn)練需求,這種無人機地檢模擬仿真訓(xùn)練系統(tǒng)還設(shè)置了資料檢查、外部檢查、仿真拆裝、仿真通電及系統(tǒng)管理等功能模塊,本文重點論述仿真通電的技術(shù)實現(xiàn),系統(tǒng)總體框圖如圖1所示。
圖1 系統(tǒng)總體組成框圖Fig.1 System overall composition diagram
如上所述,本系統(tǒng)是以C#為開發(fā)平臺結(jié)合EON和LabWindows/CVI 實現(xiàn)的。其突出特點主要有三點:一是針對機載及地面設(shè)備保障訓(xùn)練需求,基于COM 標(biāo)準(zhǔn)組件和動態(tài)鏈接庫的二次開發(fā)思想,構(gòu)建了一套人機交互強的模擬訓(xùn)練平臺;二是為了實現(xiàn)動態(tài)圖形化界面并提升其易操作性,綜合運用COM 組件和Windows 消息攔截技術(shù),利用ShockWave 控件在C#中調(diào)用flash 導(dǎo)航程序,制作軟件導(dǎo)航系統(tǒng);三是為了提升地檢設(shè)備操作畫面的逼真度,系統(tǒng)采用與原裝備完全一致的LabWindows/CVI 實現(xiàn)復(fù)雜的檢測操作面板二維仿真畫面開發(fā),封裝成標(biāo)準(zhǔn)動態(tài)鏈接庫后供C#平臺調(diào)用。具體技術(shù)實現(xiàn)如下:
根據(jù)本系統(tǒng)的功能設(shè)計需求,系統(tǒng)模型主要包括無人機(含可活動舵面、副翼)、地面檢測車(含車內(nèi)必要配套設(shè)備)、檢測臺、機場及機庫等。由于3ds Max 具有強大的建模和貼圖功能,而且EON Studio 還專門提供了專用插件,不僅能將模型直接導(dǎo)出標(biāo)準(zhǔn)EON 格式,且能較好的保留貼圖及預(yù)設(shè)動畫信息,因此本系統(tǒng)采用3ds Max 作為建模工具。與日常見到的效果圖及動畫制作相區(qū)別,由于需要對仿真模型在仿真環(huán)境下進(jìn)行實時渲染,因此對模型有更高的要求,既要有逼真的外形,又到做到盡可能少的面片數(shù)。
在建模及模型優(yōu)化的過程中要關(guān)注以下幾個方面:一是在不影響外形的情況下用盡量少的面片數(shù)。在建模過程中盡量少用布爾運算、放樣等操作,盡量通過點、線、面的拉伸、擠出等操作構(gòu)建復(fù)雜模型,且注意區(qū)分視景中的主體及非主體模型,在視景中看不到的面片盡量刪除,不影響顯示效果盡量少分段,確保用最少的面片展現(xiàn)最優(yōu)的模型。另外EON 為了優(yōu)化貼圖調(diào)入效率,要求將其集中置于2×2的一張圖上。二是在模型制作前就要規(guī)劃分組并合理命名,這樣通過插件轉(zhuǎn)換后會帶入EON 文件,便于后續(xù)的模型管理及調(diào)用。三是為了提升用戶體驗,保證系統(tǒng)的場景和操作的逼真性,構(gòu)建的可視化物理模型必須做到與仿真對象高度一致,做到照片級的質(zhì)量,而且盡可能優(yōu)化,以增加交互實時性。
根據(jù)設(shè)計要求,仿真通電系統(tǒng)在形象直觀地將裝備各個部分的3D 模型、通電操作、通電現(xiàn)象展現(xiàn)給受訓(xùn)者同時,還需具備指導(dǎo)訓(xùn)練、記錄訓(xùn)練過程、訓(xùn)練過程監(jiān)控、訓(xùn)練考核與管理等功能。為了實現(xiàn)上述功能,在軟件的開發(fā)過程中,需要完成用于用戶、訓(xùn)練過程及相關(guān)技術(shù)數(shù)據(jù)管理的數(shù)據(jù)庫設(shè)計,根據(jù)三維交互仿真需求,完成機場環(huán)境、飛機及其部件以及測試設(shè)備等仿真對象3D 制作,在此基礎(chǔ)上,在EON Studio環(huán)境下進(jìn)行行為邏輯模型編寫,而復(fù)雜的檢測操作面板二維仿真畫面則利用LabWindows/CVI 開發(fā)實現(xiàn),封裝成標(biāo)準(zhǔn)動態(tài)鏈接庫后供C#平臺調(diào)用,最終在C#平臺下,對二三維的仿真模塊進(jìn)行二次開發(fā),實現(xiàn)其信息交互與響應(yīng),依據(jù)訓(xùn)練大綱,完成仿真程序開發(fā)。其仿真實現(xiàn)過程如圖2所示。
圖2 系統(tǒng)仿真實現(xiàn)過程Fig.2 System simulation process
3.2.1 三維仿真環(huán)境實現(xiàn)
如上所述,本系統(tǒng)是利用3DMax 完成仿真對象三維物理模型制作的,通過EonRaptor 插件將模型導(dǎo)出成EON 標(biāo)準(zhǔn)格式(*.eoz)。為了適用Win7 操作平臺,系統(tǒng)采用EON7.0 進(jìn)行開發(fā)。在EON 平臺下,打開導(dǎo)出的模型后,會將模型分組、預(yù)設(shè)動作等帶入,并自動生成視景漫游控制程序,用戶可調(diào)整漫游方式,并根據(jù)實際需要對三維視景的參數(shù)進(jìn)行調(diào)整。在此基礎(chǔ)上,根據(jù)預(yù)先編制的仿真邏輯腳本,利用EON 提供的豐富的節(jié)點,按照無人機地檢流程,實現(xiàn)與實際訓(xùn)練操作規(guī)程一致的交互操作,并按照設(shè)備工作原理同步顯示相關(guān)通電現(xiàn)象(指示燈及舵面偏轉(zhuǎn)等)。對于一些簡單的操作邏輯可通過Place、Latch、ClickSensor、TimeSensor、Rotate 等節(jié)點實現(xiàn),而對于復(fù)雜動作或操作邏輯,則需通過系統(tǒng)提供的Script 節(jié)點,采用JavaScript 腳本語言實現(xiàn),用戶可根據(jù)實際需要自定義輸入輸出接口,并編寫響應(yīng)函數(shù),實現(xiàn)與封裝節(jié)點的交互響應(yīng)。EON 軟件利用其傳感器節(jié)點(如ClickSensor)感知接收用戶利用鼠標(biāo)或鍵盤完成的操作,然后將對應(yīng)的事件消息(如LeftButtonDown)通過內(nèi)部路由傳送至相應(yīng)的功能節(jié)點(如Place)或Script 節(jié)點等,實現(xiàn)對消息的響應(yīng)或處理,驅(qū)動模型按照相應(yīng)的邏輯動作或改變屬性,并通過顯示、音頻等輸出設(shè)備將結(jié)果反饋給用戶,從而達(dá)到三維仿真環(huán)境下交互操作的目的。這一過程的基本原理如圖3所示。為了便于操作者在三維視景下漫游操作,系統(tǒng)加入EON 提供的WalkAbout 節(jié)點,并通過該節(jié)點的相關(guān)屬性依據(jù)用戶的操作習(xí)慣設(shè)置漫游操控的鼠標(biāo)及鍵盤、漫游速度、旋轉(zhuǎn)速率、視角方向等。同時系統(tǒng)還利用CollisionObject 節(jié)點實現(xiàn)對于仿真環(huán)境的碰撞檢測,加強用戶的體驗感。圖4 是本軟件EON 環(huán)境下三維仿真實現(xiàn)傳輸邏輯圖,這是整個系統(tǒng)開發(fā)的核心,直接關(guān)系到與應(yīng)用程序的仿真流程及接口通信邏輯。
圖3 EON 基本邏輯原理圖Fig.3 EON basic logic diagram
圖4 EON 節(jié)點傳輸邏輯圖Fig.4 EON node transmission logic diagram
3.2.2 二維仿真動態(tài)畫面實現(xiàn)
由于這種無人機的地面綜合檢測設(shè)備的動態(tài)檢測畫面是利用LabWindows/CVI 開發(fā)的,因此為了體現(xiàn)仿真訓(xùn)練系統(tǒng)的逼真度,給訓(xùn)練者更加真實的體驗,本系統(tǒng)的地檢二維仿真畫面亦是通過該軟件開發(fā)實現(xiàn)的,整個仿真界面利用LabWindows/CVI提供的標(biāo)準(zhǔn)控件搭建,其數(shù)據(jù)顯示與操作交互完全與原設(shè)備一致,如圖5所示。考慮到動態(tài)鏈接庫具有很好的可移植性和通用性,系統(tǒng)將仿真程序以動態(tài)鏈接庫(Dynamic Link Library,DLL)的形式封裝為一種通用的基于Windows 的程序模塊,方便在第三平臺的調(diào)用與數(shù)據(jù)交互,滿足信息交互的需求,系統(tǒng)還自定義了InitForm 和DataTrans 兩個接口函數(shù)。LabWindows/CVI 封裝動態(tài)鏈接庫文件的操作如下:一是將源程序中的主函數(shù)Main 用DllMain 替代,方法是利用功能菜單【Edit】 | 【Insert Construct】 |【DLLMain】實現(xiàn);二是利用功能菜單【Build】 |【Target Type】 |【Dynamic Link Library】打包DLL 文件。
圖5 綜合檢測軟件仿真界面Fig.5 Comprehensive detection software simulation interface
由于客戶端程序最終以C#為平臺進(jìn)行開發(fā),因此,需要通過調(diào)用COM 組件或動態(tài)鏈接庫的形式對上述子仿真程序進(jìn)行封裝,并按預(yù)置的仿真邏輯設(shè)置相關(guān)通訊接口的信息交互屬性及響應(yīng)函數(shù)。
對于三維仿真模塊,當(dāng)基于EON 環(huán)境的通電仿真邏輯完成后,可保存為標(biāo)準(zhǔn)的eoz 格式,但為了保護(hù)文件的安全,可將其發(fā)布成*.edz 格式文件,利用標(biāo)準(zhǔn)COM 組件實現(xiàn)在C#中的調(diào)用,利用預(yù)設(shè)接口,通過預(yù)先封裝的事件響應(yīng)方法,對EON 的二次開發(fā)實現(xiàn)信息的交互與響應(yīng)。要實現(xiàn)這一步必須借助EonX 控件,EonX 是EON 提供給二次開發(fā)平臺(即C#)的通信接口,通過它可以把預(yù)先完成的行為模型顯示在C#平臺中,進(jìn)行正常瀏覽。需要注意的是對于64 位Win7 以上平臺下,必須使用EonX7.0 及以上控件才能支撐??丶ㄟ^EON 內(nèi)部的路由輸入接口接受C#平臺的發(fā)送的輸入消息,實現(xiàn)對外來指令的響應(yīng),同時,EON 亦可利用輸出接口向C#平臺輸出消息,完成這一交互過程是通過EONX 中封裝的事件響應(yīng)接口——InEvent 和OutEvent 實現(xiàn)的。
而對于LabWindows/CVI 動態(tài)鏈接庫,需要采用以下方式進(jìn)行調(diào)用,并設(shè)置接口函數(shù)入口并聲明要使用的函數(shù)。
[DllImport("SimFormDll.dll",EntryPoint = "InitForm")]
static extern int InitForm();//面板調(diào)入函數(shù)
static extern void DataTrans(ushort[]inputdata,ushort[]outputdata);//數(shù)據(jù)通信接口函數(shù)
如圖6所示。
圖6 EON、動態(tài)庫與C#的接口關(guān)系Fig.6 Interface relationship between EON,dynamic library and C#
用戶交互界面與導(dǎo)航對于用戶的使用體驗非常重要,一個好的人機交互界面往往能夠提高用戶的操作和訓(xùn)練效果,尤其對于基層部隊用戶,這一點顯得尤為重要。因此考慮到界面的美觀和易操作性,軟件采用flash 制作軟件導(dǎo)航系統(tǒng),利用ShockWave 控件在C#中調(diào)用,在此基礎(chǔ)上整合上述第三方插件,綜合實現(xiàn)系統(tǒng)構(gòu)建。為了避免Flash右鍵菜單對用戶帶來的困擾,系統(tǒng)還通過截獲鼠標(biāo)右鍵響應(yīng)消息的方式,將其屏蔽。為了能更好的服務(wù)于一種無人機裝備保障訓(xùn)練,系統(tǒng)還設(shè)置了資料檢查、外部檢查、仿真拆裝及系統(tǒng)管理等功能模塊,系統(tǒng)導(dǎo)航界面和仿真三維仿真環(huán)境效果如圖7所示。
圖7 系統(tǒng)導(dǎo)航界面和仿真三維仿真環(huán)境Fig.7 System navigation interface and simulation 3D simulation environment
按照系統(tǒng)方案的技術(shù)指標(biāo)要求及相關(guān)測試大綱,對系統(tǒng)進(jìn)行了測試。通過導(dǎo)航界面進(jìn)入一種無人機通電檢查的仿真環(huán)境,并可利用快捷鍵在環(huán)境中進(jìn)行漫游,觀察機場、飛機及相關(guān)車輛和測試設(shè)備。經(jīng)測試,系統(tǒng)可根據(jù)預(yù)設(shè)的邏輯,利用鍵盤、鼠標(biāo)等輸入設(shè)備在虛擬環(huán)境下依據(jù)相關(guān)規(guī)程要求進(jìn)行規(guī)范的檢測操作,并利用特定視窗觀察相關(guān)動作和現(xiàn)象,整個任務(wù)覆蓋率達(dá)到90%以上。系統(tǒng)各級導(dǎo)航界面友好,操作程序、方法及相關(guān)邏輯準(zhǔn)確,二三維仿真環(huán)境的響應(yīng)與顯示實時正確;系統(tǒng)響應(yīng)時間達(dá)到預(yù)設(shè)要求,能夠滿足用戶視覺需要,無停頓感和交互延遲感;系統(tǒng)穩(wěn)定可靠,48 個小時以上的連續(xù)運行測試未發(fā)現(xiàn)異?,F(xiàn)象;系統(tǒng)操作簡便,鍵盤和鼠標(biāo)鍵的功能定義合理,符合用戶的常規(guī)操作習(xí)慣;系統(tǒng)仿真環(huán)境逼真,各子系統(tǒng)之間的通信響應(yīng)正常,能夠完成一種無人機地檢全流程仿真操作,符合設(shè)計要求。
本文針對一種無人機訓(xùn)練手段缺乏的問題,提出并實現(xiàn)了無人機地檢模擬仿真訓(xùn)練系統(tǒng)研制,重點論述了系統(tǒng)總體構(gòu)成及仿真通電檢查模塊的設(shè)計與實現(xiàn)。系統(tǒng)以C#為主平臺,對EON 和LabWindows/CVI 仿真程序模塊進(jìn)行二次開發(fā),實現(xiàn)了通用仿真平臺設(shè)計及一種無人機地檢設(shè)備的仿真邏輯,能夠按照設(shè)計要求實現(xiàn)基于維護(hù)規(guī)程的全流程仿真操作,該系統(tǒng)的研制,較好的解決了相關(guān)設(shè)備訓(xùn)練手段缺乏的難題,為裝備能力的提升提供了重要支撐。