Generic middleware support for coordinating robot software components: The Task-State-Pattern

Robot software systems are (again) reaching levels of size and complexity that makes them difficult to construct, evolve, and maintain. One current issue is that systems are increasingly built to perform many different tasks in parallel, each of which must be coordinated and monitored to achieve a goal. If all components were to require different interfaces, system complexity would rapidly grow. General interfaces partially exist on the conceptual level, but their implementations are typically strongly linked to particular architectural proposals, thus reducing re-use and comparability. This paper presents an architecture-agnostic design pattern for the coordination-related component interaction. It results in a simple and clean component interface to invoke specific functionality, monitor task progress, and update the goals of running tasks. It provides an abstract coordination interface with high observability for the development of coordination and architecture. It thus provides value to all stakeholders in the design and implementation of robot software systems: component developers, coordination developers, and system architects. We trace the convergence of concepts and approaches from early coordination systems and through various abstraction proposals. Recently, two very similar realizations were developed independently by the authors. This paper presents the underlying insights and practical experience as a generic software engineering method which we named the Task-State-Pattern. We describe the functionality it provides to component developers and detail the technical steps necessary to implement it in a distributed event-based toolkit for specific application domains. We provide empirical evidence for the relevance and utility of our approach by presenting case studies and discussing how the proposed pattern leads to a flexible system structure with reduced integration effort.

[1]  Dominic Létourneau,et al.  Trends in Component-Based Robotics , 2005, PPSDR@ICRA.

[2]  Marc Hanheide,et al.  Mixed-initiative in human augmented mapping , 2009, 2009 IEEE International Conference on Robotics and Automation.

[3]  Tara Estlin,et al.  The CLARAty architecture for robotic autonomy , 2001, 2001 IEEE Aerospace Conference Proceedings (Cat. No.01TH8542).

[4]  Pradeep K. Khosla,et al.  Rapid development of robotic applications using component-based real-time software , 1995, Proceedings 1995 IEEE/RSJ International Conference on Intelligent Robots and Systems. Human Robot Interaction and Cooperative Robots.

[5]  Marc Hanheide,et al.  Moving from augmented to interactive mapping , 2008 .

[6]  Peter R. Pietzuch,et al.  Distributed event-based systems , 2006 .

[7]  S. A. Stoeter,et al.  Proceedings - IEEE International Conference on Robotics and Automation , 2003 .

[8]  Ingo Lütkebohle,et al.  The curious robot - Structuring interactive robot learning , 2009, 2009 IEEE International Conference on Robotics and Automation.

[9]  Anders Orebäck,et al.  A component framework for autonomous mobile robots , 2004 .

[10]  E. Gat On Three-Layer Architectures , 1997 .

[11]  Matthieu Herrb,et al.  G/sup en/oM: a tool for the specification and the implementation of operating modules in a distributed robot architecture , 1997, Proceedings of the 1997 IEEE/RSJ International Conference on Intelligent Robot and Systems. Innovative Robotics for Real-World Applications. IROS '97.

[12]  Maja J. Mataric,et al.  Integration of representation into goal-driven behavior-based robots , 1992, IEEE Trans. Robotics Autom..

[13]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[14]  Christos G. Cassandras,et al.  Introduction to Discrete Event Systems , 1999, The Kluwer International Series on Discrete Event Dynamic Systems.

[15]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[16]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

[17]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[18]  Reid G. Simmons,et al.  A task description language for robot control , 1998, Proceedings. 1998 IEEE/RSJ International Conference on Intelligent Robots and Systems. Innovations in Theory, Practice and Applications (Cat. No.98CH36190).

[19]  Matthieu Herrb,et al.  A tool for the specification and the implementation of operating modules in a distributed robot architecture , 1999 .

[20]  Takashi Suehiro,et al.  RT-Component Object Model in RT-Middleware - Distributed Component Middleware for RT (Robot Technology) , 2005, CIRA.

[21]  Giorgio Metta,et al.  YARP: Yet Another Robot Platform , 2006 .

[22]  Sven Wachsmuth,et al.  Coordinating interactive vision behaviors for cognitive assistance , 2007, Comput. Vis. Image Underst..

[23]  Reid G. Simmons,et al.  Structured control for autonomous robots , 1994, IEEE Trans. Robotics Autom..

[24]  Rodney A. Brooks,et al.  A Robust Layered Control Syste For A Mobile Robot , 2022 .

[25]  Sven Wachsmuth,et al.  Integration and Coordination in a Cognitive Vision System , 2006, Fourth IEEE International Conference on Computer Vision Systems (ICVS'06).

[26]  Ronald C. Arkin,et al.  Motor Schema — Based Mobile Robot Navigation , 1989, Int. J. Robotics Res..

[27]  Marc Hanheide,et al.  Active memory-based interaction strategies for learning-enabling behaviors , 2008, RO-MAN 2008 - The 17th IEEE International Symposium on Robot and Human Interactive Communication.

[28]  Hans Utz,et al.  Miro - middleware for mobile robot applications , 2002, IEEE Trans. Robotics Autom..

[29]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[30]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[31]  Ingo Lütkebohle,et al.  A Mixed-Initiative Approach to Interactive Robot Tutoring , 2012, Towards Service Robots for Everyday Environments.

[32]  Michael Tiegelkamp,et al.  IEC 61131-3: Programming Industrial Automation Systems: Concepts and Programming Languages, Requirements for Programming Systems, Decision-Making Aids , 2001 .

[33]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[34]  Raja Chatila,et al.  Deliberation and reactivity in autonomous mobile robots , 1995, Robotics Auton. Syst..

[35]  Jonathan H. Connell,et al.  SSS: a hybrid architecture applied to robot navigation , 1992, Proceedings 1992 IEEE International Conference on Robotics and Automation.

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

[37]  Jeff Kramer Configuration programming-a framework for the development of distributable systems , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

[38]  Susan Eisenbach,et al.  Coordination in Evolving Systems , 1996, TreDS.

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

[40]  Marc Schröder,et al.  The German Text-to-Speech Synthesis System MARY: A Tool for Research, Development and Teaching , 2003, Int. J. Speech Technol..

[41]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[42]  Patrizia Scandurra,et al.  Component-based robotic engineering (Part I) [Tutorial] , 2009, IEEE Robotics & Automation Magazine.

[43]  Norman E. Fenton Viewpoint Article: Conducting and Presenting Empirical Software Engineering , 2004, Empirical Software Engineering.

[44]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

[45]  David Frohlich,et al.  MIXED INITIATIVE INTERACTION , 1991 .

[46]  Bernhard Nebel,et al.  The DESIRE Service Robotics Initiative , 2008, Künstliche Intell..