一、AMCL
1>算法原理:
AMCL算法根据订阅到的地图数据配合激光扫描特征,使用粒子滤波获取最佳定位点,该点称为Mp(point on map),它是相对于地图map上的坐标,也就是base_link相对map上的坐标。
odom的原点是机器人启动时刻的位置(试想一下,在同一张地图上,你每次把机器人放的地方都不一样,所以odom的原点会在每次启动作业时都变一次的),而且因为传感器,打滑,空转等因素,会造成odom的数据有累计误差,所以还需要不停的修正odom坐标系在map中的位置。base_link->odom的tf转换信息是每时每刻都在发布的(因为里程计的数据在一直上报),所以它是已知的。
综合以上两点,AMCL 可以根据最佳粒子的位置以及base_link->odom的tf转换信息推算出odom->map的tf转换信息并发布到tf主题上。
m a p − > o d o m = m a p − > b a s e l i n k − b a s e l i n k − > o d o m map->odom = map->bas