This is an old revision of the document!


Belief State Logging

In order to create extensive logs of CRAM plan executions, a software package for symbolic logging was created. It records data based on symbolic contexts started and ended by external entities (such as CRAM).

Context-driven, synchronous log generation

The logs generated using the belief state log mechanism are represented by a tree of contexts and subcontexts. Each context can be annotated by additional data. Exemplary context annotation can take a form similar to the following (shown in pseudo-code):

begin context: fetch object
  annotation: start-time = 0
  annotation: object-description = ...
 
  begin context: perceive
    annotation: start-time = 0
    annotation: detected-object(s) = ...
    annotation: end-time = 2
    annotation: success = true
  end context
 
  begin context: navigate-to-object
    annotation: start-time = 2
    annotation: goal-position = ...
    annotation: end-time = 7
    annotation: success = true
  end context
 
  begin context: grasp
    annotation: start-time = 7
    annotation: gripper-side = left
    annotation: end-time = 10
    annotation: success = true
  end context
 
  annotation: end-time = 10
  annotation: success = true
end context

Installation

The logging mechanism consists of two parts:

  • The belief state logging software: A ROS node that records all symbolic events that are sent to a specific set of ROS services. This node keeps track of the symbolic event tree, all of its annotations, and is able to extract to data in various formats.
  • The CRAM belief state interface: A CRAM package that enables easy integration of the logging mechanism into the CRAM system. Through hooks in vital functions inside CRAM, the belief state interface automatically logs structural information during plan execution.

In order to install the belief state logging software, you need the following entries in your .rosinstall file:

 - git: {local-name: beliefstate, uri: 'https://github.com/fairlight1337/beliefstate.git'}
 - git: {local-name: designator_integration, uri: 'https://github.com/code-iai/designator_integration.git'}
 - git: {local-name: iai_common_msgs, uri: 'https://github.com/code-iai/iai_common_msgs.git'}

In order to install the belief state interface for CRAM, you need these entries in your .rosinstall file:

 - git: {local-name: iai_common_msgs, uri: 'https://github.com/code-iai/iai_common_msgs.git'}
 - git: {local-name: cram_bridge, uri: 'https://github.com/cram-code/cram_bridge.git'}

Running the belief state software

TODO

Running the belief state CRAM interface

TODO