官网文档 http://wiki.ros.org/pluginlib
参照官网文档学习使用pluginlib,目前找到的博客都是在一个包内使用pluginlib的,根据官网文档应该是在不同包之间使用的。
首先创建工作空间,然后创建三个包:polygon_interface_package,triangle_package,test_plugin,功能分别是插件接口定义,插件接口实现和插件调用。官网文档给出另一个rectangle_package插件实现,由于和triangle_package类似,本文只实现一个。
1. 创建工作空间
~$ mkdir -p catkin_ws_plugins/src
~$ cd catkin_ws_plugins/src
~/catkin_ws_plugins/src$ catkin_init_workspace
2. 创建polygon_interface_package包,添加polygon.h文件,修改CMakeList.txt文件。
~/catkin_ws_plugins/src$ catkin_create_pkg polygon_interface_package roscpp
添加polygon.h文件后的目录结构
~/catkin_ws_plugins/src/polygon_interface_package$ tree.
├── CMakeLists.txt
├── include
│ └── polygon_interface_package
│ └── polygon.h
├── package.xml
└── src
polygon.h文件
#ifndef POLYGON_INTERFACE_PACKAGE_POLYGON_H
#define POLYGON_INTERFACE_PACKAGE_POLYGON_H
namespace polygon_namespace
{
class Polygon
{
public:
Polygon(){};
virtual ~Polygon(){};
virtual const char* print() = 0;
};
}
#endif
CMakeList.txt修改的地方:去掉