看了很多博客,都说move_base中指定使用哪个包的那种算法是在 base_global_planner (string, default: "navfn/NavfnROS"),然后我就用grep -rn “base_global_planner (string,” 搜索导航包希望能找到了匹配文件,找的我都怀疑我下载了错误的导航包,但是从官网下载的应该不会错,于是我自己看了源代码,发现其实根本就不是上面那个用法,不知道别人从哪里看到这句话的,反正我是看不到,正确的指定路径规划算法的方法应该如下截图:
1、move_base中默认是调用的navfn这个包中的算法,
2、而navfn包中含有Dijkstra和Astar两种算法。
3、navfn这个包中src下有navfn.cpp和navfn_ros.cpp两个重要cpp文件。
其中有两个重要函数:初始化函数和makeplan函数,都是在navfn_ros.cpp中定义,两个重要的路径规划算法具体实现是在navfn.cpp中,所以是从:navfn_ros.cpp中调用navfn.pp中的方法。