郭聰,王守尊
(海軍工程大學(xué) 機(jī)械工程系,湖北 武漢 430033)
基于Unity3D的飛行可視化仿真系統(tǒng)設(shè)計(jì)
郭聰,王守尊
(海軍工程大學(xué) 機(jī)械工程系,湖北 武漢430033)
針對(duì)當(dāng)前飛行可視化仿真系統(tǒng)硬件配置要求高、開發(fā)難度大、顯示設(shè)備深度效果差的缺陷,結(jié)合飛機(jī)運(yùn)動(dòng)模型、3DMAX、C#腳本編程技術(shù),實(shí)現(xiàn)了基于Unity3D的飛行可視化仿真系統(tǒng)。采用Oculus Rift頭帶式顯示器作為視頻輸出設(shè)備,能夠?yàn)橛脩籼峁┏两降娜藱C(jī)交互環(huán)境?;陲w機(jī)運(yùn)動(dòng)模型建立了飛行解算模塊,有效反映飛機(jī)的飛行品質(zhì)。實(shí)驗(yàn)表明,該仿真系統(tǒng)具有良好的可操縱性和逼真度,仿真系統(tǒng)通過(guò)鍵盤控制指令完成飛行動(dòng)作,系統(tǒng)通用性和可擴(kuò)展性較好、制作高效。
虛擬現(xiàn)實(shí);運(yùn)動(dòng)模型;Unity3D;飛行仿真
飛行仿真系統(tǒng)是設(shè)在地面能模擬飛行器空中飛行狀態(tài)的裝置,它也是典型的人在回路中的仿真系統(tǒng),人在回路中的仿真是操作人員在系統(tǒng)回路中進(jìn)行操縱的仿真[1]。由于在真實(shí)飛機(jī)上訓(xùn)練駕駛員耗資大,又受到空域場(chǎng)地的限制,而且有些特殊情況還難以在飛機(jī)上實(shí)現(xiàn),多年來(lái)人們都采用飛行仿真系統(tǒng)(飛行模擬器)來(lái)訓(xùn)練飛行員[2]。目前飛行可視化系統(tǒng)的程序開發(fā)方法大致可分為兩類:基于OpenGL/Direct3-D三維應(yīng)用程序接口的開發(fā)和基于MultigenCreator/VEGA等仿真平臺(tái)的開發(fā)。應(yīng)用OpenGL/Direct3在開發(fā)大型三維虛擬場(chǎng)景時(shí),從建立圖形到控制程序開發(fā)比較繁瑣,工作量和難度都比較大、對(duì)開發(fā)者的編程技能要求較高。MultigenCreator/ VEGA以其效率高、易用的優(yōu)點(diǎn),被目前多數(shù)系統(tǒng)所采用。但這種方式缺乏靈活性,而且對(duì)硬件性能要求高,多在圖形工作站或高性能PC機(jī)上使用。目前飛行仿真系統(tǒng)視景顯示的手段主要為多通道拼接顯示、電腦顯示器顯示和平面投影顯示。多通道拼接顯示需要專業(yè)的投影設(shè)備,硬件配置要求高,不易于大批量配備、電腦和普通平面投影顯示則存在視野狹窄沉、浸感不強(qiáng)的問(wèn)題。筆者提出使用Unity3D進(jìn)行系統(tǒng)開發(fā),結(jié)合Oculus Rift頭帶式顯示器和電腦顯示器作為顯示設(shè)備建立飛行可視化仿真系統(tǒng)。Unity3D在開發(fā)效率上采用組件式開發(fā)的方法取代純代碼開發(fā),仿真步驟大大簡(jiǎn)化,降低了開發(fā)周期和難度,在開發(fā)成本上采用低端硬件亦可流暢運(yùn)行廣闊的場(chǎng)景[3]。在顯示方法上,Oculus Rift頭帶式顯示器為使用者提供虛擬現(xiàn)實(shí)體驗(yàn),使用者所見即整個(gè)世界,幾乎沒(méi)有屏幕感,且成本相對(duì)于多通道拼接顯示方法更加低廉,易于大量配置。
1.1系統(tǒng)需求
根據(jù)前面的定義,飛行可視化仿真系統(tǒng)必須具有以下功能:1)跟蹤飛機(jī)的位置并接收操作員控制命令的輸入;2)圖形模擬飛行的各種天氣、云、機(jī)場(chǎng)等;3)實(shí)時(shí)、保證幀率恒定。
1.2系統(tǒng)軟硬件基礎(chǔ)
系統(tǒng)的開發(fā)平臺(tái)為Unity3D,該平臺(tái)是由Unity Technologies公司開發(fā)的一個(gè)可輕松創(chuàng)建三維視頻游戲、建筑可視化、實(shí)時(shí)三維動(dòng)畫等類型互動(dòng)內(nèi)容的多平臺(tái)的綜合型開發(fā)工具,程序編輯支持腳本C#、Javascript、Boo語(yǔ)言[4]。系統(tǒng)的顯示設(shè)備為Oculus Rift頭帶式顯示器,該設(shè)備對(duì)Unity3D引擎提供官方支持,本顯示器根據(jù)雙目視差原理在兩個(gè)目鏡上輸出不同的圖像,使大腦在綜合兩幅圖像信息后生成具有深度感的三維景象,且具有陀螺儀等慣性傳感器,可以隨使用者頭部轉(zhuǎn)動(dòng)變換視角,沉浸感極強(qiáng),雙眼的視覺(jué)合并之后擁有1 280*800的分辨率。
2.1系統(tǒng)總體方案
飛行可視化仿真系統(tǒng)由人機(jī)交互模塊、飛行解模塊、視景仿真模塊等6部分組成。人機(jī)交互模塊包括鍵盤和頭盔顯示器,操作員可根據(jù)頭盔顯示器輸出的視景了解飛機(jī)的飛行狀態(tài),并通過(guò)鍵盤控制飛機(jī)姿態(tài)的變化。飛行解算模塊主要完成對(duì)飛機(jī)動(dòng)力裝置、氣動(dòng)性能的解算,實(shí)時(shí)提供飛行狀態(tài)數(shù)據(jù)。視景仿真模塊負(fù)責(zé)生成操作員視點(diǎn)觀看到的實(shí)時(shí)圖像。
系統(tǒng)運(yùn)行時(shí),操作員通過(guò)外部設(shè)備鍵盤進(jìn)行數(shù)據(jù)的輸入,飛行解算模塊對(duì)輸入的信息進(jìn)行解算,改變飛機(jī)的飛行姿態(tài)、位置等飛行參數(shù),通過(guò)頭帶式顯示器進(jìn)行視景輸出,實(shí)現(xiàn)人機(jī)交互。
圖1 總體方案設(shè)計(jì)圖Fig.1 The design of general planning
2.2飛行解算模塊
飛行解算模塊,根據(jù)外部操縱和環(huán)境信息,利用飛機(jī)運(yùn)動(dòng)等等一系列數(shù)學(xué)模型,對(duì)飛機(jī)空氣動(dòng)力特性和運(yùn)動(dòng)規(guī)律進(jìn)行仿真,實(shí)時(shí)得到飛機(jī)的姿態(tài)狀態(tài)以及飛行參數(shù),為了方便建立飛機(jī)的運(yùn)動(dòng)數(shù)學(xué)模型,又使其具有一定的通用性,做如下假設(shè):
1)飛機(jī)是剛體,在其運(yùn)動(dòng)過(guò)程中質(zhì)量保持不變;
2)視地球表面為平面,不計(jì)地球自轉(zhuǎn)與公轉(zhuǎn)的影響;
3)重力加速度不隨飛行高度的變化而變化;
4)機(jī)體坐標(biāo)系的xoz平面為飛機(jī)幾何形狀和質(zhì)量的對(duì)稱平面,慣性積Ixy=Iyx。
飛機(jī)在空中的一般運(yùn)動(dòng)可以拆解為質(zhì)心的空間平動(dòng)和繞質(zhì)心的定點(diǎn)轉(zhuǎn)動(dòng)兩部分。根據(jù)牛頓第二定律并利用上述假設(shè),得到飛機(jī)動(dòng)力學(xué)方程組如下[5]:
其中FX、FY、FZ,L、M、N,u、v、w,p、q、r分別為機(jī)體外力和,機(jī)體和外力矩,機(jī)體質(zhì)心速度,機(jī)體旋轉(zhuǎn)角速度在機(jī)體坐標(biāo)系3個(gè)坐標(biāo)軸上的分量。
為求解飛機(jī)相對(duì)于地面固定坐標(biāo)系的方位和飛行軌跡,需要利用坐標(biāo)轉(zhuǎn)換關(guān)系補(bǔ)充運(yùn)動(dòng)學(xué)方程,即:
在使用公式(4)當(dāng)θ=-π/2或θ=π/2時(shí),這組公式中出現(xiàn)了奇點(diǎn),無(wú)法進(jìn)行計(jì)算歐拉角,所以采用4元數(shù)代替歐拉角以避免上述問(wèn)題,設(shè)4個(gè)4元參數(shù)為:
可以得到4元數(shù)與歐拉角的關(guān)系如下:
通過(guò)方程(1)(2)應(yīng)用四階經(jīng)典龍格庫(kù)塔法,得到沿飛機(jī)體坐標(biāo)系下的線速度u,v,w和角速度p,q,r。再由(3)(4)將數(shù)據(jù)轉(zhuǎn)換為地面坐標(biāo)系下的和飛機(jī)的偏航角、俯仰角、滾轉(zhuǎn)角,由此讓飛機(jī)在視景中實(shí)現(xiàn)飛行。
2.3視景仿真模塊
視景仿真模塊中飛機(jī)模型和機(jī)場(chǎng)模型都由3DMAX創(chuàng)建,建立好坐標(biāo)系后,將模型導(dǎo)出為Unity3D官方推薦的FBX格式,導(dǎo)入到 Unity3D場(chǎng)景中,為了在保持模型的尺寸,在導(dǎo)入后應(yīng)將模型尺寸按比例放大100倍,并將模型材質(zhì)和貼圖重新設(shè)置。視景仿真模塊中的地面環(huán)境、光源、天空盒,攝像機(jī)等都是通過(guò)Unity3D實(shí)現(xiàn)的。利用Unity3D內(nèi)置的Terrain地形編輯器進(jìn)行地形、樹木、草坪等機(jī)場(chǎng)的周圍環(huán)境和水面的創(chuàng)建。在創(chuàng)建的場(chǎng)景中加平行光(Directional Light)模擬太陽(yáng)光,在場(chǎng)景中建立兩個(gè)攝像機(jī),獲取了攝像機(jī)對(duì)象后,去調(diào)用”active”引用,通過(guò)”true”和”fouse”來(lái)激活和關(guān)閉顯示攝像機(jī),他們分別用來(lái)顯示機(jī)體姿態(tài)和機(jī)艙內(nèi)的視景,在渲染設(shè)置界面中的“Skybox Material”設(shè)置天空盒的材質(zhì),然后將其應(yīng)用在場(chǎng)景中,解決多個(gè)攝像機(jī)進(jìn)行視角切換后出現(xiàn)貼圖不一致的問(wèn)題[6]。
圖2 視景仿真模塊結(jié)構(gòu)圖Fig.2 The structure of visual simulation module
控制飛機(jī)飛行時(shí),系統(tǒng)先通過(guò)控制器輸入鍵盤事件并將具體操作信息發(fā)送給飛行解算模塊,然后飛行解算模塊經(jīng)過(guò)一系列的邏輯計(jì)算,得到飛機(jī)的姿態(tài)和位置并結(jié)合碰撞檢測(cè)模塊、特殊效果模塊、聲音模塊,將相關(guān)信息發(fā)送給視景仿真模塊,最后根據(jù)攝像機(jī)的視角進(jìn)行顯示。圖3給出了飛行視景仿真實(shí)現(xiàn)流程。
圖3 可視化仿真系統(tǒng)流程Fig.3 The flow path of visual simulation system
本仿真系統(tǒng)在Windows7環(huán)境下運(yùn)行,采用C#語(yǔ)言和unity3d引擎開發(fā)。測(cè)試環(huán)境:PC計(jì)算機(jī)一臺(tái),Intel Xeon CPU E56202.40 GHz 2.40 GHz CPU,4.00 G內(nèi)存,NVIDIA Quadro顯卡,顯示器分辨率1 680*1 050,外接Oculus Rift頭帶式顯示器。在上述配置環(huán)境下,對(duì)設(shè)計(jì)的飛行可視化仿真系統(tǒng)進(jìn)行測(cè)試。本系統(tǒng)模擬機(jī)場(chǎng)、島嶼、海面,以及擬云、霧、白天夜晚等場(chǎng)景真實(shí),飛行效果逼真,提供了座艙內(nèi)和飛機(jī)姿態(tài)兩個(gè)觀察視角,視點(diǎn)可跟隨頭部的運(yùn)動(dòng)而改變,滿足了系統(tǒng)在真實(shí)感和沉浸感方面的要求。實(shí)驗(yàn)表明,能夠在保證實(shí)時(shí)性要求的前提下達(dá)到預(yù)期的視覺(jué)效果。
圖4 飛機(jī)駕駛艙視角效果圖Fig.4 The view of aircraft cockpit
圖5 第三視角飛行效果圖Fig.5 View of aircraft
文中利用Unity3D引擎建立了飛行可視化仿真系統(tǒng)[7-8],并通過(guò)Oculus Rift頭帶式顯示器實(shí)現(xiàn)了具有深度的顯示。本文基于飛機(jī)六自由度運(yùn)動(dòng)模型建立的飛行解算模塊可有效反映目標(biāo)飛行器的基本飛行品質(zhì),視景仿真方面效果逼真仿真度高,系統(tǒng)與飛行員之間交互性好,能夠直觀地帶給飛行員身臨其境的效果,視景切換順暢,具有較好的視景仿真效果。
[1]黃安祥.現(xiàn)代軍機(jī)先進(jìn)仿真技術(shù)與工程設(shè)計(jì)[M].北京:國(guó)防工業(yè)出版社,2006.
[2]阿勒頓(Allerton,D.)著;劉興科譯.飛行仿真原理[M].北京:電子工業(yè)出版社,2013.
[3]郭芮.基于Unity3D的加油車虛擬訓(xùn)練系統(tǒng)設(shè)計(jì)[J].機(jī)械設(shè)計(jì),2014,31(3):84-87.
[4]倪樂(lè)波.Unity3D產(chǎn)品虛擬展示技術(shù)的研究與應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2010(9):54-55.
[5]盧惠民.飛行仿真數(shù)學(xué)建模與實(shí)踐[M].北京:航空工業(yè)出版社,2007.
[6]曾林森.基于Unity3D的跨平臺(tái)虛擬駕駛視景仿真研究[D].長(zhǎng)沙:中南大學(xué),2013.
[7]白瑀,曹巖,房亞?wèn)|.面向多品種小批量制造的刀具可視化輔助編碼設(shè)計(jì)[J].西安工業(yè)大學(xué)學(xué)報(bào),2015(4):293-297.
[8]張國(guó)瑾,徐飛,梁婧.DTM數(shù)據(jù)的三維可視化及其實(shí)現(xiàn)[J].西安工業(yè)大學(xué)學(xué)報(bào),2013(7):567-571.
Design of real-time flight sence simulation system based on Unity3D
GUO Cong,WANG Shou-zun
(Naval University of Engineering,Wuhan 430033,China)
Considering the requirements of hardware,development and immersion feeling of the current flight sence simulation.We stablish a real-time flight sence simulation system based on Unity3D by the flight simulation model,3DMAX,and the C#programming technology.Using Oculus Rift head mounted display as a video output device,provides users an immersive and friendly human-computer interaction environment.The establishment of the aircraft motion model is effective and can reflect the dynamic characteristics of the actual aircraft.The experimental results show that the simulation system has good maneuverability and fidelity,implement flight under the keyboard input interface,has good generality,versatility and scalability.
virtual reality;motion model;Unity3D;flight simulation
TP391.9
A
1674-6236(2016)05-0047-04
2015-03-30稿件編號(hào):201503426
郭 聰(1987—),男,山東煙臺(tái)人,碩士研究生,助理工程師。研究方向:艦船可視化。