胡文超,孫新柱,陳孟元
(安徽工程大學 安徽省電氣傳動與控制重點實驗室,安徽 蕪湖 241000)
同步定位與地圖構建(simultaneous location and mapping,SLAM)就是運動載體利用自身攜帶的傳感器獲得周圍環境的地圖,同時確定自己在地圖中的位置[1]。機器人SLAM可以實現二維空間的經歷圖構建,但是對于空中某一高度的經歷圖構建,例如利用SLAM技術用經歷圖來描述建筑物特定高度的外圍輪廓,機器人SLAM已經不再適用。無人機可以在特定高度下飛行,利用無人機SLAM技術可以實現特定高度下二維經歷圖的構建。無人機SLAM問題應用最成功的是概率的方法,如卡爾曼濾波算法[2]、擴展卡爾曼濾波算法[3]、粒子濾波算法[4]等,文獻[5]將小型無人機的SLAM問題分解成路徑估計與環境地標估計兩部分,分別采用粒子濾波器和擴展卡爾曼濾波器進行估計,提出了一種小型無人機的FAST SLAM算法,運算的復雜度大幅度降低,且能更好地表示非線性、非高斯運動模型,這些概率算法的優勢是能夠處理傳感器與環境的模糊性,有很好的SLAM性能,但由于概率方法存在計算量大、搜索時間長、易陷于局部最優解等問題,故不能夠完全解決全局地圖構建和導航問題。慣性導航設備是無人機最常用的導航與地圖構建方案,其主要使用慣性/衛星/磁傳感器/氣壓高度計組合導航,但是無人機在樓群之間、大型建筑物內部或者山區等GPS信號較弱的地區飛行時,由于缺乏衛星導航系統,慣性導航系統的誤差會不斷發散,很難實現準確的導航與地圖構建[6]。而視覺SLAM方法僅使用機載攝像頭作為外部傳感器,目前常用的是單目視覺SLAM[7]、雙目視覺SLAM[8]、RGB_D SLAM[9]、文獻[10]使用四旋翼飛行器搭載RGB_D傳感器并進行SLAM系統研究,使用稀疏的RGB_D SLAM方法,提高無人機SLAM系統的實時性的同時也達到了高精度的效果。然而視覺SLAM算法對于光照依賴性較強,必須在適宜的光照強度下,在黑暗或較暗的光強下,很難實現準確的同步定位與地圖構建;為了解決此類問題,出現了聲吶SLAM算法,聲吶SLAM與視覺SLAM相比,聲吶具有處理速度快、不受光線條件限制等優點,文獻[11]利用AUV上的聲吶傳感器持續探測非合作目標并估計目標航跡的同時,利用探測到的AUV與目標間的相對信息修正其自身航位推算帶來的累積估計誤差,從而提高AUV的自定位精度。但是聲吶SLAM的缺點在于獲取的信息量較少,空間分布分散,其感知信息存在較大的不確定性,因此生物聲吶逐漸作為研究的熱點。生物聲吶,能夠實現在復雜的環境下進行導航,因為它從回聲中提取更多的信息。文獻[12]提出可以模仿蝙蝠聲吶的發射與接收過程,利用仿生聲吶系統實現復雜環境下的定位與導航。
概率方法廣泛應用于SLAM的同時,澳大利亞昆士蘭大學Michael等[13]提出了一種基于復合位姿表征的嚙齒動物海馬區擴展模型(RatSLAM)。RatSLAM模型提出了一種位姿細胞網絡,即連續吸引子網絡,作為一種手段來進行路徑積分。RatSLAM的路徑積分是通過里程計獲取速度與角度信息,同時使用視覺傳感器對里程計得到的信息進行修正與更新,繪制精確的經歷圖。文獻[14]已經證明在RatSLAM基礎上,可以使用仿生聲吶模板來代替RatSLAM系統中的視覺模板,用雙耳平滑耳蝸圖來代替視覺圖像,可以實現在暗光或黑暗的條件下,使用BatSLAM模型來構建二維經歷圖。
BatSLAM模型通過雙耳平滑耳蝸圖作為仿生聲吶模板構建二維經歷圖,使用絕對差值和(SAD)模塊進行處理產生局部場景,即通過計算所有模板中的耳蝸圖的像素亮度與當前耳蝸圖的像素亮度之差并求和后與閾值相比較來進行仿生聲吶模板的更新,但是此方法是基于外觀的低分辨率、并且只需判斷圖像外觀前后是否一致,不存在幾何處理和特征提取。耳蝸圖在獲取和傳輸過程中會產生各類噪音,相同位置獲得的回波信號構建的耳蝸圖具有一定的差異,單獨使用SAD模塊處理會由于識別出錯而導致二維經歷圖的失真。
文獻[15]提出對視覺圖像進行閉環檢測,通常利用當前幀和歷史幀的特征點匹配對數,通過設定的閾值來判斷是否達到閉環狀態。對于音頻圖像,出現了可以進行聲音識別的音頻感知哈希技術。音頻感知哈希是指可以代表一段音頻重要聲學特征的基于內容的緊致數字簽名,其主要目的是建立一種有效機制來比較兩個音頻文件的感知聽覺質量[16]。本文以音頻感知哈希檢索時的誤碼率作為標準,將當前耳蝸圖構建的音頻感知哈希與模板庫中耳蝸圖構建的音頻感知哈希相比較,當最小誤碼率小于某一閾值時,識別成功,完成閉環檢測,從而實現經歷圖的優化。
采用一種可以在特定高度下進行繪制二維經歷圖的BatSLAM模型,使用仿生聲吶模板來代替RatSLAM系統中的視覺模板,用雙耳平滑耳蝸圖代替視覺圖像來構建二維經歷圖。使用仿生聲吶系統采集回波信號,經過一系列處理后將二次采樣的雙耳平滑耳蝸圖作為仿生聲吶模板,同時生成局部場景細胞。用位姿感知細胞來表示無人機在特定高度下的位置與方向。使用陀螺儀與加速度計信息來更新位姿感知細胞,使用仿生聲吶模板對應的局部場景細胞來實現位姿感知細胞的修正,當使用仿生聲吶模板識別失敗時,則使用音頻感知哈希模板進行位姿細胞的修正。考慮到單獨使用音頻感知哈希進行修正會降低算法的實時性,所以選擇優先使用仿生聲吶模板修正,輔助使用音頻感知哈希修正,在提高閉環檢測準確率的同時,實時性也不會有很大的影響。最后由位姿感知細胞、局部場景細胞與音頻感知哈希的相互聯系來實現二維經歷圖的構建與校正。改進后的BatSLAM算法的結構框圖如圖1。

