概述
前一篇源码分析,让我了解到了costmap_2d包类的具体功能。但costmap2d包的到底整体包含什么地图数据?如何维护地图数据?何时调用各层更新?何时聚合?这些问题还不甚明了。这篇对costmap2d维护的地图数据、更新过程做一个总结。
地图数据结构‘
如中序号对应了地图生成过程的步骤,可能不全,但是已经对地图的数据有了清晰的认识。
地图生成过程
move_base类的构造函数,调用了costmap2d的功能,生成过程如下:
1、初始化costmap2DROS
全局地图调用了
planner_costmap_ros_ = new costmap_2d::Costmap2DROS("global_costmap", tf_);
planner_costmap_ros_→pause();
局部地图调用了
controller_costmap_ros_ = new costmap_2d::Costmap2DROS("local_costmap", tf_);
controller_costmap_ros_->pause();
1.1 初始化layered_costmap
layered_costmap_ = new LayeredCo