陸喆俊,孫憲坤,陶 鵬
(上海工程技術大學 電子電氣工程學院,上海 201620)
近年來,無人機憑借其結構簡單、便于操作、穩定性強、機動靈活、視野廣闊、功能全面等優點越來越廣泛地應用到各大領域,在救災領域更是起著無比重要的作用,如:重大災難中對災區進行勘察,快速掌握災情;災難搜救中搭載傳感器進行人員搜救,定點投放物資;災后進行消毒,防止病毒擴散;疫情期間,監控巡邏,減少人員接觸等[1]。
在無人機的應用中,準確的姿態估計對控制精度有著很大的影響,起決定性作用[2]。隨著微機電系統(microelectron mechanical systems, MEMS)的發展,同時出于成本控制的考慮,無人機通常搭載低成本的MEMS 陀螺儀、MEMS 加速度計和MEMS 磁力計進行姿態估計,但外部噪聲以及傳感器自身零位漂移等問題,在一定程度上影響了MEMS 傳感器的測量結果[3]。針對該問題,前人嘗試通過融合傳感器數據以獲得最優的姿態估計結果,并對此展開了大量研究工作。文獻[4-5]提出了目前較為廣泛使用的互補濾波法以及擴展卡爾曼濾波法姿態估計,以上兩種方法分別從頻率分析以及隨機信號兩個方面進行傳感器融合研究,后續學者在此基礎上,對上述方法存在的問題進行多方面的改進。文獻[6]在互補濾波算法的基礎上,對陀螺儀數據進行一階差分數據處理,在判斷陀螺儀輸出序列是否可靠的基礎上,對不可靠數據進行校正處理,進而將校正后的陀螺儀數據送入互補濾波器中進行姿態估計;文獻[7]在互補濾波算法的基礎上,通過引入損失函數實時判斷姿態誤差,當誤差超過一定閾值后,利用粒子群優化算法對比例積分參數進行優化,以應對不同運動狀態下的姿態估計;文獻[8]利用隨機加權遞推最小二乘法對陀螺儀去噪,同時在運用加速度計輸出判斷運動狀況的基礎上,自適應調整互補濾波器的比例積分參數,實現高精度姿態估計。這些工作從傳感器去噪以及算法參數優化兩個方面,提升互補濾波算法的精度,但也大大增加了計算的復雜度,需要進行多次迭代。文獻[9]在擴展卡爾曼濾波的基礎上,結合互補濾波進行姿態解算,計算加速度計和磁力計收集到的信號以獲取初始姿態角,進而利用陀螺儀數據對姿態角進行互補濾波,將互補濾波所得姿態角作為擴展卡爾曼濾波框架的量測值,其余部分保持原有框架不變;文獻[10]在擴展卡爾曼濾波的基礎上引入自適應機制,通過實時估計系統和測量噪聲的協方差矩陣來監測新息序列的變化,并調整濾波器中的噪聲模型,同時為了防止濾波器發散,引入衰減因子來衰減原有的測量新息,達到有效約束系統模型誤差的目的。這些工作從更改濾波器框架及跟蹤噪聲統計特性變化角度,在原有的擴展卡爾曼濾波器的基礎上進行改進,提高了算法精度,但同時也對處理器的運算性能提出了更高的要求。
傳統姿態融合算法需要合理選擇融合權重或定義權重調整方式,不同參數對于不同類型的運動以及擾動表現效果不同,同時在姿態估計過程中,準確的誤差補償模型也在一定程度上影響著姿態估計的準確度。針對上述問題,本文提出了一種將長短期記憶(long short-term memory, LSTM)神經網絡用于無人機姿態估計的方法,利用LSTM 神經網絡對時間序列的非線性映射能力,在不考慮復雜傳感器模型的基礎上,僅利用傳感器數據與姿態角間的映射關系進行無人機的姿態估計。通過分析傳感器輸出與歐拉角之間的關系,本文選擇使用兩個LSTM 神經網絡進行姿態估計,其中第一個神經網絡用于進行水平姿態角的估計,其輸入特征為當前時刻的陀螺儀輸出、加速度計輸出以及前10 個時刻的滾轉角和俯仰角,輸出特征為當前時刻的滾轉角和俯仰角;第二個LSTM 神經網絡用于垂直姿態角的估計,其輸入特征為當前時刻的陀螺儀輸出、磁力計輸出、當前時刻陀螺儀的二范數以及前20 個時刻的偏航角,輸出特征為當前時刻的偏航角。實驗結果表明,本文所提出的姿態估計算法更接近于無人機實際姿態,其精度較傳統算法提高了至少一個數量級。
循環神經網絡(recurrent neural networks, RNN)是一種深度學習方法,具有很強大的學習能力,能夠發現大數據中隱藏的相關性。其結構如圖1(a)所示,包含輸入層、隱藏層和輸出層,其中隱藏層能夠執行記憶功能,實現網絡的輸出ht由當前時刻的輸入Xt與之前時刻的輸出ht-1共同決定,該網絡被廣泛應用于自然語言處理、語音轉換、語音翻譯等。但普通的 RNN,在應用中存在長程依賴問題,容易出現梯度消失或梯度爆炸現象[11]。
LSTM 神經網絡是一種特殊的RNN,其結構及功能與RNN 相似,相對于RNN 的結構,其結構如圖1(b)所示,LSTM 網絡在隱藏層中增加了遺忘門、輸入門和輸出門,其中遺忘門和輸出門是LSTM 的關鍵。遺忘門和輸入門根據當前時刻的輸入Xt、上一時刻的細胞狀態Ct-1以及上一時刻的輸出ht選擇性地丟棄或增加信息,同時更新當前時刻的細胞狀態Ct-1;輸出門根據當前時刻的細胞狀態Ct、當前時刻的輸入Xt以及上一時刻的輸出ht-1更新當前時刻的輸出ht[12]。通過以上三個門控單元的相互作用,反復訓練得到神經網絡權值。

