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


  終於完成了Robotic SLAM 所有的內容了。說實話,課程的內容比較一般,但是作業還是挺有挑戰性的。最后一章的內容是 Location. Location 是 Mapping 的逆過程。在給定map的情況下,需要求取機器人的位姿。

1、Location 的意義

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

  Location 最大的難度來自於測量誤差。里程計的計數誤差,測量與里程計的不統一等。所以我們需要一種算法,能夠較高精度的確定機器人的位姿。

2、Location 的流程

  Location的流程可以總結為以下:1、確定機器人的初始位姿;2、求取傳感器測量結果;3、利用粒子濾波器基於當前位姿與機器人測量結果估計機器人下一步的位姿。

  此處粒子濾波器的作用似乎與卡爾曼濾波器相似,但是粒子濾波器可以有非0的均值(編碼器讀數),可以有非正太分布(你關我怎樣采樣),可以有非線性解(反正是大力出奇跡,什么解不可能?)

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

  

3.粒子濾波器

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

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

       

      

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

  3.針對轉移后的粒子重采樣——根據轉移關系的噪聲,重新采樣一次粒子轉移后的結果。計算並更新配准分數。

  4.計算有效粒子數目,如果小於粒子總數,則重新采樣。如果和粒子總數相等,則回到2.

  

  總而言之,粒子濾波器叫做“多party參政制” 個個都有可能當總統。每個轉移相當於一次大選,而與地圖的配准結果相當於選票。盡管最后我們會選擇一個得票最多的,但是我們也不允許一party獨大(n_effective)。Resampling則是如果某個party的理念確實優秀,那么允許其分身,分身后加上噪聲保證了意見的多樣性。

  所以粒子濾波器總能給出較好的結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM