黃靚
(平頂山工業(yè)職業(yè)技術學院, 河南平頂山, 467000)
四旋翼無人機是一種能夠垂直起降的自主飛行器[1],具有結構簡單、便于懸停及垂直起降的特點,同時具有較為良好的可控性,既在近地監(jiān)視與偵察等軍事任務中有著廣泛的應用[2],又在環(huán)境監(jiān)測、森林防火、農(nóng)業(yè)植保等民用方面具有廣闊的研究和應用前景[3]。由于四旋翼無人機是一個非線性、欠驅動、強耦合且存在多個變量的控制對象[4],為較好的完成四旋翼無人機的位姿控制,本文根據(jù)深度學習的原理,設計了一種基于STM32的四旋翼無人機控制系統(tǒng)。
四旋翼無人機主要由機架、飛行控制器、導航與定位系統(tǒng)、自動避障系統(tǒng)等組成,無人機控制系統(tǒng)負責控制無人機飛行,控制系統(tǒng)的性能決定了無人機飛行的穩(wěn)定性。本控制系統(tǒng)總體框圖如圖1所示。

圖1 四旋翼無人機控制系統(tǒng)框圖
主控制器主要完成控制電路初始化、驅動外圍模塊電路,以及核心算法處理等操作;姿態(tài)檢測模塊負責將姿態(tài)傳感器采集到的位置信息輸入到算法單元進行估算,并將獲取的此刻及下一時刻的姿態(tài)信息傳送到控制模塊,通過測算下一步動作實現(xiàn)無人機姿態(tài)調節(jié);通過主控制器提供的四路PWM波完成直流電機的控制和調節(jié);電源管理模塊提供適配電壓給各模塊電路;無線通信模塊負責遠距離通信。
作為飛行控制器的核心,主控制器負責接收四旋翼無人機的各項控制指令,在無遙控信號輸入時自主完成飛行。
本設計選用ST公司的STM32F4作為主控芯片。主控制器將遙控器接收到的PWM信號進行解碼,得到目標姿態(tài),為電調提供4路PWM信號控制4個無刷電機的轉速,以控制飛行姿態(tài),并將姿態(tài)傳感器的實時數(shù)據(jù)發(fā)送給存儲器,估計下一時刻的姿態(tài)。STM32F4系列芯片的電路圖如圖2所示。

圖2 STM32F4芯片電路圖
為獲取四旋翼無人機的姿態(tài)信息,本設計中選擇MPU 6050為主控制器提供無人機的姿態(tài)變化檢測;磁力傳感器選用HMC5883L元件,完成四軸無人機航向角的檢測;氣壓高度計芯片選用的MS5611系列芯片,可對周圍10cm的大氣壓進行精確測量,經(jīng)各自測量的數(shù)據(jù)進行融合,優(yōu)劣互補。
為完成無人機控制系統(tǒng)和地面站之間的遠程通信,無線通信模塊采用NRF模塊。
系統(tǒng)采用基于2.4GHz的無線通信技術的新一代低功耗芯片NRF51822,將其作為協(xié)處理器,與遠程遙控器交互通信,實現(xiàn)遠距離調節(jié)參數(shù),并監(jiān)控無人機飛行狀態(tài)。
通信模塊中選用了FLY-SKY FS-T62.4G數(shù)碼比率遙控器,該遙控器采用的是間隔發(fā)送工作模式,發(fā)射功率低,工作時間長,且具有較高的性價比。NRF模塊原理圖如圖3所示。

圖3 NRF模塊原理圖
電機驅動模塊由電機和電調組成,二者相互配合帶動無人機的螺旋槳轉動。無人機的空中姿態(tài)由電機轉速決定,主控制器通過電機驅動電路完成電機控制,控制器輸出的PWM信號并未直接作用于電機,而是通過電調進行處理,將處理后得到的三相電流驅動無刷電機。本系統(tǒng)的驅動裝置采用MT2213-920KV型無刷直流電機,連接線路如圖4所示。
本設計中的電源管理模塊不僅負責為系統(tǒng)各模塊電路提供適配電壓,并為電池提供充電功能,也要實時監(jiān)控電池電量的使用情況,當電池電量低于設定閾值時,需將緊急處理指令傳至地面站。系統(tǒng)供電方案如圖5所示。

圖5 系統(tǒng)供電方案
電源管理模塊選擇的是TP4059電池充電管理芯片和XC6204穩(wěn)壓器芯片。TP4059通過USB接口給電池充電,XC6204保證在低壓時能夠為主控制器和無線通信模塊供電,為系統(tǒng)提供穩(wěn)定電源。
本系統(tǒng)按照模塊化、結構化的思想,開發(fā)各模塊的軟件系統(tǒng),目的是即使四旋翼硬件平臺變更,只需將原有軟件系統(tǒng)稍作修改,即可在新的平臺上應用。
針對傳統(tǒng)控制算法需要建立復雜數(shù)據(jù)模型這一不足,本軟件系統(tǒng)的設計是采用基于深度學習的無人機控制算法。
根據(jù)深度學習的原理,對控制系統(tǒng)軟件進行局部設計,提出區(qū)域卷積神經(jīng)網(wǎng)絡(R-CNN)。首先,將圖像劃分成2000-3000個候選區(qū)域,支持向量機訓練分類器將每個區(qū)域的特征進行分類和排序,最后采用回歸算法進行目標邊界框重新定位,深度學習目標控制模型如圖7所示[5]。

