Agent-oriented software patterns for rapid and affordable robot programming

Robotic systems are often quite complex to develop; they are huge, heavily constrained from the non-functional point of view and they implement challenging algorithms. The lack of integrated methods with reuse approaches leads robotic developers to reinvent the wheel each time a new project starts. This paper proposes to reuse the experience done when building robotic applications, by catching it into design patterns. These represent a general mean for (i) reusing proved solutions increasing the final quality, (ii) communicating the knowledge about a domain and (iii) reducing the development time and effort. Despite of this generality, the proposed repository of patterns is specific for multi-agent robotic systems. These patterns are documented by a set of design diagrams and the corresponding implementing code is obtained through a series of automatic transformations. Some patterns extracted from an existing and freely available repository are presented. The paper also discusses an experimental set-up based on the construction of a complete robotic application obtained by composing some highly reusable patterns.

[1]  Walter F. Tichy,et al.  A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions , 2001, IEEE Trans. Software Eng..

[2]  Tara A. Estlin,et al.  Toward developing reusable software components for robotic applications , 2001, Proceedings 2001 IEEE/RSJ International Conference on Intelligent Robots and Systems. Expanding the Societal Role of Robotics in the the Next Millennium (Cat. No.01CH37180).

[3]  Massimo Paolucci,et al.  Agent-based manufacturing and control systems - new agile manufacturing solutions for achieving peak performance , 2004 .

[4]  Daniel Hernández-Sosa,et al.  Integrating robotics software , 2004, IEEE International Conference on Robotics and Automation, 2004. Proceedings. ICRA '04. 2004.

[5]  Agostino Poggi,et al.  JADE: a FIPA2000 compliant agent development environment , 2001, AGENTS '01.

[6]  Franco Zambonelli,et al.  Engineering Societies in the Agents World V, 5th InternationalWorkshop, ESAW 2004, Toulouse, France, October 20-22, 2004, Revised Selected and Invited Papers , 2005, ESAW.

[7]  Alain Pirotte,et al.  A Framework for Design Patterns in TROPOS , 2003, Anais do XVII Simpósio Brasileiro de Engenharia de Software (SBES 2003).

[8]  Michael Philippsen,et al.  Documenting design patterns in code eases program maintenance , 1997 .

[9]  John J. McCarthy,et al.  The Rule Engine for the Java Platform , 2008 .

[10]  Eric S. K. Yu,et al.  Towards modelling and reasoning support for early-phase requirements engineering , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[11]  Terry Bollinger,et al.  Making reuse cost-effective , 1991, IEEE Software.

[12]  Rachid Alami,et al.  An Architecture for Autonomy , 1998, Int. J. Robotics Res..

[13]  Michael Luck,et al.  A Framework for Patterns in Gaia: A Case-Study with Organisations , 2004, AOSE.

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

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

[16]  Nicolas Lhuillier,et al.  FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS , 2003 .

[17]  Ralph E. Johnson,et al.  Documenting frameworks using patterns , 1992, OOPSLA '92.

[18]  Gauthier Picard,et al.  Engineering Adaptive Multi-Agent Systems: The ADELFE Methodology , 2005 .

[19]  Ralph E. Johnson,et al.  Patterns Generate Architectures , 1994, ECOOP.

[20]  Valeria Seidita,et al.  Composition of a New Process to Meet Agile Needs Using Method Engineering , 2004, SELMAS.

[21]  Irene Macaluso,et al.  CiceRobot: a cognitive robot for interactive museum tours , 2007, Ind. Robot.

[22]  Ellen Agerbo,et al.  How to preserve the benefits of design patterns , 1998, OOPSLA '98.

[23]  Jörg P. Müller,et al.  Agent-Oriented Software Engineering V, 5th International Workshop, AOSE 2004, New York, NY, USA, July 19, 2004, Revised Selected Papers , 2004, AOSE.

[24]  Leon Sterling,et al.  Description templates for agent-oriented patterns , 2008, J. Syst. Softw..

[25]  Nicholas R. Jennings,et al.  The Gaia Methodology for Agent-Oriented Analysis and Design , 2000, Autonomous Agents and Multi-Agent Systems.

