1. 程式人生 > >SLAM for Dummies SLAM初學者教程 中文翻譯 1到4章

SLAM for Dummies SLAM初學者教程 中文翻譯 1到4章

SLAM for Dummies  SLAM初學者教程
A Tutorial Approach to Simultaneous Localization and Mapping  一本關於實時定位及繪圖(SLAM)的入門指導教程

目錄

1. 目錄

2. 簡介

3. 關於SLAM

4. 硬體

    -機器人

    -距離量測裝置

5. SLAM處理過程

6. 雷達資料

7. 里程計資料

8. 地標

9. 地標提取

  SPIKE地標

  RANSAC

  多種策略

10. 資料結合

11. EKF擴充套件科爾曼濾波

   過程簡介

   矩陣(系統狀態:X,協方差矩陣:P,卡爾曼增益:K,測量模型的雅克比矩陣:H,預測模型的雅克比矩陣:A,SLAM特殊雅克比矩陣:Jxr和Jz,處理過程噪聲:Q和W,測量噪聲:R和V)

   第一步:使用里程計資料更新當前狀態

   第二步:通過重觀測地標更新狀態

   第三步:新增新的地標到當然狀態

12. 最終評語

13. 參考

14. 附錄A:座標轉換

15. 附錄B:SICK LMS 200 介面程式碼

16. 附錄C:ER1 介面程式碼

17. 附錄D:地標提取程式碼

2. 簡介

本文件的目的是為了簡要介紹移動機器人的SLAM。讀了本文章你應該能夠實施SLAM了。SLAM可以通過許多方式得到實施。有很多的硬體可供選擇。SLAM更像是一個概念而非一個單獨的演算法。SLAM涉及很多步驟,而這些步驟又可以使用不同的演算法得到實施。在大多數情況下我們針對各個步驟各自只解釋一個方法,但隱含地讀者可以通過更多的閱讀得到還有其他可能的方法來實現它們。

寫這篇文章的目的是幫助我們自己理解它。一個人能夠通過講解更好地理解這個知識。而且當前的SLAM文章大都太理論化而且大多數只集中在SLAM的各個小領域,不夠總結性。因此,本文的目的便是實用而且集中在一個小的而且是基本的SLAM演算法上,從而可以作為一個出發點更好地理解SLAM這個概念。對於在SLAM方面有一些背景知識的人來說,我們這裡提供了一個完整基於EKF(擴充套件卡爾曼濾波器)演算法的解決方案。當然我們並不能保證這個解決方案完美,我們只是說能夠覆蓋所有所需要的基本步驟,從而使實施能夠啟動並且執行。另一方面需要注意的是SLAM還沒有被完全解決,在該領域還有很多研究在進行。

為了更容易實現所有的程式碼均提供了下載,所以只需要下載下來,編譯,安裝到硬體上(SICK牌雷達掃描器,ER1牌機器人),然後執行程式;即插即用。我們使用了Microsoft Visual Studio C#語言編寫的程式碼,在.net framework v.1.1下編譯的。大部分程式碼都是非常直觀的,幾乎可以當成虛擬碼閱讀,所以轉換成其他的語言或平臺應該來說是非常容易的。

3. 關於SLAM

術語SLAM是Simultaneous Localization And Mapping的縮略詞。它是關於解決使用移動機器人建立一個未知環境的地圖,同時使用該地圖在該環境中導航。

SLAM包括多個組成部分;地標提取,資料融合,狀態估計,狀態更新,和地標更新。每個小部分都有多種方法來解決。我們將展示各個部分的例項。這也意味著某些部分是可以使用新方法替代它們的。作為一個例項我們將展示兩種不同的方法來解決地標提取問題,並對不同的方法進行評論。觀點就是你能夠使用我們的方法並且使用你針對這些演算法自己的新奇方法擴充套件它。我們決定集中精力在一個室內環境移動機器人上。你可以選擇改變這些演算法以使得它可以用在不同的環境中。

SLAM可以使用在2D和3D運動中。我們這裡只考慮2D運動。

 如果讀者已經熟悉了SLAM的話這將是有用的。有很多好的簡介比如參考[6][4]。知道一點EKF演算法也很有幫助。有很多介紹比如參考[3][5]。有一點背景知識總是有幫助的,因為這會讓你更容易地理解本教程,但是並不嚴格要求你去理解這些。

4. 硬體

 機器人的硬體是非常重要的。要做SLAM需要一個移動機器人和一個距離測量器。我們這裡使用的移動機器人是滾輪室內機器人。該文件集中主要在SLAM的軟體使用,並不探究機器人複雜的運動模型(比如機器人是如何運動的)比如人型機器人,自動水下裝置,無人機,奇怪的滾輪構造機器人等。

