亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Virtools虛擬訓練系統(tǒng)半實物接口設計*

        2012-12-10 03:52:58朱湘龍于天朋
        彈箭與制導學報 2012年6期
        關鍵詞:視景時間軸構架

        朱湘龍,于天朋,侯 師

        (1北京理工大學,北京 100081;2國營304廠,福建三明 365000)

        0 引言

        現代戰(zhàn)爭越來越依賴于復雜、昂貴的武器系統(tǒng)。由于新型武器系統(tǒng)的復雜性,要形成戰(zhàn)斗力必須反復訓練其使用者,其相比于傳統(tǒng)武器更依賴于熟練的使用者。而新型武器系統(tǒng)一般價格昂貴,實彈訓練費用高,很難像傳統(tǒng)武器系統(tǒng)一樣采用大規(guī)模的實彈訓練,嚴重阻礙了其戰(zhàn)斗力的快速形成。針對這種情況,各國普遍為新型武器系統(tǒng)開發(fā)相應的虛擬訓練系統(tǒng),以較低的成本和較好的效果完成使用者的初步訓練。

        虛擬訓練系統(tǒng)設計的難點在于高度仿真的虛擬視景設計。傳統(tǒng)虛擬訓練系統(tǒng)大多采用OpenGVS、Vega等軟件設計虛擬視景,但這些軟件有價格高、開發(fā)難度較大、視覺沉浸感不夠優(yōu)秀等問題。法國VIRTOOLS公司的Virtools是一款非常優(yōu)秀的、大量應用于游戲領域的三維交互軟件。它能將現有常用的虛擬視景檔案整合在一起,如3D的模型、2D圖形、音效等構成三維交互系統(tǒng)[2]。Virtools采用圖形化編程語言。開發(fā)人員無需編寫底層代碼,只需要拖動打包好的行為模塊(building block)即可構建優(yōu)秀的三維交互系統(tǒng),開發(fā)難度小,Virtools軟件本自帶了大量打包好的行為模塊供開發(fā)者調用。其三維引擎已獲得微軟Xbox認可。Virtools主要用于網絡游戲領域,與實物系統(tǒng)數據通信能力較為薄弱,未提供標準模塊。文中深入分析了Virtools的運行機制和Virtools SDK開發(fā)構架,通過調用回調函數,完成了基于Virtools SDK半實物串行通信接口的設計。

        1 虛擬訓練系統(tǒng)總體設計

        本虛擬訓練系統(tǒng)由仿真彈筒和仿真計算機兩部分組成。仿真彈筒用于模擬導彈發(fā)射的全過程,給受訓者真實的觸覺感受。仿真計算機主要功能是虛擬視景的生成和彈道仿真。虛擬視景經過渲染之后輸送到虛擬瞄具,給受訓者逼真的視覺感受。虛擬訓練系統(tǒng)通過音箱播放訓練過程音效給受訓者逼真的聽覺感受。仿真彈筒為本系統(tǒng)的實物部分,仿真計算機為虛擬部分。兩部分中間通過全雙工異步串行通信接口連接進行通信,如圖1所示。通信接口設計重點在串口通信行為模塊(SerialBB)的設計。SerialBB通過Virtools行為模塊實現。在每一個仿真周期內,SerialBB讀取一組仿真彈筒發(fā)送的數據,然后解包,提取執(zhí)行本幀所需數據,傳送給虛擬視景,供虛擬視景運行。

        圖1 虛擬訓練系統(tǒng)總體構架

        2 Virtools體系結構

        2.1 Virtools虛擬視景運行構架

        Virtools是一個實時引擎,能對自身場景變化做出實時準確的反應。一個Virtools場景只有一個系統(tǒng)進程,也是單線程運行。因而其能夠自行決定其任務的優(yōu)先級,讓所有任務在Virtools本身的時間軸上實時的運行,而不受宿主非實時操作系統(tǒng)的限制。

        Virtools視景執(zhí)行過程中,以幀的方式在自身時間軸上推進視景進程。每一幀內按固定的時序執(zhí)行一次過程循環(huán),如圖2所示。最先執(zhí)行的是管理預處理,在此Virtools會運行視景腳本中的管理預處理模塊。然后執(zhí)行的是行為模塊,視景腳本中的行為模塊依次運行。執(zhí)行完畢后進入后置管理處理段,在此執(zhí)行視景腳本中的后置管理模塊。執(zhí)行完畢后對場景進行渲染,完成一幀的執(zhí)行。

        圖2 Virtools幀結構

        本虛擬訓練系統(tǒng)中,Virtools虛擬視景不僅需要對自身場景中的事件做出實時準確的反應,還需對仿真彈筒上的操作做出實時的反應。而仿真彈筒時序以現實世界的時間軸為基礎。所以虛擬視景時間軸需與現實世界時間軸有可解析關系。因此,本虛擬視景采用固定幀率的方式運行。確定好虛擬視景幀率之后,仿真計算機性能足夠的前提下,虛擬視景時間軸能與現實世界的時間軸同步。因而就實現了仿真彈筒時間軸與虛擬視景時間軸的同步。

        2.2 回調函數調用邏輯分析

        Vrtools虛擬視景在事件發(fā)生時會調用相應的回調函數來處理。在本虛擬訓練系統(tǒng)視景運行過程中主要的事件有:打開VT、開始執(zhí)行視景、停止視景、暫停視景、復位視景。經測試事件和回調函數對應關系如表1所示。

        表1 回調函數調用邏輯

        2.3 Virtools SDK 開發(fā)構架

        Virtools軟件架構高度模塊化。圖3所示為其API整體構架。所有的Virtools可執(zhí)行程序都是在該架構上通過動態(tài)鏈接庫(DLLs)的形式實現的。其核心組件有兩個DLLs:CK2和VxMath。VxMath提供較為底層的函數;CK2提供核心的行為函數,并且負責管理關聯其他組件。本系統(tǒng)設計的SerialBB就是通過調用CK2和VxMath提供的API實現的[1]

        圖3 Virtools API整體構架

        3 串行通信接口行為模塊設計

        3.1 程序設計

        SerialBB中行為模塊框架通過調用Virtools API實現。串口打開/關閉時序部分通過回調函數實現。串口通信部分、數據處理部分通過調用Win32 API實現。

        3.1.1 行為模塊框架實現

        行為模塊軟件結構包括5部分,通過這5部分就能實現行為模塊框架。

        1)Plugin信息注冊函數:該函數用于Plugin信息的注冊,調用CKGetPluginInfo()函數創(chuàng)建了指向CKPluginInfo結構類型的指針對Plugin版本號、插件類型、作者等相關信息進行指定,調用CKGetPluginInfo-Count()函數獲取注冊的Plugin的個數。上述兩個函數將最后生成的DLL文件聲明為Building Block Plugin,該 Plugin用來執(zhí)行 BB,BB的執(zhí)行是 Building Block Plugin的一部分。最后調用 RegisterBehavior-Declaration()函數注冊Building Block Plugin將要執(zhí)行的BB,完成對BB的注冊。

        2)BB聲明函數:該函數用于BB描述函數的聲明,通過調用CreateCKObjectDeclaration()創(chuàng)建CKObjectDeclaration類型的指針,該指針指向BB描述函數結構體。通過該函數指定BB的類型、版本號、功能等相關參數和信息。

        3)BB創(chuàng)

        建函數:該函數用于BB實體的創(chuàng)建,包括輸入輸出接口、輸入輸出參數接口、功能函數指定等。函數用CreateBehaviorPrototype()創(chuàng)建CKBehaviorPrototype類型的指針,用來指向將要創(chuàng)建的BB原型的函數。創(chuàng)建函數則只有在BB真正使用的時候才會被調用。

        4)BB執(zhí)行函數:該函數用于定義BB的行為功能,是BB的核心。BB的每次調用都會執(zhí)行該函數。BB執(zhí)行過程中參數處理過程為:首先用ActiveInput()函數激活模塊的輸入端,開始執(zhí)行模塊。然后調用函數GetInputParameterValue()從參數入口讀取輸入參數。然后對參數進行處理,處理完成之后通過SetOutputParameterValue()函數將處理結果輸出到參數輸出口,供其它模塊調用。模塊每次調用都會更新輸出端口值。參數處理完畢后停止模塊運行并激活模塊輸出端口,標志BB的一次調用完成。

        5)BB回調函數:該函數用于對一些特定事件(如鍵盤、鼠標等)做出響應,以及對BB是時間依賴還是幀依賴做出選擇[1,5]。

        以上5部分函數依靠指針按圖4所示順序執(zhí)行,實現行為模塊框架。

        3.1.2 串口開關邏輯切換實現

        虛擬視景狀態(tài)流圖如圖5所示。系統(tǒng)正常運行需保證計算機COM口在視景停止和暫停狀態(tài)為關閉,在視景運行狀態(tài)為開啟。

        對照表1經分析,最后選擇在回調函數CKM_BEHAVIORRESUME中調用打開串口函數,在回調函數CKM_BEHAVIORPAUSE和KM_BEHAVIORRESET中調用關閉串口函數。從而保證計算機COM的開關時序[6]。

        3.1.3 串口通信部分的實現

        圖4 行為模塊軟件構架

        串口通信部分通過調用Win32 API中的文件操作函數實現。打開串口通過調用CreateFile()函數實現。發(fā)送數據通過調用WriteFile()函數實現。接受數據通過調用ReadFile()函數實現[3-4]。串口的打開和關閉在回調函數中實現。程序運行到BB執(zhí)行函數時BB被激活。程序首先初始化參數,然后向仿真彈筒發(fā)送握手信號,如果收到握手成功的反饋信號則將握手成功位置位,否則在BB下一次激活時繼續(xù)給仿真彈筒發(fā)送握手信號直至成功握手。成功握手后,BB在每個幀循環(huán)都會調用ReadFile()函數從計算機COM口讀取一組數據。經過解包和數據處理之后輸出供其它模塊調用。直至 BB不再被激活。因為Virtools以基于幀的方式運行,所以行為模塊程序本身并不需要寫循環(huán),圖中幀循環(huán)是通過Virtools腳本實現的。這種方式可以保證程序讀數周期與Virtools運行周期相同。

        圖5 虛擬視景狀態(tài)流圖

        圖6 SerialBB程序流程圖

        圖7 串口行為模塊

        程序編譯之后生成SeialBB如圖 7所示。SerialBB模塊輸入端和輸出端相連,形成一個循環(huán),每幀結束后都會激活輸出端,然后由輸出端激活輸入端,保證在下一幀時SerialBB仍舊處于激活狀態(tài)。

        3.2 接口模塊測試

        將SerialBB集成到Virtools行為腳本中測試發(fā)現半實物接口能夠很好的工作,仿真彈筒發(fā)送的數據都及時、準確的到達了虛擬視景。虛擬視景實時的對仿真彈筒的操作做出了正確的反應。虛擬彈筒的瞄準過程、發(fā)射信號等都能實時準確的反應到虛擬視景,并由虛擬視景仿真出來。系統(tǒng)整體運行流暢,未出現可覺察到延遲現象,受訓者感受到預期的沉浸效果。視景在各種操作組合下,計算機COM口都能正確的在打開和關閉狀態(tài)間切換,避免了異常數據接受。

        4 結論

        文中在Virtools SDK開發(fā)構架下,通過調用Virtools API和Win 32 API完成了虛擬訓練系統(tǒng)半實物接口的設計和開發(fā)。通過合理的使用Virtools回調函數,準確地控制了接口的開關邏輯。實現了基于Virtools虛擬訓練系統(tǒng)仿真彈筒和仿真計算機的實時通信。

        這些工作是針對計算機COM做的,但并不局限于COM口。在相同的構架下,通過其它Win32 API的調用理論上能實現任意計算機支持的接口與Virtools虛擬視景間的通信。

        [1]VIRTOOLS.Virtools SDK Documentation[S].FRANCE:VIRTOOLS,2006.

        [2]王立群,李紅.簡明教程[M].上海:復旦大學出版社,2008.

        [3]艾塞明格.Win32開發(fā)人員參考庫[M].北京:機械工業(yè)出版社,2001.

        [4]龔建偉,熊光明.Visual C++/Turbo C串口通信編程實踐[M].北京:電子工業(yè)出版社,2007.

        [5]楊國平.Virtools SDK初探[J].程序員:游戲創(chuàng)造,2006,6:73-75.

        [6]吳明勛.VIRTOOLS使用手冊(一)[M].臺灣:愛迪斯通股份有限公司,2006.

        [7]陳定方,羅亞波.虛擬設計[M].北京:機械工業(yè)出版社,2007.

        猜你喜歡
        視景時間軸構架
        改革開放以來黨的歷屆三中全會時間軸
        時間軸上二階非線性非自治延遲動力系統(tǒng)的振動性
        建筑安裝造價控制核心要點構架
        急診PCI治療急性心肌梗死的護理探索構架
        時間軸里的“共和國記憶”
        金橋(2019年12期)2019-08-13 07:16:28
        高可靠全平臺ICT超融合云構架的設計與實現
        電子制作(2018年17期)2018-09-28 01:56:54
        略論意象間的主體構架
        中華詩詞(2018年1期)2018-06-26 08:46:42
        vega及其在戰(zhàn)場環(huán)境視景仿真系統(tǒng)中的應用
        電子測試(2018年4期)2018-05-09 07:28:19
        全回轉拖輪運動建模與視景仿真
        基于Vortex與Vega Prime的車輛模擬器動力學與視景仿真
        国产精品嫩草影院午夜| 谷原希美中文字幕在线| 亚洲丰满熟女一区二亚洲亚洲| 人妻中文字幕在线网站| 成人欧美一区二区三区| 日韩精品无码免费专区网站| 国产天堂网站麻豆| 国产又黄又爽又无遮挡的视频| 日本激情一区二区三区| 丰满人妻久久中文字幕| 色先锋av影音先锋在线| 少妇高潮潮喷到猛进猛出小说| 人体内射精一区二区三区| 国内精品久久久久影院蜜芽| 91中文字幕精品一区二区| 国产综合精品久久99之一| 亚洲性爱视频| 久久99精品久久久久久久清纯| 中文字幕乱码中文乱码毛片| 五月婷婷丁香视频在线观看| 不卡一区二区黄色av| 又色又爽又高潮免费视频国产| 久久天天躁夜夜躁狠狠躁2022| 国产av一区二区三区区别| 国产人妖一区二区av| 亚洲av成人一区二区| 免费国产在线精品一区 | 亚洲AV无码精品色午夜超碰| 丝袜人妻中文字幕首页| 国产91人妻一区二区三区| 精品一区二区三区免费视频| 成人免费ā片在线观看| 亚洲午夜无码视频在线播放| 激情视频在线播放一区二区三区| 亚洲av无码国产精品色| 无码国产精品一区二区高潮| 亚洲欧美日韩国产色另类| 久久洲Av无码西西人体| 日韩人妻系列在线观看| 亚洲av无码国产精品色午夜字幕 | 免费a级毛片18禁网站|