郭聰,王守尊
(海軍工程大學 機械工程系,湖北 武漢 430033)
基于Unity3D的飛行可視化仿真系統設計
郭聰,王守尊
(海軍工程大學 機械工程系,湖北 武漢430033)
針對當前飛行可視化仿真系統硬件配置要求高、開發難度大、顯示設備深度效果差的缺陷,結合飛機運動模型、3DMAX、C#腳本編程技術,實現了基于Unity3D的飛行可視化仿真系統。采用Oculus Rift頭帶式顯示器作為視頻輸出設備,能夠為用戶提供沉浸式的人機交互環境。基于飛機運動模型建立了飛行解算模塊,有效反映飛機的飛行品質。實驗表明,該仿真系統具有良好的可操縱性和逼真度,仿真系統通過鍵盤控制指令完成飛行動作,系統通用性和可擴展性較好、制作高效。
虛擬現實;運動模型;Unity3D;飛行仿真
飛行仿真系統是設在地面能模擬飛行器空中飛行狀態的裝置,它也是典型的人在回路中的仿真系統,人在回路中的仿真是操作人員在系統回路中進行操縱的仿真[1]。由于在真實飛機上訓練駕駛員耗資大,又受到空域場地的限制,而且有些特殊情況還難以在飛機上實現,多年來人們都采用飛行仿真系統(飛行模擬器)來訓練飛行員[2]。目前飛行可視化系統的程序開發方法大致可分為兩類:基于OpenGL/Direct3-D三維應用程序接口的開發和基于MultigenCreator/VEGA等仿真平臺的開發。應用OpenGL/Direct3在開發大型三維虛擬場景時,從建立圖形到控制程序開發比較繁瑣,工作量和難度都比較大、對開發者的編程技能要求較高。MultigenCreator/ VEGA以其效率高、易用的優點,被目前多數系統所采用。但這種方式缺乏靈活性,而且對硬件性能要求高,多在圖形工作站或高性能PC機上使用。目前飛行仿真系統視景顯示的手段主要為多通道拼接顯示、電腦顯示器顯示和平面投影顯示。多通道拼接顯示需要專業的投影設備,硬件配置要求高,不易于大批量配備、電腦和普通平面投影顯示則存在視野狹窄沉、浸感不強的問題。筆者提出使用Unity3D進行系統開發,結合Oculus Rift頭帶式顯示器和電腦顯示器作為顯示設備建立飛行可視化仿真系統。Unity3D在開發效率上采用組件式開發的方法取代純代碼開發,仿真步驟大大簡化,降低了開發周期和難度,在開發成本上采用低端硬件亦可流暢運行廣闊的場景[3]。在顯示方法上,Oculus Rift頭帶式顯示器為使用者提供虛擬現實體驗,使用者所見即整個世界,幾乎沒有屏幕感,且成本相對于多通道拼接顯示方法更加低廉,易于大量配置。
1.1系統需求
根據前面的定義,飛行可視化仿真系統必須具有以下功能:1)跟蹤飛機的位置并接收操作員控制命令的輸入;2)圖形模擬飛行的各種天氣、云、機場等;3)實時、保證幀率恒定。
1.2系統軟硬件基礎
系統的開發平臺為Unity3D,該平臺是由Unity Technologies公司開發的一個可輕松創建三維視頻游戲、建筑可視化、實時三維動畫等類型互動內容的多平臺的綜合型開發工具,程序編輯支持腳本C#、Javascript、Boo語言[4]。系統的顯示設備為Oculus Rift頭帶式顯示器,該設備對Unity3D引擎提供官方支持,本顯示器根據雙目視差原理在兩個目鏡上輸出不同的圖像,使大腦在綜合兩幅圖像信息后生成具有深度感的三維景象,且具有陀螺儀等慣性傳感器,可以隨使用者頭部轉動變換視角,沉浸感極強,雙眼的視覺合并之后擁有1 280*800的分辨率。
2.1系統總體方案
飛行可視化仿真系統由人機交互模塊、飛行解模塊、視景仿真模塊等6部分組成。人機交互模塊包括鍵盤和頭盔顯示器,操作員可根據頭盔顯示器輸出的視景了解飛機的飛行狀態,并通過鍵盤控制飛機姿態的變化。飛行解算模塊主要完成對飛機動力裝置、氣動性能的解算,實時提供飛行狀態數據。視景仿真模塊負責生成操作員視點觀看到的實時圖像。
系統運行時,操作員通過外部設備鍵盤進行數據的輸入,飛行解算模塊對輸入的信息進行解算,改變飛機的飛行姿態、位置等飛行參數,通過頭帶式顯示器進行視景輸出,實現人機交互。

圖1 總體方案設計圖Fig.1 The design of general planning
2.2飛行解算模塊
飛行解算模塊,根據外部操縱和環境信息,利用飛機運動等等一系列數學模型,對飛機空氣動力特性和運動規律進行仿真,實時得到飛機的姿態狀態以及飛行參數,為了方便建立飛機的運動數學模型,又使其具有一定的通用性,做如下假設:
1)飛機是剛體,在其運動過程中質量保持不變;
2)視地球表面為平面,不計地球自轉與公轉的影響;
3)重力加速度不隨飛行高度的變化而變化;
4)機體坐標系的xoz平面為飛機幾何形狀和質量的對稱平面,慣性積Ixy=Iyx。
飛機在空中的一般運動可以拆解為質心的空間平動和繞質心的定點轉動兩部分。根據牛頓第二定律并利用上述假設,得到飛機動力學方程組如下[5]:

