王婧羽 胡曉陽



摘 ?要:對于目前虛擬現實技術在軍事領域中的廣泛應用,通過使用三維交互程序開發引擎Unity3D在計算機平臺上開發了無人機蜂群作戰場景可視化的仿真應用,實現了該作戰過程中逼真的效果。結果表明該系統能增加分析人員的真實感,在一定程度上降低了實驗成本。
關鍵詞:虛擬現實;Unity3D;無人機;蜂群作戰;可視化
中圖分類號:U675.79 文獻標志碼:A ? ? ? ? 文章編號:2095-2945(2020)02-0013-03
Abstract: For the wide application of virtual reality technology in the military field, the simulation application of UAV swarm combat scene visualization is developed on the computer platform by using the three-dimensional interactive program development engine Unity3D, and the realistic effect in the combat process is realized. The results show that the system can increase the reality of analysts and reduce the experimental cost to a certain extent.
Keywords: virtual reality; Unity3D; UAV; bee swarm warfare; visualization
隨著現代科學技術的發展,控制技術、計算機技術、電子技術、航空技術等一系列高新技術出現了日新月異的變化,無人機應運而生,并逐步作為一種現代化的武器裝備應用于現代高技術局部戰爭中[1],面對日益多樣化的復雜任務和高度復雜的戰場環境,無人機蜂群作戰也逐漸從理論變為了現實。
Unity3D游戲引擎是近幾年非常流行的一個3D游戲開發引擎。該軟件可以實現三維場景的搭建,并進行場景的交互[2]。因此,提出Unity3D為主要開發工具的無人機蜂群作戰場景可視化的設計思路。
為實現一定逼真度并兼顧系統性能要求,可以從以下兩個方面加以考慮:(1)模型在具備一定逼真度基礎上,精細程度不能太高,可以采用把場景中的各實體由簡化處理的模型來模擬。(2)選擇格式匹配的紋理貼圖及合適的紋理映射方式,提高實體和戰場環境仿真的逼真度。
為實現戰斗場景可視化,利用3DMax建立飛機、無人機和戰場地形模型;利用Unity3D搭建模型;利用C#編程開發出戰斗場景可視化系統。
1 仿真工具
目前三維交互建模工具較多,其中3DMax是市場上較為主流的三維建模、動畫及渲染解決方案之一,被廣泛應用在視覺效果、角色動畫及游戲開發等的領域內[3]。
Unity實時開發平臺,打造面向游戲、汽車、交通運輸、電影、動畫、建筑、工程等領域的3D、2D VR和AR可視化效果,是一個全面整合的專業游戲引擎。其編輯器可運行在Windows、Linux、Mac OS X下,可發布項目至Windows、Mac、Wii、iPhone、WebGL、Windows phone 8和Android平臺[4]。也可以利用Unity web player插件發布網頁游戲,支持Mac和Windows的網頁瀏覽。基于這種跨平臺開發的思考,選用該工具作為作戰場景模擬再現的主要開發工具。
2 創建場景
2.1 圖片處理
搜集有三視圖的飛機、無人機和坦克模型圖,在Photoshop里進行處理,用鋼筆工具修剪圖片的三視圖,按一定方向擺放三視圖后并存儲,接著使用Photoshop里的銳化工具增加模型紋理使之更加清晰便于后期處理。
整理素材,在3ds Max中導入三視圖,搭建模型,再利用占展UV貼圖給飛機模型貼圖并渲染,導出文件。
2.2 搭建地形模型
設置地形系統,Unity3D內置了一套強大的山體系統(也叫地形系統)。在Unity3D中創建一個新的場景,通過地形屬性面板畫出山體形狀并調整山體大小,選擇貼圖紋理添加地形貼圖后繪制山體貼圖。使用畫樹和畫草工具為地形增色[5]。設置天空盒紋理,添加合適的燈光,完成地形創建如圖1所示。
2.3 搭建飛機模型
將從3ds Max中導出的飛機模型文件拖拽到Unity3D的Project面板中,然后將飛機模型拖拽到建好的場景中,命名為Plane,調整模型尺寸。飛機初始狀態為略傾斜,并且在地面等待起飛,因此將飛機設定一定角度旋轉,完成后的飛機模型如圖2所示。
2.4 搭建無人機模型
將從3ds Max中導出的無人機模型文件拖拽到Unity3D的Project面板中,然后將無人機模型拖拽到建好的場景中,命名為Drone,調整模型尺寸,所建無人機模型將如圖3所示。
由于無人機起初與飛機同步運動,體現飛機裝載著無人機,因此將無人機與飛機建立父子關系,飛機為父物體,無人機為子物體。
為達到比較真實的效果,在無人機的旋翼上添加Animation組件,錄制旋翼旋轉動畫xuanyi,添加到Animation組件中如圖4所示,提供無人機旋翼動畫的功能。
2.5 搭建坦克模型
與搭建其他模型相同步驟,將坦克模型加到場景中作為無人機群攻擊的目標點,完成后的模型如圖5所示。
3 實現過程
3.1 飛機飛行控制
選擇plane對象,添加Script組件,編寫c#代碼,腳本需求包括以下四方面:(1)飛機以固定速度起飛;(2)飛機以設定加速度做加速向前運動到速度為指定速度;(3)飛機到達特定位置時,通過外界輸入空格命令,投放無人機;(4)投放無人機后飛機回到起飛點。
飛機飛行控制基本實現思路:定義float型數據飛機的上升速度、向前飛的實際速度、加速度與飛行時間,飛機以指定上升速度上升同時旋轉回正常飛行角度,上升指定時間后飛機做勻加速運動,到指定速度后勻速前進,飛行過程利用transform.Translate函數實現;此時外界可以輸入命令,飛機通過Input.GetKey函數獲取外界命令,之后飛機通過使用transform.DetachChildren函數解除與無人機的父子關系,達到投放無人機的目的。投放無人機后,飛機飛回原地。
將上述邏輯通過腳本代碼實現,即飛機模型所掛在的Script腳本組件的內容。
3.2 無人機蜂群控制
3.2.1 無人機個體行為控制
模擬無人機蜂群作戰,要先給每個無人機賦予各自的行為模式:(1)避免無人機之間相互碰撞——分離;(2)向目標方向移動——隊列;(3)向無人機的領航者位置移
動——聚集[6]。將無人機模型預制,復制多個預制體,構成無人機群,在無人機群的個體上掛載Script組件,控制無人機蜂群飛行過程。
代碼實現思路:定義移動速度、旋轉速度、隨機力的頻率及大小、向心力、分離力、規避力的大小、追隨速度及半徑等個體屬性;由平均位置來計算無人機的聚合,判斷規避半徑與個體間的距離來改變推力,同時還要與領航無人機保持一定的距離;計算與無人機領航者的相對速度后調整速度由領航者帶領飛向目標點;為產生隨機力,還需定義一個方法IEnumerator UpdateRandom,通過隨機返回單位球體類一點坐標來更新隨機力,依據隨機頻率在一定時間分為類變化隨機力。
將此思路編為c#代碼命名為Flock,掛在單個無人機上,控制每個無人機個體行為,Flock組件視圖如圖6所示。
3.2.2 無人機領航者控制
創建無人機領航者及群體控制器,這個類會決定飛行的方向,引領其他無人機向目標飛行。選擇Drone對象,添加Script腳本組件后編寫代碼。
定義偏移大小、范圍、領航無人機速度、加速度、對目標位置的誤差值等屬性,定義目標位置,用Transform[]target字符串來實現。開始時,飛機接收命令與無人機解除父子關系,無人機同樣接收命令,通過if語句與Transform.parent函數判斷是否與飛機解除了父子關系。當確定已解除父子關系后,無人機尋找并飛向目標。為使無人機可以搜索指定目標,需定義尋找目標的方法,命名為Move To,實現思路為:首先使用字符串string類型定義目標,定義float類型目標數值;然后通過transform.LookAt函數使無人機朝向目標點,同樣通過transform.Translate函數使無人機移動,最后通過if語句判斷無人機是否到達指定目標。
將上述邏輯編輯成c#腳本,命名為FlockController,掛在領航無人機對象上實現需求,組件視圖如圖7所示。
4 運行驗證
無人機蜂群作戰場景可視化運行截圖如圖8所示。
5 結束語
Unity3D引擎在作戰場景可視化系統開發上的具有效率高、逼真度和可信度高、能滿足系統仿真實時性等明顯優勢。直接運用編輯器自帶的功能接口和組件就能夠快速得到模擬作戰過程所需要的無人機間碰撞檢測等復雜功能。目前其在無人機蜂群作戰模擬方面的應用瓶頸在于多無人機之間的通信處理問題。
參考文獻:
[1]沈林成,牛軼峰,朱華勇.多無人機自主協同控制理論與方法[M].北京:國防工業出版社,2013:1.
[2]仇樂.基于Unity3D的船舶航跡三維顯示系統[J].船舶科學技術,2019(41):145.
[3]李志,李艦,付玉峻.基于Unity3D的某型地空導彈戰斗場景可視化研究[J].電腦編程技巧與維護,2016(03):71.
[4]姜子奇.基于Unity3D的礦山虛擬采礦技術研究[J].礦業工程,2019(17):60.
[5]羅培羽.Unity3D網絡游戲實戰[M].北京:機械工業出版社,2016:10-12.
[6]王洪源,陳慕羿,華宇寧,等.Unity3D人工智能編程精粹[M].北京:清華大學出版社,2014:5.