當前位置:編程學習大全網 - 源碼下載 - 自動駕駛是怎樣工作的?SLAM介紹

自動駕駛是怎樣工作的?SLAM介紹

SLAM是機器人或車輛建立當前環境的全局地圖並使用該地圖在任何時間點導航或推斷其位置的過程。

SLAM常用於自主導航,特別是在GPS無信號或不熟悉的地區的導航。本文中我們將車輛或機器人稱為“實體”。實體的傳感器會實時獲得周圍環境的信息,並對信息進行分析然後做出決策。

SLAM是壹種時間模型,它的目標是從復雜的信息中計算出壹系列狀態,包括預期環境,距離,以及根據之前的狀態和信息得出的路徑 。有許多種狀態,例如,Rosales和Sclaroff(1999)使用狀態作為行人邊界框的3D位置來跟蹤他們的移動。Davison 等人(2017)使用單目相機的相機位置,相機的4D方向,速度和角速度以及壹組3D點作為導航狀態。

SLAM壹般包含兩個步驟,預測和測量。為了準確表示導航系統,SLAM需要在狀態之間以及狀態和測量之間進行學習。SLAM最常用的學習方法稱為 卡爾曼濾波

卡爾曼濾波是壹種用於狀態估計的貝葉斯濾波類型。它是壹種遞歸算法,作為系統中不確定性的函數,使預測可以隨著時間的推移進行校正。不確定性表示為當前狀態估計和先前測量之間的權重,稱為卡爾曼增益。該算法將實體先前的狀態,觀測和控制輸入以及當前的觀測和控制輸入作為輸入。過濾器包括兩個步驟:預測和測量。預測過程使用運動模型,可以根據給定的先前位置和當前的輸入估計當前位置。測量校正過程使用觀察模型,該模型基於估計的狀態,當前和歷史觀察以及不確定性來對當前狀態進行最終估計。

第壹步涉及了時間模型,該模型基於先前的狀態和壹些噪聲生成預測。

公式1. 預測模型。μ表示狀態的平均變化向量。ψ是狀態數量的矩陣,將當前狀態與先前的平均值相關聯。ε是轉換噪聲,可以確定當前狀態與前壹個狀態的緊密相關程度。

第二步是“校正”預測。傳感器收集自主導航的測量值。有兩類傳感器:外傳感器器和內傳感器(proprioceptive)。外傳感器從外部環境中收集信息,包括聲納,距離激光,相機和GPS。在SLAM中,這些是觀察值。內傳感器利用編碼器,加速度計和陀螺儀等設備收集系統內部信息,如速度,位置,變化和加速度。在SLAM中,這些是單元控制,傳感器結果輸入到實體中進行計算。這些傳感器各有利弊,但相互組合可以產生非常有效的反饋系統。

公式2. μ?表示測量平均向量。Φ是狀態數量的將測量的平均值與當前狀態相關聯。ε?是測量噪聲,通常以協方差Σ?分布。

卡爾曼增益增強了測量的可信性。例如,如果相機失焦,我們就不會對拍攝內容的質量報太大期望。卡爾曼增益較小意味著測量對預測的貢獻很小並且不可靠,而卡爾曼增益較大則正好相反。

公式 3.卡爾曼增益計算,Σ?是預測的協方差。

更新過程如下:

公式4. 使用卡爾曼增益的卡爾曼濾波學習過程。圖片來自Simon JD Prince(2012)。

雖然這種方法非常有用,但它還存在壹些問題。卡爾曼濾波假定單模態分布可以用線性函數表示。解決線性問題的兩種方法是擴展卡爾曼濾波器(EFK)和無跡卡爾曼濾波器(UFK)。EFK使用泰勒展開來逼近線性關系,而UFK使用壹組質量點近似表示正態,這些質量點具有與原始分布相同的均值和協方差。壹旦確定了質量點,算法就通過非線性函數傳遞質量點以創建壹組新的樣本,然後將預測分布設置為正態分布,均值和協方差等效於變換點。