圖1 改進后的BatSLAM算法的結構框圖Fig.1 Structure block diagram of the improved BatSLAM algorithm
蝙蝠發出高頻信號,并對反射的回波信號進行分析并進行導航。在頭部相關傳遞函數(head function related transfer,HRTF)的基礎上,加入發射器與接收器的位置信息,采用echolation related transfer function(ERTF)進行聲源定位。左耳與右耳ERTF濾波器如式(1)、式(2)所示。

式中: He(f,θ)表 示發射器方位,(f,θ)、(f,θ)分別表示左右接收器方位。頻率為 f, 角度 θ表示仿生聲吶系統中處于特定高度的反射器的方位角。
文獻[11]指出雙耳ERTF差是綜合了回聲譜、雙耳強度差(IID)和雙耳時間差(ITD)的聲源定位模型,包含了從目標物到反射器位置的詳細方位信息,可以實現蝙蝠的回聲定位。
在多個反射器的作用下,左右耳蝸接收到的信號如式(3)、式(4)所示。


為了分析這些雙耳回波信號的生理學時頻特性,使用Gammatone聽覺濾波器組來模擬蝙蝠耳廓聽覺頻率響應,其時域表達式為式中: fc(n)為中心頻率;b為帶寬。對于接收到的回波信號經過Gammatone濾波器組處理后,使用得到的Gammatone耳蝸能量譜來表示回波信號的時頻特性,接下來進行一階低通濾波,分別得到左耳與右耳耳蝸圖,計算公式如式(6)、式(7)所示。式 中 : XL(t) 、 XR(t)分 別 為 左 耳 與 右 耳 耳 蝸 圖 ,ulp(t)為 一階低通濾波, xL(t)、 xR(t)為左耳與右耳接收的信號。

在BatSLAM模型中,將構建的耳蝸圖模型作為仿生聲吶模板,在使用耳蝸圖作為仿生聲吶模板時,必須注意對無人機位置細微的變化進行處理,及時進行二次采樣的單聲道耳蝸圖使系統更加具有魯棒性。這里使用高斯濾波器進行平滑處理,進一步排除細小位置改變帶來的影響。二個平滑和二次采樣的單聲道耳蝸圖連接起來,形成一個雙耳平滑耳蝸圖如式(8)所示。

