昨天看了ros下的plugin教程,今天整理一下,教程网址如下:http://wiki.ros.org/pluginlib/Tutorials/Writing%20and%20Using%20a%20Simple%20Plugin
所谓插件plugin个人理解就是把一个写好的类按照ros下标准格式封装一下,然后就可以直接按照ros下的标准格式进行调用。这样方便移植和分享给其他人用,相当于一个动态链接库。
1、catkin_ws/src/pluginlib_tutorials_/include/pluginlib_tutorials_/polygon_base.h建立基类
#ifndef PLUGINLIB_TUTORIALS__POLYGON_BASE_H_
#define PLUGINLIB_TUTORIALS__POLYGON_BASE_H_
namespace polygon_base
{
class RegularPolygon
{
public:
virtual void initialize(double side_length) = 0;
virtual double area() = 0;
virtual ~RegularPolygon(){}
protected:
RegularPolygon(){}
};
};
#endif
上面的代码应该非常自我解释...我们正在创建一个名为RegularPolygon的抽象类。 有一件事要注意的是初始化方法的存在。 使用pluginlib,类不需要参数的构造函数,所以如果需要任何参数,我们使用initialize方法初始化对象。RegularPolygon是一个基类,同时定义了几种纯虚函数,作为一个基类的模板,具体的实现在继承类里面进行实体化。
2、 include/pluginlib_tutorials_/polygon_plugins.h建立继承类
#ifndef PLUGINLIB_TUTORIALS__POLYGON_PLUGINS_H_
#define PLUGINLIB_TUTORIALS__POLYGON_PLUGINS_H_
#include <pluginlib_tutorials_/polygon_base.h>