劉艷, 劉全德*
(1.大連大學信息工程學院, 大連 116622; 2. 大連大學大連市環境感知與智能控制重點實驗室, 大連 116622)
隨著全球衛星定位系統、地理信息系統、遙感等技術的迅速發展,無人機除應用于傳統的航拍攝影、農業植保、環境監測等領域,近年來還被廣泛應用于地形測繪、物資運輸、應急救援等領域[1]。無人機的功能和應用領域越來越廣泛,實際飛行時所面臨的環境也愈加復雜。無人機開發過程中常需對飛機性能和品質進行全面測試,在真實火場、災區、人流量大等復雜環境中不僅難以進行,且要耗費大量人力和物力[2]。為了縮短研發周期,降低成本,研制一種能模擬復雜環境的沉浸式飛行模擬仿真平臺就顯得尤為重要。
近年來,國內外針對無人機飛行模擬仿真的研究開展了大量工作,主要采用數字仿真和半物理仿真。蘇奔[3]設計無人機全數字仿真模型,仿真方法成本低、操作簡單,但仿真數據可信度不高。鄭航[4]用Simulink建立動力學模型,用六自由度實物轉臺實時展示四旋翼無人機真實飛行姿態,增強了數據可信度,能較真實模擬實際飛行狀況,但缺乏視景仿真。蔣祎等[5]建立小型多旋翼無人機六自由度動力學模型和運動學模型,使用JMAVSim建立可視化半實物仿真系統。Xian等[6]用慣性導航傳感器實物取代數字模擬傳感器,構建飛行模擬仿真平臺,采用Flight Gear和Google Earth可視化方法展示四旋翼無人機的方位和飛行軌跡。Nguyen等[7]開發了一個用于測試四旋翼無人機半實物仿真系統通信安全的中間件,用Gazebo軟件實現四旋翼無人機模型的三維可視化。綜上,目前無人機仿真技術主要圍繞無人機的動力學和運動學模型進行構建,無人機可視化問題沒有很好的解決,可視化仿真過程中使用的JMAVSim、Flight Gear和Gazebo等仿真軟件缺乏沉浸性和交互性,無法為復雜飛行控制算法研究提供有效支持。
現以四旋翼無人機為研究對象,依托數字孿生技術[8]建立揭示四旋翼動力特性的數字模型,研究基于虛幻4引擎(unreal engine 4,UE4)的虛擬場景開發技術,在高度逼真的三維虛擬未知、復雜環境下測試無人機數字模型感知周圍復雜環境及避障性能,為無人機航跡定位與跟蹤算法優化控制研究提供平臺支撐。
從最初物理實體數據采集到最后服務層的顯示與交互,所設計的無人機飛行模擬仿真平臺由物理層、虛擬層、傳輸層和服務層組成[9],如圖1所示。

圖1 無人機飛行模擬仿真系統架構
物理層是整個系統的基礎,也是獲取真實傳感數據的唯一來源,采用Pixhawk感知姿態、位置等信息并實時傳遞給虛擬層。虛擬層是整個系統的核心部分,也是重點研究內容,由無人機數字模型和三維虛擬環境模型構成,實現對物理實體的精準建模和真實場景的復現。傳輸層是物理層和虛擬層之間的橋梁和紐帶,通過傳輸網絡和定義數據接口,采用Socket通信方案實現數據雙向傳遞。服務層是人機交互的接口,利用地面站實現系統控制和運行狀態重現功能。
數字模型是對物理實體對象在幾何形狀、物理屬性和行為響應等方面的映射,建立高保真的無人機數字模型對保證無人機飛行模擬仿真平臺的實用性十分重要。
以四旋翼F450無人機為對象,采用CATIA軟件構建其三維幾何模型。為解決螺旋槳和機臂曲面建模難題,引入了曲面造型技術[10],建立如圖2(a)所示的四旋翼螺旋槳幾何模型,力求在外觀、尺寸和形狀等方面與物理實體對象保持一致,同理,分別完成機身、機臂、腳架等模型配件的構建,并將它們按照實際尺寸和幾何位置關系進行裝配,得到如圖2(b)所示的無人機F450物理實體的幾何孿生映射,將其保存為STL格式文件并導入UE4中,通過藍圖類設置新骨架層次,解決屬性標定問題,賦予F450幾何模型物理屬性和行為功能特性。

