陸喆俊,孫憲坤,陶 鵬
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
近年來,無人機(jī)憑借其結(jié)構(gòu)簡(jiǎn)單、便于操作、穩(wěn)定性強(qiáng)、機(jī)動(dòng)靈活、視野廣闊、功能全面等優(yōu)點(diǎn)越來越廣泛地應(yīng)用到各大領(lǐng)域,在救災(zāi)領(lǐng)域更是起著無比重要的作用,如:重大災(zāi)難中對(duì)災(zāi)區(qū)進(jìn)行勘察,快速掌握災(zāi)情;災(zāi)難搜救中搭載傳感器進(jìn)行人員搜救,定點(diǎn)投放物資;災(zāi)后進(jìn)行消毒,防止病毒擴(kuò)散;疫情期間,監(jiān)控巡邏,減少人員接觸等[1]。
在無人機(jī)的應(yīng)用中,準(zhǔn)確的姿態(tài)估計(jì)對(duì)控制精度有著很大的影響,起決定性作用[2]。隨著微機(jī)電系統(tǒng)(microelectron mechanical systems, MEMS)的發(fā)展,同時(shí)出于成本控制的考慮,無人機(jī)通常搭載低成本的MEMS 陀螺儀、MEMS 加速度計(jì)和MEMS 磁力計(jì)進(jìn)行姿態(tài)估計(jì),但外部噪聲以及傳感器自身零位漂移等問題,在一定程度上影響了MEMS 傳感器的測(cè)量結(jié)果[3]。針對(duì)該問題,前人嘗試通過融合傳感器數(shù)據(jù)以獲得最優(yōu)的姿態(tài)估計(jì)結(jié)果,并對(duì)此展開了大量研究工作。文獻(xiàn)[4-5]提出了目前較為廣泛使用的互補(bǔ)濾波法以及擴(kuò)展卡爾曼濾波法姿態(tài)估計(jì),以上兩種方法分別從頻率分析以及隨機(jī)信號(hào)兩個(gè)方面進(jìn)行傳感器融合研究,后續(xù)學(xué)者在此基礎(chǔ)上,對(duì)上述方法存在的問題進(jìn)行多方面的改進(jìn)。文獻(xiàn)[6]在互補(bǔ)濾波算法的基礎(chǔ)上,對(duì)陀螺儀數(shù)據(jù)進(jìn)行一階差分?jǐn)?shù)據(jù)處理,在判斷陀螺儀輸出序列是否可靠的基礎(chǔ)上,對(duì)不可靠數(shù)據(jù)進(jìn)行校正處理,進(jìn)而將校正后的陀螺儀數(shù)據(jù)送入互補(bǔ)濾波器中進(jìn)行姿態(tài)估計(jì);文獻(xiàn)[7]在互補(bǔ)濾波算法的基礎(chǔ)上,通過引入損失函數(shù)實(shí)時(shí)判斷姿態(tài)誤差,當(dāng)誤差超過一定閾值后,利用粒子群優(yōu)化算法對(duì)比例積分參數(shù)進(jìn)行優(yōu)化,以應(yīng)對(duì)不同運(yùn)動(dòng)狀態(tài)下的姿態(tài)估計(jì);文獻(xiàn)[8]利用隨機(jī)加權(quán)遞推最小二乘法對(duì)陀螺儀去噪,同時(shí)在運(yùn)用加速度計(jì)輸出判斷運(yùn)動(dòng)狀況的基礎(chǔ)上,自適應(yīng)調(diào)整互補(bǔ)濾波器的比例積分參數(shù),實(shí)現(xiàn)高精度姿態(tài)估計(jì)。這些工作從傳感器去噪以及算法參數(shù)優(yōu)化兩個(gè)方面,提升互補(bǔ)濾波算法的精度,但也大大增加了計(jì)算的復(fù)雜度,需要進(jìn)行多次迭代。文獻(xiàn)[9]在擴(kuò)展卡爾曼濾波的基礎(chǔ)上,結(jié)合互補(bǔ)濾波進(jìn)行姿態(tài)解算,計(jì)算加速度計(jì)和磁力計(jì)收集到的信號(hào)以獲取初始姿態(tài)角,進(jìn)而利用陀螺儀數(shù)據(jù)對(duì)姿態(tài)角進(jìn)行互補(bǔ)濾波,將互補(bǔ)濾波所得姿態(tài)角作為擴(kuò)展卡爾曼濾波框架的量測(cè)值,其余部分保持原有框架不變;文獻(xiàn)[10]在擴(kuò)展卡爾曼濾波的基礎(chǔ)上引入自適應(yīng)機(jī)制,通過實(shí)時(shí)估計(jì)系統(tǒng)和測(cè)量噪聲的協(xié)方差矩陣來監(jiān)測(cè)新息序列的變化,并調(diào)整濾波器中的噪聲模型,同時(shí)為了防止濾波器發(fā)散,引入衰減因子來衰減原有的測(cè)量新息,達(dá)到有效約束系統(tǒng)模型誤差的目的。這些工作從更改濾波器框架及跟蹤噪聲統(tǒng)計(jì)特性變化角度,在原有的擴(kuò)展卡爾曼濾波器的基礎(chǔ)上進(jìn)行改進(jìn),提高了算法精度,但同時(shí)也對(duì)處理器的運(yùn)算性能提出了更高的要求。
傳統(tǒng)姿態(tài)融合算法需要合理選擇融合權(quán)重或定義權(quán)重調(diào)整方式,不同參數(shù)對(duì)于不同類型的運(yùn)動(dòng)以及擾動(dòng)表現(xiàn)效果不同,同時(shí)在姿態(tài)估計(jì)過程中,準(zhǔn)確的誤差補(bǔ)償模型也在一定程度上影響著姿態(tài)估計(jì)的準(zhǔn)確度。針對(duì)上述問題,本文提出了一種將長(zhǎng)短期記憶(long short-term memory, LSTM)神經(jīng)網(wǎng)絡(luò)用于無人機(jī)姿態(tài)估計(jì)的方法,利用LSTM 神經(jīng)網(wǎng)絡(luò)對(duì)時(shí)間序列的非線性映射能力,在不考慮復(fù)雜傳感器模型的基礎(chǔ)上,僅利用傳感器數(shù)據(jù)與姿態(tài)角間的映射關(guān)系進(jìn)行無人機(jī)的姿態(tài)估計(jì)。通過分析傳感器輸出與歐拉角之間的關(guān)系,本文選擇使用兩個(gè)LSTM 神經(jīng)網(wǎng)絡(luò)進(jìn)行姿態(tài)估計(jì),其中第一個(gè)神經(jīng)網(wǎng)絡(luò)用于進(jìn)行水平姿態(tài)角的估計(jì),其輸入特征為當(dāng)前時(shí)刻的陀螺儀輸出、加速度計(jì)輸出以及前10 個(gè)時(shí)刻的滾轉(zhuǎn)角和俯仰角,輸出特征為當(dāng)前時(shí)刻的滾轉(zhuǎn)角和俯仰角;第二個(gè)LSTM 神經(jīng)網(wǎng)絡(luò)用于垂直姿態(tài)角的估計(jì),其輸入特征為當(dāng)前時(shí)刻的陀螺儀輸出、磁力計(jì)輸出、當(dāng)前時(shí)刻陀螺儀的二范數(shù)以及前20 個(gè)時(shí)刻的偏航角,輸出特征為當(dāng)前時(shí)刻的偏航角。實(shí)驗(yàn)結(jié)果表明,本文所提出的姿態(tài)估計(jì)算法更接近于無人機(jī)實(shí)際姿態(tài),其精度較傳統(tǒng)算法提高了至少一個(gè)數(shù)量級(jí)。
循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks, RNN)是一種深度學(xué)習(xí)方法,具有很強(qiáng)大的學(xué)習(xí)能力,能夠發(fā)現(xiàn)大數(shù)據(jù)中隱藏的相關(guān)性。其結(jié)構(gòu)如圖1(a)所示,包含輸入層、隱藏層和輸出層,其中隱藏層能夠執(zhí)行記憶功能,實(shí)現(xiàn)網(wǎng)絡(luò)的輸出ht由當(dāng)前時(shí)刻的輸入Xt與之前時(shí)刻的輸出ht-1共同決定,該網(wǎng)絡(luò)被廣泛應(yīng)用于自然語(yǔ)言處理、語(yǔ)音轉(zhuǎn)換、語(yǔ)音翻譯等。但普通的 RNN,在應(yīng)用中存在長(zhǎng)程依賴問題,容易出現(xiàn)梯度消失或梯度爆炸現(xiàn)象[11]。
LSTM 神經(jīng)網(wǎng)絡(luò)是一種特殊的RNN,其結(jié)構(gòu)及功能與RNN 相似,相對(duì)于RNN 的結(jié)構(gòu),其結(jié)構(gòu)如圖1(b)所示,LSTM 網(wǎng)絡(luò)在隱藏層中增加了遺忘門、輸入門和輸出門,其中遺忘門和輸出門是LSTM 的關(guān)鍵。遺忘門和輸入門根據(jù)當(dāng)前時(shí)刻的輸入Xt、上一時(shí)刻的細(xì)胞狀態(tài)Ct-1以及上一時(shí)刻的輸出ht選擇性地丟棄或增加信息,同時(shí)更新當(dāng)前時(shí)刻的細(xì)胞狀態(tài)Ct-1;輸出門根據(jù)當(dāng)前時(shí)刻的細(xì)胞狀態(tài)Ct、當(dāng)前時(shí)刻的輸入Xt以及上一時(shí)刻的輸出ht-1更新當(dāng)前時(shí)刻的輸出ht[12]。通過以上三個(gè)門控單元的相互作用,反復(fù)訓(xùn)練得到神經(jīng)網(wǎng)絡(luò)權(quán)值。
圖1 RNN 和LSTM 網(wǎng)絡(luò)結(jié)構(gòu)
無人機(jī)傳感器輸出是一系列時(shí)間序列,對(duì)該時(shí)間序列進(jìn)行適當(dāng)?shù)奶幚砑纯傻玫綄?duì)應(yīng)時(shí)刻的姿態(tài)角。無人機(jī)在空間中的姿態(tài)變化是連續(xù)的,當(dāng)前時(shí)刻的姿態(tài)是前n個(gè)時(shí)刻姿態(tài)緩慢變化的結(jié)果,從姿態(tài)變化的趨勢(shì)中能夠估計(jì)當(dāng)前時(shí)刻的無人機(jī)姿態(tài),同時(shí)姿態(tài)信息中也隱藏著傳感器輸出的相關(guān)信息。
本文提出利用LSTM 神經(jīng)網(wǎng)絡(luò)進(jìn)行姿態(tài)估計(jì),其整體結(jié)構(gòu)如圖2 所示。
圖2 基于LSTM 神經(jīng)網(wǎng)絡(luò)的姿態(tài)估計(jì)結(jié)構(gòu)
該方案將姿態(tài)角分為水平姿態(tài)角與偏航角,利用一個(gè)LSTM 神經(jīng)網(wǎng)絡(luò)將陀螺儀輸出、加速度計(jì)輸出以及前n個(gè)時(shí)刻的水平姿態(tài)角作為輸入來求解當(dāng)前時(shí)刻的水平姿態(tài)角,同時(shí)利用另一個(gè)LSTM神經(jīng)網(wǎng)絡(luò)將陀螺儀輸出、磁力計(jì)輸出以及前n個(gè)時(shí)刻的偏航角作為輸入來求解當(dāng)前時(shí)刻的偏航角,最終實(shí)現(xiàn)全姿態(tài)估計(jì)的目的。
基于LSTM 的姿態(tài)估計(jì)框架分為三層,包括輸入層、隱藏層和輸出層,如圖3 所示。圖3 中:Adam(adaptive moment estimation)為適應(yīng)性動(dòng)量估計(jì)器。
圖3 基于LSTM 神經(jīng)網(wǎng)絡(luò)的姿態(tài)估計(jì)框架
輸入層用于重構(gòu)時(shí)間序列的輸入輸出特征,并劃分訓(xùn)練集與測(cè)試集,同時(shí)對(duì)數(shù)據(jù)集進(jìn)行歸一化處理,將數(shù)據(jù)映射到0~1 的范圍內(nèi)。
隱藏層包含若干LSTM 單元,主要用于學(xué)習(xí)輸入特征與輸出特征間特殊的映射關(guān)系。該層可根據(jù)訓(xùn)練效果進(jìn)行合理調(diào)整。
輸出層用于輸出最終的結(jié)果,根據(jù)前向傳播的計(jì)算方法得到輸出值,并將該值反向傳播送入訓(xùn)練網(wǎng)絡(luò)用于更新權(quán)值并將更新后的權(quán)值送入隱藏層更新模型,依次迭代直至權(quán)重收斂。最后將預(yù)測(cè)結(jié)果反歸一化處理,得到最終的姿態(tài)估計(jì)結(jié)果。
損失函數(shù)用于表示估計(jì)值與真實(shí)值之間的累積誤差,為了防止出現(xiàn)異常值,本文選用的損失函數(shù)為smooth-l1-loss,該損失函數(shù)相對(duì)于均方誤差更不容易出現(xiàn)異常值[13],計(jì)算公式如式(1)所示。優(yōu)化器選用目前應(yīng)用廣泛的適應(yīng)性動(dòng)量估計(jì)器(Adam)。數(shù)據(jù)經(jīng)過上述單元反復(fù)迭代、更新權(quán)值以實(shí)現(xiàn)降低損失函數(shù),使損失函數(shù)達(dá)到最小的最終目標(biāo),即
模糊綜合評(píng)價(jià)指標(biāo)體系是進(jìn)行綜合評(píng)價(jià)的前提,窖泥評(píng)價(jià)指標(biāo)的選取是否適宜,將直接影響評(píng)價(jià)的準(zhǔn)確性。為了科學(xué)確定窖泥質(zhì)量評(píng)價(jià)體系,我們對(duì)四川省內(nèi)濃香型白酒主要產(chǎn)區(qū)的幾十家企業(yè)進(jìn)行調(diào)查走訪,同企業(yè)技術(shù)、經(jīng)營(yíng)、生產(chǎn)管理人員及行業(yè)專家進(jìn)行溝通、交流,并隨機(jī)采集不同質(zhì)量等級(jí)的窖泥樣品。結(jié)果見表1。
本文所用數(shù)據(jù)集采集自安裝在四旋翼飛行器“佩利康(Pelican)”上的傳感器套件,并配備有維康(Vicon)捕捉系統(tǒng),該飛行器在10 m×10 m×10m的室內(nèi)環(huán)境進(jìn)行真實(shí)飛行。該數(shù)據(jù)集中包含“1LoopDown”、“2LoopsDown”、“3LoopsDown”三個(gè)子集,分別對(duì)應(yīng)三次真實(shí)飛行,飛行時(shí)間依次遞增[14],而其飛行過程中所涉及的姿態(tài)能夠基本滿足正常飛行過程中所涉及的姿態(tài)。
本文所用數(shù)據(jù)集中的數(shù)據(jù)主要為:1)安裝在無人機(jī)上的 MEMS 及慣性測(cè)量系統(tǒng)(inertial measurement unit, IMU)傳感器數(shù)據(jù),分別為陀螺儀輸出、加速度計(jì)輸出以及磁力計(jì)輸出;2)Vicon系統(tǒng)輸出的無人機(jī)姿態(tài)信息。所有傳感器的輸出周期均為0.005 s。
Vicon 系統(tǒng)的組成包括室內(nèi)環(huán)境配備的8 個(gè)Vicon 攝像機(jī),分別安裝在天花板的4 個(gè)側(cè)面;3 個(gè)安裝在四旋翼無人機(jī)上的反射標(biāo)記;一組放置在地板上的阿爾·圖爾基(ARToolki)標(biāo)記。本文將Vicon 系統(tǒng)所得姿態(tài)作為參考姿態(tài)[14]。
為了得到更為準(zhǔn)確的網(wǎng)絡(luò)模型,將數(shù)據(jù)集中最大的子集“3LoopsDown” 作為訓(xùn)練集,用“1LoopDown”數(shù)據(jù)子集中的樣本進(jìn)行預(yù)測(cè),以此來驗(yàn)證姿態(tài)估計(jì)的精度,并進(jìn)行了如下實(shí)驗(yàn)。
實(shí)驗(yàn)方案1。僅用一個(gè)LSTM 神經(jīng)網(wǎng)絡(luò),其輸入特征為當(dāng)前時(shí)刻k的陀螺儀輸出、加速度計(jì)輸出、磁力計(jì)輸出以及前n個(gè)時(shí)刻的姿態(tài)角,輸出特征為當(dāng)前時(shí)刻k的姿態(tài)角。
針對(duì)上述三個(gè)實(shí)驗(yàn)中涉及的前n個(gè)時(shí)刻的姿態(tài)角所對(duì)應(yīng)的是不同大小的時(shí)間窗口,每個(gè)時(shí)刻對(duì)應(yīng)一個(gè)傳感器測(cè)量周期,即0.005 s,本文選取n=10,20,30,···,200 進(jìn)行對(duì)應(yīng)實(shí)驗(yàn)。對(duì)上述實(shí)驗(yàn)結(jié)果的評(píng)價(jià),此處選用均方根誤差作為評(píng)價(jià)指標(biāo)來對(duì)比實(shí)驗(yàn)結(jié)果,實(shí)驗(yàn)結(jié)果如圖4 所示。
圖4 各實(shí)驗(yàn)方案在不同時(shí)間窗口下的均方根誤差
本文程序的運(yùn)行環(huán)境如下:1)操作系統(tǒng)為視窗(Windows)10 ,64 位的操作系統(tǒng);2)中央處理器(central processing unit, CPU)為英特爾·酷睿(Intel Core)i5,CPU 的主頻為1.80 GHz;3)隨機(jī)存儲(chǔ)器(random access memory, RAM)為8.00 GB?;谝陨檄h(huán)境,上述實(shí)驗(yàn)在訓(xùn)練好的模型中運(yùn)行總時(shí)長(zhǎng)均小于2 s,遠(yuǎn)小于傳感器采集數(shù)據(jù)的總時(shí)長(zhǎng)30.965 s,因此完全滿足姿態(tài)估計(jì)的實(shí)時(shí)性要求。
進(jìn)一步分析三種實(shí)驗(yàn)方案的結(jié)果可知,實(shí)驗(yàn)方案1 的均方根誤差略高于實(shí)驗(yàn)方案2,實(shí)驗(yàn)方案3的均方根誤差整體上明顯低于實(shí)驗(yàn)方案1 與實(shí)驗(yàn)方案2。由于姿態(tài)角在一定程度上與MEMS 傳感器和前n個(gè)時(shí)刻的姿態(tài)角存在非線性映射關(guān)系,MEMS慣性傳感器與MEMS 磁力計(jì)均能在一定程度上求解得到姿態(tài)角,而無人機(jī)的運(yùn)動(dòng)狀態(tài)會(huì)影響傳感器的求解精度,因此,實(shí)驗(yàn)方案2 在實(shí)驗(yàn)方案1 的基礎(chǔ)上,增加了表示無人機(jī)運(yùn)動(dòng)狀態(tài)的陀螺儀的二范數(shù)為輸入后,姿態(tài)估計(jì)精度得到略微提升。
陀螺儀可以通過積分運(yùn)算得到姿態(tài)角;加速度計(jì)可以通過將輸出與當(dāng)?shù)刂亓铀俣认蛄勘容^得到俯仰角與滾轉(zhuǎn)角;磁力計(jì)可以通過將輸出和滾轉(zhuǎn)角、俯仰角結(jié)合并與當(dāng)?shù)卮艌?chǎng)向量比較得到偏航角。根據(jù)以上分析,實(shí)驗(yàn)方案3 通過重新指定姿態(tài)估計(jì)方案,將姿態(tài)角分為水平姿態(tài)角和垂直姿態(tài)角,將磁力計(jì)對(duì)水平姿態(tài)角的影響以及加速度計(jì)對(duì)垂直姿態(tài)角的影響去除后,所得姿態(tài)估計(jì)精度得到進(jìn)一步提升。
通過以上對(duì)比與分析以及結(jié)果的比較,最終本文選擇使用兩個(gè)LSTM 神經(jīng)網(wǎng)絡(luò)進(jìn)行姿態(tài)估計(jì),其中第一個(gè)神經(jīng)網(wǎng)絡(luò)用于進(jìn)行水平姿態(tài)角的估計(jì),其輸入特征為當(dāng)前時(shí)刻的陀螺儀輸出、加速度計(jì)輸出以及前10 個(gè)時(shí)刻的滾轉(zhuǎn)角和俯仰角,輸出特征為當(dāng)前時(shí)刻的滾轉(zhuǎn)角和俯仰角;第二個(gè)LSTM 神經(jīng)網(wǎng)絡(luò)用于垂直姿態(tài)角的估計(jì),其輸入特征為當(dāng)前時(shí)刻的陀螺儀輸出、磁力計(jì)輸出、當(dāng)前時(shí)刻陀螺儀的二范數(shù)以及前20 個(gè)時(shí)刻的偏航角,輸出特征為當(dāng)前時(shí)刻的偏航角。
將本文所使用的姿態(tài)估計(jì)方法與廣泛使用的互補(bǔ)濾波算法以及擴(kuò)展卡爾曼濾波算法比較,三種方法的姿態(tài)估計(jì)誤差如圖5 所示。
圖5 姿態(tài)估計(jì)誤差圖
由圖5 可知,廣泛應(yīng)用于姿態(tài)估計(jì)領(lǐng)域的互補(bǔ)濾波和擴(kuò)展卡爾曼濾波算法存在一定的誤差,而其誤差與本文所提方法相比更大,本文所提姿態(tài)估計(jì)算法在水平姿態(tài)角所表現(xiàn)的誤差基本為0,而在偏航角方面,由于所用數(shù)據(jù)集在18.065 s 處進(jìn)行了較大的轉(zhuǎn)向運(yùn)動(dòng),因此三種算法均在此處出現(xiàn)了一定的誤差,而本文所提姿態(tài)估計(jì)算法所表現(xiàn)的誤差最小,且收斂速度最快。
圖 6 為上述三種算法的三軸姿態(tài)角均方根誤差。
圖6 三種姿態(tài)估計(jì)方法的均方根誤差
根據(jù)圖6 進(jìn)行定量分析可知,本文所提方法在均方根誤差方面相對(duì)于其余兩種姿態(tài)估計(jì)算法提高了至少一個(gè)數(shù)量級(jí),遠(yuǎn)小于廣泛使用的兩種傳統(tǒng)方法。結(jié)合圖5 與圖6 的結(jié)果分析可知,本文所設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)在姿態(tài)估計(jì)精度方面有著更大的優(yōu)勢(shì)。
針對(duì)傳統(tǒng)姿態(tài)估計(jì)算法中涉及復(fù)雜傳感器模型以及復(fù)雜調(diào)參過程,本文提出了一種將LSTM 神經(jīng)網(wǎng)絡(luò)用于無人機(jī)姿態(tài)估計(jì)的方法,構(gòu)建兩個(gè)LSTM 神經(jīng)網(wǎng)絡(luò),分別計(jì)算水平姿態(tài)角與垂直姿態(tài)角,神經(jīng)網(wǎng)絡(luò)的輸入包括前n個(gè)時(shí)刻的姿態(tài)角數(shù)據(jù)、當(dāng)前時(shí)刻傳感器輸出以及表示無人機(jī)運(yùn)動(dòng)狀態(tài)的陀螺儀二范數(shù)。由實(shí)驗(yàn)結(jié)果可知,本文所提方法在均方根誤差方面相對(duì)傳統(tǒng)算法至少提高了一個(gè)數(shù)量級(jí),大大提高了姿態(tài)估計(jì)精度。因此,將LSTM 神經(jīng)網(wǎng)絡(luò)應(yīng)用于姿態(tài)估計(jì)有助于提高無人機(jī)姿態(tài)估計(jì)的精度,同時(shí)降低了人工調(diào)參以及建立誤差補(bǔ)償模型過程中引入的誤差。接下來的研究會(huì)針對(duì)網(wǎng)絡(luò)輸入特征以及預(yù)測(cè)的輸出步長(zhǎng)進(jìn)行改進(jìn),同時(shí)探索深度學(xué)習(xí)在姿態(tài)估計(jì)方面的其他應(yīng)用。