Project: bml_realizer License: BSD Dependencies:
Used by:
None |
bml_realizer Documentationbml_realizer: bml_realizerThe 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 APIList of nodes:
realizerThe 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 topicsPublishes to:
ROS services
ROS parametersReads the following parameters from the parameter server
.launch filesThis section describes the launch file used for launching this node:
Usage$ roslaunch realizer.launch |