其中FX、FY、FZ,L、M、N,u、v、w,p、q、r分別為機體外力和,機體和外力矩,機體質心速度,機體旋轉角速度在機體坐標系3個坐標軸上的分量。
為求解飛機相對于地面固定坐標系的方位和飛行軌跡,需要利用坐標轉換關系補充運動學方程,即:


在使用公式(4)當θ=-π/2或θ=π/2時,這組公式中出現了奇點,無法進行計算歐拉角,所以采用4元數代替歐拉角以避免上述問題,設4個4元參數為:

可以得到4元數與歐拉角的關系如下:

通過方程(1)(2)應用四階經典龍格庫塔法,得到沿飛機體坐標系下的線速度u,v,w和角速度p,q,r。再由(3)(4)將數據轉換為地面坐標系下的和飛機的偏航角、俯仰角、滾轉角,由此讓飛機在視景中實現飛行。
2.3視景仿真模塊
視景仿真模塊中飛機模型和機場模型都由3DMAX創建,建立好坐標系后,將模型導出為Unity3D官方推薦的FBX格式,導入到 Unity3D場景中,為了在保持模型的尺寸,在導入后應將模型尺寸按比例放大100倍,并將模型材質和貼圖重新設置。視景仿真模塊中的地面環境、光源、天空盒,攝像機等都是通過Unity3D實現的。利用Unity3D內置的Terrain地形編輯器進行地形、樹木、草坪等機場的周圍環境和水面的創建。在創建的場景中加平行光(Directional Light)模擬太陽光,在場景中建立兩個攝像機,獲取了攝像機對象后,去調用”active”引用,通過”true”和”fouse”來激活和關閉顯示攝像機,他們分別用來顯示機體姿態和機艙內的視景,在渲染設置界面中的“Skybox Material”設置天空盒的材質,然后將其應用在場景中,解決多個攝像機進行視角切換后出現貼圖不一致的問題[6]。

圖2 視景仿真模塊結構圖Fig.2 The structure of visual simulation module
控制飛機飛行時,系統先通過控制器輸入鍵盤事件并將具體操作信息發送給飛行解算模塊,然后飛行解算模塊經過一系列的邏輯計算,得到飛機的姿態和位置并結合碰撞檢測模塊、特殊效果模塊、聲音模塊,將相關信息發送給視景仿真模塊,最后根據攝像機的視角進行顯示。圖3給出了飛行視景仿真實現流程。

圖3 可視化仿真系統流程Fig.3 The flow path of visual simulation system



本仿真系統在Windows7環境下運行,采用C#語言和unity3d引擎開發。測試環境:PC計算機一臺,Intel Xeon CPU E56202.40 GHz 2.40 GHz CPU,4.00 G內存,NVIDIA Quadro顯卡,顯示器分辨率1 680*1 050,外接Oculus Rift頭帶式顯示器。在上述配置環境下,對設計的飛行可視化仿真系統進行測試。本系統模擬機場、島嶼、海面,以及擬云、霧、白天夜晚等場景真實,飛行效果逼真,提供了座艙內和飛機姿態兩個觀察視角,視點可跟隨頭部的運動而改變,滿足了系統在真實感和沉浸感方面的要求。實驗表明,能夠在保證實時性要求的前提下達到預期的視覺效果。

圖4 飛機駕駛艙視角效果圖Fig.4 The view of aircraft cockpit

圖5 第三視角飛行效果圖Fig.5 View of aircraft
文中利用Unity3D引擎建立了飛行可視化仿真系統[7-8],并通過Oculus Rift頭帶式顯示器實現了具有深度的顯示。本文基于飛機六自由度運動模型建立的飛行解算模塊可有效反映目標飛行器的基本飛行品質,視景仿真方面效果逼真仿真度高,系統與飛行員之間交互性好,能夠直觀地帶給飛行員身臨其境的效果,視景切換順暢,具有較好的視景仿真效果。
[1]黃安祥.現代軍機先進仿真技術與工程設計[M].北京:國防工業出版社,2006.
[2]阿勒頓(Allerton,D.)著;劉興科譯.飛行仿真原理[M].北京:電子工業出版社,2013.
[3]郭芮.基于Unity3D的加油車虛擬訓練系統設計[J].機械設計,2014,31(3):84-87.
[4]倪樂波.Unity3D產品虛擬展示技術的研究與應用[J].數字技術與應用,2010(9):54-55.
[5]盧惠民.飛行仿真數學建模與實踐[M].北京:航空工業出版社,2007.
[6]曾林森.基于Unity3D的跨平臺虛擬駕駛視景仿真研究[D].長沙:中南大學,2013.
[7]白瑀,曹巖,房亞東.面向多品種小批量制造的刀具可視化輔助編碼設計[J].西安工業大學學報,2015(4):293-297.
[8]張國瑾,徐飛,梁婧.DTM數據的三維可視化及其實現[J].西安工業大學學報,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稿件編號:201503426
郭 聰(1987—),男,山東煙臺人,碩士研究生,助理工程師。研究方向:艦船可視化。