圖2 三維四旋翼模型
為實現F450模型的行為映射,設計了能反映無人機行為特性的四旋翼無人機物理框架結構模型,包括作動器模型,運動學、動力學模型和控制器模型,如圖3所示。

圖3 物理數學模型框架
無人機作動器主要承載著控制器脈沖寬度調制(pulse width modulation,PWM)信號轉化為電機驅動力的作用,其物理數學模型可簡化為一階的慣性環節表示,即
(1)
式(1)中:τ為時間常數;s為微分算子;Ω為無刷直流電機產生的角速度。
無人機旋翼動力學物理數學模型表達式為
(2)
式(2)中:Ti和Ωi分別為第i號無刷直流電機產生的推力和角速度;根據電機轉動方向,k表示推力因子k1或阻力因子k2,由式(3)確定,即
(3)
式(3)中:CT和CP分別為推力和阻力系數;ρ為空氣密度;D為螺旋槳直徑。為客觀反映螺旋槳物理實體的行為及設計性能,采用F450物理實體數據作為建模數據,如表1所示。

表1 螺旋槳特性表
無人機的上升、橫滾、俯仰和偏航運動所需推力由4個電機轉速決定,可建模為
(4)
式(4)中:U1為螺旋槳產生的總推力;U2、U3和U4分別為實現滾轉、俯仰和偏航運動時的總推力。
四旋翼剛體運動學數學數學模型用平移加速度和轉動加速度的形式組合描述[11-12],可建模為
(5)
為提高系統響應速度,降低積分過大的滯后性對系統響應性能的影響,控制器采用了如圖4所示的串級控制結構[13]。通過外環比例P控制加快姿態調節,內環使用比例-積分-微分(proportion-integration-differentiation,PID)調節消除四旋翼無人機飛行中的震蕩和過沖現象,提高系統魯棒性。

圖4 目標串級控制系統
根據2.2節中物理數學模型,基于Simulink中利用Aerospace Blockset和UAV Toolbox工具箱建立的仿真模型如圖5所示,其中包括作動器模塊,動力學和運動學模塊和三維虛擬仿真模塊。
為賦予2.1節中無人機幾何模型動態行為特性,基于C++動態DLL通信設計一個如圖6所示的中間件,解決Simulink與UE4間的通信接口問題,實現F450無人機行為數字映射,即由圖5中數學模型的反饋數據來驅動UE4中無人機三維模型運動。
為完成無人機模擬飛行仿真實驗中數字模型與虛環境的沉浸式交互,在圖6中增設魚眼相機模塊用于感知周圍環境并反饋至數字模型,實現無人機與三維環境的交互。

圖6 中間件
建立可映射物理世界的虛擬世界是飛行模擬實驗的基石。為此,構建了真實飛行場景的孿生虛擬模型。虛擬場景的構建元素最為關鍵的是建筑物,使用3ds Max構建仿真對象,雖然可獲得較為真實的效果,但建模速度過慢。為此,提出一種多元融合的三維可視化虛擬場景建模法,根據建筑物特征屬性相似歸一原則劃分為標志性建筑物(如圖書館,體育場)和非標志性建筑物(如宿舍樓,教學樓)。用 3ds Max對標志性建筑物進行精細化建模,從遙感圖像中提取建筑物的矢量網格,再利用 City Engine 軟件對非標志建筑物進行大范圍建模,并將3ds Max和City Engine的模型在UE4中進行一體化多元融合,具體建模流程如圖7所示。

圖7 三維場景建模流程
以某校園圖書館為例,首先,對場景中的重要建筑物進行精細化建模,將其CAD數據導入 3ds Max 里,經過捕捉、擠出、倒角、插入處理后,再利用矩形工具勾勒墻體邊緣。其次,依據建筑物頂面的高度及其結構,在模型的不同區域中添加不同材質、紋理元素,增加建筑物主體質感和逼真度,如圖8所示。

