機器人學 —— 機器人感知(Location)

  終於完成了Robotic SLAM 全部的內容了。說實話,課程的內容比較通常,可是做業仍是挺有挑戰性的。最後一章的內容是 Location. Location 是 Mapping 的逆過程。在給定map的狀況下,須要求取機器人的位姿。算法

一、Location 的意義

  在機器人導航任務中,location 能夠告訴機器人目前位置,以方便閉環控制或者軌跡規劃。通常狀況下,Location 能夠經過GPS,WIFI 等方式完成。GPS的定位精度在3.5米左右,WIFI則大於10米。對於機器人、無人汽車而言,這樣的精度顯然是不可接受的。激光雷達在10m的距離能夠達到cm的精度,雙目視覺在4m能夠達到10cm的精度,與GPS相比有必定優點,此外,這種非在線的定位方式能夠在室內使用。app

  Location 最大的難度來自於測量偏差。里程計的計數偏差,測量與里程計的不統一等。因此咱們須要一種算法,可以較高精度的肯定機器人的位姿。編碼

二、Location 的流程

  Location的流程能夠總結爲如下:一、肯定機器人的初始位姿;二、求取傳感器測量結果;三、利用粒子濾波器基於當前位姿與機器人測量結果估計機器人下一步的位姿。blog

  此處粒子濾波器的做用彷佛與卡爾曼濾波器類似,可是粒子濾波器能夠有非0的均值(編碼器讀數),能夠有非正太分佈(你關我怎樣採樣),能夠有非線性解(反正是大力出奇跡,什麼解不可能?)ip

  機器人初始位姿肯定略過。傳感器測量結果的獲取又叫作地圖的 Registration. 這是一個咱們很是熟悉的詞 —— 配準。配準的做用是將測量結果與地圖結果相匹配。匹配所使用的方式是機率圖的 factor product. 對於給定位姿,若是測量結果與實際地圖匹配成功則給正分,不然給負分。至於給多少正分,多少負分,須要進行 tuning....這個 tuning 也是做業的核心。tuning 的關鍵是必定要對測量結果進行可視化,若是第一幀都匹配不上,那後面必跑飛。若是第一幀匹配上了,那麼後面纔有調的可能性。pip

  

3.粒子濾波器

  基於粒子濾波器的機器人位姿估計是一個大模塊,其pipeline以下:io

  1.針對初始位姿,給定一堆粒子,每一個粒子就是一個位姿,粒子能夠是均勻分佈的,也能夠是正太分佈的,也能夠是任意你喜歡的分佈。針對每一個粒子算 Registration 的分數可視化

       

      

  2.利用已知的轉移關係——編碼器,慣性傳感器,whatever,給出這堆粒子下一步的位姿。注意,粒子是帶着它的分數轉移的。map

  3.針對轉移後的粒子重採樣——根據轉移關係的噪聲,從新採樣一次粒子轉移後的結果。計算並更新配準分數。im

  4.計算有效粒子數目,若是小於粒子總數,則從新採樣。若是和粒子總數相等,則回到2.

  

  總而言之,粒子濾波器叫作「多party參政制」 個個都有可能當總統。每一個轉移至關於一次大選,而與地圖的配準結果至關於選票。儘管最後咱們會選擇一個得票最多的,可是咱們也不容許一party獨大(n_effective)。Resampling則是若是某個party的理念確實優秀,那麼容許其分身,分身後加上噪聲保證了意見的多樣性。

  因此粒子濾波器總能給出較好的結果。

相關文章
相關標籤/搜索