本文摘要:摘要:移動節點的準確定位對于無人機的環境感知、路徑規劃及控制系統的開發至關重要。對決策樹、SVM和貝葉斯等三種機器學習方法在使用錨節點的室內空間進行定位準確率對比研究,最終選擇了具有高泛化準確率的貝葉斯方法作為定位方法。結合改進后的A*算法在室
摘要:移動節點的準確定位對于無人機的環境感知、路徑規劃及控制系統的開發至關重要。對決策樹、SVM和貝葉斯等三種機器學習方法在使用錨節點的室內空間進行定位準確率對比研究,最終選擇了具有高泛化準確率的貝葉斯方法作為定位方法。結合改進后的A*算法在室內空間對無人機進行自動路徑規劃,并借助激光傳感器感知環境中未知障礙,不斷更新室內地圖并指導無人機進行避障,無人機導航實驗驗證了機器學習方法用于室內空間定位的可行性。
關鍵詞:機器學習方法,室內定位,室內導航,貝葉斯方法
無人機的一個主要研究領域是無人機的環境感知、路徑規劃及控制系統的開發。這些能力對部署無人機輔助人們進行諸如營救、搜索及運輸等任務非常必要[1]。在無線傳感網中,不知道事件發生的確切位置,獲得的傳感器數據就沒有價值,因此節點的定位就顯得尤為重要[2]。確定無人機的位置可以用來實現基于位置信息的服務。
局部地圖算法的目標是根據探測到的障礙物確定空間中何處有障礙,在探索到障礙時可以依據無人機的位置信息生成障礙地圖,從而可以進行室內空間導航及其他相關服務[3]。定位算法是通過使用傳感器間的節點測量值,如距離或角度的知識并參考局部或全局坐標系統估計移動目標的位置。
無線傳感網中的多數定位方法集中于一部分稱為錨點的傳感節點,可以通過GPS或手工配置獲取自己的確切位置,其他的節點使用定位算法從這些錨點計算出自己的位置,從而可完成對移動節點的位置追蹤[4]。為提高基于近似數據的定位算法性能,應用基于距離、角度或者這些方法混合的額外方法進行距離度量。距離度量主要使用RSSI、TWR、TOA和TDOA,更進一步可以通過使用指南針或專門智能天線對接收信號的角度進行測量[5-6]。
目前,很多方法開始采用機器學習領域的知識推導傳感節點的位置。可以假定一組錨節點并且使用它們與目標節點的距離作為訓練數據,過程的結果即為一個可以用來預測其他節點位置的模型[7-11]。
本文是研究室內無人機的定位算法,實驗中將室內空間人為劃分成大小相同的立體網格,使用基于錨節點的室內定位系統計算與無人機的距離,并分別使用不同的機器學習算法確定無人機所在的網格。主要對決策樹[12]、支持向量機[13]和貝葉斯[14]等三種方法進行對比。通過實驗對比三種算法的分類準確率后選擇基于貝葉斯的分類方法用于定位,并以此對無人機進行導航。實驗中無人機可以根據貝葉斯預測結果進行比較準確的定位,在飛行過程中通過激光傳感器實時探測環境中的障礙,同時更新網格地圖,使無人機可以避障飛行。
1實驗環境
實驗所用的無人機型號是crazyflie2.0。配裝在無人機上的FlowDeck。其中使用的VL53L0x激光傳感器能夠測量無人機與地面的高度,PMW3901光學流傳感器可以用來給出其相對于地面的運動信息,但缺乏長期的位置感知。外部的系統可提供其當前位置的信息,室外可以借助GPS進行定位,但室內環境往往受限制,更復雜、或造價更高。
本實驗使用的是bitcraze公司的局部定位系統。局部定位系統可被用來獲得物體在空間中的3D位置。系統中主要涉及兩部分:①一組錨節點傳感器集合,他們被定位在房間中用來做位置參考,坐標根據實際部署位置手工測量后給出;②一個或更多的標簽,被放置在無人機上,系統可以測量標簽和多個錨節點之間的距離。有了這些距離值,可以通過計算獲得無人機的定位信息。
實驗中,在房間里放置6個錨節點。其中0號為第1個錨節點,在地面上,一般作為原點坐標使用。0、1、2號分別部署在地面上,3、4、5號部署在高層上,這樣可形成一個立體空間,覆蓋區域為陰影部分立體空間。為了能夠確認無人機在空間中的位置,需要在無人機上安裝相應局部定位系統的標簽。
2機器學習方法在無人機定位中的應用
在每個網格空間不同位置分別采集與6個錨節點的距離數據d0:0.96886;d1:2.431061;d2:0.926044;d3:1.406135;d4:1.738959;d5:2.292752。實驗中使用局部定位系統獲取的距離可以計算出3D坐標,但由于傳感器數據存在的噪聲問題,計算出的坐標存在一定的不確定性。為了增加定位的準確率,將定位問題建模成為分類問題。
一般情況下,最初兩個步驟是:①類別定義。將空間劃分成大小相同的網格,Gm=(i,j,k),其中類別Gm是錨節點覆蓋區域中的一個網格。②訓練數據。由于錨節點坐標是已知的,每個錨節點與網格中位置的距離作為特征值。當運行分類程序時就會獲得一個預測模型,用于預測無人機位置屬于哪個網格,為后續的導航算法提供網格定位信息。
為了解決分類問題,可以使用機器學習中的各種分類方法,本研究主要使用決策樹、SVM和貝葉斯方法進行分類測試,并根據測試結果和問題的需要選擇適合的分類方法。實驗中,將無人機放置在不同網格中,使用自行設計的數據采集程序,收集來自錨節點的距離數據,將6個距離數據直接作為特征值來訓練分類模型。
為了選擇合適的機器學習方法用于定位,驗證訓練數據量對分類準確率的影響,使用規模不同的兩種數據集,分別為每個網格采集148組不同數據;每個網格采集351組不同數據,訓練時使用十折交叉驗證來計算分類準確率。訓練后再次采集新的數據驗證不同方法的泛化誤差。三種機器學習方法對應不同規模數據量的準確率對比圖,SVM和貝葉斯兩種分類準確率相近,都明顯高于決策樹分類。
三種機器學習方法在不同規模數據量訓練模型下實際數據測試的泛化準確率,貝葉斯方法在實際分類中準確率較高。無人機在飛行過程中需要不斷根據傳感數據判斷所在位置,準確率對后續的尋路算法及避障有重要作用,因此本文選取貝葉斯方法作為位置判斷的方法。在訓練數據時,數據量規模對測試準確率的提高有重要作用,可通過線下采集大量訓練數據集的辦法進一步提高分類準確率。
3室內導航及避障
3.1室內尋路算法
路徑搜索的目標是找到一條避免障礙物好的路徑,并把代價(距離、轉向)最小化。運動的目標是找到一條路徑并且沿著它行進。A*是路徑搜索中最受歡迎的選擇,因為它相當靈活,并且能用于多種多樣的情形之中。A*算法根據新的啟發函數計算的從S到E的最優路徑。無人機在起點S使用A*算法,以E為終點尋找一條最優路徑。飛行時不斷采集與錨節點的距離數據并使用貝葉斯方法確定自己位置,并按規劃路徑向終點方向飛行。
同時,使用激光傳感器探測前方相鄰網格障礙物,更新地圖后再次調用A*算法重新尋路,避開障礙物。考慮到無人機在飛行過程中網格交叉位置定位準確率低的情況,在本文的A*算法中不支持無人機選取對角線的路徑,所以在選取當前格子的相鄰格子時,只考慮前后左右四個方向的直行路線。又因為無人機按原方向直行的代價較低,所以在計算G值的過程中對與無人機當前運行方向不同的相鄰格子的G值適當提高了代價,從而可在尋路時優先選擇與無人機同方向的下一格子。
3.2室內避障及地圖更新
為了能夠探測環境中的障礙及障礙的位置,在無人機上裝備Multiranger板,在4個方向上(前、后、左、右)分別裝備激光傳感器,在飛行過程中收集4個傳感器傳送回的距離數據,根據障礙探測算法確定相鄰格子出現的障礙,根據方向將地圖中的相鄰位置填上障礙標記。實線為在S'網格探測到前方存在障礙后,將障礙標記更新到地圖中,重新調用A*算法規劃出的新路線。無人機在S'格需要進行轉向,按新路徑飛行到E。
3.3基于規劃路線的貝葉斯定位準確率的進一步提升
由于網格空間是人為劃分的,兩個網格相交處沒有明顯的界限。在實驗中發現,出現分類錯誤往往是在兩個網格交界的地方。在實驗過程中總結出兩種有關定位與飛行路線不吻合的情況:①無人機飛行路線正確,但貝葉斯預測為相鄰網格,解決方法是通過使無人機在此處上飛,下飛n次,取與飛行路線吻合的那次判斷;②無人機受動作噪聲影響,偏離路徑。
如果①中所有n次都與飛行路線所定網格不同,按投票方法選取預測多的那個網格對無人機進行定位,重新規劃飛行路線。由于選取的貝葉斯方法的泛化準確率比較高,再以規劃路線及實際飛行情況輔助提高準確率,實驗中可以完成無人機的室內飛行精確定位,正確導航其從起點飛行到終點,并可準確避障飛行。
4結論
1)在室內環境中,通過無人機定位完成室內導航研究中,使用錨節點作為已知節點,將其信號覆蓋空間劃分成網格。根據無人機在不同網格中接收到與各個錨節點的距離信息,分別使用三種機器學習方法進行訓練分析后,選定貝葉斯方法作為定位方法。無人機在飛行過程中不斷通過預測方法獲得自己所在位置后使用A*算法進行尋路,并利用裝備的激光傳感器來探測周圍障礙情況,根據位置、障礙實時更新網格地圖,調整導航路線直至到達終點。
2)為了簡化操作,本研究中的地圖只使用了地面一層的平面地圖,A*算法是在平面地圖中進行的。后續可以將算法擴充為立體地圖并基于立體地圖進行3D導航的研究。貝葉斯方法的訓練過程需要事先采集各個網格的數據,這個過程費時而且高空不容易進行,所以需要進一步研究合適的采集方法從而簡化空間數據的訓練過程,增強方法的實用性。
無人機方向評職知識:無人機應用研究論文發表要求高嗎
無人機飛行技術發展突飛猛進,關于無人機應用方面的研究論文有很多,有作者問發表無人機應用研究論文發表要求高嗎?不同級別的期刊對論文發表要求不一樣,核心期刊比普刊要高一些,不過不論是哪個級別的期刊,論文發表都要保證查重率合格。
轉載請注明來自發表學術論文網:http://www.zpfmc.com/dzlw/20667.html