iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
0
AI & Data

ROS新手挑戰AI&Data組系列 第 12

[ROS#11]Localization

  • 分享至 

  • xImage
  •  

參考資料:
1. cra-ros-pkg/robot_localization
2. ros的navigation之———amcl(localization)應用詳解
3. ROS中AMCL定位代碼解讀之Resampling
4. AMCL原理概述

• MCL(Monte Carlo localization) vs AMCL(adaptive Monte Carlo localization)
AMCL是MCL(蒙特卡洛定位)的一種升級版,使用自適應的KLD方法來更新粒子;
#而MCL使用的是粒子濾波的方法來進行定位的,
舉例:一個矩形裡面有個不規則形狀,怎麼計算不規則形狀的面積?不好算。但我們可以近似。拿一堆豆子,均勻的撒在矩形上,然後統計不規則形狀裡的豆子的個數和剩餘地方的豆子個數。矩形面積知道的呀,所以就通過估計得到了不規則形狀的面積。拿機器人定位來講,它處在地圖中的任何一個位置都有可能,這種情況我們怎麼表達一個位置的置信度呢?我們也使用粒子,哪裡的粒子多,就代表機器人在哪裡的可能性高
#而粒子濾波,
舉例:一開始在地圖空間很均勻的撒一把粒子,然後通過獲取機器人的motion來移動粒子,比如機器人向前移動了一米,所有的粒子也就向前移動一米,不管現在這個粒子的位置對不對。
使用每個粒子所處位置模擬一個傳感器信息跟觀察到的傳感器信息(一般是激光)作對比,從而賦給每個粒子一個概率。
之後根據生成的概率來重新生成粒子,概率越高的生成的概率越大。這樣的迭代之後,所有的粒子會慢慢地收斂到一起,機器人的確切位置也就被推算出來了。

• AMCL(adaptive Monte Carlo localization)原理與應用說明
#有用到的名詞之解釋

  1. 機器人綁架
    舉例,機器人突然被抱走,放到了另外一個地方。
    #不是機器人自己移動
  2. 自適應蒙特卡洛
    自適應體解決了:
    (i)機器人綁架問題,它會在發現粒子們的平均分數突然降低了(意味著正確的粒子在某次迭代中被拋棄了)的時候,在全局再重新的撒一些粒子。
    (ii)粒子數固定的問題,因為有時候當機器人定位差不多得到了的時候,比如這些粒子都集中在一塊了,還要維持這麼多的粒子沒必要,這個時候粒子數可以少一點了。
  3. KLD採樣
    就是為了控制上述粒子數冗餘而設計的。比如在柵格地圖中,看粒子佔了多少柵格。占得多,說明粒子很分散,在每次迭代重採樣的時候,允許粒子數量的上限高一些。占得少,說明粒子都已經集中了,那就將上限設低,採樣到這個數就行了。

#神文推推
ros的navigation之———amcl(localization)应用详解

• Global Localization
RobotsTIAGoTutorialsNavigationLocalization

• Resampling(ROS定位包中關於粒子濾波器重採樣的代碼)
所謂重採樣就是粒子濾波器在測量更新後粒子的權重都發生了變化,而此時為了定位機器人的具體位置,需要將權重小的粒子去除,而保留大的粒子。
但是這一篩選步驟不能單純的刪除權重小的粒子,因為隨著機器人的移動,粒子集的聚合程度增高,對當前聚合位置的信度就越高,而此時如果發生機器人綁架問題或者粒子集聚集在一個錯誤的位置(比如在一個相對對稱的環境下),粒子集的信度會漸漸降低,因此粒子需要重新自我修正聚集的位置。
但是在普通的篩選模式下粒子集只會朝著錯誤的方向越走越遠,而不會自我修正。為了解決這一問題,ROS的代碼中引入了粒子注入,以及KLD-Resampling
Adapting the Sample Size in Particle Filters Through KLD-Sampling

• AMCL實作演練

  1. AMCL是已經用gmapping做好圖,或是別人幫我們做好的圖,讓機器人或APP拿來定位用。
    來自 https://makerpro.cc/2018/11/the-world-of-ros-to-practice-of-turtlesim/

  2. Big picture:
    gmapping是同時建圖 & 定位機器人,並且可以存圖
    amcl是當已經有地圖,定位機器人用,通常用在沒有跑slam時
    move_base是當已經有地圖、已經定位,進行導航用,給地圖、機器人位置、目標點
    來自 https://shannon112.blogspot.com/2018/03/ros-11-turtlebotgazebo-gmapping-amcl.html

  3. ros-planning/navigation


上一篇
[ROS#10]Hector SLAM教學
下一篇
[ROS#12]TF 座標轉換
系列文
ROS新手挑戰AI&Data組30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言