在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

從算法角度看 SLAM(第 2 部分)

海闊天空的專欄 ? 來源: Aswin S Babu ? 作者: Aswin S Babu ? 2024-10-02 16:39 ? 次閱讀

作者: Aswin S Babu

正如我們在[第 1 部分]中所討論的,SLAM 是指在無地圖區域中估計機器人車輛的位置,同時逐步繪制該區域地圖的過程。根據使用的主要技術,SLAM 算法可分為三種,分別是基于濾波器的 SLAM、基于圖形的 SLAM 和基于深度學習的 SLAM。

基于濾波器的 SLAM 將 SLAM 視為狀態估計問題。在這種 SLAM 中,通常使用擴展卡爾曼濾波器 (EKF) 或無跡卡爾曼濾波器 (UKF) 等概率濾波器,來遞歸估計機器人的狀態并根據傳感器測量值更新地圖。該濾波器根據機器人的運動模型預測機器人的下一個狀態,然后使用傳感器測量值來修正該預測。

與基于濾波器的 SLAM 相比,基于圖形的 SLAM 將問題視為圖形優化問題。在這種 SLAM 中,SLAM 問題被表述成一個圖形,其中節點表示機器人姿態或環境中的地標,邊緣表示它們之間的測量值或約束。基于圖形的 SLAM 的目標是優化機器人的姿態和地標的位置,以便盡可能準確地滿足測量的約束條件,例如地標之間的距離、機器人姿態之間的相對姿態。

基于深度學習的 SLAM 方法則利用神經網絡直接從傳感器數據中學習環境表征,而不依賴手工創建的特征或模型。這些方法可以學習傳感器測量值和機器人姿態或地圖之間的復雜映射,從而實現端到端的 SLAM 解決方案。

SLAM 的地圖繪制和定位這兩項核心功能彼此之間相互依存,其中機器人根據傳感器數據不斷更新其地圖并相應地調整位置估計。作為一種模塊化工具,SLAM 及其概念允許將替換和更改規劃在內。因此,很多時候,人們會同時開發和使用幾種算法,這使得將 SLAM 作為單一算法進行概括和解釋變得有些麻煩。因此,理解 SLAM 的最佳方式是聚焦一種具體的 SLAM 實現。既然如此,我們就詳細討論一下基于濾波器的視覺 SLAM (vSLAM)。

視覺 SLAM

顧名思義,vSLAM 使用視覺傳感器(相機)作為其主要傳感器。此外,它可能還配備編碼器、慣性測量裝置 (IMU) 和其他傳感器。圖 1 顯示了這種實現的通用框圖。

圖 1:基于特征的 SLAM 過程的簡化通用框圖。(復制自 kudan.io)

相機測量

相機捕捉機器人周圍環境的圖像,包括地標、邊緣和紋理等特征。然而,由于大多數相機鏡頭都會產生一定程度的失真,因此需要對捕捉的圖像進行失真校正。使用的相機可以是立體相機、單目相機或[帶有飛行時間 (ToF) 深度傳感器的 RGB-D 相機]。立體相機和 RGB-D 相機的優點是可以輕松獲取深度信息。但單目相機存在尺度不確定性問題。也就是說,單目 SLAM 無法僅從特征對應關系來識別平移運動的長度(比例因子)。不過,有一些方法可以緩解這種情況,但不在本文的討論范圍內。

特征提取

使用相機傳感器捕捉圖像后,我們需要通過找出特定幀的特征來唯一地識別該幀,以供將來參考。在這種情況下,特征是唯一且可以一致識別的像素的集合。或者我們可以說像素是圖像中的獨特點,不會因旋轉、縮放和失真而發生變化,因此即使在圖像處理之后也很容易重新識別它們。考慮到我們使用立體相機作為主要傳感器,我們應該能夠看到相機捕捉的立體圖像之間的重疊特征。然后,可以使用這些相同的特征來估計與傳感器之間的距離。然而,如前所述,在此之前,我們需要識別立體圖像對上的共同特征。這一過程由特征檢測器和匹配器來完成。一些常見特征檢測器的示例包括尺度不變特征轉換 (SIFT)、定向 FAST 和旋轉 BRIEF (ORB) 以及良好特征跟蹤 (GFTT)。圖 2 顯示了使用一些熱門特征檢測器識別的特征。一旦識別出特征,就會使用相同的特征檢測器對其進行描述。此過程有助于將來輕松地重新識別這些特征。

