orocos presentation barcelona06
Post on 29-Nov-2014
14 Views
Preview:
TRANSCRIPT
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
top related