- Programming by demonstration
Programming by demonstration (PbD) is a technique for teaching acomputer or a robot new behaviors by demonstrating the task totransfer directly instead of programming it through machinecommands.
The term
Programming by example (PbE) or Programming bydemonstration (PbD) appeared in software development research as early asthe mid 1980s [cite paper
first = Dan
last = Halbert
author = Dan Halbert
authorlink =
coauthors =
title = Programming by Example
version =
publisher = U.C. Berkeley (PhD diss.)
date = November 1984
url = http://www.halwitz.org/halbert/pbe.pdf
format =
accessdate = 2008-05-26 ] to define a way to define a sequence of operations without having to learn a programminglanguage. The usual distinction in literature between these terms is that in Programming by example the user gives a prototypical product of the computer execution, such as a row in the desired results of a query; while in Programming by demonstration the user performs a sequence of actions that the computer must repeat, generalizing it to be used in different data sets.These two terms were first undifferentiated, but
Programming by example then tended to be mostly adopted by software development researchers while Programming by Demonstration tended to be adopted by robotics researchers.Robot programming by demonstration
The PbD paradigm is first attractive to the robotics industry dueto the costs involved in the development and maintenance of robotprograms. In this field, the operator often has implicit knowledgeon the task to achieve (he/she knows how to do it), but does nothave usually the programming skills (or the time) required toreconfigure the robot. Demonstrating how to achieve the taskthrough examples thus allows to learn the skill without explicitlyprogramming each detail.
The first PbD strategies proposed in robotics were based on"teach-in", "guiding" or "play-back" methods that consistedbasically in moving the robot (through a dedicated interface ormanually) through a set of relevant configurations that the robotshould adopt sequentially (position, orientation, state of thegripper). The method was then progressively ameliorated byfocusing principally on the teleoperation control and by usingdifferent interfaces such as vision.
However, these PbD methods still used direct repetition, which wasuseful in industry only when conceiving an assembly line usingexactly the same product components. To apply this concept toproducts with different variants or to apply the programs to newrobots, the generalization issue became a crucial point. Toaddress this issue, the first attempts at generalizing the skillwere mainly based on the help of the user through queries aboutthe user's intentions. Then, different levels of abstractions wereproposed to resolve the generalization issue, basicallydichotomized in learning methods at a symbolic level or at atrajectory level.
The development of
humanoid robots naturally brought a growinginterest in robot programming by demonstration. As a humanoidrobot is supposed by its nature to adapt to new environments, notonly the human appearance is important but the algorithms used forits control require flexibility and versatility. Due to thecontinuously changing environments and to the huge varieties oftasks that a robot is expected to perform, the robot requires theability to continuously learn new skills and adapt the existingskills to new contexts.Research in PbD also progressively departed from its originalpurely engineering perspective to adopt an interdisciplinaryapproach, taking insights from neuroscience and social sciences toemulate the process of imitation in humans and animals. With theincreasing consideration of this body of work in robotics, thenotion of "Robot programming by demonstration" (also known asRPD or RbD) was also progressively replaced by the more biologicallabel of "Learning by imitation".
References
*
*External links
* Reviews Papers
**cite article |last= Billard |first= Aude |others= Contributor S. Calinon, R. Dillmann and S. Schaal. |title= Robot Programming by Demonstration |origyear= 2008 | journal= Handbook of Robotics |publisher= Publisher: MIT Press |url= http://infoscience.epfl.ch/getfile.py?docid=14806&name=chapter5_9&format=pdf&version=1
**cite article |last= Schaal |first= S |others= Contributor Ijspeert, A.; Billard, A. |title= Computational approaches to motor learning by imitation |origyear= 2004 | journal= in: Frith, C. D.;Wolpert, D. (eds.), The Neuroscience of Social Interaction, 1431, pp.199-218|publisher= Publisher: Oxford University Press |url= http://www-clmc.usc.edu/publications/S/schaal-PTRSB2003.pdf
**Robots that imitate humans, Cynthia Breazeal and Brian Scassellati, Trends in Cognitive Sciences, 6:1, 2002, pp. 481-487
**Imitation. A. Billard. In M. A. Arbib (ed.), Handbook of Brain Theory and Neural Networks, MIT Press, 566-569.
**Is imitation learning the route to humanoid robots? S Schaal, Trends in Cognitive Sciences, 1999.* Special Issues in Journals
** [http://ieeexplore.ieee.org/xpl/tocresult.jsp?isnumber=4126271] "IEEE Transaction on Systems, Man, and Cybernetics", Special Issue on Robot Learning by Observation, Demonstration, and Imitation, Part B, 37:2, April 2007
**RSJ Advanced Robotics, Special Issue on Imitative Robots. Vol. 21, No. 13.
**Neural Networks, Special issue on The Neural Mechanisms of Imitation Learning, Elsevier Ltd.
**Robotics & Autonomous Systems, special issue on The Social Mechanisms of Robot Programming by Demonstration, Elsevier Ltd, 2006.* Key Laboratories and People
** [http://lasa.epfl.ch/research/control_automation/demonstration/index.php] LASA laboratory at EPFL: Machine Learning techniques for Robot Programming by Demonstration
** [http://www-clmc.usc.edu/Research/ImitationLearning] CLMC Lab at USC: Reinforcement Learning and Learning of Motor Primitives
** [http://www.calinon.ch/research.php http://www.calinon.ch/research.php] Sylvain Calinon's webpage on interactive teacher-student (or better trainer/coach-trainee /client) kinesthetic demonstration.
** [http://www.cns.atr.jp/~dbent/] Darrin Bentivagna's work on teaching air hockey to a humanoid robot* Community activities on closely related topics
** [http://tab.ieee-ras.org/committeeinfo.php?tcid=8] IEEE Robotics and Automation's Technical Committee on Human-Robot Interaction & Coordination
** [http://tab.ieee-ras.org/committeeinfo.php?tcid=31] IEEE Robotics and Automation's Technical Committee on Robot LearningVideos
A robot that learns to cook an omelet( [http://fr.youtube.com/watch?v=FtjC-BXGgAE] Short Version;
* [http://fr.youtube.com/watch?v=VvoJxmaoi8A&feature=related] Long Version)ee also
*
Programming by example
Wikimedia Foundation. 2010.