由卡爾曼濾波強加的單模分布假設意味著不能表示其他狀態假設。粒子濾波是解決這些問題的常用方法。

粒子濾波允許通過空間中的粒子來表示多個假設,高維度需要更多粒子。每個粒子都被賦予壹個權重,該權重表示其所代表的狀態假設中的置信度。預測從原始加權粒子的采樣開始,並從該分布中采樣預測狀態。測量校正根據粒子與觀測數據的壹致程度(數據關聯任務)來調整權重。最後壹步是對結果權重進行歸壹化,使總和為1,因此它們是0到1的概率分布。

因為粒子的數量可以不斷增多,因此對該算法的改進集中在如何降低采樣的復雜性。重要性采樣和Rao-Blackwellization分區是常用的兩種方法。

下圖來自Fuentes-Pacheco, J., Ruiz-Ascencio, J., & Rendón-Mancha, J. M. (2012)的論文“Visual simultaneous localization and mapping: a survey”,總結了到2010年的SLAM中的壹些方法。他們的研究分為幾個方面。核心方案是使用學習算法,其中壹些在上文討論過。地圖的類型是捕獲環境幾何屬性的度量圖,或者是描述不同位置之間的連接的拓撲圖。

在線跟蹤中最常用的功能是顯著特征和標記。標記是在環境中由3D位置和外觀描述的區域(Frintrop和Jensfelt,2008)。顯著特征是由2D位置和外觀描述的圖像區域。深度學習技術通常用於在每個時間點描述並檢測這些顯著特征,以向系統添加更多信息。檢測是識別環境中的顯著元素的過程,描述是將對象轉換為特征向量的過程。

應用SLAM的方案有兩種,壹種是回環檢測(loop closure),另壹種是“機器人綁架(kidnapped robot)”。回環檢測是識別已經訪問過的任意長度的循環偏移,“機器人綁架”不使用先前的信息去映射環境。

SLAM是自主導航中常用的狀態時間建模的框架。它主要基於概率原理,對狀態和測量的後驗和先驗概率分布以及兩者之間的關系進行推斷。這種方法的主要挑戰是計算復雜。狀態越多,測量越多,計算量越大,在準確性和復雜性之間進行權衡。

[1] Fuentes-Pacheco, J., Ruiz-Ascencio, J., & Rendón-Mancha, J. M. (2012). Visual simultaneous localization and mapping: a survey. Artificial Intelligence Review, 43(1), 55–81. https://doi.org/10.1007/s10462-012-9365-8

[2] Durrant-Whyte, H., & Bailey, T. (2006). Simultaneous localization and mapping: Part I. IEEE Robotics and Automation Magazine, 13(2), 99–108. https://doi.org/10.1109/MRA.2006.1638022

[3] T. Bailey and H. Durrant-Whyte (2006). “Simultaneous localization and mapping (SLAM): part II,” in IEEE Robotics & Automation Magazine, vol. 13, no. 3, pp. 108–117. doi: 10.1109/MRA.2006.1678144

[4] Simon J. D. Prince (2012). Computer Vision: Models, Learning and Inference. Cambridge University Press.

[5] Murali, V., Chiu, H., & Jan, C. V. (2018). Utilizing Semantic Visual Landmarks for Precise Vehicle Navigation.

[6] Seymour, Z., Sikka, K., Chiu, H.-P., Samarasekera, S., & Kumar, R. (2019). Semantically-Aware Attentive Neural Embeddings for Long-Term 2D Visual Localization. (1).

[7] Fuentes-Pacheco, J., Ruiz-Ascencio, J., & Rendón-Mancha, J. M. (2012). Visual simultaneous localization and mapping: a survey. Artificial Intelligence Review, 43(1), 55–81. https://doi.org/10.1007/s10462-012-9365-8

  • 上一篇:汾酒價格表和圖片大全有哪些?
  • 下一篇:求soble算子和prewitt算子源代碼,用C語言編的!用於數字圖像處理!
  • copyright 2024編程學習大全網