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>

Wiki: pluginlib/PluginDescriptionFile (last edited 2012-12-14 03:50:00 by MirzaShah)