馬忠麗, 劉宏達, 張蘭勇, 彭秀艷
(1. 成都信息工程大學 控制工程學院, 四川 成都 610225; 2. 哈爾濱工程大學 自動化學院, 黑龍江 哈爾濱 150001)
微型多旋翼飛行器售價低、操作簡單,成為越來越多無人機愛好者航拍、航模入門的練手工具[1]。與軍事和民用中被廣泛使用的多旋翼無人機相比,微型多旋翼無人機的動力學參數和PID控制復雜程度有明顯區別,但基本構成和控制原理是類似的,并且操作更安全。因此,將微型多旋翼無人機作為入門機,學習和掌握多旋翼無人機的飛行和控制特點,可以為操控大型多旋翼無人機提供良好幫助。
目前,國內越來越多的高校和儀器設備廠商在開發多旋翼無人機實驗系統[2-3]。這些系統一般是四旋翼無人機平臺,用于四旋翼無人機的飛行姿態測量,沒有提供靈活的調試平臺、逼真的操作體驗和立見的控制效果,并且鮮有涉及六旋翼、八旋翼無人機。因此,筆者設計和開發了以微型多旋翼無人機物理平臺為輔助、以地面站監控軟件和模擬飛行訓練軟件為主,方便在桌面操作和調試的微型多旋翼無人機實驗平臺。在此平臺的基礎上,運用C#開發飛行器地面站監控軟件,利用Unity3D[4]開發飛行器動畫模擬組裝和飛行軟件以及飛行器飛行模擬訓練軟件,用Unity3D構建用戶交互主界面,實現了多種軟件功能的相互調用。該微型多旋翼無人機半物理虛擬飛行和控制平臺能夠幫助用戶學習微型多旋翼無人機的構成、組裝和飛行原理,學習無人機飛行姿態的解算和控制方法,可以進行飛行器模擬操作訓練。
微型多旋翼無人機半物理虛擬飛行和控制實驗平臺由軟件平臺和硬件平臺兩部分組成。軟件平臺包括地面站監控軟件、動畫虛擬組裝軟件和模擬飛行訓練軟件3部分;硬件平臺包括計算機、微型多旋翼物理系統和手柄3部分。系統將虛擬仿真和實物仿真有機地組合在一起,實驗平臺總體設計構架如圖1所示。

圖1 半物理虛擬實驗平臺總體構架圖
(1) 地面站監控軟件。功能是通過串行通信接收和處理微型多旋翼無人機實物平臺傳輸的數據,監測多旋翼無人機的飛行姿態參數,并對多旋翼無人機的飛行姿態進行PID控制。
(2) 動畫虛擬組裝軟件。功能是幫助學生學習多旋翼無人機的構成和飛行原理,通過構建元件庫,采用Unity3D實現四旋翼、六旋翼和八旋翼等多種旋翼式飛行器的動態組裝和飛行姿態的動畫飛行。
(3) 模擬飛行訓練軟件。由運動場景、物理系統和運動控制3部分構成。運動場景按難度劃分等級,難度等級越高,設置的障礙物越多,幫助操作者練習飛行操作、提高操作水平;物理系統是虛擬出操作多旋翼無人機的真實感,將多旋翼模型與障礙物碰撞、多旋翼模型墜毀、多旋翼模型自身重力對飛行的影響等體現出來;運動控制是允許用戶選擇多旋翼遙控器控制方式,并通過編寫運動腳本將運動變量和搖桿一一對應,給使用者帶來實際操控的體驗感。
(4) 多旋翼物理平臺。由電源模塊、傳感器模塊、控制器模塊等組成。具體包括:多旋翼飛行器本體,萬向節連接件和可升降平臺,可以實現多旋翼無人機俯仰、橫滾、偏航和垂直4個自由度的運動。
(5) 計算機和手柄。計算機安裝系統的要求為64位Windows10操作系統,主要功能是安裝平臺各類軟件,并實現與硬件的數據通信;手柄采用普通的游戲手柄,可以進行基本的方向和油門設置,主要功能是進行多旋翼飛行器模擬訓練操作。
由于微型多旋翼無人機尺寸小,因此電源模塊[5]所占空間應盡量小。整個系統負載功率不大,壓差最小為200 mV,輸出電流為500 mA,采用1節鋰電池作為輸入電壓即可。選用MIC5219芯片降壓至3.3 V。升壓用的是尺寸較小的LTC3200開關電容電壓倍增器,給單片機和接收機供電。
控制器模塊[6]是四旋翼無人機的關鍵部分,主要功能是通過計算處理測量元件輸出的數據,如傳感器采集到角度與加速度等信息,并根據內部預設的控制算法,產生輸出控制量[7],調節旋翼電機的轉速和方向。控制器還要保持與地面站的數據連接。控制芯片應有足夠的運算能力、高轉換精度、足夠的通信接口。
根據上述要求,選擇ARM(型號:STM32F103C8T6)作為控制器,它具有高性能、低功耗、先進的RISC體系結構、6種睡眠模式等特點[8]。
四旋翼無人機要平穩飛行,就需要不斷進行自身狀態的檢測與修正,因此選擇合適的傳感器至關重要。這里選用尺寸較小的MPU6050作為慣性傳感器,其內部有三軸陀螺儀和加速度傳感器,采樣精度高。選用MS5611氣壓傳感器,用來采集氣壓數據,實現四旋翼定高控制功能。兩款芯片[9]均采用I2C通信,傳輸數字信號,抗干擾能力強,通信速率快。
微型四旋翼無人機物理平臺總體構成如圖2所示,其基本參數如下:

