Orocos - Open Robot Control Software · 2013. 2. 28. · Orocos in one-liners Open Robot Control...

Post on 03-Oct-2020

5 views 0 download

Transcript of Orocos - Open Robot Control Software · 2013. 2. 28. · Orocos in one-liners Open Robot Control...

Flanders’MECHATRONICSTechnology Centrewww.fmtc.be

OrocosOpen Robot Control Software

Peter Soetens

Flanders’ Mechatronics Technology CentreLeuven

5 July 2006V Jornades de Programari Lliure

Barcelona

FMTC Celestijnenlaan 300 D B-3001 Leuven BelgiumTel: +32-16-32.25.90 Fax: +32-16-32.27.46 Email: info@fmtc.be FMTC 2006

Outline

1 Introduction

2 Approach

3 Results

Section Outline

1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History

2 ApproachThe Component Model

3 ResultsInteraction CategoriesExample Application

Orocos in one-liners

Open Robot Control Software⇒ Open Source ’robot’ control and interfacingReal-time Software Toolkits in C++⇒ Developer’s toolTool for developing components for control⇒ Real-time, thread-safe, interactiveOffers common component implementations⇒ Optional

Freely available on:http://www.orocos.org

Outline

1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History

2 ApproachThe Component Model

3 ResultsInteraction CategoriesExample Application

Interaction and Behaviour

Force control influences behaviour.

Interaction and Behaviour

Continuous control: tracking a light source.

Interaction and Behaviour

Continuous and discrete control: Placing a car window

Introduction

In these examples, Orocos was used todo the real-time communicationsdefine the real-time behaviour of machines in response tocommunicationcalculate real-time kinematicsaccess the hardware devicescreate components which do all this.

Introduction

In these examples, Orocos was used todo the real-time communicationsdefine the real-time behaviour of machines in response tocommunicationcalculate real-time kinematicsaccess the hardware devicescreate components which do all this.

Introduction

In these examples, Orocos was used todo the real-time communicationsdefine the real-time behaviour of machines in response tocommunicationcalculate real-time kinematicsaccess the hardware devicescreate components which do all this.

Introduction

In these examples, Orocos was used todo the real-time communicationsdefine the real-time behaviour of machines in response tocommunicationcalculate real-time kinematicsaccess the hardware devicescreate components which do all this.

Introduction

In these examples, Orocos was used todo the real-time communicationsdefine the real-time behaviour of machines in response tocommunicationcalculate real-time kinematicsaccess the hardware devicescreate components which do all this.

Outline

1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History

2 ApproachThe Component Model

3 ResultsInteraction CategoriesExample Application

What is Real-Time?

react always on time to a given event

Why Real-Time Software?

Consider solving. . .Robot or machine interaction with the environment

Without guarantees.

What use is SLAM if your mobile platform bumps intoobstacles ?What use is a camera if your manipulator crushes yourobject ?What use is controller tuning in MATLAB if the controllerfails in practice ?

⇒ They all need real-time control software !

Rapid Software Development

Consider solving. . .

More hardware⇒ Much more software

With monolithic software.New devices, sameproblems to solveMore software andfeaturesDevice connectivity andnetworking

Safe Software Development

Consider solving. . .More threads⇒ Much more trouble

With bare threads and locksas tools.

Deadlocks, thread races,data corruptionSynchronisationbetween threads ?Communication betweenthreads ?

Flexible Software Development

Consider solving. . .More layers⇒ Less control

With closed toolkits.’Solutions’ restrict thesolutionSoftware interaction ?Dead vendor products ?

Outline

1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History

2 ApproachThe Component Model

3 ResultsInteraction CategoriesExample Application

Rapid Software Development

Orocos provides . . .Middleware for Machine Control⇒ Software Component deployment and interconnection

Safe Software Development

Orocos provides . . .Tools for Communication⇒ Thread-safe and Real-Time

Flexible Software Development

Orocos is . . .Free Software⇒ Open Infrastructure with∞ lifetime

Outline

1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History

2 ApproachThe Component Model

3 ResultsInteraction CategoriesExample Application

History

2001: Started as a ‘small’ research projectFounded by Prof H. Bruynickx, KU Leuven

2001-2005: Developed during the PhD of Peter SoetensSponsored by the EU IST “Orocos”, “Ocean” and “OpenMachine Controller” projects and FMTC.

2005-. . . : Maintained by the FMTC.‘Modular Machines Group’

Section Outline

1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History

2 ApproachThe Component Model

3 ResultsInteraction CategoriesExample Application

Outline

1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History

2 ApproachThe Component Model

3 ResultsInteraction CategoriesExample Application

A Software Component Model forControl

ApproachCreate a software component for each ‘task’ within themachine

Component Definition

CommunicationDefined by thecomponent interface

MiddlewareMediates componentcommunication anddistribution

BehaviourDefined by real-timestate machines

Component Definition

CommunicationDefined by thecomponent interface

MiddlewareMediates componentcommunication anddistribution

BehaviourDefined by real-timestate machines

Component Definition

CommunicationDefined by thecomponent interface

MiddlewareMediates componentcommunication anddistribution

BehaviourDefined by real-timestate machines

Definitions

What is a Software Component ?

DefinitionA modular and replaceable part of a system that encapsulatesimplementation . . . and exposes a set of interfaces.

