On the suitability of dynamic languages for hot‐reprogramming a robotics framework: a Python case study

The development of service robots has gained more attention over the last years. Advanced robots have to cope with many different situations emerging at runtime, while executing complex tasks. They should be programmed as dynamically adaptive systems, capable of adapting themselves to the execution environment, including the computing, user, and physical environment. Recently, dynamic languages are becoming widely used because of the high runtime adaptability they offer. Therefore, we have analyzed the suitability of these languages to implement robotic systems with high runtime adaptability requirements, using Python as case study because of its maturity. To evaluate their suitability, we have implemented a reflective robotics framework that can be programmed in both Java and any dynamic language supported by the standard Java Scripting API. An example scenario has been developed using Python to show how its distinguishing meta‐programming features have facilitated the development of runtime‐adaptable robotics services. Copyright © 2012 John Wiley & Sons, Ltd.

[1]  G. vanRossum Python reference manual , 1995 .

[2]  Jonathan Bohren,et al.  The SMACH High-Level Executive [ROS News] , 2010 .

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

[4]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[5]  J. Baltasar García Pérez-Schofield,et al.  Efficient virtual machine support of runtime structural reflection , 2009, Sci. Comput. Program..

[6]  Thomas G. Dietterich What is machine learning? , 2020, Archives of Disease in Childhood.

[7]  Ignacio González Alonso,et al.  TIC4Bot: A Research Robotic Software and Hardware Platform for Reflective HRI, Navigation and Vision Fields , 2009, IC-AI.

[8]  Henrik Hautop Lund,et al.  Modular ATRON: modules for a self-reconfigurable robot , 2004, 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (IEEE Cat. No.04CH37566).

[9]  J. Baltasar García Pérez-Schofield,et al.  Including both static and dynamic typing in the same programming language , 2010, IET Softw..

[10]  Anders Orebäck,et al.  Evaluation of Architectures for Mobile Robotics , 2003, Auton. Robots.

[11]  Hui Lei Context Awareness: a Practitioner’s Perspective , 2005, International Workshop on Ubiquitous Data Management.

[12]  J Glaser,et al.  Separation of Concerns , 2014 .

[13]  Juan Manuel Cueva Lovelle,et al.  Dynamic adaptation of application aspects , 2004, J. Syst. Softw..

[14]  Ulrik Pagh Schultz,et al.  A virtual machine-based approach for fast and flexible reprogramming of modular robots , 2009, 2009 IEEE International Conference on Robotics and Automation.

[15]  Moritz Tenorth,et al.  The RoboEarth language: Representing and exchanging knowledge about actions, objects, and environments , 2012, 2012 IEEE International Conference on Robotics and Automation.

[16]  Bill N. Schilit,et al.  Context-aware computing applications , 1994, Workshop on Mobile Computing Systems and Applications.

[17]  Paul F. M. J. Verschure,et al.  An interactive space that learns to influence human behavior , 2005, IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans.

[18]  Ignacio González Alonso,et al.  RIF: A Reflective Integrator Framework , 2009, IC-AI.

[19]  Francisco Ortin,et al.  Designing an adaptable heterogeneous abstract machine by means of reflection , 2005, Inf. Softw. Technol..

[20]  Joelle Pineau,et al.  Towards robotic assistants in nursing homes: Challenges and results , 2003, Robotics Auton. Syst..

[21]  J. Baltasar García Pérez-Schofield,et al.  Separating adaptable persistence attributes through computational reflection , 2004, IEEE Software.

[22]  Richard T. Vaughan,et al.  The Player/Stage Project: Tools for Multi-Robot and Distributed Sensor Systems , 2003 .

[23]  Christian Schlegel,et al.  The software framework SMARTSOFT for implementing sensorimotor systems , 1999, Proceedings 1999 IEEE/RSJ International Conference on Intelligent Robots and Systems. Human and Environment Friendly Robots with High Intelligence and Emotional Quotients (Cat. No.99CH36289).

[24]  Lieven Eeckhout,et al.  Statistically rigorous java performance evaluation , 2007, OOPSLA.

[25]  Bill N. Schilit,et al.  Disseminating active map information to mobile hosts , 1994, IEEE Network.

[26]  David M. Beazley,et al.  SWIG: An Easy to Use Tool for Integrating Scripting Languages with C and C++ , 1996, Tcl/Tk Workshop.

[27]  Moritz Tenorth,et al.  RoboEarth - A World Wide Web for Robots , 2011, ICRA 2011.

[28]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[29]  Steve Cousins,et al.  The SMACH High-Level Executive , 2010 .

[30]  Yangsheng Xu,et al.  Context-aware robot service coordination system , 2005, 2005 IEEE International Conference on Robotics and Biomimetics - ROBIO.

[31]  Christian Schlegel,et al.  Communication Patterns as Key towards Component-Based Robotics , 2006 .

[32]  Holly A. Yanco,et al.  Pyro: A python-based versatile programming environment for teaching robotics , 2004, JERC.

[33]  Graziano Pesole,et al.  Statistical assessment of discriminative features for protein-coding and non coding cross-species conserved sequence elements , 2009, BMC Bioinformatics.

[34]  Christopher D. Town,et al.  SSWAP: A Simple Semantic Web Architecture and Protocol for semantic web services , 2009, BMC Bioinformatics.

[35]  Alexander Ferrein,et al.  Design Principles of the Component-Based Robot Software Framework Fawkes , 2010, SIMPAR.

[36]  Juha Roening,et al.  Context-aware mobile systems for managing services , 2001, SPIE Optics East.

[37]  Gerard Lacey,et al.  Context-Aware Shared Control of a Robot Mobility Aid for the Elderly Blind , 2000, Int. J. Robotics Res..

[38]  New Mexico. for Sandia National Laboratories , 2009 .

[39]  Francesco Chinello,et al.  KUKA Control Toolbox , 2011, IEEE Robotics & Automation Magazine.

[40]  David J. Lilja,et al.  Techniques for obtaining high performance in Java programs , 2000, CSUR.

[41]  Pattie Maes,et al.  Computational reflection , 1987, The Knowledge Engineering Review.

[42]  Alexei Makarenko,et al.  Towards component-based robotics , 2005, 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[43]  Sang-Rok Oh,et al.  CAMUS: a middleware supporting context-aware services for network-based robots , 2005, IEEE Workshop on Advanced Robotics and its Social Impacts, 2005..

[44]  Antonio Visioli,et al.  Gain Scheduling for Hybrid Force/Velocity Control in Contour Tracking Task , 2006 .

[45]  Herman Bruyninckx,et al.  Open robot control software: the OROCOS project , 2001, Proceedings 2001 ICRA. IEEE International Conference on Robotics and Automation (Cat. No.01CH37164).

[46]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

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