使用標準化雙耳平滑耳蝸圖,計算公式為

將標準化雙耳平滑耳蝸圖作為當前仿生聲吶模板,計算公式為

定高飛行的無人機在特定的位姿狀態時,處于空間位姿感知細胞網絡(X,Y,θ)中,通過連續吸引子網絡(CAN)控制無人機位姿感知網絡內部的活動。路徑積分是通過轉換每個位姿感知細胞基于無人機加速度計速度、陀螺儀角速度和(X,Y,θ)坐標的活動來更新姿態細胞的活動,同時使用仿生聲吶模板的比較來保持和修正位姿信息,從而實現位姿感知細胞的重定位。
1) CAN模型
位姿細胞內部動態過程主要包括興奮度更新,對所有細胞的全局抑制。使用一個三維離散高斯分布來創建興奮度權重矩陣 ε,如式(11)所示:

式中: km、 kn分別表示位置與方向的常數;a、b、c為x′、 y′、 θ′的分布系數。
由于興奮性造成的位姿感知細胞的活動變化如式(12)所示:

式中: Nx′,Ny′,Nθ′為 (x′,y′,θ′)空間中的位姿感知細胞三維矩陣元素。 Pabc為位姿感知細胞的活動系數,對于位姿感知細胞的活動變化的全局抑制如式(13)所示:

式中:抑制常數 φ控制全局抑制水平且興奮度水平被限制在非負數范圍。
2)直觀的路徑積分
該模型的路徑積分方法是轉換現有位姿感知細胞的活性而不是立即將當前活性復制傳遞。該過程使其性能獨立于感知變化更新速率和加速度計速度與陀螺儀角速度,不僅能生成更加準確的無人機飛行軌跡,并且不需要參數調整。經過路徑積分后,被更新的位姿感知細胞活性為如式(14)所示:


式中: kx′、 ky′、 kθ′是路徑積分常數;v表示加速度計速度;w表示陀螺儀得到的角速度。
3)仿生聲吶模板修正位姿感知細胞
采用雙耳平滑耳蝸圖作為仿生聲吶模板,局部場景細胞由一個一維細胞陣列組成,每個細胞單元對應一個特定的仿生聲吶模板。在路徑積分時,由于位置和方向上的累計誤差,使用仿生聲吶模板來進行修正。對于每個新的場景,算法會建立新的仿生聲吶模板,同時建立局部場景細胞與位姿感知細胞間的聯系。進行更新的連接強度如式(16)所示:

式中: Gi為局部場景細胞的活動水平; Px′y′θ′為位姿感知細胞的活動水平;λ表示加權值。
對于每一個雙耳平滑耳蝸圖使用絕對差值和SAD模塊進行處理產生局部場景。SAD模塊將當前耳蝸圖與模板庫中的耳蝸圖進行比較,通過計算所有模板中耳蝸圖的像素亮度與當前耳蝸圖的像素亮度之差,如式(17)所示:

式中: Ucur表示當前耳蝸圖的像素亮度; Ui表示數據庫中的第i個仿生聲吶模板的像素亮度。如果像素亮度之差低于某一閾值 τ,當前耳蝸圖被識別出來,對位姿感知細胞進行校正:

如果像素亮度之差高于某一閾值 τ,當前耳蝸圖成為新的仿生聲吶模板并加入到模板庫中。閾值τ為

式中: nG為數據庫中的仿生聲吶模板的數量; αt為調整系統的比例因子, αt設置為0.5。
1)音頻感知哈希
音頻感知哈希是音頻數據集到音頻感知摘要集的單向映射,將具有相同感知內容的音頻數字表示唯一地映射為一段數字摘要。映射關系為PH,如式(20)所示, ph感知哈希(perceptual hash):

生成的數字摘要稱為感知哈希(perceptual hash)。在感知哈希映射作用下,音頻信息間主觀測度下的感知距離轉化為感知哈希間的客觀可計算的數學距離 n ∈N。
2)音頻感知哈希的生成
仿生聲吶系統將收集到的音頻信號B作為感知哈希函數的輸入,使用一組具有8通道的Gammatone濾波器進行濾波,將濾波后的的數據根據頻帶高低進行排序,由低到高分別為 S1,S2,···,S8。使用Gammatone耳蝸能量譜來對回波信號的時頻特性進行表示。將每一個頻帶的數據{,,···,}實行90%重疊后進行分幀,每幀20 ms(即
80個采樣點),矩陣W作為能量譜矩陣,對于能量譜矩陣里每一個元素 W(n,L),如式(21)所示:


