Component-based Robotics Engineering Davide Brugali, Luca Gherardi - - PowerPoint PPT Presentation

component based robotics engineering
SMART_READER_LITE
LIVE PREVIEW

Component-based Robotics Engineering Davide Brugali, Luca Gherardi - - PowerPoint PPT Presentation

Component-based Robotics Engineering Davide Brugali, Luca Gherardi Universit degli Studi di Bergamo Anchorage, AK, USA May 7, 2010 Davide Brugali, Luca Gherardi UNIVERSIT DEGLI 1 STUDI DI BERGAMO Anchorage, AK, Usa - May 7, 2010 IEEE


slide-1
SLIDE 1

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Component-based Robotics Engineering

Davide Brugali, Luca Gherardi Università degli Studi di Bergamo Anchorage, AK, USA May 7, 2010

1 Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010

slide-2
SLIDE 2

UNIVERSITÀ DEGLI STUDI DI BERGAMO

IEEE Tutorial

  • Component-based Robotics Engineering
  • Part I: Reusable building block
  • IEEE RAM, December 2009
  • Part II: Systems and Models
  • IEEE RAM, March 2010

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 2

slide-3
SLIDE 3

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Introduction

  • TODAY: A lot of robotics software are available

but often not reusable

  • They are tight to specific robot
  • GOAL: build robotic software through a

composition of reusable building blocks

  • called component
  • Solution: Component Based Software engineering

3 Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010

slide-4
SLIDE 4

UNIVERSITÀ DEGLI STUDI DI BERGAMO

What is reuse?

  • Software reuse is:
  • the practice of developing software,
  • from a stock of building blocks,
  • so that similarities in requirements and/or

architecture between applications ca be exploited,

  • to achieve substantial benefits in productivity,

quality and business performance.

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 4

slide-5
SLIDE 5

UNIVERSITÀ DEGLI STUDI DI BERGAMO

What makes a component reusable

  • Three aspects are equally important
  • Quality. The component has to be usable (reliability,

performance, efficiency,…),

  • Functionality. It should be desirable to reuse the

component (it offer a function that is needed),

  • Technique. It should be possible to reuse the component

(portability, interoperability, modularity).

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 5

slide-6
SLIDE 6

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Types of reuse

  • Horizontal component: provide functionality that can used in

totally different use cases.

  • Vertical component: provide functionality that can be used in

a specific domain.

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 6

slide-7
SLIDE 7

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Component-Based System

  • Component: a unit of composition with contractually specified

interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third part.

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 7

slide-8
SLIDE 8

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Component

  • Separation of specification and implementation

8 Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010

Component Functional Specification Provided Interface Required Interface Contract

1..* 1..* 1..*

Component Implementation

* 1 *

Object

1 *

Class

1 * instance

slide-9
SLIDE 9

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Component Specification

  • Interface design concept
  • Provided/Required
  • Service/Data
  • Strongly-typed/Loosely-typed
  • Stateful/Stateless
  • Minimal/Complete
  • Contract

9 Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010

slide-10
SLIDE 10

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Implementation example

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 10

slide-11
SLIDE 11

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Component framework

  • A skeleton of a component

implementation that can be specialized by a component developer to produce custom component.

  • Stable point
  • Variation point
  • Variant
  • Life span

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 11

slide-12
SLIDE 12

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Implementing variability

  • Classification according to binding time
  • Compile time, Link time, Run time
  • Technologies
  • Inheritance and extension
  • Aggregation and delegation
  • Parameterization
  • Conditional compilation
  • Dynamic Link Libraries
  • Reflection

12 Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010

slide-13
SLIDE 13

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Refactoring

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 13

  • A technique that aims to restructure a set of existing software

libraries without affecting their external behavior in order to harmonize their architecture, data structures, and APIs.

slide-14
SLIDE 14

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Path planner component-framework

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 14

slide-15
SLIDE 15

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Motion planning Component-based system

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 15

slide-16
SLIDE 16

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Separation of functional and extra-functional requirements

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 16

Component Functional Specification Provided Interface Required Interface Contract

1..* 1..* 1..*

Component Implementation

* 1 *

Object

1 *

Class

1 * instance

Component Extra-Functional Specification Computation Configuration

1..* 1..*

Container

* 1 * 1 *

Resource Service Port

*

slide-17
SLIDE 17

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Computation

  • Is concerned with the data processing

algorithms

  • Data transformation -> data flow design
  • Control transformation -> control flow design
  • Different levels of concurrency's granularity
  • Fine grain
  • Medium grain
  • Large grain

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 17

slide-18
SLIDE 18

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Granularity of control transformation

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 18

slide-19
SLIDE 19

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Components Assembly

n sequential Components + m service Components + 1 container Component = Component Assembly

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 19

slide-20
SLIDE 20

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Separation of functional and extra-functional requirements

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 20

Component Functional Specification Provided Interface Required Interface Contract

1..* 1..* 1..*

Component Implementation

* 1 *

Object

1 *

Class

1 * instance

Component Extra-Functional Specification Computation Configuration

1..* 1..*

Container

* 1 * 1 *

Resource Service Port

*

slide-21
SLIDE 21

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Configuration

  • Determines which system components should

exist, and how they are inter-connected

  • A configuration is described in term of
  • Components
  • Connection between component
  • Connectors: architectural building blocks used to

model interactions among components and rules that govern those interactions

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 21

slide-22
SLIDE 22

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Quality of Service

  • QoS depends on implementation, availability
  • f resources and environment

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 22

slide-23
SLIDE 23

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Separation of component and system requirements

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 23

Component Functional Specification Provided Interface Required Interface Contract

1..* 1..* 1..*

Component Implementation

* 1 *

Object

1 *

Class

1 * instance

Component Extra-Functional Specification Computation Configuration

1..* 1..*

Container

* 1 * 1 *

Resource Service Port System Specification Communication Coordination

1..* 1..* * 1 *

System Connector E2E QoS Connections

1 *

slide-24
SLIDE 24

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Communication

  • Deal with the exchange of data
  • Two types of communication
  • Imperative: caller/provider mechanism
  • Reactive: broadcaster/listener mechanism
  • Visibility implies dependencies and influence

reusability of components.

  • Three dimensions of decoupling
  • Space / Time / Synchronization decoupling

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 24

slide-25
SLIDE 25

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Decoupling degree between component

  • Three dimensions of decoupling
  • Space decoupling
  • Time decoupling
  • Synchronization decoupling
  • Communication paradigm influence the

decoupling degree

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 25

slide-26
SLIDE 26

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Communication paradigm

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 26

  • Communication paradigm influence the decoupling degree
  • Remote method invocation
  • Publish/Subscribe
slide-27
SLIDE 27

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Coordination

  • Is concerned with the interaction of the

various system components

  • Coordination language & models
  • Data-driven
  • Control-driven

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 27

slide-28
SLIDE 28

UNIVERSITÀ DEGLI STUDI DI BERGAMO

Interaction between components

Davide Brugali, Luca Gherardi Anchorage, AK, Usa - May 7, 2010 28