圖8 3ds Max樓體
為降低模型的冗余和復雜性,提高模型的運行速度,提出一種曲面數量優化方法。在建模過程中,去除相連建筑物拼接區域中不可見的內表面,減少無效曲面的產生,避免大量復制結構化模型產生的冗余。對于水平和垂直結構,最小化布爾運算次數,減小模型復雜性。為最大限度地減少模型數量,優化模型修改器中精細閾值,在保障建筑物真實性的基礎上,提高模型的運行速度。
大范圍建模主要解決非標志建筑物、樹木和道路建模,為提高建模速度,基于規則法本文利用City Engine進行大范圍矢量數據建模。傳統傾斜攝影技術以建筑屋頂為標準的矢量數據提取方法,存在的建筑物傾斜、移位和缺失問題會導致建模偏差[14]。如圖9所示,以建筑底部為標準,使用FAME-Net網絡對航空遙感圖像建筑物數據集進行訓練,規避傳統方法存在的提取偏差,提取建筑物的矢量數據。

圖9 矢量網格數據
計算機生成的體系結構(computer generated architecture,CGA)規則是構建大范圍建模法的核心,主要關注建模速度和效率,可忽略建筑物的部分細節信息。為此,根據建筑物的結構類型、樓層高度、屋頂顏色編寫建模規則,大批量快速生成相應類型的建筑物,建筑物細節與規則的約束力有關,規則越多,模型細節刻畫越完善。
以某校園場景為例,為了建立CGA規則,需要找出建筑物層數和高度之間的關系,測量了研究區域內一些建筑物的高度和層數,并繪制表2。

表2 建筑物高度與層數
根據表2擬合得到建筑高度和樓層數之間的關系式為
H=3.46N+0.69
(6)
將建筑物具體地拆分為各個小的結構部件,根據建筑物結構、樓層高度和顏色進行大范圍規則構建,利用貼圖函數對建筑物的門、窗、屋頂、外墻進行紋理貼圖,部分CGA代碼如下。
1.Building-->
2.comp(f){ front: FrontFacade | side: SideFacade | top: Roof }
3.Lot -->
4. extrude(FLOORCOUNT * floor_height) Building
5.FrontFacade -->
6.setup Projection(0, scope.xy, 1.5, 1, 1)
7. setup Projection(2, scope.xy, scope.sx, scope.sy)
8. split(y){groundfloor_height: Groundfloor | { ~floor_height: Floor }* }
9.SideFacade -->
10.setup Projection(0, scope.xy, 1.5, 1, 1)
11. setup Projection(2, scope.xy, scope.sx, scope.sy)
12. split(y){ groundfloor_height: Floor | { ~floor_height: Floor }* }
此外,除了建筑物模型之外,花草樹木、路燈和道路部分使用現有規則進行建立,生成校園的三維虛擬場景如圖10所示。

圖10 批量建模
為了提高仿真的沉浸性和交互性,在UE4中導入數字高程圖(digital elevation map,DEM)數據進行凹凸不平的地形設計。以GDEMV2高程數據集作為原始數據源,但海量DEM數據會影響后續虛擬場景的運行速度,同時描述地形平坦和復雜地區的數據量大小不一,需要對原始DEM數據進行處理。為此,對原始數據進行插值和降噪處理,提高數據利用率。然后,將地形數據導入Global Mapper進行三維擴展,以獲得hfz格式的地形文件。之后,根據高程圖的寬和高,在World Machine中設置分辨率與數據范圍,以獲得兼容UE4的RAW16格式的高度圖文件。為在UE4中進行場景的多元融合,導入RAW16格式的高度圖,選擇與遙感圖像對應的材質,以創建凹凸不一的真實三維地形,將3ds Max和City Engine所建構的建筑物按照同等比例導入UE4中,置于所建三維地形之上,為解決模型間的動態交互,不同的對象之間添加碰撞設置,實現場景從二維靜態到三維動態的轉化,如圖11所示。