式中: Δ2Qk是 對 Qk做 二階差分, Rk長度為6。最后對得到的結果實行二值化處理,音頻感知哈希Y如式(23)所示。

式中:音頻感知哈希生成過程如圖2所示。

圖2 音頻感知哈希生成Fig.2 Audio perception Hashi generation
3)音頻感知哈希模板修正
對于每個新的場景,算法會建立新的音頻感知哈希模板。同時建立音頻感知哈希與位姿感知細胞間的聯系。進行更新的連接強度如式(24)所示:

式中: Yi指的是第i個音頻感知哈希模板。這里采用誤碼率P=Vi/V來衡量任意二個音頻感知哈希之間的相似水平,V表示待識別音頻感知哈希碼元個數,Vi表示模板庫中的音頻感知哈希進行對比時出現錯誤的個數。將當前音頻感知哈希和數據庫中音頻感知哈希進行對比,若低于閾值 γ則
對位姿感知細胞進行修正:

如果高于閾值 γ,當前音頻感知哈希成為新的音頻感知哈希模板并加入到音頻感知哈希模板庫中。
每個經驗 exi,yi,θi= 〈Ei,Pxi,yi,θi,Yi,Gi〉關聯經驗能級Ei, 位姿細胞 Pxi,yi,θi和局部場景細胞 Gi,與音頻感知哈希模板 Yi,第i個經驗如式(26)所示:

當前位姿感知細胞的活性或當前的音頻感知哈希決定經驗能級 Ei的各組成要素,如式(27)所示。

使用當前位姿信息、音頻感知哈希和仿生聲吶模板與經歷圖進行匹配時,當到達經驗過的地方時,進行一次閉環檢測,并對經歷圖進行校正,經驗位姿改變如式(28)所示:

式中:α為校正常數, Nf為經驗i到其他經驗的連接數, Nt為從其他經驗到經驗i的連接數。
本文是通過I2C協議來讀取MPU6050數據,獲取的傳感器數據經過預處理后,經過互補濾波算法進行數據融合,通過姿態解算獲取四旋翼飛行器的姿態角與位置,由SPI總線將數據發送到定高飛行的無人機控制器。使用氣壓計MES5611來獲取氣壓數據。因為氣壓值與海拔高度成固定的比例,通過氣壓計數據轉換為海拔高度:

式中:Alt是海拔高度,m; P0為1 013.25 hPa.
通過3個超聲波換能器作為蝙蝠的耳朵和嘴,3個超聲波換能器按照“一字型”進行排列。“二耳”分別將采集的信息通過信號接收電路,經過AD芯片轉換為數字信號傳遞給四旋翼飛行器的STM32主控芯片;STM32主控芯片發出信號,經過信號處理電路后使用“嘴”發出聲波,仿生聲吶系統采集音頻信號并傳輸給上位機獲得左右耳蝸圖。
圖3表示為2組不同回波信號的Gammatone耳蝸能量譜。分別含有了3段回波信號的最初版本、帶噪聲版本、高斯平滑處理版本。耳蝸能量譜的縱軸表示不同的頻帶,橫軸表示不同時間,能量值越高對應的顏色也相應較深。由圖3可以發現,兩組音頻信號獲得的能量譜具有很大的不同,而相同音頻雖然經過不同的處理,但是相鄰頻帶間能量差異依然沒有較大改變。所以可以通過耳蝸能量譜進行特征提取構建音頻感知哈希。

圖3 最初音頻和處理后的音頻耳蝸能量譜比較Fig.3 Comparison of the energy spectrum between the initial and the processed audio cochlea.
為了分析不同噪音條件下改進算法與原算法的閉環檢測的準確率,這里選取典型的兩種噪音,即高斯噪音與椒鹽噪音。設計了外加高斯噪音、椒鹽噪音和未添加噪音下的準確率-召回率對比試驗。選取其中一個耳蝸圖模板,得到不同噪音版本與原始版本的耳蝸圖對比如圖4所示。

圖4 不同噪音版本與原始版本耳蝸圖對比Fig.4 Comparison of different noise versions and original versions of cochlea
為了分析不同噪音對于閉環檢測準確性的影響,本文使用準確率P、召回率R來分析不同條件下2種算法的性能。其表達式如式(30)、式(31)所示。

式中:TP表示正確識別的閉環經驗單元,FP表示錯誤識別的閉環經驗單元,FN表示未識別的實際閉環經驗單元。BatSLAM算法和基于音頻感知哈希閉環檢測的BatSLAM算法在不同條件下的準確率、召回率如表1、2所示。

