Component-based Robotics Middleware



Similar documents
OROCOS, the open source reference when it comes to real-time and control

Model-Driven Software Development for Robotics: an overview

Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1

A standards-based approach to application integration

Vortex White Paper. Simplifying Real-time Information Integration in Industrial Internet of Things (IIoT) Control Systems

TMT SOFTWARE REQUIREMENTS FOR LOW-LEVEL SUBSYSTEMS

A Management Tool for Component-Based Real-Time Supervision and Control Systems

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Service-Oriented Architectures

ROBÓTICA COGNITIVA. RoboCity2030

Service-Oriented Architecture and Software Engineering

Software Development Workflow in Robotics

MIDDLEWARE 1. Figure 1: Middleware Layer in Context

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Middleware in robotics

Distributed Objects and Components

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

White Paper: 5GL RAD Development

Resource Utilization of Middleware Components in Embedded Systems

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

Running a Program on an AVD

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

Tool chain (BRIDE) delivered as BRICS software distribution

ROS: an open-source Robot Operating System

What is BPM? Software tools enabling BPM

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

Service Mediation. The Role of an Enterprise Service Bus in an SOA

Experience with the integration of distribution middleware into partitioned systems

Middleware- Driven Mobile Applications

Developing SOA solutions using IBM SOA Foundation

TIBCO Spotfire Statistics Services Installation and Administration Guide. Software Release 5.0 November 2012

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

PIE. Internal Structure

SOA Myth or Reality??

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

Web. Studio. Visual Studio. iseries. Studio. The universal development platform applied to corporate strategy. Adelia.

Robotic Software Integration Using MARIE

HP OO 10.X - SiteScope Monitoring Templates

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

How To Create A C++ Web Service

CHAPTER 1 INTRODUCTION

Instrumentation Software Profiling

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

Jitterbit Technical Overview : Microsoft Dynamics CRM

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Middleware for Heterogeneous and Distributed Information Systems

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents

An Open Control System for Manipulator Robots

Event-based middleware services

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Chapter 2 Addendum (More on Virtualization)

Code Reusability Tools for Programming Mobile Robots

Better Customer Service & Support Through Monitoring and EAI

SIMERO Software System Design and Implementation

Model Driven Software Development in Service Robotics It really works!

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique

ESB Features Comparison

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE

TOSCA Interoperability Demonstration

Agile Business Process Automation

Manjrasoft Market Oriented Cloud Computing Platform

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

IT services for analyses of various data samples

Oracle IVR Integrator

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Chap 1. Introduction to Software Architecture

Building Your EDI Modernization Roadmap

Separation of Concerns in Component-based Robotics

Application Architectures

Georgiana Macariu, Dana Petcu, CiprianCraciun, Silviu Panica, Marian Neagul eaustria Research Institute Timisoara, Romania

Sentinet for Windows Azure SENTINET

Pervasive Software + NetSuite = Seamless Cloud Business Processes

Manjrasoft Market Oriented Cloud Computing Platform

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Designing and Embodiment of Software that Creates Middle Ware for Resource Management in Embedded System

Software design (Cont.)

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Advanced Server Virtualization: Vmware and Microsoft Platforms in the Virtual Data Center

SERVICE ORIENTED ARCHITECTURE

Aneka: A Software Platform for.net-based Cloud Computing

Building Applications with Protégé: An Overview. Protégé Conference July 23, 2006

ns-3 development overview ns-3 GENI Eng. Conf., Nov

Performance Testing IBM MQSeries* Infrastructures

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

Transcription:

Component-based Robotics Middleware Software Development and Integration in Robotics (SDIR V) Tutorial on Component-based Robotics Engineering 2010 IEEE International Conference on Robotics and Automation (ICRA) A. Shakhimardanov and N. Hochgeschwender Bonn-Rhine-Sieg University of Applied Sciences, Germany Department of Computer Science nico.hochgeschwender@h-brs.de azamat.shakhimardanov@h-brs.de May 8, 2010

Overview 1 Motivation 2 Use Case 3 Component-based Robotics Middleware 4 Conclusion and Discussion

Motivation Challenges in building robotic applications: Heterogeneity Distribution Integration of legacy code (e.g. vendor-specific drivers and algorithms) Quality of Service (e.g. real-time requirements)... Other domains (e.g. avionics) are also faced with this challenges. But: Robotics is an experimental science, we do not (always) have write-compile-restart cycles interaction with the environment is unique in robotics = Technology is needed to tackle this challenges

Motivation Paradigm shift (composition of components): Integration over from scratch developments = (Again) Technology is needed to tackle this challenges

