Upload
james-flowers
View
216
Download
2
Tags:
Embed Size (px)
Citation preview
Technical aspects of OpenRTM-aist
Geoffrey Biggs
Intelligent Systems Research Institute
National Institute of Advanced Industrial Science and Technology
Japan
Concept overview
• Robot Technology Component model
• Separation of concerns:– Functional specification
(RTCs)– Execution (ECs)– Communication (ports)– Configuration
• Extensible through SDO interface
Concept overview
• Wide range of advanced features– Dynamic wiring– Real-time support– Component composition– Component managers– Language and communication middleware
independence
RT-Components
• Functional block• Ports provide communication points• ECs provide execution time
Architecture of RT component
A c t iv i t y
R T C o m p o n e n t
R T C o m p o n e n t S e rv ic e
S D O In te r fa c e s R T C In te r fa c e s R T C E x In te r fa c e s
O u tP o r tIn P o r t
R T C S C o n s u m e r
In P o r t 0
In P o r t n O u tP o r t n
O u tP o r t0
S e rv ic e
S e rv ic e
re p ly
p u s hp u t
g e t , s u b s c r ib e
B u ffe r B u ffe r
B u ffe rB u ffe r
C o n s u m e r
P ro xy
C o n s u m e r
P ro xy
re p ly
g e tp u t
u se p ro v id ep ro v id e
S ta te M a c h in e
Service ports
Data ports
RT-Components
• Known life-cycle state– Can be activated and deactivated
Inactive Active
Error
Init
DeviceInitialization
Servooff
Servoon
EmergencyStop
Arm component
Execution contexts
• A container for RTCs to execute in• Provide contained RTCs with execution
time according to the EC type
Execution contexts
• Several types provided by OpenRTM– Easy to implement new ECs to meet your own
needs• Periodic (including real-time)
• Externally-triggered (including logical clock support)
Data ports
• One-way data flow between components
• Points-to-points or topic-based
• Transfer data using CORBA
• Serialisation provided by CDR
• Data types specified in IDL
Component B
Activity Activity
Component A
buffer buffer
Data Port
data dataprocessing
processing
Service ports
• Remote procedure call ports
• Ports provide and consumer interfaces
• Interfaces specified in IDL
• Implemented in CORBA
Component B
Activity
Component A
ServiceProxy
ServiceImplementation
Entity
Actual processingisperformed here
Service Port
Service Consumer
Operationinvocation
Service Provider
Configuration
• RTCs provide configuration parameters
• Parameters can be set at launch (from a file) or run-time (through tools)
• Multiple configuration sets can be used to change all parameters at once
Configuration
Kp Ki Kd Inmax Inmin
0.6 0.01 0.4 5.0 -5.0name
valuemodeA
PID Controller
Kp Ki Kd Inmax Inmin
0.8 0.0 0.01 10.0 -10.0name
valuemodeB
Kp Ki Kd Inmax Inmin
0.3 0.1 0.31 1.0 -1.0name
valuemodeC
Ki s
Kds
+-
Kp
PID Controller Comp.
limiter
PID gains and limiter parameters can be switchedaccording to controlled plants or modes.Parameters can be switched any time.
Advanced features
• OpenRTM provides a wide range of advanced features– Not just a nice way to organise callbacks
Real-time support
• Real-time execution context provides real-time guarantees to RTC execution– ARTLinux– Rt-preempt
• DDS support provides real-time communication guarantees
Notification system
• Extensive callback-based notifications system
• RTCs notified on relevant events– New data at a port, configuration change,
lifecycle state change, …• External entities can also be notified
– Register callbacks using an SDO interface– Used by tools to monitor the system without
polling
Dynamic wiring
• Connections can be changed at run-time– GUI tool– Console tool
• Good for Rapid Application Development
Composite components
• Compose components to form black-box systems– Inside a composite
component is a complete RT-System
• GUI tool supports compositions
Component managers
• Components and execution contexts organised into managers– Multiple execution
contexts in a single process
• Managers provide additional services– Logging– Component look-up
Model-based systems
• RTC component model• RTS system model• Build components and systems with
graphical tools• Deploy using console or graphical tools
RTC meta-data• Meta-data
– RTC’s specification• Introspection
– Name, type– Port (number, kind)– Interface information– Properties– Parameter– Execution context
• For dynamic reconfiguration of systems
port0
port1
port2
port3
port4
port5
port6
port7Periodic 実行
name
valueparameter
ExecutionContext
A
BC
D
E
Name MyManipulator0
Type Periodic execution type
port0 Provide: A, Required: B
port1 Provide: C
Port2 DataPort: InPort, velocity, float x6
Port3 DataPort: InPort, position, float x6
Port4 Provide: D
Port5 Required: E
Port6 DataPort: OutPort, status int x1
Port7 DataPort: OutPort, velocity, float x6
ExecutionContext Period: 10ms
Parameter gain0(float x6), flag(int x1), dev_file(string)
Language independence
• Native implementations in multiple languages (use logos)
• No wrappers, maximum efficiency
C/C++
Middleware independence
• CORBA isn’t the only way to send data– CORBA for RTC
interfaces and CORBA for data ports are completely separate
• Data Distribution Service (DDS)
• ICE• ROSTCP• Plain old TCP