导航包Navigation最全完整解析(四): 重要接口之BaseGlobalPlanner
本节解析move_base的全局路径规划器接口: BaseGlobalPlanner.
在前面的分析可以知道, 在move_base中调用全局规划算法时会初始化全局路径规划接口;
这个接口通过nav_core包来传递核心的实现函数如(carrot_planner/global_planner等);
因此在本节中主要采用针对global_planner包来分析全局路径规划的接口函数调用;
其主要调用的函数流程为: move_base–>nav_core::BaseGlobalPlanner–>global_planner::BaseGlobalPlanner()
- global_planner包核心函数
通过move_base调用nav_core::BaseGlobalPlanner接口,而global_planner继承nav_core::BaseGlobalPlanner类, 重载了函数makeplan(), 所以在move_base调用时实际上是使用基类指针指向了继承类对象.
所以,在move_base中首先会初始化一个全局规划器的共享指针,然后将该指针指向全局路径规划算法接口