圖1 RNN 和LSTM 網絡結構
無人機傳感器輸出是一系列時間序列,對該時間序列進行適當的處理即可得到對應時刻的姿態角。無人機在空間中的姿態變化是連續的,當前時刻的姿態是前n個時刻姿態緩慢變化的結果,從姿態變化的趨勢中能夠估計當前時刻的無人機姿態,同時姿態信息中也隱藏著傳感器輸出的相關信息。
本文提出利用LSTM 神經網絡進行姿態估計,其整體結構如圖2 所示。

圖2 基于LSTM 神經網絡的姿態估計結構
該方案將姿態角分為水平姿態角與偏航角,利用一個LSTM 神經網絡將陀螺儀輸出、加速度計輸出以及前n個時刻的水平姿態角作為輸入來求解當前時刻的水平姿態角,同時利用另一個LSTM神經網絡將陀螺儀輸出、磁力計輸出以及前n個時刻的偏航角作為輸入來求解當前時刻的偏航角,最終實現全姿態估計的目的。
基于LSTM 的姿態估計框架分為三層,包括輸入層、隱藏層和輸出層,如圖3 所示。圖3 中:Adam(adaptive moment estimation)為適應性動量估計器。

圖3 基于LSTM 神經網絡的姿態估計框架
輸入層用于重構時間序列的輸入輸出特征,并劃分訓練集與測試集,同時對數據集進行歸一化處理,將數據映射到0~1 的范圍內。
隱藏層包含若干LSTM 單元,主要用于學習輸入特征與輸出特征間特殊的映射關系。該層可根據訓練效果進行合理調整。
輸出層用于輸出最終的結果,根據前向傳播的計算方法得到輸出值,并將該值反向傳播送入訓練網絡用于更新權值并將更新后的權值送入隱藏層更新模型,依次迭代直至權重收斂。最后將預測結果反歸一化處理,得到最終的姿態估計結果。
損失函數用于表示估計值與真實值之間的累積誤差,為了防止出現異常值,本文選用的損失函數為smooth-l1-loss,該損失函數相對于均方誤差更不容易出現異常值[13],計算公式如式(1)所示。優化器選用目前應用廣泛的適應性動量估計器(Adam)。數據經過上述單元反復迭代、更新權值以實現降低損失函數,使損失函數達到最小的最終目標,即
模糊綜合評價指標體系是進行綜合評價的前提,窖泥評價指標的選取是否適宜,將直接影響評價的準確性。為了科學確定窖泥質量評價體系,我們對四川省內濃香型白酒主要產區的幾十家企業進行調查走訪,同企業技術、經營、生產管理人員及行業專家進行溝通、交流,并隨機采集不同質量等級的窖泥樣品。結果見表1。

本文所用數據集采集自安裝在四旋翼飛行器“佩利康(Pelican)”上的傳感器套件,并配備有維康(Vicon)捕捉系統,該飛行器在10 m×10 m×10m的室內環境進行真實飛行。該數據集中包含“1LoopDown”、“2LoopsDown”、“3LoopsDown”三個子集,分別對應三次真實飛行,飛行時間依次遞增[14],而其飛行過程中所涉及的姿態能夠基本滿足正常飛行過程中所涉及的姿態。
本文所用數據集中的數據主要為:1)安裝在無人機上的 MEMS 及慣性測量系統(inertial measurement unit, IMU)傳感器數據,分別為陀螺儀輸出、加速度計輸出以及磁力計輸出;2)Vicon系統輸出的無人機姿態信息。所有傳感器的輸出周期均為0.005 s。
Vicon 系統的組成包括室內環境配備的8 個Vicon 攝像機,分別安裝在天花板的4 個側面;3 個安裝在四旋翼無人機上的反射標記;一組放置在地板上的阿爾·圖爾基(ARToolki)標記。本文將Vicon 系統所得姿態作為參考姿態[14]。
為了得到更為準確的網絡模型,將數據集中最大的子集“3LoopsDown” 作為訓練集,用“1LoopDown”數據子集中的樣本進行預測,以此來驗證姿態估計的精度,并進行了如下實驗。
實驗方案1。僅用一個LSTM 神經網絡,其輸入特征為當前時刻k的陀螺儀輸出、加速度計輸出、磁力計輸出以及前n個時刻的姿態角,輸出特征為當前時刻k的姿態角。