我們這裡介紹一些常用的用於移動機器人SLAM的基本的測量裝置。

機器人

需要考慮的重要的引數有易用、可量距和價格適中。

可量距性決定了機器人能否通過滾輪的轉動很好地估計它的自身位置。機器人不應該有超過2cm/米、2度/45度的誤差。典型的機器人驅動器允許機器人報告它的笛卡爾座標系統下的(x,y)位置,並且報告機器人當前的軸承/航向。

當然可以從頭開始建機器人。但是這將會是很耗時的,但也是一個學習的過程。但是很可以買一個現成的機器人了,像Real World Interface或者像Evolution Robotics ER1 robot。RW1並不在各處售賣,但是通常在世界各地的許多計算機實驗室中可以見到。但RW1機器人有眾所周知的測距差的毛病。這增加了預測當前位置的困難,讓SLAM更加難做。這裡我們使用了ER1。這個又小又便宜。它作科研使用只需要200美元,做私人使用需要300美元。它帶有一個攝像頭和一個機器人控制系統。我們已經在附錄以及網站上提供了非常基本的驅動器。

目前使用的測距裝置通常是鐳射掃描器。它們非常精確、高效,並且輸出不需要太多的計算。缺點是,它們也非常昂貴,一個SICK的掃描器需要花費5000美元。鐳射掃描器遇到一些問題包括玻璃環境下,它們的資料輸出是非常的糟糕的。鐳射掃描器也不能在水下使用,因為水會破壞光線,而且範圍會大大減少。

其次是聲納的選擇。幾年前,聲納被廣泛使用。它們比鐳射掃描器便宜。與鐳射掃描器相比,他們的測量結果不是很好,而且他們的讀數往往很差。在鐳射掃描器中,只有一條測量直線,寬度只有0.25度,聲納很容易將聲波束寬度提高到30度。但在水下,它們是最好的選擇,就像海豚航行的方式一樣。通常使用的型別是偏振聲納。它最初是用來測量拍立得相機拍照時的距離。聲納已成功地應用於各種測距需求。

第三個選擇是使用視覺。傳統上,使用視覺對計算的要求是非常高的,而且由於光線的變化也容易出錯。如果一個房間沒有燈光,視覺系統肯定無法工作。然而,在最近幾年,這一領域有了一些有趣的進展。通常情況下,系統會使用一個立體照片或漫反射系統來測量距離。使用視覺與人類看待世界的方式相似,因此可能比鐳射或聲納更具有直覺吸引力。此外,與鐳射和聲納掃描相比,照片中包含的資訊要多得多。這曾經是瓶頸,因為所有這些資訊資料都需要處理,但是隨著演算法和計算能力的進步,這已經不再是問題了。基於視覺的距離測量已成功應用。

我們選擇使用來自SICK的鐳射測距儀。它的用途非常廣泛,對眼睛無害,在SLAM專案中有很好的效能。測量誤差是+- 50mm,這看起來很大,但在實踐中誤差會更小。最新的SICK鐳射掃描器測量誤差可以做到+- 5毫米。

相關推薦

SLAM for Dummies SLAM初學者教程 中文翻譯 1到4

SLAM for Dummies  SLAM初學者教程A Tutorial Approach to Simultaneous Localization and Mapping  一本關於實時定位及繪圖(SLAM)的入門指導教程目錄 1. 目錄 2. 簡介 3. 關於SLAM 4. 硬體     -機器人  

SLAM FOR DUMMIES 第5-8 中文翻譯

5,SLAM的處理過程 SLAM過程包括許多步驟,該過程的目標是使用環境更新機器人的位置。由於機器人的里程計通常是存在誤差的,我們不能直接依賴於里程計。我們可以用鐳射掃描環境來校正機器人的位置,這是通過從環境中提取特徵並不斷觀察機器人移動來實現的。EKF(擴充套件卡爾曼濾波器)是SLAM過程的核心。EKF負責

Superset 官方入門教程中文翻譯

本文翻譯自 Superset 的官方文件:Toturial - Creating your first dashboard 最新版本的 Superset 介面與功能上與文件中提到的會有些許出入,以實際的為主。本文僅作翻譯 入門教程-建立你的第一個看板 本教程的目標使用者是那些想要在 Superset 中建

React初學者教程(說明文件)--中文翻譯

譯者序言:筆者作為一個React愛好者(四級未過),精心審譯,難免有錯,望海納! React初學者教程【react-0.13.0】 下載 文章摘要:本文只是對於初學者關於React的簡單講解,如需更深學習,請獲取更過資源學習! 譯文 react是一個

國外Fusion特效合成核心技術訓練視訊教程 中文字幕翻譯 LD055

