Teaching procedural flow through dialog and demonstration
In order for robots to act as valuable assistants for non-expert users, they need to be able to learn new abilities and do so through natural methods of communication. Furthermore, it is often desirable that tasks be learned quickly without having to provide multiple demonstrations. Training should also be conducted in such a way that the user has a clear understanding of the manner in which environmental features affect the behavior of the learned activity, so that execution behavior is predictable. We present an interactive framework for teaching a robot the flow of an activity composed of elements from a set of primitive behaviors and previously trained activities. Conditional branching and looping, order-independent activity execution, and contingency (or interrupt) actions can all be captured by our activity structures. Additional convenience functionality to aid in the training process is also provided. By providing a natural method of communicating production rules analogous to rigid programming structures, well-defined tasks can be trained easily. We demonstrate our task training procedure on a mobile robot.