天天看點

Turtlebot :" where am I? " -——amcl的原理

當我們給turtlebot一張先驗地圖讓它規劃一條從A點(它的目前位置)到B點(地圖上任意點)的路線時, turtlebot是怎麼确定自己的目前位置A點呢 , turtlebot_navigation給我們的答案是 amcl.

amcl stands for adaptive Monte Carlo localization.

mcl(蒙特卡洛定位)法使用的是粒子濾波的方法來進行定位的。而粒子濾波很粗淺的說就是一開始在地圖空間很均勻的撒一把粒子,然後通過擷取機器人的motion來移動粒子,比如機器人向前移動了一米,所有的粒子也就向前移動一米,不管現在這個粒子的位置對不對。使用每個粒子所處位置模拟一個傳感器資訊跟觀察到的傳感器資訊(一般是雷射)作對比,進而賦給每個粒子一個機率。之後根據生成的機率來重新生成粒子,機率越高的生成的機率越大。這樣的疊代之後,所有的粒子會慢慢地收斂到一起,機器人的确切位置也就被推算出來了。

Turtlebot :" where am I? " -——amcl的原理

初始狀态下robot在第一個門,傳感器傳回true有門,于是配置設定更多權重的粒子(particles)在有門的地方,向右走到第二個門和第三個門中間,傳感器傳回false無門,于是配置設定更多的權重給無門的地方,繼續向左走到第二個門,傳感器傳回true有門,繼續配置設定給有門的地方,現在我們可以看到配置設定了更多權重的粒子的地方,就是robot的真實位置。實際情況中,經過多次數的疊代之後,越逼近moving base 的真實位置。

繼續閱讀