global planner
在对move_base中的全局规划进行介绍之前,我们先来回顾一下Navigation的框架,可以看出位于红框中的global_planner是move_base节点的一部分,输入是目标位置以及global_costmap的信息,输出是全局的规划路径,作为local_planner的输入。

在ROS的导航中,首先会通过全局路径规划,计算出机器人到目标位置的全局路线。全局路径规划一般是由navfn或global_planner插件实现的。
- navfn
通过Dijkstra最优路径的算法,计算costmap上的最小花费路径,作为机器人的全局路线。在算法上还有A*算法。

- global_planner
根据给定的目标位置进行总体路径的规划;这个package为导航提供了一种快速,内插值的全局规划器, 继承了nav_core包中nav_core::BaseGlobalPlanner接口,该实现相比navfn使用更加灵活。

路径规划算法
路径规划是指的是机器人的最优路径规划问题,即依据某个或某些优化准则(如工作代价最小、行走路径最短、行走时间最短等),在工作空间中找到一个从起始位置到目标位置能避开障碍物的最优路径。
路径规划的方法主要可以分为以下五类,global_planner主要用到的就是第二类基于节点的方法。

Dijkstra算法
迪杰斯特拉(Dijkstra)算法是典型的用来解决最短路径的算法,也是很多教程中的范例,由荷兰计算机科学家狄克斯特拉于1959年提出,用来求得从起始点到其他所有点最短路径。该算法采用了贪心的思想。
下面结合实例来看一下(来源于网络)。

最低0.47元/天 解锁文章
2381

被折叠的 条评论
为什么被折叠?



