Sei sulla pagina 1di 74

Flanders MECHATRONICS Technology Centre www.fmtc.

be

Orocos
Open Robot Control Software

Peter Soetens
Flanders Mechatronics Technology Centre Leuven

5 July 2006 V Jornades de Programari Lliure Barcelona

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

FMTC 2006

Outline

Introduction Approach Results

Section Outline
Introduction Examples Challenges Orocos Solution Orocos History Approach The Component Model Results Interaction Categories Example Application

Orocos in one-liners

Open Robot Control Software Open Source robot control and interfacing Real-time Software Toolkits in C++ Developers tool Tool for developing components for control Real-time, thread-safe, interactive Offers common component implementations Optional Freely available on: http://www.orocos.org

Outline
Introduction Examples Challenges Orocos Solution Orocos History Approach The Component Model Results Interaction Categories Example Application

Interaction and Behaviour

Force control inuences 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 to do the real-time communications dene the real-time behaviour of machines in response to communication calculate real-time kinematics access the hardware devices create components which do all this.

Introduction

In these examples, Orocos was used to do the real-time communications dene the real-time behaviour of machines in response to communication calculate real-time kinematics access the hardware devices create components which do all this.

Introduction

In these examples, Orocos was used to do the real-time communications dene the real-time behaviour of machines in response to communication calculate real-time kinematics access the hardware devices create components which do all this.

Introduction

In these examples, Orocos was used to do the real-time communications dene the real-time behaviour of machines in response to communication calculate real-time kinematics access the hardware devices create components which do all this.

Introduction

In these examples, Orocos was used to do the real-time communications dene the real-time behaviour of machines in response to communication calculate real-time kinematics access the hardware devices create components which do all this.

Outline
Introduction Examples Challenges Orocos Solution Orocos History Approach The Component Model Results Interaction Categories Example 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 into obstacles ? What use is a camera if your manipulator crushes your object ? What use is controller tuning in MATLAB if the controller fails in practice ? They all need real-time control software !

Rapid Software Development

Consider solving. . . More hardware Much more software With monolithic software. New devices, same problems to solve More software and features Device connectivity and networking

Safe Software Development

Consider solving. . . More threads Much more trouble With bare threads and locks as tools. Deadlocks, thread races, data corruption Synchronisation between threads ? Communication between threads ?

Flexible Software Development

Consider solving. . . More layers Less control With closed toolkits. Solutions restrict the solution Software interaction ? Dead vendor products ?

Outline
Introduction Examples Challenges Orocos Solution Orocos History Approach The Component Model Results Interaction Categories Example 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
Introduction Examples Challenges Orocos Solution Orocos History Approach The Component Model Results Interaction Categories Example Application

History

2001: Started as a small research project


Founded by Prof H. Bruynickx, KU Leuven

2001-2005: Developed during the PhD of Peter Soetens


Sponsored by the EU IST Orocos, Ocean and Open Machine Controller projects and FMTC.

2005-. . . : Maintained by the FMTC.


Modular Machines Group

Section Outline
Introduction Examples Challenges Orocos Solution Orocos History Approach The Component Model Results Interaction Categories Example Application

Outline
Introduction Examples Challenges Orocos Solution Orocos History Approach The Component Model Results Interaction Categories Example Application

A Software Component Model for Control


Approach Create a software component for each task within the machine

Component Denition

Communication Dened by the component interface Middleware Mediates component communication and distribution Behaviour Dened by real-time state machines

Component Denition

Communication Dened by the component interface Middleware Mediates component communication and distribution Behaviour Dened by real-time state machines

Component Denition

Communication Dened by the component interface Middleware Mediates component communication and distribution Behaviour Dened by real-time state machines

Denitions
What is a Software Component ? Denition A modular and replaceable part of a system that encapsulates implementation . . . and exposes a set of interfaces.

What is a Component Model? Denition A framework for describing components . . . with the purpose for creating software from re-usable software components.

Denitions
What is a Software Component ? Denition A modular and replaceable part of a system that encapsulates implementation . . . and exposes a set of interfaces.

What is a Component Model? Denition A framework for describing components . . . with the purpose for creating software from re-usable software components.

What is a Component Model?

Component Model Toolkit to describe Real-Time components Components Re-usable part of an application Applications Templates select and connect Components

What is a Component Model?

Component Model Toolkit to describe Real-Time components Components Re-usable part of an application Applications Templates select and connect Components

What is a Component Model?

Component Model Toolkit to describe Real-Time components Components Re-usable part of an application Applications Templates select and connect Components

Section Outline
Introduction Examples Challenges Orocos Solution Orocos History Approach The Component Model Results Interaction Categories Example Application

Outline
Introduction Examples Challenges Orocos Solution Orocos History Approach The Component Model Results Interaction Categories Example Application

Component Interaction Patterns

In which ways can components communicate? Conguration of parameters Exchange data Cooperate to achieve a task

Component Interaction Patterns

Component Interface

Component Interface

Component Implementation

State Machine Example

Outline
Introduction Examples Challenges Orocos Solution Orocos History Approach The Component Model Results Interaction Categories Example Application

Example Application

How are these communication primitives used ?

Example Application

Application Template

Component Interface

Communication: Conguration

Conguration 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: identication of the control tasks components dening each components interface setting up components connections dening component or application behaviours

Outline
Introduction Examples Challenges Orocos Solution Orocos History Approach The Component Model Results Interaction Categories Example 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 offers a software toolkit for building real-time components rich online browsable component interface user dened real-time state machines Further Reference: http://www.orocos.org

Recap: Data Flow Communication

Measurement results
Measure communication times with ideal instant communication traditional lock-based communication lock-free communication for all communication primitives

Measurement results
Measure communication times with ideal instant communication traditional lock-based communication lock-free communication for all communication primitives

Measurement results
Measure communication times with ideal instant communication traditional lock-based communication lock-free communication for all communication primitives

Measurement results
Measure communication times with ideal instant communication traditional lock-based communication lock-free communication for all communication primitives

Measurement results
Measure communication times with ideal instant communication traditional 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


100000 10000 Occurences 1000 100 10 1 0.1 1e-06 100000 10000 Occurences 1000 100 10 1 0.1 1e-06 1e-05 1e-04 0.001 0.01 0.1 1e-05 1e-04 0.001 0.01 0.1 0.5ms/0.1ms

Latency time ( s ). Bucket size: 5 us 0.5ms/0.1ms

Latency time ( s ). Bucket size: 5 us

Measured communication latencies: high priority locked and lock-free.

Validation : Data Flow


100000 10000 Occurences 1000 100 10 1 0.1 1e-06 1e+06 100000 Occurences 10000 1000 100 10 1 0.1 1e-06 1e-05 1e-04 0.001 0.01 0.1 1e-05 1e-04 0.001 0.01 0.1 1ms/0.2ms

Latency time ( s ). Bucket size: 5 us 1ms/0.2ms

Latency time ( s ). Bucket size: 5 us

Measured communication latencies: medium priority locked and lock-free.

Validation : Data Flow


100000 10000 Occurences 1000 100 10 1 0.1 1e-06 100000 10000 Occurences 1000 100 10 1 0.1 1e-06 1e-05 1e-04 0.001 0.01 0.1 1e-05 1e-04 0.001 0.01 0.1 2ms/0.3ms

Latency time ( s ). Bucket size: 5 us 2ms/0.3ms

Latency time ( s ). Bucket size: 5 us

Measured communication latencies: low priority locked and lock-free.

Conclusion

Orocos offers a software toolkit for building real-time components rich online browsable component interface user dened real-time state machines Further Reference: http://www.orocos.org

Potrebbero piacerti anche