CRAM Belief State Plugins

Shipped plugins

The belief state software is mostly plugin driven. Here is a list of plugins available for the system that are part of the core release:

Communication Plugins

These plugins open up the belief state system to connections from outside, making interaction with other entities possible.

  • ros: Opens up the connection to the ROS robot middleware. It is the basic plugin for most other functionalities that rely on communication through ROS.

Management Plugins

These plugins manage the background coordination in the belief state system, such as starting the system properly, and holding collected data.

  • supervisor: Manages the start and the end of experiments, sending start messages to all other plugins upon complete system startup, and creating experiment directories according to the current experiment index (all automatic).
  • symboliclog: Collects and manages hierarchical context data sent by the CRAM system (or other entities contributing to the log). Exporter plugins request and use this plugin's information when extracting their own formats.

Helper Plugins

These plugins themselves don't have a closed function, but are used as helper functionalities for other plugins.

  • imagecapturer: When sending the belief state system the command to include a snapshot of a ROS-enabled (connected) camera topic, this plugin acquires the snapshot and sends internal events to include it into the symbolic log.

Exporter Plugins

These plugins manage the export of collected data in various formats.

  • owlexporter: Exports the symbolic log into a well-formed XML document following the OWL syntax, readily formatted to be imported into KnowRob. This plugin can be fed experiment-related, semantic data for logging using a semantics descriptor file.
  • dotexporter: Exports the symbolic log into a DOT formatted file to be used with the dot tool framework. This can be used to generate PDFs of your symbolic plan execution graph using the command 'dot -Tpdf > experiment.pdf' .
  • experiment-context: Exports the metadata of the experiment set during said experiment. Currently, this plugin can hold information about the experiment name, the robot used within it, the person conducting the experiment, a description of how well the experiment went, and the absolute start/end times of the experiment. When exporting the data, it creates a metadata.xml file in the experiment directory, which holds said information.

Experimental Plugins

These plugins are strongly work-in-progress and most probably not useable for a broad audience at the moment. Feel free to experiment with them, but no support is given. By default, they count as development plugins.

  • interactive: Allows the dynamic allocation, management, and feedback acquisition of interactive markers in rviz. From CRAM side, the shape, dimensions, pose, and right click menus for interactive objects can be changed on demand. The results of the interaction in rviz (e.g. clicks on the menu entries) are published onto a ROS topic by the belief state plugin.

Excluded Plugins

These plugins are not part of the core release, but work fine with the system.

  • knowrob: This plugin allows to forward symbolic events directly into a running KnowRob instance, making live reasoning possible. It is not included in the main system since it must be built as a rosbuild package (due to dependency on json_prolog). The default config.cfg file includes an example line for loading this plugin when installed. You can find it here.