amcl
蒙特卡罗方法(Monte Carlo method)
基本思想——当所要求解的问题是某种事件出现的概率,或者是某个随机变量 的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或 者这个随机变数的平均值,并用它们作为问题的解。
粒子滤波:初始化、状态转移、计算权重、重采样
假设这是我们的飞机,我们有以下几个可 得到的信息:
• 我们可以测量其相对于海面的海拔高度
• 我们可以测量其到地面的距离
• 我们有地图但是我们不知道我们在地图上的位置,现在我们使用粒子滤波去估算飞机的位置。
1)初始化
产生200个位置假设。(采样)
黑色的点代表假设的位置,随机分布我们叫它们为粒子。
在这个时刻可得到的信息有:
• 已经测量了飞机到地面的距离(有一些不确定性)
• 我们有地图
• 我们知道我们现在飞得多高(一维问题)
2)计算权重
依据它的海拔高度和到地面的距离,记录发现粒子的可能性,对于十分可能得假设,对这个粒子附一个较大的权重。
所有粒子都进行相同的评估:
可能性大的分配一个较大的权重,可能性小的分配较小的权重。
(图上用黑点大小代表权重)
3)重采样
抛弃旧粒子生成200个新粒子,生成的200个新粒子集中出现在权重大的旧粒子位置上,并且有大量的新粒子叠加在同一个位置。
另外,因为所有的新粒子都是重采样得到,它们现在有相同的权重。
4)状态转移
飞机继续前进,粒子也依据运动模型一起移动。
我们根据传感器知道飞机的方向和速度范围(波动值),用于粒子的移动。
重复上诉行为,当权重较为集中时,作为问题的解。
自适应蒙特卡洛定位
解决了两个问题:
1.粒子数固定的问题,当机器人定位基本完成的时候,比如这些粒子都集中在一块了,这个时候重采样的粒子数可以少一点。
2.机器人绑架的问题,当粒子的平均分数突然降低(意味着正确的粒子在某次迭代中被抛弃了),在全局再重新的撒一些粒子。
机器人定位三大问题:全局定位、位姿跟踪、绑架劫持
“绑架劫持”:是机器人在已知自身位姿的情况下,得到了一个错误的位姿信息或者外界将其放到另外一个位姿,而里程计信息给出了错误的信息。
AMCL功能包