Project: bml_realizer

License: BSD

Dependencies:

Used by: None

All Packages

bml_realizer Documentation

bml_realizer: bml_realizer

The BML realizer consumes BML by planning and executing the required actions to complete and keeping the entire system informed of the execution status of each action.

ROS API

List of nodes:

  • bml_realizer/realizer

realizer

The BML realizer consumes BML by planning and executing the required actions to complete and keeping the entire system informed of the execution status of each action. In order to realize BML from the generation node, we had to implement our own realization algorithm which is based off of behavior sync point events, instead of timing events (like animation engines). The reason for a new algorithm is based on the fact that control over motors is not as consistent as control over an animation. In a robot, each motor, or joint, may run faster or slower than required based on voltage sag, objects interfering with the path of a joint, or simply because of timing differences between the motor controller and the module issuing commands.

In this algorithm, each behavior is executed in parallel by being started off of an event, and fires events upon reaching each BML sync point in the behavior. The BML is first interpreted into the actions which need to be taken, and then the actions are scheduled based on the synchronization information given. An example of this is that if speech1 must be spoken before speech2, the speech1 end sync point will trigger the start sync point of speech2. This algorithm also allows for each sync point of a given behavior to trigger off of sync points of other behaviors so that two behaviors can be synchronized.

Usage

$ realizer [standard ROS args]

ROS topics

Publishes to:

  • "bml/performing": [engagement_msgs::BMLPerformance] The bml behavior and its sync point which is currently being executed
  • "bml/emit": [engagement_msgs::BMLEmit] Notification that an emit tag has fired
  • "bml/warning": [engagement_msgs::BMLException] Notification that something didn't work as expected in during the scheduling or execution of the given BML.
  • "bml/exception": [engagement_msgs::BMLException] Notification that something caused the BML to completely fail.

ROS services

  • "bml/realize": [engagement_srvs::BMLRealization] The goal is to complete the behaviors given by scheduling them and then executing them.

ROS parameters

Reads the following parameters from the parameter server

  • "realizer/conf/debug_level": [string] The verbosity used for debug print statements (anything with a log level <= verbosity will be printed when in Debug mode).
  • "realizer/conf/logger_type": [string] The type of logger, System or ROS.

.launch files

This section describes the launch file used for launching this node:

  • "realizer.launch": Used to launch the realizer node. Contains all the parameters used for the realizer node.

Usage

$ roslaunch realizer.launch


bml_realizer
Author(s): Aaron Holroyd (aholroyd (at) wpi (dot) edu)
autogenerated on Fri Sep 9 10:44:11 2011