Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf ·...

37
Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion 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 [email protected] [email protected] May 8, 2010

Transcript of Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf ·...

Page 1: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Component-based Robotics MiddlewareSoftware 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, GermanyDepartment of Computer [email protected]

[email protected]

May 8, 2010

Page 2: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Overview

1 Motivation

2 Use Case

3 Component-based Robotics Middleware

4 Conclusion and Discussion

Page 3: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Motivation

Challenges in building robotic applications:

Heterogeneity

Distribution

Integration of legacy code (e.g. vendor-specific drivers andalgorithms)

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

Page 4: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Motivation

Paradigm shift (composition of components):

Integration over from scratch developments

=⇒ (Again) Technology is needed to tackle this challenges

Page 5: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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

...ahttp://wiki.robot-standards.org/index.php/Main Page

Page 6: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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?

Page 7: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Motivation

Features provided by robotic software systems:

Categorization of features according to three classes:a

1 Robotic software framework (e.g. tools and robot-specificfunctionality)

2 Drivers and algorithms (DA)

3 Communication middleware (CM)

Note: RSF 6= CM

aMakarenko, A. and Brooks, A. and Kaupp, T.: On the Benefits of MakingRobotic Software Frameworks Thin. IEEE/RSJ International Conference onIntelligent Robots and Systems (IROS 2007). Workshop on Evaluation ofMiddleware and Architectures.

Component-based robotics middleware (CRM):

A robotic software systems following the component-basedparadigm (please refer to part 1).

Page 8: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Motivation

’Zoo’ of the terminology:

Page 9: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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

Page 10: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Use Case

Objective:

Component-driven development of a robot which doesself-localization.

Components:

Sonar provides distance data on request

Laser provides distance data on request

Localizer requires distance data and provides position datawithin 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)

Page 11: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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

Page 12: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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 dealwith this concerns

Page 13: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Requirements

Computation:

Computation is concerned with the data processing algorithmsrequired by an applicationa.

aRadestock, M. and Eisenbach, S.: Coordination in evolving systemsProceedings of the International Workshop on Trends in Distributed Systems(1996)

Example(s):

1 The Localizer component must provide every secondposition data.

2 The periodicity of the Localizer must be defined atdesign-time.

Page 14: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Requirements

Communication:

Communication deals with the exchange of dataa.

aRadestock, M. and Eisenbach, S.: Coordination in evolving systemsProceedings 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 Sonarcomponent in order to request data.

Page 15: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Requirements

Configuration:

Configuration determines which system components should exist,and how they are inter-connecteda.

aRadestock, M. and Eisenbach, S.: Coordination in evolving systemsProceedings of the International Workshop on Trends in Distributed Systems(1996)

Example(s):

1 The apex angle of the Laser component must be configuredbefore laser-scans are retrievable.

2 The topology of the application (Sonar, Laser,Localizer,...) must be defined.

Page 16: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Requirements

Coordination:

Coordination is concerned with the interaction of the varioussystem componentsa.

aRadestock, M. and Eisenbach, S.: Coordination in evolving systemsProceedings of the International Workshop on Trends in Distributed Systems(1996)

Example(s):

1 The Laser component must exist and run before theLocalizer component is able to request distance data.

Page 17: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case

Realization:

We ’implement’ the use case with different component-basedrobotics middleware

Focus on the communication middleware

Page 18: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case: Computation

Computation:

Computation is concerned with the data processing algorithmsrequired 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-RPCPython Mac OS X +(Java) self-made

Page 19: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case: Computation

Example(s):

The Localizer component must provide every second positiondata.

Spotlight: ROS

Algorithms are embedded in nodes (stand-alone processes)

No (explicit) execution logic

But: ROS provides means in terms of an API for severalexecution models, e.g. periodicity

