This article presents a prototypical machine learning system (ETAR) th
at acquires programs for robot tasks. The long-term goal of this proje
ct is to discover how to make computer technology, in particular robot
s, more useful to (and controllable by) people in general. Rather than
require programming expertise, the idea is to build a system that lea
rns robot programs from users' examples. Thus the ETAR learning algori
thm begins by sampling the robot path while a user physically leads it
through the task. A general procedure, possibly containing loops, bra
nches, and variables, is induced from these examples. The ETAR algorit
hm is novel because an implicit focus mechanism is used to control the
entire generalization process. The focus forces ETAR to concentrate o
n the important domain objects, thus eliminating useless steps and tra
nslating the sampled sequence into a series of robot primitive motions
. Loops and branches are introduced as the focus objects repeat or dif
fer. Finally, robot positional variables are introduced as functions o
f the common characteristics of the objects in the focus. The programs
that ETAR generates for three tasks-block stacking, obtaining an obje
ct with a certain characteristic, and sorting-are shown to provide an
intuitive feel for the types of tasks that ETAR can learn. The article
concludes with a general discussion of the current issues in programm
ing by example and describes how this new learner is related to previo
us systems in this area. ETAR has been implemented on an Excalibur rob
ot.