|Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.|
How to compose a script for use with PoloniusDescription: A tutorial describing how to write a script for use with Polonius
Keywords: Polonius, Wizard of Oz
Tutorial Level: INTERMEDIATE
This tutorial will be finished in the near future. 3/27/11
Two Kinds of States
The first kind of state is an action state, which performs some action on the robot. It differs from the traditional smach/actionlib combo in that it allows you to specify
- Multiple parallel actions
- A defined delay before beginning sending the goals
Cue states are used for two primary purposes.
- Wizard Decision making
- Notating what the human did
Polonius allows you to mark the beginning of the action, in addition to giving you a choice of end markers. For example, consider the Gesture Imitation Game described in our paper. A child makes one of three gestures, and then the robot imitates it. We want to know when the child's gesture starts and what action it was. Hence, Polonius should define an initial cue to mark the beginning, and then allow for the wizard to label the gesture once it is recognized. The start cue would be something like "Child starts gesture" and the end choice would be between three different labels for the gestures.
Linear or Branching
The script can either be a linear finite state machine, or it can have branches. Linear scripts are ideal for demos and theatrical productions where no variaation in movement is expected.
Linear scripts are loaded in via YAML arrays, and branching scripts via YAML maps.