圖 2:使用 a) GFTT b) SIFT 在 XRP 機器人圖像上檢測到的關鍵點。(來源:SparkFun Electronics)

找出關鍵點之后,我們通過匹配來建立這些點之間的對應關系。一些可使用的特征匹配算法包括暴力匹配器或快速最近鄰搜索庫 (FLANN)。圖 3 顯示了匹配算法作用機制的視覺表示。圖中所示直線連接匹配之處,由于我們使用了鏡像,理想情況下,如果系統是完美的,我們應該只得到水平(平行)直線。但遺憾的是,特征匹配算法并不完美,因此會導致錯誤匹配,其中一些用斜線表示。這就是為什么我們需要隨機抽樣一致性 (RANSAC) 這樣的異常值剔除工具。

圖 3:使用 FLANN 在兩幅對稱圖像上表示特征匹配的直線。(來源:SparkFun Electronics)

RANSAC

使用像 RANSAC 這樣的算法可濾除這些不正確的匹配,確保僅使用正確值(正確的匹配)作進一步處理。RANSAC 的工作方式是使用所提供數據的隨機子集構建模型。也就是說,我們將一些隨機點視為內群值(正常值),并嘗試根據這些選定的點匹配所有剩余的點。然后,我們會評估模型與整個數據集的匹配程度。這個過程不斷重復,直到找到一個由成本函數確定的模型,該模型能夠準確描述數據且誤差最小。

特征和數據關聯

在此步驟中,我們采用檢測到的特征及其在空間中的估計位置來創建這些特征的地圖。隨著在后續幀繼續進行該過程,系統會將新特征與地圖的已知元素關聯,并丟棄不確定的特征。

當在后續幀中跟蹤相機運動時,可以根據已知特征以及它們預計隨運動變化的方式來進行預測。不過,計算資源和時間約束(尤其是在實時應用中)給 SLAM 帶來了限制。隨著系統收集更多的特征測量值并更新位置/姿態,環境表示的約束和優化變得至關重要。

位置、姿態和地圖更新

卡爾曼濾波器

隨著 SLAM 過程的深入,會不斷積累噪聲,并在相機捕捉的圖像與其相關運動之間產生不確定性。通過根據觀察到的測量值不斷生成預測、更新并微調模型,卡爾曼濾波器可以減少不同測量值之間的噪聲和不確定性的影響。這有助于創建線性系統模型。在 SLAM 的實際實現中,我們使用擴展卡爾曼濾波器 (EKF),其采用非線性系統,并圍繞平均值對預測和測量值進行線性化處理。EKF 可以通過執行傳感器融合(例如,相機、IMU)整合來自多個傳感器的數據,以提高狀態和地圖估計的準確性。這種數據源的融合有助于獲得更可靠的 SLAM 結果。基于 EKF 的 SLAM 中的狀態向量包括機器人的姿態(位置和方向)和地圖中地標的位置。

關鍵幀選擇

在捕捉的圖像中選擇關鍵幀,可減少處理全部捕捉圖像所需的大量計算。我們選擇的是可以很好地表示環境的幀,并僅將它們用于計算。這種方法又是一次準確性和效率之間的權衡。

通過閉環和重定位來糾正誤差