Motivation The marketplace of robotic software systems: The robotics community developed software systems (frameworks) to deal with this challenges. Examples: a ROS YARP Orocos Orca2 Player OpenRTM-aist... a http://wiki.robot-standards.org/index.php/main Page

Motivation The marketplace of robotic software systems and their users: Diverse robotics sofware systems and their users (e.g. RoboCup@Home) b-it-bots NimbRo homer RadicalDudes... ICE/ROS ROS/self-made self-made YARP... Why have you chosen framework A or B? What are the features do you need?

Motivation Features provided by robotic software systems: Categorization of features according to three classes: a 1 Robotic software framework (e.g. tools and robot-specific functionality) 2 Drivers and algorithms (DA) 3 Communication middleware (CM) Note: RSF CM a Makarenko, A. and Brooks, A. and Kaupp, T.: On the Benefits of Making Robotic Software Frameworks Thin. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2007). Workshop on Evaluation of Middleware and Architectures. Component-based robotics middleware (CRM): A robotic software systems following the component-based paradigm (please refer to part 1).

Motivation Zoo of the terminology:

Objectives Objectives of part 2: Acquire an overview Understand the terminology Understand the fundamental concepts Estimate drawbacks and advantages Approach: A use case will serve as a subject of explanation and assessment

Use Case Objective: Component-driven development of a robot which does self-localization. Components: Sonar provides distance data on request Laser provides distance data on request Localizer requires distance data and provides position data within a frame of 1Hz Visualizer requires the position data to visualize robot s path Tasks for the developer: Task 1 Reuse component(s) Task 2 Implement component(s) Task 3 Compose component(s)

Use Case Composed system: Requirements for component-based robotics middleware: Component level versus system requirements 1 Communication (one-way and two-way semantics) 2 = Directionality 3 Component execution (periodic and aperiodic) 4 Location transparency, and more

Requirements Categorization of the requirements according to four concerns: Computation Communication Configuration Coordination Design goal(s) for component-based robotics middleware: Separation of Concerns (SoC)! Availability of means for the application developer to deal with this concerns

Requirements Computation: Computation is concerned with the data processing algorithms required by an application a. a Radestock, M. and Eisenbach, S.: Coordination in evolving systems Proceedings of the International Workshop on Trends in Distributed Systems (1996) Example(s): 1 The Localizer component must provide every second position data. 2 The periodicity of the Localizer must be defined at design-time.

Requirements Communication: Communication deals with the exchange of data a. a Radestock, M. and Eisenbach, S.: Coordination in evolving systems Proceedings of the International Workshop on Trends in Distributed Systems (1996) Example(s): 1 The Sonar component must provide distance data on request. 2 The Localizer component needs to know the Sonar component in order to request data.

Requirements Configuration: Configuration determines which system components should exist, and how they are inter-connected a. a Radestock, M. and Eisenbach, S.: Coordination in evolving systems Proceedings of the International Workshop on Trends in Distributed Systems (1996) Example(s): 1 The apex angle of the Laser component must be configured before laser-scans are retrievable. 2 The topology of the application (Sonar, Laser, Localizer,...) must be defined.

Requirements Coordination: Coordination is concerned with the interaction of the various system components a. a Radestock, M. and Eisenbach, S.: Coordination in evolving systems Proceedings of the International Workshop on Trends in Distributed Systems (1996) Example(s): 1 The Laser component must exist and run before the Localizer component is able to request distance data.

Realization of the Use Case Realization: We implement the use case with different component-based robotics middleware Focus on the communication middleware

Realization of the Use Case: Computation Computation: Computation is concerned with the data processing algorithms required by an application Spotlight: ROS Developed by WillowGarage (see ros.org or go upstairs ;-)). Language(s) License(s) OS(s) CM C++ BSD Linux XML-RPC Python Mac OS X + (Java) self-made