表1 BatSLAM在不同條件下的準確率、召回率Table1 The accuracy and recall rate of BatSLAM under different conditions

表2 基于音頻感知哈希的BatSLAM在不同條件下的準確率、召回率Table2 The accuracy and recall rate of BatSLAM based on audio perception Hashi under different conditions
通過表1、2可得,在無噪音條件下,兩種算法的準確率大體相同分別為99.06%和100%,但是對于召回率,改進后的算法具有明顯提高,未識別的實際閉環經驗單元數量明顯減少。當噪聲干擾較小時,即高斯噪音,準確率提高程度不太明顯,當噪音干擾較大時,即椒鹽噪音,其準確率具有顯著提高,因為改進后的算法不僅考慮到外觀,而且考慮到相鄰頻帶間的能量差異,從而提高了正確識別的閉環經驗單元數量。當存在多種噪音時,基于音頻感知哈希的BatSLAM算法具有明顯優勢,提高了閉環檢測的準確率。
本文首先設計了硬件平臺數據處理方案,實現了對MPU6050姿態數據、氣壓計MES5611的數據以及音頻數據的采集與處理;然后將無人機定高飛行過程中獲取的姿態數據與仿生聲吶系統獲取的音頻數據上傳到上位機進行了MATLAB仿真實驗分析,來驗證改進算法的可行性。
選取室外高度為1 m的橢圓形方桌構建的環形空間作為實驗場地,使用GPS獲取位置信息作為基準。無人機分別使用BatSLAM算法和基于音頻感知哈希的BatSLAM算法在暗光條件下以1 m的特定高度進行繞圈實驗,起始點為A,終點為B,圖5和圖6中A與B點代表相同的實際位置。如圖5所示,BatSLAM算法構建的經歷圖在第一圈時,由于聲吶模板修正,當到達終點B時,自動定位到起點A,繼續導航,當到達C點時,由于耳蝸圖在獲取和傳輸過程中會產生各類噪音,僅僅使用SAD處理方法會導致識別出錯,同時因為加速度計與陀螺儀漂移出現了C-D間的誤差偏移,當到達D點時,再次識別成功,自動定位到E點,繼續導航。如圖6所示,將音頻感知哈希算法融合進入的BatSLAM算法,經歷圖在第一圈時,由于聲吶模板-音頻感知哈希修正,當到達終點B時,自動定位到起點A,繼續導航,雖然在導航過程會存在各種噪音干擾,但是當使用仿生聲吶模板識別失敗時,自動調用音頻感知哈希進行修正,因此第二圈軌跡與第一圈基本重合。因為聲吶模板-音頻感知哈希修正不僅考慮到外觀,而且考慮到相鄰頻帶間的能量差異,提高了閉環檢測的準確性。基于音頻感知哈希閉環檢測的BatSLAM算法不僅完成了無人機特定高度和暗光條件下的二維經歷圖繪制,而且提高了閉環檢測準確率,減小了軌跡偏差,改善了經歷圖的失真,實現了經歷圖優化。

圖5 BatSLAM經歷圖Fig.5 BatSLAM experience diagram

圖6 基于音頻感知哈希閉環檢測的BatSLAM經歷圖Fig.6 BatSLAM experience graph based on audio perception Hashi closed loop detection
本文提出的基于音頻感知哈希閉環檢測的BatSLAM模型不僅實現了無人機特定高度和暗光條件下的二維經歷圖繪制,同時改善單獨使用SAD模塊處理所導致二維經歷圖失真問題,而且提高了閉環檢測的準確率,減小了軌跡偏差,從而實現經歷圖的優化。基于本算法的無人機SLAM技術具有適應性強的優勢,可以擺脫對于GPS的依賴,不受光照強度的限制等,可以適用于各種復雜的外界環境下,如礦洞、樓群間、山區等。同時具有廣泛的實際應用前景,可以實現無人機自主導航的同時并在固定高度下對農作物進行灌溉;模仿蝙蝠在洞穴中躲避空中鐘乳石的原理,實現在室內或室外復雜環境下躲避空中障礙物;實現建筑物特定高度外圍輪廓的的二維經歷圖構建等。本文僅僅進行了簡單地形環境下的SLAM二維經歷圖的構建并證明了算法的合理性與可行性,復雜環境下的SLAM二維經歷圖的構建將是接下來的工作重點,正在深入研究中。