Homepage
Research
Students
Courses
Robots
Papers
Videos
Press
Talks
Faq
CV
Lab
Travel
Contact
Personal
Links


ROBOT PROGRAMMING BY DEMONSTRATION: SUPPORTING THE INDUCTION by HUMAN INTERACTION

by H. Friedrich, S. Muench, R. Dillmann, S. Bocionek, and M. Sassin

Programming by Demonstration (PbD) is a programming method that allows software developers to add new functionalities to a system by simply showing them in the form of few examples. In the robotics domain it has the potential to reduce the amount of time required for programming and also to make programming more "natural". Just imagine the task of assembling a torch by a manipulator. Wouldn't it be nice to just assemble the torch with one's own hands, watched by video and laser cameras and maybe wearing data gloves, i.e., sensors that provide the data to automatically generate the necessary robot program for the assembly task? And wouldn't it be even nicer to demonstrate the task with few different torches, but achieving an assembly function for all possible variants of them?

In order to realize such a PbD environment, at least two major problems have to be solved. First, the sensor data have to be transformed to high-level situation-action descriptors, a task that is not yet solved in general. Second, if a generalization is required, induction algorithms must be applied to the recorded and transformed traces, aiming to find the most general user-intended function from only few examples. In this article we will concentrate only on the second problem. The described experimental environment consists of an industrial robot (PUMA 260b), a 6D teach bowl input device, and some sensors. Various data can be recorded during a demonstration for further processing in the PbD system running on a workstation. The objective is to explore the possibilities of integrating learning and clustering algorithms for automated robot programming. In particular it is investigated how human interaction within system- as well as user-initiated dialogs can support the induction component.