What is a Component Model?

DefinitionA framework for describing components . . . with the purpose forcreating software from re-usable software components.

Definitions

What is a Software Component ?

DefinitionA modular and replaceable part of a system that encapsulatesimplementation . . . and exposes a set of interfaces.

What is a Component Model?

DefinitionA framework for describing components . . . with the purpose forcreating software from re-usable software components.

What is a Component Model?

Component ModelToolkit to describeReal-Time components

ComponentsRe-usable part of anapplication

Applications‘Templates’ select andconnect Components

What is a Component Model?

Component ModelToolkit to describeReal-Time components

ComponentsRe-usable part of anapplication

Applications‘Templates’ select andconnect Components

What is a Component Model?

Component ModelToolkit to describeReal-Time components

ComponentsRe-usable part of anapplication

Applications‘Templates’ select andconnect Components

Section Outline

1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History

2 ApproachThe Component Model

3 ResultsInteraction CategoriesExample Application

Outline

1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History

2 ApproachThe Component Model

3 ResultsInteraction CategoriesExample Application

Component Interaction Patterns

In which ways can components communicate?

Configuration of parametersExchange dataCooperate to achieve a task

Component Interaction Patterns

Component Interface

Component Interface

Component Implementation

State Machine Example

Outline

1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History

2 ApproachThe Component Model

3 ResultsInteraction CategoriesExample Application

Example Application

How are these communication primitives used ?

Example Application

Application Template

Component Interface

Communication: Configuration

Configuration Flow : Properties

Communication: Data

Data Flow : Ports and Connectors

Communication: Data

Data Flow : Ports and Connectors

Communication: Execution

Execution Flow

Communication: Execution

Execution Flow: Methods

Communication: Execution

Execution Flow: Commands

Communication: Execution

Execution Flow: Events

Communication: Complete Picture

Behaviour — State Chart

Example Application Summary

The following steps lead to a control application design:identification of the ‘control tasks’→ componentsdefining each component’s interfacesetting up components connectionsdefining component or application behaviours

Outline

1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History

2 ApproachThe Component Model

3 ResultsInteraction CategoriesExample Application

The Future of Orocos

Today:Feature freeze, focus on usability:Components, API, Real-Time Tookit...Brand new Kinematics-Dynamics Library (KDL):Online this summer.Bayesian Filtering Library (BFL)http://people.mech.kuleuven.be/~kgadeyne/bfl.html

September 2006:Orocos 1.0 Release and new web-site

Afterwards;Focus on components and kinematics

Conclusion

Orocos offersa software toolkit for building real-time componentsrich online browsable component interfaceuser defined real-time state machines

Further Reference:http://www.orocos.org

Recap: Data Flow Communication

Measurement results

Measure communication times withideal ‘instant’ communicationtraditional ‘lock-based’ communication‘lock-free’ communication for all communication primitives

Measurement results

Measure communication times withideal ‘instant’ communicationtraditional ‘lock-based’ communication‘lock-free’ communication for all communication primitives

Measurement results

Measure communication times withideal ‘instant’ communicationtraditional ‘lock-based’ communication‘lock-free’ communication for all communication primitives

Measurement results

Measure communication times withideal ‘instant’ communicationtraditional ‘lock-based’ communication‘lock-free’ communication for all communication primitives

Measurement results

Measure communication times withideal ‘instant’ communicationtraditional ‘lock-based’ communication‘lock-free’ communication for all communication primitives

Ideal ‘Instant’ Communication

Measured execution latencies: high and low priority.

Ideal ‘Instant’ Communication

Measured execution latencies: lower priority.

Validation : Data Flow

0.1

1

10

100

1000

10000

100000

1e-06 1e-05 1e-04 0.001 0.01 0.1

Occ

uren

ces

Latency time ( s ). Bucket size: 5 us

0.5ms/0.1ms

0.1

1

10

100

1000

10000

100000

1e-06 1e-05 1e-04 0.001 0.01 0.1

Occ

uren

ces

Latency time ( s ). Bucket size: 5 us

0.5ms/0.1ms

Measured communication latencies: high priority locked andlock-free.

Validation : Data Flow

0.1

1

10

100

1000

10000

100000

1e-06 1e-05 1e-04 0.001 0.01 0.1

Occ

uren

ces

Latency time ( s ). Bucket size: 5 us

1ms/0.2ms

0.1

1

10

100

1000

10000

100000

1e+06

1e-06 1e-05 1e-04 0.001 0.01 0.1

Occ

uren

ces

Latency time ( s ). Bucket size: 5 us

1ms/0.2ms

Measured communication latencies: medium priority lockedand lock-free.

Validation : Data Flow

0.1

1

10

100

1000

10000

100000

1e-06 1e-05 1e-04 0.001 0.01 0.1

Occ

uren

ces

Latency time ( s ). Bucket size: 5 us

2ms/0.3ms

0.1

1

10

100

1000

10000

100000

1e-06 1e-05 1e-04 0.001 0.01 0.1

Occ

uren

ces

Latency time ( s ). Bucket size: 5 us

2ms/0.3ms

Measured communication latencies: low priority locked andlock-free.

Conclusion

Orocos offersa software toolkit for building real-time componentsrich online browsable component interfaceuser defined real-time state machines

Further Reference:http://www.orocos.org