隨著構建環境模型的過程不斷推進,測量誤差和傳感器漂移會逐漸積累,從而影響生成的地圖。閉環可以在一定程度上緩解這種情況。當系統發現自己正在重新訪問已經構建地圖的區域時,就會發生閉環。通過重新對齊當前地圖與先前建立的同一區域的地圖,SLAM 系統可以糾正累積的誤差。

重定位

當系統不知道其位置和方向 (POSE) 時,需要重定位。此刻,我們需要利用當前可觀察到的特征重新估計姿態。一旦系統成功將當前獲得的特征與可用地圖匹配,我們就可以正常繼續 SLAM 過程。

結語

SLAM 是一邊估計機器人車輛位置一邊繪制未知區域地圖的過程。SLAM 技術包括基于濾波器、基于圖形和基于深度學習(使用神經網絡)的方法。視覺 SLAM 使用相機捕捉圖像、提取特征、匹配特征并濾除不正確的匹配點。該系統通過將新特征與已知元素關聯、使用卡爾曼濾波器更新機器人的位置和姿態、選擇關鍵幀,并通過閉環和重定位糾正誤差來創建地圖。

參考資料

  1. [Remote Sensing | Free Full-Text | SLAM Overview: From Single Sensor to Heterogeneous Fusion (mdpi.com)]
  2. [Understanding how V-SLAM (Visual SLAM) works | Kudan global]
  3. [Feature-based visual simultaneous localization and mapping: a survey | Discover Applied Sciences (springer.com)]
  4. [Introduction to Visual SLAM: Chapter 1 —Introduction to SLAM | by Daniel Casado | Medium]
  5. [An Introduction to Key Algorithms Used in SLAM - Technical Articles (control.com)]
  6. [What Is SLAM (Simultaneous Localization and Mapping) – MATLAB & Simulink - MATLAB & Simulink (mathworks.com)]
  7. [A survey of state-of-the-art on visual SLAM - ScienceDirect]

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 濾波器
    +關注

    關注

    161

    文章

    7860

    瀏覽量

    178931
  • 算法
    +關注

    關注

    23

    文章

    4630

    瀏覽量

    93355
  • SLAM
    +關注

    關注

    23

    文章

    426

    瀏覽量

    31930
  • 深度學習
    +關注

    關注

    73

    文章

    5513

    瀏覽量

    121550