針對上述三個實驗中涉及的前n個時刻的姿態角所對應的是不同大小的時間窗口,每個時刻對應一個傳感器測量周期,即0.005 s,本文選取n=10,20,30,···,200 進行對應實驗。對上述實驗結果的評價,此處選用均方根誤差作為評價指標來對比實驗結果,實驗結果如圖4 所示。

圖4 各實驗方案在不同時間窗口下的均方根誤差
本文程序的運行環境如下:1)操作系統為視窗(Windows)10 ,64 位的操作系統;2)中央處理器(central processing unit, CPU)為英特爾·酷睿(Intel Core)i5,CPU 的主頻為1.80 GHz;3)隨機存儲器(random access memory, RAM)為8.00 GB。基于以上環境,上述實驗在訓練好的模型中運行總時長均小于2 s,遠小于傳感器采集數據的總時長30.965 s,因此完全滿足姿態估計的實時性要求。
進一步分析三種實驗方案的結果可知,實驗方案1 的均方根誤差略高于實驗方案2,實驗方案3的均方根誤差整體上明顯低于實驗方案1 與實驗方案2。由于姿態角在一定程度上與MEMS 傳感器和前n個時刻的姿態角存在非線性映射關系,MEMS慣性傳感器與MEMS 磁力計均能在一定程度上求解得到姿態角,而無人機的運動狀態會影響傳感器的求解精度,因此,實驗方案2 在實驗方案1 的基礎上,增加了表示無人機運動狀態的陀螺儀的二范數為輸入后,姿態估計精度得到略微提升。
陀螺儀可以通過積分運算得到姿態角;加速度計可以通過將輸出與當地重力加速度向量比較得到俯仰角與滾轉角;磁力計可以通過將輸出和滾轉角、俯仰角結合并與當地磁場向量比較得到偏航角。根據以上分析,實驗方案3 通過重新指定姿態估計方案,將姿態角分為水平姿態角和垂直姿態角,將磁力計對水平姿態角的影響以及加速度計對垂直姿態角的影響去除后,所得姿態估計精度得到進一步提升。
通過以上對比與分析以及結果的比較,最終本文選擇使用兩個LSTM 神經網絡進行姿態估計,其中第一個神經網絡用于進行水平姿態角的估計,其輸入特征為當前時刻的陀螺儀輸出、加速度計輸出以及前10 個時刻的滾轉角和俯仰角,輸出特征為當前時刻的滾轉角和俯仰角;第二個LSTM 神經網絡用于垂直姿態角的估計,其輸入特征為當前時刻的陀螺儀輸出、磁力計輸出、當前時刻陀螺儀的二范數以及前20 個時刻的偏航角,輸出特征為當前時刻的偏航角。
將本文所使用的姿態估計方法與廣泛使用的互補濾波算法以及擴展卡爾曼濾波算法比較,三種方法的姿態估計誤差如圖5 所示。


圖5 姿態估計誤差圖
由圖5 可知,廣泛應用于姿態估計領域的互補濾波和擴展卡爾曼濾波算法存在一定的誤差,而其誤差與本文所提方法相比更大,本文所提姿態估計算法在水平姿態角所表現的誤差基本為0,而在偏航角方面,由于所用數據集在18.065 s 處進行了較大的轉向運動,因此三種算法均在此處出現了一定的誤差,而本文所提姿態估計算法所表現的誤差最小,且收斂速度最快。
圖 6 為上述三種算法的三軸姿態角均方根誤差。

圖6 三種姿態估計方法的均方根誤差
根據圖6 進行定量分析可知,本文所提方法在均方根誤差方面相對于其余兩種姿態估計算法提高了至少一個數量級,遠小于廣泛使用的兩種傳統方法。結合圖5 與圖6 的結果分析可知,本文所設計的神經網絡在姿態估計精度方面有著更大的優勢。
針對傳統姿態估計算法中涉及復雜傳感器模型以及復雜調參過程,本文提出了一種將LSTM 神經網絡用于無人機姿態估計的方法,構建兩個LSTM 神經網絡,分別計算水平姿態角與垂直姿態角,神經網絡的輸入包括前n個時刻的姿態角數據、當前時刻傳感器輸出以及表示無人機運動狀態的陀螺儀二范數。由實驗結果可知,本文所提方法在均方根誤差方面相對傳統算法至少提高了一個數量級,大大提高了姿態估計精度。因此,將LSTM 神經網絡應用于姿態估計有助于提高無人機姿態估計的精度,同時降低了人工調參以及建立誤差補償模型過程中引入的誤差。接下來的研究會針對網絡輸入特征以及預測的輸出步長進行改進,同時探索深度學習在姿態估計方面的其他應用。