AMCL相關知識

2021-09-11 18:25:50 字數 1008 閱讀 8104

看了很多資料,講amcl用法的很多,原理和概念能說清的很少,大都是一帶而過稀里糊塗。這裡,先把概念區分開來,後面將對原理進行講解。

1,粒子濾波和蒙特卡洛

蒙特卡洛:是一種思想或方法。舉例:乙個矩形裡面有個不規則形狀,怎麼計算不規則形狀的面積?不好算。但我們可以近似。拿一堆豆子,均勻的撒在矩形上,然後統計不規則形狀裡的豆子的個數和剩餘地方的豆子個數。矩形面積知道的呀,所以就通過估計得到了不規則形狀的面積。拿機械人定位來講,它處在地圖中的任何乙個位置都有可能,這種情況我們怎麼表達乙個位置的置信度呢?我們也使用粒子,**的粒子多,就代表機械人在**的可能性高。

粒子濾波:粒子數代表某個東西的可能性高低。通過某種評價方法(評價這個東西的可能性),改變粒子的分布情況。比如在機械人定位中,某個粒子a,我覺得這個粒子在這個座標(比如這個座標就屬於之前說的「這個東西」)的可能性很高,那麼我給他打高分。下次重新安排所有的粒子的位置的時候,就在這個位置附近多安排一些。這樣多來幾輪,粒子就都集中到可能性高的位置去了。

2,重要性取樣

就像轉盤**一樣,原本分數高(我們給它打分)的粒子,它在轉盤上對應的面積就大。原本有100個粒子,那下次我就轉100次,轉到什麼就取個對應的粒子。這樣多重複幾次,仍然是100個粒子,但是分數高的粒子越來越多了,它們代表的東西(比如位姿)幾乎是一樣的。

3,機械人綁架

舉例,機械人突然被抱走,放到了另外乙個地方。類似這種情況。

4,自適應蒙特卡洛

自適應體現在:1解決了機械人綁架問題,它會在發現粒子們的平均分數突然降低了(意味著正確的粒子在某次迭代中被拋棄了)的時候,在全域性再重新的撒一些粒子。

2解決了粒子數固定的問題,因為有時候當機械人定位差不多得到了的時候,比如這些粒子都集中在一塊了,還要維持這麼多的粒子沒必要,這個時候粒子數可以少一點了。

5,kld取樣

就是為了控制上述粒子數冗餘而設計的。比如在柵格地圖中,看粒子佔了多少柵格。佔得多,說明粒子很分散,在每次迭代重取樣的時候,允許粒子數量的上限高一些。占得少,說明粒子都已經集中了,那就將上限設低,取樣到這個數就行了。

原文: 

AMCL原理概述

看了很多資料,講amcl用法的很多,原理和概念能說清的很少,大都是一帶而過稀里糊塗。這裡,先把概念區分開來,後面將對原理進行講解。1,粒子濾波和蒙特卡洛 蒙特卡洛 是一種思想或方法。舉例 乙個矩形裡面有個不規則形狀,怎麼計算不規則形狀的面積?不好算。但我們可以近似。拿一堆豆子,均勻的撒在矩形上,然後...

mysql相關知識 MySQL相關知識

字串拼接 select from tablename where mydata like concat curdate limit 3 這裡concat是字串拼接,concat mys q l mysql 顯示日期不帶時間的函式,如 2015 05 14 curdate 是日期不算時間 2015 0...

AMCL 里程計位置更新分析

比我寫的清楚的文章 里程計模型 odom model diff 常見的機械人運動模型包括 速度計運動模型,里程計運動模型和慣導運動模型。概率運動模型是對機械人運動的一種概率描述。機械人在很短的時間間隔內的運動分解為三個階段 旋轉?1,平移?旋轉?2,如下圖所示 高斯雜訊 高斯隨機數 方差為sigma...