一.准备工作,主要是建文件夹功能包配置等。
mkdir -p ~/mycar_test/src
$ cd mycar_test/src/
catkin_init_workspace
catkin_create_pkg my_aster_global_planner std_msgs roscpp rospy nav_core
将自己的路径规划.cpp和.h文件放进src文件
更改src文件夹中CMakeLists的配置,注释文件以及该名称。如下 add_library(global_planner_lib src/path_planner/global_planner/global_planner.cpp)
返回主文件夹编译
二.编写插件
在自己编写的路径规划文件夹中添加global_planner_plugin.xml文件(名字为文件夹名称)内容如下
<library path="lib/libglobal_planner_lib">
<class name="global_planner/GlobalPlanner" type="global_planner::GlobalPlanner" base_class_type="nav_core::BaseGlobalPlanner">
<description>This is a global planner plugin by iroboapp project.</description>
</class>
</library>
黄色为更改的内容,替换为自己的.cpp文件中内容,就是注册成的BabaseGlobalPlanne插件的名字
将红色内容加到package.xml中,黄色为修改为自己文件夹名称
<nav_core plugin="${prefix}/global_planner_plugin.xml" />
三.在自己的单行工具包中或者是测试工具包中找到nav的部分,找到move_base.launch.xml文件
<param name="base_global_planner" value="global_planner/GlobalPlanner"/>
将黄色内容修改为自己的.cpp文件中定义的全局规划期名称名称就可以以了。
文章引用roswiki ,链接http://wiki.ros.org/navigation/Tutorials/Writing%20A%20Global%20Path%20Planner%20As%20Plugin%20in%20ROS/
wiki上写的很全,但是我感觉有点乱,仅仅是给自己写明白了,以后直接按照步骤弄了。