[26]  Nils J. Nilsson,et al.  Artificial Intelligence: A New Synthesis , 1997 .

[27]  Salvatore Gaglio,et al.  An architecture for autonomous agents exploiting conceptual representations , 1998, Robotics Auton. Syst..

[28]  Massimo Cossentino,et al.  From Requirements to Code with PASSI Methodology , 2005 .

[29]  Toshiaki Arai,et al.  From the Specification of Multiagent Systems by Statecharts to Their Formal Analysis by Model Checking: Towards Safety-Critical Applications , 2003, MATES.

[30]  Scott A. DeLoach,et al.  Engineering Organization-Based Multiagent Systems , 2005, SELMAS.

[31]  Martin L. Griss,et al.  Software Reuse: From Library to Factory , 1993, IBM Syst. J..

[32]  Antonio Chella,et al.  Patterns Reuse in the PASSI Methodology , 2003, ESAW.

[33]  Tara Estlin,et al.  CLARAty: Challenges and Steps toward Reusable Robotic Software , 2006 .

[34]  Stefan Decker,et al.  Creating Semantic Web Contents with Protégé-2000 , 2001, IEEE Intell. Syst..

[35]  Brian Henderson-Sellers,et al.  Agent-oriented methodologies , 2005 .

[36]  Salvatore Gaglio,et al.  A Cognitive Architecture for Artificial Vision , 1997, Artif. Intell..

[37]  C Haythornwaite,et al.  Gamma, E., Helm, R., Johnson, R. & Vlissides, J. Design Patterns: Elements of Reusable Object Oriented Software. New York: Addison-Wesley, 1995. , 2002 .

[38]  Michael Luck,et al.  Software Engineering for Multi-Agent Systems IV , 2005, Lecture Notes in Computer Science.

[39]  Pradeep K. Khosla,et al.  The Chimera Methodology: Designing Dynamically Reconfigurable and Reusable Real-Time Software Using Port-Based Objects , 1996, Int. J. Softw. Eng. Knowl. Eng..

[40]  Edoardo Ardizzone,et al.  Experiences with CiceRobot, a Museum Guide Cognitive Robot , 2005, AI*IA.

[41]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[42]  Douglas C. Schmidt,et al.  Using design patterns to develop reusable object-oriented communication software , 1995, CACM.

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

[44]  Stefan Poslad,et al.  The FIPA-OS agent platform: Open Source for Open Standards , 2006 .

[45]  Mark Mayfield,et al.  Object Models: Strategies, Patterns, and Applications , 1995 .

[46]  François Michaud,et al.  Code reusability tools for programming mobile robots , 2004, 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (IEEE Cat. No.04CH37566).

[47]  Rudolf K. Keller,et al.  Design and Reuse in Object-Oriented Frameworks: Patterns, Contracts, and Motifs in Concert , 1994, COODBSE.

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

[49]  James W. Hooper,et al.  Software Reuse: Guidelines and Methods , 1991 .

[50]  John Mylopoulos,et al.  Tropos: A Requirements-Driven Methodology for Agent-Oriented Software , 2005 .

[51]  A. Chella,et al.  Conceptual representations of actions for autonomous robots , 2001, Robotics Auton. Syst..

[52]  Iwan Ulrich,et al.  VFH/sup */: local obstacle avoidance with look-ahead verification , 2000, Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065).

[53]  Gauthier Picard,et al.  Cooperative Agent Model Instantiation to Collective Robotics , 2004, ESAW.

[54]  Salvatore Gaglio,et al.  A Semantic Description For Agent Design Patterns , 2008 .

[55]  Walter F. Tichy,et al.  A Controlled Experiment Comparing the Maintainability of Programs Designed with and without Design Patterns—A Replication in a Real Programming Environment , 2004, Empirical Software Engineering.

[56]  Salvatore Gaglio,et al.  Conquering Fine-Grained Blends of Design Patterns , 2008, ICSR.

[57]  Vangalur S. Alagar,et al.  Object-Oriented Technology for Database and Software Systems, Proceedings of the Colloquium on Object Orientation in Databases and Software Engineering, COODBSE 1994, 16-17 May 1994, Universite du Quebec a Montreal, Canada , 1995, COODBSE.