Component-based Robotics Middleware Software Development and - - PowerPoint PPT Presentation

component based robotics middleware
SMART_READER_LITE
LIVE PREVIEW

Component-based Robotics Middleware Software Development and - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

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 nico.hochgeschwender@h-brs.de azamat.shakhimardanov@h-brs.de

May 8, 2010

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

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?

slide-7
SLIDE 7

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

functionality)

2 Drivers and algorithms (DA) 3 Communication middleware (CM)

Note: RSF = CM

aMakarenko, 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).

slide-8
SLIDE 8

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Motivation

’Zoo’ of the terminology:

slide-9
SLIDE 9

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

slide-10
SLIDE 10

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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)

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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 deal with this concerns

slide-13
SLIDE 13

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Requirements

Computation: Computation is concerned with the data processing algorithms required by an applicationa.

aRadestock, 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.

slide-14
SLIDE 14

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

slide-15
SLIDE 15

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

slide-16
SLIDE 16

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Requirements

Coordination: Coordination is concerned with the interaction of the various system componentsa.

aRadestock, 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.

slide-17
SLIDE 17

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case

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

slide-18
SLIDE 18

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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

slide-19
SLIDE 19

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 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();

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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 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( ... ));

slide-22
SLIDE 22

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 explicit process Orocos shared-object explicit executed as a thread ...

slide-23
SLIDE 23

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 particular change occurs (asynchronous). Data Ports: Are used to communicate data (asynchronous).

slide-24
SLIDE 24

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

slide-25
SLIDE 25

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Realization of the Use Case: Communication

Communication in summary: CRM two-way

  • ne-way

ROS

  • Orocos
  • Orca2
  • ...

Coarse-grained versus fine-grained means of communication Be aware of the framework-specific paradigm

slide-26
SLIDE 26

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 configured before laser-scans are retrievable. Spotlight: ROS Parameter Server provides a ’globally’ viewable dictionary

  • f key-value pairs
slide-27
SLIDE 27

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 configured before laser-scans are retrievable. Spotlight: ROS Parameter Server provides a ’globally’ viewable dictionary

  • f key-value pairs
slide-28
SLIDE 28

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 which host

slide-29
SLIDE 29

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 configured before laser-scans are retrievable. Spotlight: Orocos Set, get, and load configuration value(s) through: Attributes (at run-time) Properties (persistent)

slide-30
SLIDE 30

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

slide-31
SLIDE 31

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-RPC OS X self-made Orca2 Linux ICE Orocos Linux CORBA OPRoS Linux CORBA OpenRTM-aist Linux CORBA Windows OS X

slide-32
SLIDE 32

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

slide-33
SLIDE 33

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/

slide-34
SLIDE 34

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

slide-35
SLIDE 35

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

Conclusion and Discussion Thank you! Questions?

slide-36
SLIDE 36

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

  • f 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.

slide-37
SLIDE 37

Motivation Use Case Component-based Robotics Middleware Conclusion and Discussion

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)