http://www.guyuehome.com/920
http://blog.youkuaiyun.com/sunbibei/article/details/52958724
http://blog.youkuaiyun.com/x_r_su/article/details/53117572
cd ~/catkin_ws
cd src
catkin_create_pkg pluginlib_tutorials roscpp pluginlib
cd pluginlib_tutorials
cd include
gedit polygon_base.h
一、创建基类
首先我们来创建一个polygon的基类(polygon_base.h),定义了一些简单的接口,需要注意的是initialize()这个接口的作用。
#ifndef PLUGINLIB_TUTORIALS_POLYGON_BASE_H_
#define PLUGINLIB_TUTORIALS_POLYGON_BASE_H_
namespace polygon_base
{
class RegularPolygon
{
public:
//pluginlib要求构造函数不能带有参数,所以定义initialize来完成需要初始化的工作
virtual void initialize(double side_length) = 0;
//计算面积的接口函数
virtual double area() = 0;
virtual ~RegularPolygon(){}
protected:
RegularPolygon(){}
};
};
#endif
二、创建plugin类
接下来我们来创建rectangle_plugin和triangle_plugin类(polygon_plugins.h),实现基类的接口,也可以添加plugin自己需要的接口。
rosrun pluginlib_tutorials polygon_loader