scispace - formally typeset
Open AccessDOI

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

Reads0
Chats0
TLDR
This paper presents an architecture-agnostic design pattern for the coordination-related component interaction which provides an abstract coordination interface with high observability for the development of coordination and architecture and provides value to all stakeholders in the design and implementation of robot software systems.
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.

read more

Content maybe subject to copyright    Report

Citations
More filters
Book

Distributed event-based systems

TL;DR: The authors offer a comprehensive overview, and show the power of event-based architectures in modern system design, encouraging professionals to exploit this technique in next generation large-scale distributed applications like information dissemination, network monitoring, enterprise application integration, or mobile systems.
Journal ArticleDOI

The iCub Software Architecture: Evolution and Lessons Learned

TL;DR: This paper illustrates the software architecture of the iCub humanoid robot and the software engineering best practices that have emerged driven by the needs of the research community and describes the latest developments at the level of the middleware supporting interface definition and automatic code generation, logging, ROS compatibility and channel prioritization.
Proceedings Article

Modeling Human-Robot-Interaction based on generic Interaction Patterns

TL;DR: This work presents an approach that combines insights from dialog modeling with software-engineering demands that arise in robotics system research to provide a generalizable framework that can easily be applied to new scenarios.
Proceedings ArticleDOI

Talking with robots about objects: a system-level evaluation in HRI

TL;DR: This work presents the design process, realization and evaluation of a robot system for interactive object learning, and demonstrates that the system's interaction style reduces the need for instruction and successfully recovers partial failures.
References
More filters
Book

Design Patterns: Elements of Reusable Object-Oriented Software

TL;DR: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns, which most experienced OOP designers will find out they've known about patterns all along.
Book

A robust layered control system for a mobile robot

TL;DR: A new architecture for controlling mobile robots is described, building a robust and flexible robot control system that has been used to control a mobile robot wandering around unconstrained laboratory areas and computer machine rooms.
Journal ArticleDOI

A robust layered control system for a mobile robot

TL;DR: In this paper, a new architecture for controlling mobile robots is described, which is made up of asynchronous modules that communicate over low-bandwidth channels, each module is an instance of a fairly simple computational machine.
Book

A metrics suite for object oriented design

TL;DR: This research addresses the needs for software measures in object-orientation design through the development and implementation of a new suite of metrics for OO design, and suggests ways in which managers may use these metrics for process improvement.
Journal ArticleDOI

On the criteria to be used in decomposing systems into modules

TL;DR: In this paper, the authors discuss modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time, and the effectiveness of modularization is dependent upon the criteria used in dividing the system into modules.