Live Robot Programming: The language, its implementation, and robot API independence

Abstract Typically, development of robot behavior entails writing the code, deploying it on a simulator or robot and running it in a test setting. If this feedback reveals errors, the programmer mentally needs to map the error in behavior back to the source code that caused it before being able to fix it. This process suffers from a long cognitive distance between the code and the resulting behavior, which slows down development and can make experimentation with different behaviors prohibitively expensive. In contrast, Live Programming tightens the feedback loop, minimizing the cognitive distance. As a result, programmers benefit from an immediate connection with the program that they are making thanks to an immediate, ‘live’ feedback on program behavior. This allows for extremely rapid creation, or variation, of robot behavior and for dramatically increased debugging speed. To enable such Live Robot Programming, in this article we discuss LRP; our language that provides for live programming of nested state machines. We detail the design of the language and show its features, give an overview of the interpreter and how it enables the liveness properties of the language, and illustrate its independence from specific robot APIs.

[1]  John G. Hosking,et al.  Visual code annotations for cyberphysical programming , 2013, 2013 1st International Workshop on Live Programming (LIVE).

[2]  Mitchel Resnick,et al.  Real-time programming and the big ideas of computational literacy , 2003 .

[3]  Randall B. Smith,et al.  Self: The power of simplicity , 1987, OOPSLA 1987.

[4]  Matthias Jüngel,et al.  XABSL - A Pragmatic Approach to Behavior Engineering , 2006, 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[5]  Steven L. Tanimoto,et al.  VIVA: A visual language for image processing , 1990, J. Vis. Lang. Comput..

[6]  Michail G. Lagoudakis,et al.  A CASE Tool for Robot Behavior Development , 2012, RoboCup.

[7]  Sean McDirmid,et al.  Usable live programming , 2013, Onward!.

[8]  Sean McDirmid,et al.  Living it up with a live programming language , 2007, OOPSLA.

[9]  Morgan Quigley,et al.  ROS: an open-source Robot Operating System , 2009, ICRA 2009.

[10]  Miguel Campusano,et al.  Live Robot Programming , 2014, IBERAMIA.

[11]  Alexander Ferrein,et al.  A Lua-based Behavior Engine for Controlling the Humanoid Robot Nao , 2009, RoboCup.

[12]  Brad A. Myers,et al.  InterState: a language and environment for expressing interface behavior , 2014, UIST.

[13]  Jason Lim Live programming for robotic fabrication , 2014 .

[14]  Carla S. Williams,et al.  A visual language for image processing , 1990, Proceedings of the 1990 IEEE Workshop on Visual Languages.