圖7 深度學習目標控制模型
將無人機的三軸加速度和角速度作為六個狀態(tài)量,該狀態(tài)量與目標值之間的差距Error如式(1)所示:


圖6 電源管理模塊電路圖
式中α1和α2表示加速度與角速度的權值;sc1、sc2、sc3表示當前狀態(tài)中的各分量;st1、st2、st3表示目標狀態(tài)中的各分量。式(1)中第一部分為三軸加速度,第二部分為三軸角速度。若目標值與六個狀態(tài)量的差距越大,Error會增大,無人機飛離目標狀態(tài)越遠,表明無人機飛行越不平穩(wěn);若兩者差距為0,則Error也為0,說明無人機達到了目標狀態(tài)。由式(1)可知,Error的數(shù)值大小與無人機穩(wěn)定時的狀態(tài)呈負相關。
在本設計中使用Error值衡量無人機飛行的穩(wěn)定性,Error值越小,無人機飛行越趨于目標狀態(tài),飛行越穩(wěn)定,控制器的控制效果越好。
依照模型,系統(tǒng)的軟件設計由主控制器模塊、數(shù)據(jù)采集模塊、電機控制模塊、無線通信模塊等四部分組成。
主控制器的流程如圖8所示。

圖8 主控制器流程
主控制器模塊負責完成整個控制電路硬件初始化,算法處理,控制器外圍電路驅動等操作。通過消息機制,各任務管理模塊之間進行信息交互處理,在整個控制系統(tǒng)中,控制中心負責提供需要調節(jié)的位置變化量,系統(tǒng)控制中心需要的最新姿態(tài)信息由姿態(tài)測算模塊實時提供,姿態(tài)調整由電機驅動器驅動電機實現(xiàn)。
整個主控制器采用模塊化編程,以方便程序移植,四旋翼無人機飛行器軟件流程圖如下:無人機上電初始化后,首先設置無人機工作模式,接下來檢測電源系統(tǒng)、傳感器等是否正常,自檢正常后則啟動運行程序,獲取姿態(tài)檢測模塊中各傳感器數(shù)據(jù),利用核心算法獲取實時姿態(tài)信息,反饋給主控制器,以調整飛行狀態(tài)。本系統(tǒng)軟件流程如圖9所示。

圖9 軟件流程圖
本系統(tǒng)基于GitHub中一個開源的四旋翼無人機平臺驗證控制器的控制效果[6]。六個狀態(tài)量分別是無人機的三軸角速度與三軸加速度,四個動作量分別是四個電機的轉速,并添加噪聲模擬無人機真實飛行中受到的干擾,無人機的仿真環(huán)境如圖10所示。

圖10 仿真環(huán)境
針對無人機控制系統(tǒng)的設計合理性進行仿真實驗,在控制器控制下,設定無人機飛行500步,并記錄Error的最大值、最小值和平均值。分別對不加控制器、加PID控制器與基于深度學習的控制器在空中飛行時進行對比實驗。三者的error變化曲線如圖11所示。
圖11中,橫坐標(step)表示無人機飛行步數(shù),縱坐標為每步對應的error值,圖中的虛線表示500步error的均值。由圖11(a)知,error值隨步數(shù)增大顯現(xiàn)出明顯的單調遞增趨勢,表明不加控制器時,無人機的三軸姿態(tài)角離期望值越來越偏離,不能穩(wěn)定飛行;圖11(b)曲線隨步數(shù)增加在一個較小的范圍內上下波動,但沒有發(fā)散趨勢,500步error的均值比圖11(a)小,表明加PID控制器時,無人機的姿態(tài)角保持在一定范圍內,提高了系統(tǒng)的穩(wěn)定性;圖11(c)的曲線與圖11(b)比較接近,但其均值明顯比PID控制器小,表明基于深度學習的控制器性能優(yōu)于傳統(tǒng)PID控制器。

圖11 控制器性能對比圖
四旋翼無人機控制作為控制領域的研究熱點,具有非線性、強耦合等特點,本文設計出一種基于深度學習的四旋翼無人機控制系統(tǒng)設計方案,該方法相較傳統(tǒng)PID控制器,避免了復雜的建模過程,通過仿真實驗,其控制效果優(yōu)于PID控制器,具有較好的抗擾性。后續(xù)將進一步優(yōu)化算法,使該算法能適應不同結構的無人機,以及更加復雜的環(huán)境,提高算法的魯棒性。