Realization of the Use Case: Computation Example(s): The Localizer component must provide every second position data. Spotlight: ROS Algorithms are embedded in nodes (stand-alone processes) No (explicit) execution logic But: ROS provides means in terms of an API for several execution models, e.g. periodicity ros::rate r(1); while (condition){ publishpositiondata(); ros::spinonce(); r.sleep();

Realization of the Use Case: Computation Spotlight: Orocos Developed at KU Leuven (see orocos.org). Orocos includes three main libraries: Real-time toolkit (RTT) Kinematics and dynamics (KDL) Bayesian filtering library (BFL) Language(s) License(s) OS(s) CM C++ GPL/LGPL Linux CORBA

Realization of the Use Case: Computation Example(s): The Localizer component must provide every second position data. Spotlight: Orocos RTT provides a C++ class framework to develop components The TaskContext class defines the environment in which an algorithm is embedded Execution explicitily defined mytask.setactivity( new PeriodicActivity(... ));

Realization of the Use Case: Computation Comparison: CRM Component Execution logic ROS stand-alone not explicit process Orocos shared-object explicit executed as a thread...

Realization of the Use Case: Communication Communication Communication deals with the exchange of data Example(s): The Sonar component must provide distance data on request. Spotlight: Orocos Commands: Are used to instruct components (synchronous). Methods: Are used to provide a specific functionality (synchronous). Events: Are used to inform components when a particular change occurs (asynchronous). Data Ports: Are used to communicate data (asynchronous).

Realization of the Use Case: Communication Communication Communication deals with the exchange of data Example(s): The Sonar component must provide distance data on request. Spotlight: ROS Topics: Are used to name messages which are published (asynchronous). Services: Are used to provide a specific functionality through a request/reply message (synchronous).

Realization of the Use Case: Communication Communication in summary: CRM two-way one-way ROS Orocos Orca2... Coarse-grained versus fine-grained means of communication Be aware of the framework-specific paradigm

Realization of the Use Case: Configuration Configuration Configuration determines which system components should exist, and how they are inter-connected. a a And more!. See example. Example(s): The apex angle of the Laser component must be configured before laser-scans are retrievable. Spotlight: ROS Parameter Server provides a globally viewable dictionary of key-value pairs

Realization of the Use Case: Configuration Configuration Configuration determines which system components should exist, and how they are inter-connected. a a And more!. See example. Example(s): The apex angle of the Laser component must be configured before laser-scans are retrievable. Spotlight: ROS Parameter Server provides a globally viewable dictionary of key-value pairs

Realization of the Use Case: Configuration Configuration Configuration determines which system components should exist, and how they are inter-connected. Example(s): The topology of the application must be defined. Spotlight: ROS XML configuration file describes which node runs on which host

Realization of the Use Case: Configuration Example(s): The apex angle of the Laser component must be configured before laser-scans are retrievable. Spotlight: Orocos Set, get, and load configuration value(s) through: Attributes (at run-time) Properties (persistent)

Realization of the Use Case: Coordination Coordination Coordination is concerned with the interaction of the various system components Example(s): The Laser component must exist and run before the Localizer component is able to request distance data. Spotlight: Orocos Scripting environment to start, stop, load, and deploy components

Conclusion and Discussion Communication middleware in robotic software systems: Robotic Software System OS(s) CM ROS Linux XML-RPC OS X self-made Orca2 Linux ICE Orocos Linux CORBA OPRoS Linux CORBA OpenRTM-aist Linux CORBA Windows OS X

Conclusion and Discussion Some observations: Mainly object-oriented communication middleware is used Any alternatives? E.g. message-oriented middleware: Data Distribution Service (DDS) Advanced Message Queue Protocol (AMQP) Some services (e.g. persistence) provided by communication middleware are not available in CRM. Why? How to avoid a communication middleware vendor-lockin? Is it possible to abstract the communication middleware? What is about interoperability between CRMs? = we need common data-types and mappings

Conclusion and Discussion Slides The slides are available under: http://www2.inf.h-brs.de/~nhochg2m/

Acknowledgment Best Practice in Robotics (BRICS) The research leading to these results has received funding from the European Community s Seventh Framework Programme (FP7/2007-2013) under grant agreement no. FP7-ICT-231940-BRICS (Best Practice in Robotics). www.best-of-robotics.org

Conclusion and Discussion Thank you! Questions?

Bibliography Quigley, M., Conley, K., Gerkey, B., Faust, J., Foote, T. B., Leibs, J., Wheeler, R., and Ng, A. Y.: ROS: an open-source Robot Operating System, ICRA Workshop on Open Source Software (2009), Byoungyoul, S., Seungwoog, J., Choulsoo, J., and Sunghoon, K.: An Introduction to Robot Component Model for OPRoS (Open Platform for Robotic Services) Workshop Proceedings of SIMPAR 2008 Intl. Conf. on SIMULATION, MODELING and PROGRAMMING for AUTONOMOUS ROBOTS Makarenko, A., Brooks, A., and Kaupp, T.: Orca: Components for Robotics 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 06). Workshop on Robotic Standardization.

Bibliography Soetens, P. and Bruyninckx, H.: Realtime hybrid task-based control for robots and machine tools IEEE International Conference on Robotics and Automation (2005) Radestock, M. and Eisenbach, S.: Coordination in evolving systems Proceedings of the International Workshop on Trends in Distributed Systems (1996)