Plugin Description File Reference
This page describes the XML format used for plugin description files used by the pluginlib package.
<class_libraries> tag
The class_libraries tag allows listing multiple libraries which, in turn, contain plugins within one plugin description file.
<library> tag
The library tag defines the library in which plugin classes live. A library may contain multiple plugins of varying class types.
Attributes:
- path : The relative path to the library from the main package directory
<class> tag
The class tag describes a class provided by a library.
Attributes:
name : The lookup name of the class. Used by the pluginlib tools as an identifier for the plugin. This field is optional in pluginlib 1.9 and higher (ROS Groovy or higher)
- type : The fully qualified class type.
- base_class_type : The fully qualified type of the base class
- description : A description of the class and what it does.
Examples
A simple plugin description file for a library with one class to export
<library path="lib/libplugin">
<class name="MyPlugin" type="my_namespace::MyPlugin" base_class_type="interface_namespace::PluginInterface">
<description>
A description of MyPlugin
</description>
</class>
</library>A plugin description file for a library with multiple plugins
<library path="lib/libplugin">
<class name="FirstPlugin" type="my_namespace::FirstPlugin" base_class_type="interface_namespace::PluginInterface">
<description>
A description of FirstPlugin
</description>
</class>
<class name="SecondPlugin" type="my_namespace::SecondPlugin" base_class_type="interface_namespace::PluginInterface">
<description>
A description of SecondPlugin
</description>
</class>
</library>A plugin description for multiple libraries with plugins
<class_libraries>
<library path="lib/libplugina">
<class name="MyPluginA" type="my_namespacea::MyPluginA" base_class_type="interface_namespace::PluginInterface">
<description>
A description of MyPluginA
</description>
</class>
</library>
<library path="lib/libpluginb">
<class name="MyPluginB" type="my_namespaceb::MyPluginB" base_class_type="interface_namespace::PluginInterface">
<description>
A description of MyPluginB
</description>
</class>
</library>
</class_libraries>