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

From ISLAB/CAISR

Do not edit this section

Keep all hand-made modifications below

Title Generic middleware support for coordinating robot software components : The Task-State-Pattern
Author Ingo Lütkebohle and Roland Philippsen and Vijay Pradeep and Eitan Marder-Eppstein and Sven Wachsmuth
Year 2011
PublicationType Journal Paper
Journal Journal of Software Engineering for Robotics
HostPublication
Conference
DOI
Diva url http://hh.diva-portal.org/smash/record.jsf?searchId=1&pid=diva2:464818
Abstract 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.