收藏 人收藏

    評論

    相關推薦

    SLAM技術的應用及發展現狀

    應用行業也可分為兩大類,即工業領域和商業領域。商業用途方面,目前應用最為成熟的應該是掃地機行業,而掃地機也算機器人里最早用到SLAM技術這一批了,國內的科沃斯、塔米掃地機、嵐豹掃地機通過用SLAM算法
    發表于 12-06 10:25

    SLAM大法之回環檢測

    。    超大場景下建圖完整閉合過程  2.詞袋模型  除了SLAM算法的升級和優化之外,現在還有很多系統采用成熟的詞袋模型方法來幫助機器人完成閉環,說的簡單點就是把幀與幀之間進行特征比配。  1、
    發表于 03-06 15:38

    架構的角度如何寫好代碼 + 我的思考

    架構漫談(八):架構的角度如何寫好代碼 + 我的思考
    發表于 06-18 06:16

    如何安全的角度自動駕駛

    安全的角度自動駕駛
    發表于 01-25 06:42

    激光SLAM與視覺SLAM有什么區別?

    在機器人運動控制系統架構中,可分為最底層、中間通信層和決策層三大層面,最底層包含了機器人本身的電機驅動和控制部分,中間通信層是底層部分和決策層的通信通路,而決策層則是實現機器人的定位建圖及導航。在
    發表于 07-05 06:41

    基于SLAM的移動機器人設計

    )Kinect攝像頭  7)激光雷達2、已完成的部分,成果展示  根據Kinect攝像頭,小車能夠自主避障  利用Kinect攝像頭和slam算法,小車能在室內建...
    發表于 11-08 06:17

    時鐘抖動時域分析, 2 部分

    時鐘抖動時域分析, 2 部分
    發表于 10-26 16:10 ?6次下載
    時鐘抖動時域分析,<b class='flag-5'>第</b> <b class='flag-5'>2</b> <b class='flag-5'>部分</b>

    詳細分析SLAM的實現和應用

    大概幾個方面來講一下SLAM的實現和應用:第一個是傳感器的角度,第二個是算法實現的
    的頭像 發表于 09-15 10:26 ?1.3w次閱讀

    編譯原理的角度C語言如何轉換成匯編語言的?

    編譯原理的角度C語言是如何轉換成匯編語言的?
    的頭像 發表于 02-25 15:52 ?2719次閱讀
    <b class='flag-5'>從</b>編譯原理的<b class='flag-5'>角度</b><b class='flag-5'>看</b>C語言如何轉換成匯編語言的?

    激光雷達SLAM算法有哪些?

    一般將使用單線雷達建構二維地圖的SLAM算法,稱為2D Lidar SLAM。大家熟知的2D Lidar
    的頭像 發表于 04-18 10:18 ?1.3w次閱讀
    激光雷達<b class='flag-5'>SLAM</b><b class='flag-5'>算法</b>有哪些?

    JavaScrit數據結構與算法2版)

    JavaScrit數據結構與算法2版)教材下載。
    發表于 06-01 15:35 ?0次下載

    Mouser 的 STEAMy Summer: 2 部分

    Mouser 的 STEAMy Summer: 2 部分
    的頭像 發表于 01-05 09:43 ?681次閱讀
    Mouser 的 STEAMy Summer:<b class='flag-5'>第</b> <b class='flag-5'>2</b> <b class='flag-5'>部分</b>

    有哪些激光雷達SLAM算法

    一般將使用單線雷達建構二維地圖的SLAM算法,稱為2D Lidar SLAM。大家熟知的2D Lidar
    的頭像 發表于 03-27 11:06 ?2285次閱讀

    摩托車怎么就干不過小電驢了?線路板的角度差別

    摩托車怎么就干不過小電驢了?線路板的角度差別
    的頭像 發表于 10-30 16:06 ?603次閱讀

    激光雷達在SLAM算法中的應用綜述

    SLAM算法運行的重要傳感器。基于激光雷達的SLAM算法,對激光雷達SLAM總體框架進行介紹,詳細闡述前端里程計、后端優化、回環檢測、地圖構
    的頭像 發表于 11-12 10:30 ?1040次閱讀
    激光雷達在<b class='flag-5'>SLAM</b><b class='flag-5'>算法</b>中的應用綜述
    主站蜘蛛池模板: 午夜日批| 免费视频爰爱太爽了 | 天天看片天天爽 | 在线观看视频你懂的 | 日日噜噜夜夜狠狠tv视频免费 | 窝窝午夜看片 | 国产一区二区三区不卡观 | 黄视频日本 | 国产成人精品日本 | 国产精品高清一区二区三区 | 99精品偷自拍| 色婷婷丁香 | 黄色小视频免费看 | 伊人网视频在线 | 手机在线看片国产日韩生活片 | 国产精品久久久久久久久kt | 美女天天操 | 人人插人人艹 | 久久伊人男人的天堂网站 | 午夜影院普通用户体验区 | 91伊人久久大香线蕉 | 天天插天天射 | 日本不卡在线视频高清免费 | 亚洲视频黄| 亚洲伦理中文字幕一区 | 黄色免费三级 | 2021国产精品自在拍在线播放 | 天天摸天天碰色综合网 | 亚洲欧美视频一区二区 | 午夜小视频网站 | 精品亚洲国产国拍 | 五月天婷婷免费观看视频在线 | 五月婷婷在线观看视频 | 高颜值露脸极品在线播放 | 天天更新影院 | 亚洲免费网 | 国产小福利 | 亚洲色图综合网站 | 免费的黄色的视频 | 国产三级视频 | 欧美黑粗|