前言
ROS中的插件就是可以动态加载的扩展功能类。
ROS中的pluginlib功能包提供了加载喝卸载plugin的C++库,开发者在使用插件时,不需要考虑plugin类的链接位置,只需要将插件注册到pluginlib中,即可直接动态加载。
一、工作原理
如图所示:
实现一个插件需要如下几个步骤:
- 创建基类,定义统一接口(如果基于现有基类实现插件,跳过该步)
- 创建plugin类,继承基类,实现统一的接口
- 注册插件(使用pluginlib的宏完成注册)
- 编译生成插件的动态链接库(修改CMakefile.txt文件)
- 将插件加入到ROS中(创建喝修改相应xml文件)
二、具体实现
按照上述步骤,下面利用pluginlib实现一个插件。创建名为pluginlib_tutorials的功能包,命令如下:
catkin_create_pkg pluginlib_tutorials roscpp pluginlib
注意,创建时添加