Download - Orocos Presentation Barcelona06
![Page 1: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/1.jpg)
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: [email protected] FMTC 2006
![Page 2: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/2.jpg)
Outline
1 Introduction
2 Approach
3 Results
![Page 3: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/3.jpg)
Section Outline
1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History
2 ApproachThe Component Model
3 ResultsInteraction CategoriesExample Application
![Page 4: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/4.jpg)
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
![Page 5: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/5.jpg)
Outline
1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History
2 ApproachThe Component Model
3 ResultsInteraction CategoriesExample Application
![Page 6: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/6.jpg)
Interaction and Behaviour
Force control influences behaviour.
![Page 7: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/7.jpg)
Interaction and Behaviour
Continuous control: tracking a light source.
![Page 8: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/8.jpg)
Interaction and Behaviour
Continuous and discrete control: Placing a car window
![Page 9: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/9.jpg)
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.
![Page 10: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/10.jpg)
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.
![Page 11: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/11.jpg)
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.
![Page 12: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/12.jpg)
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.
![Page 13: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/13.jpg)
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.
![Page 14: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/14.jpg)
Outline
1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History
2 ApproachThe Component Model
3 ResultsInteraction CategoriesExample Application
![Page 15: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/15.jpg)
What is Real-Time?
react always on time to a given event
![Page 16: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/16.jpg)
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 !
![Page 17: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/17.jpg)
Rapid Software Development
Consider solving. . .
More hardware⇒ Much more software
With monolithic software.New devices, sameproblems to solveMore software andfeaturesDevice connectivity andnetworking
![Page 18: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/18.jpg)
Safe Software Development
Consider solving. . .More threads⇒ Much more trouble
With bare threads and locksas tools.
Deadlocks, thread races,data corruptionSynchronisationbetween threads ?Communication betweenthreads ?
![Page 19: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/19.jpg)
Flexible Software Development
Consider solving. . .More layers⇒ Less control
With closed toolkits.’Solutions’ restrict thesolutionSoftware interaction ?Dead vendor products ?
![Page 20: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/20.jpg)
Outline
1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History
2 ApproachThe Component Model
3 ResultsInteraction CategoriesExample Application
![Page 21: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/21.jpg)
Rapid Software Development
Orocos provides . . .Middleware for Machine Control⇒ Software Component deployment and interconnection
![Page 22: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/22.jpg)
Safe Software Development
Orocos provides . . .Tools for Communication⇒ Thread-safe and Real-Time
![Page 23: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/23.jpg)
Flexible Software Development
Orocos is . . .Free Software⇒ Open Infrastructure with∞ lifetime
![Page 24: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/24.jpg)
Outline
1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History
2 ApproachThe Component Model
3 ResultsInteraction CategoriesExample Application
![Page 25: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/25.jpg)
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’
![Page 26: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/26.jpg)
Section Outline
1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History
2 ApproachThe Component Model
3 ResultsInteraction CategoriesExample Application
![Page 27: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/27.jpg)
Outline
1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History
2 ApproachThe Component Model
3 ResultsInteraction CategoriesExample Application
![Page 28: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/28.jpg)
A Software Component Model forControl
ApproachCreate a software component for each ‘task’ within themachine
![Page 29: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/29.jpg)
Component Definition
CommunicationDefined by thecomponent interface
MiddlewareMediates componentcommunication anddistribution
BehaviourDefined by real-timestate machines
![Page 30: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/30.jpg)
Component Definition
CommunicationDefined by thecomponent interface
MiddlewareMediates componentcommunication anddistribution
BehaviourDefined by real-timestate machines
![Page 31: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/31.jpg)
Component Definition
CommunicationDefined by thecomponent interface
MiddlewareMediates componentcommunication anddistribution
BehaviourDefined by real-timestate machines
![Page 32: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/32.jpg)
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.
![Page 33: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/33.jpg)
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.
![Page 34: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/34.jpg)
What is a Component Model?
Component ModelToolkit to describeReal-Time components
ComponentsRe-usable part of anapplication
Applications‘Templates’ select andconnect Components
![Page 35: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/35.jpg)
What is a Component Model?
Component ModelToolkit to describeReal-Time components
ComponentsRe-usable part of anapplication
Applications‘Templates’ select andconnect Components
![Page 36: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/36.jpg)
What is a Component Model?
Component ModelToolkit to describeReal-Time components
ComponentsRe-usable part of anapplication
Applications‘Templates’ select andconnect Components
![Page 37: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/37.jpg)
Section Outline
1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History
2 ApproachThe Component Model
3 ResultsInteraction CategoriesExample Application
![Page 38: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/38.jpg)
Outline
1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History
2 ApproachThe Component Model
3 ResultsInteraction CategoriesExample Application
![Page 39: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/39.jpg)
Component Interaction Patterns
In which ways can components communicate?
Configuration of parametersExchange dataCooperate to achieve a task
![Page 40: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/40.jpg)
Component Interaction Patterns
![Page 41: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/41.jpg)
Component Interface
![Page 42: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/42.jpg)
Component Interface
![Page 43: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/43.jpg)
Component Implementation
![Page 44: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/44.jpg)
State Machine Example
![Page 45: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/45.jpg)
Outline
1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History
2 ApproachThe Component Model
3 ResultsInteraction CategoriesExample Application
![Page 46: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/46.jpg)
Example Application
How are these communication primitives used ?
![Page 47: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/47.jpg)
Example Application
![Page 48: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/48.jpg)
Application Template
![Page 49: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/49.jpg)
Component Interface
![Page 50: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/50.jpg)
Communication: Configuration
Configuration Flow : Properties
![Page 51: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/51.jpg)
Communication: Data
Data Flow : Ports and Connectors
![Page 52: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/52.jpg)
Communication: Data
Data Flow : Ports and Connectors
![Page 53: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/53.jpg)
Communication: Execution
Execution Flow
![Page 54: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/54.jpg)
Communication: Execution
Execution Flow: Methods
![Page 55: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/55.jpg)
Communication: Execution
Execution Flow: Commands
![Page 56: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/56.jpg)
Communication: Execution
Execution Flow: Events
![Page 57: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/57.jpg)
Communication: Complete Picture
![Page 58: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/58.jpg)
Behaviour — State Chart
![Page 59: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/59.jpg)
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
![Page 60: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/60.jpg)
Outline
1 IntroductionExamplesChallengesOrocos’ SolutionOrocos History
2 ApproachThe Component Model
3 ResultsInteraction CategoriesExample Application
![Page 61: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/61.jpg)
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
![Page 62: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/62.jpg)
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
![Page 63: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/63.jpg)
Recap: Data Flow Communication
![Page 64: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/64.jpg)
Measurement results
Measure communication times withideal ‘instant’ communicationtraditional ‘lock-based’ communication‘lock-free’ communication for all communication primitives
![Page 65: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/65.jpg)
Measurement results
Measure communication times withideal ‘instant’ communicationtraditional ‘lock-based’ communication‘lock-free’ communication for all communication primitives
![Page 66: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/66.jpg)
Measurement results
Measure communication times withideal ‘instant’ communicationtraditional ‘lock-based’ communication‘lock-free’ communication for all communication primitives
![Page 67: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/67.jpg)
Measurement results
Measure communication times withideal ‘instant’ communicationtraditional ‘lock-based’ communication‘lock-free’ communication for all communication primitives
![Page 68: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/68.jpg)
Measurement results
Measure communication times withideal ‘instant’ communicationtraditional ‘lock-based’ communication‘lock-free’ communication for all communication primitives
![Page 69: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/69.jpg)
Ideal ‘Instant’ Communication
Measured execution latencies: high and low priority.
![Page 70: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/70.jpg)
Ideal ‘Instant’ Communication
Measured execution latencies: lower priority.
![Page 71: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/71.jpg)
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.
![Page 72: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/72.jpg)
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.
![Page 73: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/73.jpg)
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.
![Page 74: Orocos Presentation Barcelona06](https://reader033.vdocuments.site/reader033/viewer/2022051817/547f0159b37959532b8b560e/html5/thumbnails/74.jpg)
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