ros::Rate r(1);while (condition){publishPositionData();ros::spinOnce();r.sleep();

Page 20: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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

Page 21: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case: Computation

Example(s):

The Localizer component must provide every second positiondata.

Spotlight: Orocos

RTT provides a C++ class framework to develop components

The TaskContext class defines the environment in which analgorithm is embedded

Execution explicitily defined

mytask.setActivity( new PeriodicActivity( ... ));

Page 22: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case: Computation

Comparison:

CRM Component Execution logic

ROS stand-alone not explicitprocess

Orocos shared-object explicitexecuted as a thread

...

Page 23: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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 particularchange occurs (asynchronous).

Data Ports: Are used to communicate data (asynchronous).

Page 24: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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 arequest/reply message (synchronous).

Page 25: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case: Communication

Communication in summary:

CRM two-way one-way

ROS X XOrocos X XOrca2 X X

...

Coarse-grained versus fine-grained means of communication

Be aware of the framework-specific paradigm

Page 26: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case: Configuration

Configuration

Configuration determines which system components should exist,and how they are inter-connected.a

aAnd more!. See example.

Example(s):

The apex angle of the Laser component must be configuredbefore laser-scans are retrievable.

Spotlight: ROS

Parameter Server provides a ’globally’ viewable dictionaryof key-value pairs

Page 27: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case: Configuration

Configuration

Configuration determines which system components should exist,and how they are inter-connected.a

aAnd more!. See example.

Example(s):

The apex angle of the Laser component must be configuredbefore laser-scans are retrievable.

Spotlight: ROS

Parameter Server provides a ’globally’ viewable dictionaryof key-value pairs

Page 28: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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 whichhost

Page 29: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case: Configuration

Example(s):

The apex angle of the Laser component must be configuredbefore laser-scans are retrievable.

Spotlight: Orocos

Set, get, and load configuration value(s) through:

Attributes (at run-time)

Properties (persistent)

Page 30: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case: Coordination

Coordination

Coordination is concerned with the interaction of the varioussystem components

Example(s):

The Laser component must exist and run before the Localizercomponent is able to request distance data.

Spotlight: Orocos

Scripting environment to start, stop, load, and deploycomponents

Page 31: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Conclusion and Discussion

Communication middleware in robotic software systems:

Robotic Software System OS(s) CM

ROS Linux XML-RPCOS X self-made

Orca2 Linux ICEOrocos Linux CORBAOPRoS Linux CORBAOpenRTM-aist Linux CORBA

WindowsOS X

Page 32: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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 communicationmiddleware 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

Page 33: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Conclusion and Discussion

Slides

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

Page 34: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Acknowledgment

Best Practice in Robotics (BRICS)

The research leading to these results has received funding from theEuropean 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

Page 35: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Conclusion and Discussion

Thank you! Questions?

Page 36: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Bibliography

Quigley, M., Conley, K., Gerkey, B., Faust, J., Foote, T. B.,Leibs, J., Wheeler, R., and Ng, A. Y.: ROS: an open-sourceRobot Operating System, ICRA Workshop on Open SourceSoftware (2009),

Byoungyoul, S., Seungwoog, J., Choulsoo, J., and Sunghoon,K.: An Introduction to Robot Component Model for OPRoS(Open Platform for Robotic Services) Workshop Proceedingsof SIMPAR 2008 Intl. Conf. on SIMULATION, MODELINGand PROGRAMMING for AUTONOMOUS ROBOTS

Makarenko, A., Brooks, A., and Kaupp, T.: Orca:Components for Robotics 2006 IEEE/RSJ InternationalConference on Intelligent Robots and Systems (IROS’06).Workshop on Robotic Standardization.

Page 37: Component-based Robotics Middlewarerobotics.unibg.it/tcsoft/sdir2010/slides/2010-SDIR-V-3.pdf · Component-based Robotics Middleware Software Development and Integration in Robotics

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Bibliography

Soetens, P. and Bruyninckx, H.: Realtime hybrid task-basedcontrol for robots and machine tools IEEE InternationalConference on Robotics and Automation (2005)

Radestock, M. and Eisenbach, S.: Coordination in evolvingsystems Proceedings of the International Workshop on Trendsin Distributed Systems (1996)