以下步骤都是主要部分所在,大家可以去B站看具体流程
第一部分
1.1:创建功能包 以及导入相关依赖
catkin_create_pkg relaxed_astar nav_core roscpp rospy std_msgs
1.2:在新建的功能包src里创建cpp头文件和cpp文件
hzh@hzh:~/UGV_ws/src$ cd relaxed_astar/src
hzh@hzh:~/UGV_ws/src/relaxed_astar/src$ touch RAstar_ros.h
hzh@hzh:~/UGV_ws/src/relaxed_astar/src$ touch RAstar_ros.cpp
接下来就是编译啦:
//注意Cmake文件
add_library(RAstar_ros src/RAstar_ros.cpp)
第二部分:
我们需要注册我们自己的插件,主要就是新建一个xml文件,和在功能包下面原有的xml文件注册
新建一个xml文件主要内容:<library path="lib/libRAstar_ros">是在devel/lib下面新生成的.so文件名。
<library path="lib/libRAstar_ros">
<class name="RAstar_planner/RAstarPlannerROS" type="RAstar_planner::RAstarPlannerROS" base_class_type="nav_core::BaseGlobalPlanner">
<description>This is RA* global planner plugin by iroboapp project.</description>
</class>
</library>
在功能包原有的xml文件最下面注册:
<nav_core plugin="${prefix}/RAstar_ros_planner_plugin.xml" />红色部分就是上一步我们新建的xml文件名。
<export>
<nav_core plugin="${prefix}/RAstar_ros_planner_plugin.xml" />
</export>