圖11 校園三維場景
為驗證所構建仿真平臺的有效性,進行了數字模型在虛擬場景中的交互測試實驗和飛行姿態控制實驗。如圖12所示,仿真實驗平臺由Pixhawk自駕儀、無人機數字模型,三維虛擬環境數字映射模型和F450無人機遙控器及接收機4個部分組成。運行數字模型和三維虛擬環境的PC機配置是:Intel 酷睿i5 8300H處理器、16 G內存、NVIDIA GeForce GTX 1060顯卡。Pixhawk和PC機之間采用USB進行信息交互。考慮PC機中運行的Simulink模塊無法解析USB串口數據信號,基于Robotics System Toolbox UAV Library編寫了MavlinkSerial_Receive和MavlinkSerial_Send函數,按照Mavlink鏈路通信協議[15]實現了Pixhawk與Simulink之間通信。

圖12 仿真實驗平臺
為進行虛擬場景的沉浸性和交互式測試,令無人機數字模型運行在圖11(a)所構建校園正門場景中進行自主飛行,如圖13所示,由于三維虛擬場景構建是真實場景孿生映射,山脈和地勢與真實環境保持一致,場景中樹木、紅旗等元素也會隨風而動,整個場景具有較好的沉浸性。當無人機數字模型處于虛擬場景中圖13圓圈位置時,左下角小框內是魚眼相機實時感知到的周圍環境信息,此時,無人機感知到障礙物旗幟,由于場景中的碰撞設置,屆時將執行躲避障礙物的動作,與環境具有較好的交互性,可為三維勘測、避障等性能測試提供技術支撐。

圖13 虛擬場景沉浸性和交互式測試
為更直觀地測試無人機在虛擬場景中的姿態控制模擬效果,選擇在圖11(b)所構建無障礙的體育場進行姿態控制性能測試,當遙控器分別做出滾轉、俯仰和偏航指令時,如圖14所示,無人機能較迅速地做出相應動作。

圖14 無人機運動姿態測試
為進一步驗證無人機虛擬仿真平臺的姿態跟蹤性能, 分別從期望姿態與實際姿態之間的橫滾角誤差、俯仰角誤差和偏航角誤差進行分析, 結果如圖15所示。0~20 s只加油門提升高度,沒有進行姿態變換,俯仰角、橫滾角和偏航角均為0°;20~120 s飛行過程中進行了姿態角度的多次隨機調整,實際俯仰角、滾轉角和偏航角跟隨期望姿態曲線發生變化,能在1 s內達到期望姿態角,且超調量小于2%,幾乎沒有穩態誤差。
測試過程中,選取圖15中40 s時刻無人機的運動狀態作為參考,并在虛擬仿真環境中驗證該時上述結果表明,刻的實時運動狀態顯示效果,此時橫滾角為15°,俯仰角8°,偏航角20°,如圖16所示。四旋翼無人機數字模型能較好地跟隨遙控器姿態控制指令,虛擬仿真姿態與預期姿態曲線變化一致,在三維環境中能夠實時進行姿態變換,驗證了無人機數字模型和飛行模擬仿真平臺的有效性。

圖15 飛行中實際和期望姿態角曲線

圖16 40 s時刻無人機運動狀態
基于UE4和MATLAB/Simulink從幾何、物理和行為等方面構建的無人機數字模型,實現物理實體的數字化映射。針對傳統單一3ds Max建模方法速度過慢,提出的多元融合場景建模法,在UE4中實現了多種建筑物三維模型的整合,創建了真實地形地貌的三維虛擬仿真環境,經實驗驗證得出如下結論。
(1) 虛擬場景沉浸性和交互性能良好,可為后期三維勘測、控制算法的優化和復雜應用場景試飛奠定基礎平臺。
(2) 飛行實際曲線和期望曲線對比驗證了無人機數字模型和飛行模擬仿真平臺的有效性,數字模型能很好地執行遙控器姿態控制指令,飛行航跡與期望的航跡高度吻合。