Robot Program Construction from Examples

Robots’ usefulness is currently limited by the difficulty of delegating them new tasks. The method of physically leading a robot through variations of a task provides a set of examples which our system merges to form a more general task procedure. The procedure comprises symbolic robot motions with conditionals, loops, and expressions for motion parameters. First the numeric position sequence is partitioned and converted into symbolic motion commands. A spatial attention focusing heuristic constrains the subsequent inductive search processes to (a) consider only important objects, and (b) pivot loops on special key groups of motions. The background knowledge contains an object frame hierarchy indexed by the attention focusing mechanism to gain information about manipulated objects, robot motion functions used in constructing the procedure, and primitive numerical operators which are composed to form motion parameters. Loops and conditionals are inferred by observing changes in the foci of attention, and by matching corresponding partial traces within and among examples. Functional expressions are inferred by a general search over a large space, which is severely constrained by attention focusing and a maximum complexity limit of a few nesting levels. This system is implemented with an Excalibur robot, and the results of one example are shown. Comparisons are made with ARMS, DIFFY-S, and NODDY. The robot learning system is an important practical step towards integrating robots with our real world.