鄭艷軍 王直杰
東華大學信息科學與技術學院 上海201620
四軸無人機由于容易操控、飛行平穩等優點,在攝影、消防、農業等領域得到了廣泛應用。四軸無人機涉及電機、機械、電路、控制、空氣動力等多個學科,對四軸無人機的研究也成為一個熱點。很多高校對四軸無人機進行著各方面的研究,以實現更穩定、更智能化的控制等。囿于飛行控制器的MCU 處理能力較低,對四軸無人機姿態估計的研究大多集中于互補濾波、卡爾曼濾波、梯度下降算法的改良與應用,姿態控制的研究主要是基于PID算法進行控制。如今芯片制造工藝得到極大提升,使得MCU 運算性能更強、電路控制板體積更小。將深度神經網絡算法引入飛行控制器,實現智能化控制,是非常必要的。
1.機體結構。四軸無人機的構件包括飛行控制器、機架、電機、旋翼等。飛行控制器是核心,內部裝有陀螺儀、加速度計、磁力計、氣壓計等傳感器,對四軸無人機的角速度、加速度、磁場方向等參數進行實時測量,為飛行控制提供姿態數據、航向等信息,實現四軸無人機的平穩飛行。四軸無人機的結構如圖1所示。一般采用X飛行模式,四個電機對稱分布于四角,飛行控制器位于機體中間,機頭指向箭頭方向。

圖1 四軸無人機結構
2.飛行狀態。通過四個旋翼的轉動產生升力,可以實現四軸無人機在上下、前后、左右六個自由度的運動,具有九種飛行狀態。
(1)升降與懸停:1、2、3、4旋翼以相同的速率轉動,產生相同的升力,如果總升力大于無人機重力,則無人機上升;相等則懸停;小于則下降。(2)左右橫滾:1、4旋翼轉速大于2、3旋翼轉速,無人機向左橫滾;小于則向右橫滾。(3)俯仰運動:1、3旋翼轉速小于2、4旋翼轉速,無人機機頭偏下,向前飛行;大于則機偏上,向后飛行。(4)改變航向:1、2旋翼轉速大于3、4旋翼轉速,飛行器順時針改變航向;小于則飛行器逆時針改變航向。
3.控制原理。四軸無人機的控制分姿態控制和位置控制兩種,無人機的位置控制也是通過控制姿態來實現,因此姿態控制非常重要。四軸無人機的姿態控制一般由飛行控制系統進行姿態估計后,調整四個旋翼的轉速,實現自動控制。四軸無人機的每個旋翼產生一個升力和一個力矩,共同作用形成四軸無人機升力的合力、偏航力矩、俯仰力矩和橫滾力矩。如圖1所示,1、2旋翼反轉,3、4旋翼正轉,相互抵消因旋轉而產生的回轉效應。飛行控制器通過機載傳感器獲取地磁方向、重力加速度、角速度等飛行實時數據,融合估計出四軸無人機的俯仰角、橫滾角及偏航角,通過PID 控制算法調節四個旋翼的轉速,調整偏航力矩、俯仰力矩和橫滾力矩,實現姿態的穩定控制。
1.姿態表示。地磁計、陀螺儀、加速度計為四軸無人機提供實時檢測到的各類姿態數據,如重力、磁場方向、角速度等。重力、地磁位于“地理”坐標系,角速度、線速度來自“載體”坐標系。在“地理”坐標系中。重力的值是(0,0,1),地磁的值是(0,1,0),這些值分別由加速度計和磁力計測量得來。四軸無人機的姿態表示方法有歐拉角、四元數、方向余弦,常用的是歐拉角、四元數,歐拉角有三函數運算,且存在萬向節死鎖,因此在實際運用中常采用四元數法,先求解四元數微分方程,解出四元數,然后計算歐拉角得到無人機的姿態,在東北地坐標系統中有如下關系[1]。

2.姿態估計算法。四軸無人機常用的姿態估計算法有互補濾波[2]、擴展卡爾曼濾波[3]及梯度下降法[4]。互補濾波算法對陀螺儀、加速度計及空速的數據進行運算,求解四元數;擴展卡爾曼濾波和梯度下降算法對陀螺儀、加速度計、磁力計的測量數據進行融合和運算,求解出姿態角。擴展卡爾曼濾波算法的運算過程如圖2所示。先通過陀螺儀數據對姿態角進行估計,然后用加速度計數據對俯仰角和橫滾角進行修正,磁力計數據對偏航角進行修正,最后得出姿態角最優估計。
1.RNN簡介。RNN是深度神經網絡的一種,與其它神經網絡的最大不同之處在于RNN的輸入不僅來自當前時刻的x輸入,還有上一時刻同一層隱藏節點的輸出,因此能夠實現某種“記憶功能”。語音、文本的理解需要結合上下文,時間序列的數據在前后時刻可能存在關聯,在用神經網絡處理這些數據時,需要記住前文內容或前些時刻的數據,帶有記憶能力的循環神經網絡非常適合處理這些類型的數據。單層RNN如圖3所示,增加多層隱含層可構建出深度RNN。

圖2 擴展卡爾曼濾波

圖3 單層RNN (圖來源:Nature)
在圖3中,U 是輸入層到隱藏層的權重矩陣,V 是隱藏層到輸出層的權重矩陣,W是上一時刻隱藏層st-1的輸出作為下一時刻隱藏層st的輸入的權重矩陣。隱藏層st的值不僅取決于當前時刻的輸入xt,還取決于上一時刻隱藏層st-1的輸入。對應的計算公式如下:

1式是隱藏層的計算公式,f為激活函數(一般為tanh);2式是輸出層的計算公式,g為激活函數(如soft max等)。
RNN 單元采用tanh函數,在訓練時容易產生梯度消失或爆炸,為解決這些問題,出現了長短時記憶網絡(LSTM)、門控循環單元(GRU)等不同類型的RNN算法。RNN基于時間序列處理數據,在訓練時采用BPTT(基于時間的誤差反向傳播算法)進行參數優化。LSTM由Hochreiter 和Sch midhuber[5]于1997年提出,后經多人改進,形成結構略有差異的多個LSTM 版本。LST M 在文本翻譯、時間序列等很多問題上的表現都不錯,因此得到了廣泛的使用。

在對四軸無人機的LSTM RNN 姿態估計算法模型進行訓練時可以采用多種常用姿態估計算法的數據進行訓練,以適當調整模型的權重、超參數等參數,讓LSTM RNN學習到這些常用姿態算法各自的優點,從而能更加優化LST M RNN的姿態估計效果。