圖2 微型四旋翼無人機物理平臺總體構成圖
飛行時間:6 min左右;
飛行距離:>30 m(空曠),不建議在室外飛行;
軸距:92×92 mm;
遙控信號默認為PWM信號;
傳感器:三軸陀螺儀、三軸加速度計、氣壓計;
主控:STM32F103C8T6;
通信接口:USART、USB、SWD。
(1) 軟件主界面構架。地面站監控軟件采用C#開發,主要功能有:飛行數據顯示、數據波形變化顯示、三維虛擬飛行姿態顯示和在線PID控制。用戶可視化界面是平臺的樞紐,可以實現對全部軟件功能的調用和交互??梢暬缑嬖赨nity3D下開發。
(2) 數據通信端口。地面站軟件和物理平臺的數據通信采用RS-232串行通信方式[10]。數據波特率9600、19200、38400、115200可選,8位數據,無奇偶校驗,1位停止位,無硬件握手協議。
(3) PID控制在線測試。無人機采用串級PID控制器,調節兩組參數,先調節角速度參數,使4個旋翼的角速度沒有劇烈變化;再調節角度參數。串級PID控制[11]公式為
式中,KP、KI、KD是角速度的P、I、D參數,KP1是角度的P參數,e(t)是角度的誤差項,U(t)是系統的輸出量。
微型四旋翼控制系統框圖如圖3所示。

圖3 四旋翼系統控制框圖
點擊軟件主界面“在線調試”,用戶可以進入PID參數調試界面,可通過數據線將設置參數寫入無人機中,實現參數的修改與PID控制過程的調試。
動畫虛擬組裝軟件采用Unity3D編寫,用Unity3D自帶的Animation動畫編輯器實現。此外,還運用Unity3D的動畫融合、附加動畫、動畫混合等功能。系統實現了四旋翼、六旋翼、八旋翼的組裝動畫、飛行姿態動畫等多個3D動畫。系統為用戶可視化界面添加2D動畫。圖4給出一組六旋翼無人機安裝過程。

圖4 六旋翼無人機安裝過程
3.3.1 運動場景模擬。
利用Unity3D的自帶地形編輯系統,進行地形起伏、平滑、紋理等各種處理,完成運動場景搭建。
3.3.2 物理系統模擬
在現實環境中,四旋翼飛行器如果發生碰撞會導致損壞的后果;但在虛擬平臺中,構建的場景是虛擬的,當發生碰撞時,四旋翼會穿透障礙物,與真實現象不符。因此需要添加物理系統,進行碰撞檢測。
Unity3D中碰撞檢測常用的算法是包圍盒算法[12],即在對象的外圍包一外盒,該外盒由一些基本幾何體組合構成,且其總體積能夠包裹住原先的對象,通過對外盒進行碰撞檢測。當兩個外盒沒有相交時,則證明兩個物體對象之間沒有發生碰撞。四旋翼無人機模型和障礙物的包圍盒算法碰撞檢測如圖5所示。

圖5 包圍盒算法碰撞檢測
圖6給出四旋翼飛行器模型在與障礙物相接觸時,是否彈出預先設計好的碰撞界面測試,測試結果顯實碰撞檢測功能正常。

圖6 檢測碰撞返回界面
3.3.3 運動控制模擬
飛行器運動操控有鍵盤控制和手柄控制兩種方式。Unity3D中可通過設置Edit>Projects Setting>Input.實現手柄與模擬訓練系統的交互。
目前四旋翼飛行器的手柄操控有美國手和日本手兩種。對于兩種不同的操控方式,本系統通過運動控制腳本的設置,可實現用戶在模擬系統中美國手和日本手的切換,而無需添加多個控制手柄。
圖7給出用美國手手柄控制模擬訓練系統中飛行器模型向右側飛行的測試效果。

圖7 手柄控制飛行器側飛效果
本文針對多旋翼飛行器課程、自動控制元件課程、自動控制理論課程及能夠設置相關實驗環節的其他課程的創新需要,設計了在可升降裝置和萬向節聯結結構下,多旋翼飛行器的飛行和控制半物理虛擬實驗平臺。平臺不僅能完成不同旋翼數量的多旋翼飛行系統的基本工作原理、組成結構以及簡單的PID控制算法,而且能夠實現不同場景下的多旋翼無人機的模擬訓練,既可以作為大學生相關課程學習的實驗設備,也可以作為中小學生練習操作四旋翼無人機飛行的訓練系統,具有廣泛實用價值。