《國外Fusion特效合成核心技術訓練視訊教程》中文字幕翻譯視訊大小:1.72 GB(含工程原始檔) https://pan.baidu.com/s/1p4cPuo_t70Eh0D_dzfJq2Q 視訊格式:MP4 視訊解析度:1280*688 語言字幕:英文+中文字幕 視訊

Artificial Intelligence for Robotics-SLAM

練習:Omega and Xi # ----------- # User Instructions # # Write a function, doit, that takes as its input an # initial robot position, move1, and move2.

artificial intelligence for robot -SLAM-練習23

# ------------ # User Instructions # # In this problem you will implement SLAM in a 2 dimensional # world. Please define a function, slam, which take

Method for Discovering Network Topology中文翻譯【Z-Stack Home 1.2.0開發文件】

1.Purpose 本文描述了在任何給定的網路測定網路技術的方法,使用Z-Stack的 ZDO(Zigbee Device Object)層的API。在繼續之前請先閱讀ZStack Developer’s Guide和ZStack API文件。 2.Method 使用ZDP_IE

Deep learning with Theano 官方中文教程翻譯)(四)—— 卷積神經網路(CNN)

供大家相互交流和學習,本人水平有限,若有各種大小錯誤,還請巨牛大牛小牛微牛們立馬拍磚,這樣才能共同進步!若引用譯文請註明出處http://www.cnblogs.com/charleshuang/。 文章中的程式碼截圖不是很清晰,可以去上面的原文網址去檢視。 1、動機    卷積神經網路(CNN

Deep learning with Theano 官方中文教程翻譯)(三)——多層感知機(MLP)

供大家相互交流和學習,本人水平有限,若有各種大小錯誤,還請巨牛大牛小牛微牛們立馬拍磚,這樣才能共同進步!若引用譯文請註明出處http://www.cnblogs.com/charleshuang/。 下面。http://deeplearning.net/tutorial/mlp.html#mlp  的中

A Practical Model for Subsurface Light Transport 中文翻譯

A Practical Model for Subsurface Light Transport 一個次表面光傳輸的實用模型 Henrik Wann Jensen Stephen R. Marschner Marc Levoy Pat Hanrahan 斯坦福大學 注:這裡

Theano中文翻譯教程(一). 基礎騙之 Baby Steps

初步-代數 兩個數求和 讓我們來開始學習Theano。為了對我們所用的工具有一個直觀的感受,我們首先來做一個簡單的函式:兩個數的求和。下面就是函式的定義方法: >>> import numpy >>> import theano.t

Theano中文翻譯教程(二). 基礎騙之 More Examples

>>> s2 = (1 + T.tanh(x / 2)) / 2 >>> logistic2 = theano.function([x], s2) >>> logistic2([[0, 1], [-1, -2]]) array([[ 0.5 ,

Visual Studio for Mac離線安裝教程

結果 style 網盤 下載 win 漂亮 官網 ges nbsp Visual Studio for Mac離線安裝教程 可以在線安裝,也可以離線安裝(本次安裝博主使用離線,在線安裝失敗了) 於是選擇離線安裝………&h

Google Tango初學者教程

clip star pps data exce 技術 rfi 嘗試 iat Getting Started with the Tango Java API In this tutorial, we‘ll go through setting up your bu

Android Studio 2.0 正式版公布啦 (首次中文翻譯

2.0 play user attribute ast 調試 iou osi watermark Android Studio 2.0 公布了,添加了一些新特性: 1. 更加完好的 Instant Run 2. 更快的 A

【轉】關於HTTP中文翻譯的討論

esp 企業應用 郵件 上架 網絡 問號 相對 領導 ie6 http://www.ituring.com.cn/article/1817 討論參與者共16位: 圖靈謝工 楊博 陳睿傑 賈洪峰 李錕 丁雪豐 郭義 梁濤 吳璽喆 鄧聰 胡金埔 臧秀濤 張伸

Python 標準庫 BaseHTTPServer 中文翻譯

數字 del path 日期和時間 第一個 sockets 輸入流 Language 結構 Python 標準庫 BaseHTTPServer 中文翻譯。 註意: BaseHTTPServer模塊在Python3中已被合並到http.serv

Bioconductor(Bioconductor for Genomic Data Science教程

mic arc nbsp nba for hub 教程 enc 文件 Bioconductor for Genomic Data Science ftp://ftp.ncbi.nlm.nih.gov/genomes/archive/old_genbank/Bacteri

RabbitMQ消息隊列(本人親自中文翻譯

col 學習 解釋 ont color font 英文解釋 中文註釋 spa 最近幾天會盡快把RabbitMQ學習完畢,在這之後會把消息隊列的英文註釋全部手打翻譯成純中文註釋,讀者就不用自己再去讀英文解釋了!RabbitMQ消息隊列(本人親自中文翻譯)