【ROS|navigation|move_base】使用global_planner包自带的A*算法
1、如何使用global_planner包
在launch文件中设置参数
<param name="base_global_planner" value="global_planner/GlobalPlanner"/>
2、如何使用global_planner包自带的A*算法
在配置文件中设置参数,我的是global_planner_params.yaml
GlobalPlanner:
use_dijkstra: false
在launch文件中加载对应的配置文件
<rosparam file="$(find turtlebot3_navigation)/param/global_planner_params.yaml" command="load" />
3、参数配置解析
ROS中,机器人全局路径规划默认使用的是navfn包
move_base的默认参数中可以找到
base_global_planner (`string`, default: "navfn/NavfnROS")
navigation的源代码中还有一个global_planner的包里面已经有了A*,Dijkstra等算法的实现。
navfn的源程序中也有这两个算法的实现,默认根本就没用到global_planner这个文件夹下的源程序。那么为什么有两个用于全局导航的包在ROS里面?它们又是什么关系呢
早期的开发中是用navfn包做导航的并且默认使用Dijkstra做全局路径规划