我正在ROS中使用amcl包来本地化移动机器人。我对min_particlesmax_particles进行了多次更改,然后用odomotry计算了输出差异,以评估这些参数。下表显示了结果;如您所见,输出没有显着变化,并且如果忽略表的第一行,则输出差异很小。
这是地图上的粒子过滤器输出:

#1 楼

一旦有足够的粒子来解析位置,添加更多粒子的效果就会缩小为零。您可能会看到粒子过滤器可以达到的最佳结果。

看起来,用于模拟的最小的足够数量的粒子在120到1200之间,我的猜测是,如果绘制Odom与max_particles的差异,您会看到一条曲线在max_particles = 1处接近垂直,在max_particles = 120处超过172处,并在max_particles达到1200处减少到149水平处。

#2 楼

目前尚不清楚您的问题是什么,但我想您想问一个问题:为什么输出不会随一定数量的粒子之上的粒子数而变化?

允许amcl使用更多样本,可以减少由于粒子过滤器使用蒙特卡洛采样近似概率分布这一事实而导致的错误(或不准确度)。在一定数量的样本之上,来自蒙特卡洛近似的这些误差是如此之小,以至于与其他不确定性来源(例如测量,系统或里程表的不确定性。

以我的经验,成千上万的粒子远远超出了2D局部定位​​的需要(当机器人对已经存在的位置进行粗略估算时)。您可能只需要那么多粒子来进行全局定位,即当机器人一无所知时(例如在初始化期间)。