自适应蒙特卡罗(amcl )自适应定位,a也可以理解为augmented,是机器人二维移动过程中的概率定位系统,利用粒子滤波对已知地图中的机器人姿态进行定位如果不能准确定位机器人的当前位置,根据错误的起点到后来计划的目的地的路径也一定是错误的,所以机器人的定位非常重要。
粒子滤波和蒙特卡洛
蒙特卡洛是一种思想或方法。 例如,一个长方形中有不规则的形状。 不规则形状的面积怎么计算? 很难计算。 但是,我们可以近似。 取很多豆子,均匀地撒在矩形上,数不规则形状的豆子个数和剩下地方的豆子个数。 你知道面积吧。 所以,通过估计得到了不规则形状的面积。 从机器人的定位来说,在地图的任何位置都有可能。 在这种情况下,如何表达位置的可靠性呢? 我们也使用粒子。哪里的粒子多表示机器人很可能在哪里。
粒子滤波:粒子数表示某种东西的可能性的高度。 根据某种评价方法(评价的可能性),改变粒子的分布情况。 例如,在机器人的定位中,某个粒子a认为这个粒子很可能在这个坐标上(例如这个坐标属于之前说的“这个东西”),给你打高分。 下次重新定位所有粒子的位置时,请在这个位置附近放置更多。 这样来了好几次,粒子就会去都集中到可能性高的位置。
自适应蒙特卡洛
适应,1解决了机器人绑架问题,当发现粒子们的平均分数突然下降(意味着正确的粒子在某次迭代中被抛弃)时,在全局再重新的撒一些粒子
2解决了粒子数固定的问题。 因为当机器人的位置几乎得到的时候,例如这些粒子聚集在一起,不需要维持这么多粒子。 这时变成了粒子数可以少一点。
KLD采样
是为了减少上述粒子数的冗馀性而设计的。 例如在网格地图中,看粒子占了多少网格。 占多数表明粒子是分散的,每次重复采样,允许粒子数的上限都很高。 很少也就是说粒子聚集在一起,所以降低上限,采样到这个数量就可以了。
测距仪似然域)。
主要思想是首先将传感器扫描的终点映射到地图的全局坐标空间。 假设三个噪声和不确定性的来源
1 .测量噪声。 测量过程引起的噪声使用高斯进行模型化。 在x-y空间中,它涉及寻找地图上最近的障碍物。
2 .测量失败,
3 .无法解释的随机测量
将障碍物检测的似然描述为全局x-y坐标的函数,称为似然域。
有三种可用于配置AMCL节点、全局过滤器、激光模式和odometery模型的ROS参数。
变换:
由于ACL将输入的激光扫描数据变换为里程表结果(odom_frame_id ),因此必须存在从激光向里程表的tf树变换。
简言之,2D概率定位系统输入激光雷达数据、里程表数据,输出机器人在地图中的姿态。 它采用了自适应蒙特卡罗定位方法,该方法是在已知地图上采用粒子滤波方法获得姿态。
MCL算法与AMCl算法的区别AMCl算法增加了短期和长期指数滤波衰减率slow,fast,换言之MCL中slow,fast为0,AMCl中非0。
四个参数的含义
3 ) xt表示m个粒子的集合,第5行利用运动模型从旧粒子中采样获取新姿态,第6行根据测量模型设定重要权重。
4 ) AMCL最重要的地方是随机抽样概率
)5) motion_model使用的是《概率机器人》这本书第五章中的sample_motion_model_velociy