slides - RoboHow

advertisement
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
S D O In te rfa c e s
R T C In te rfa c e s
R T C E x In te rfa c e s
R T C o m p o n e n t S e rv ic e
RTC S C onsum er
RTCom ponent
S e rv ic e
Service ports
S e rv ic e
C onsum er
P ro xy
p ro v id e
C onsum er
P ro xy
A c tiv ity
p ro v id e
use
S ta t e Mof
a c hRT
i n e component
Architecture
In P o rt 0
O u tP o rt0
B u ff e r
B u ff e r
In P o rt n
put
Data ports
get
B u ff e r
O utP o rt n
B u ff e r
r e p ly
In P o rt
g e t, s u b s c r ib e
put
r e p ly
push
O utP o rt
RT-Components
• Known life-cycle state
– Can be activated and deactivated
Arm component
Device
Initialization
Init
Servo
off
Inactive
Active
Error
Servo
on
Emergency
Stop
RT-Components
• Components
implemented as
classes
• Callback
functions for each
FSM step
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
Component A
Activity
Activity
data
data
processing
buffer
Data Port
buffer
processing
Service ports
• Remote procedure
call ports
• Ports provide and
consumer interfaces
• Interfaces specified in
IDL
• Implemented in
CORBA
Service Consumer
Service Provider
Component A
Component B
Activity
Service
Proxy
Operation
invocation
Service Port
Service
Implementation
Entity
Actual processing
isperformed here
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
PID Controller
Kp
limiter
-
Ki
s
+
Kds
PID Controller Comp.
modeA
name
value
Kp
Ki
0.6
modeB
name
value
modeC
name
value
Kd
Inmax
Inmin
0.01 0.4
5.0
-5.0
Kp
Ki
Kd
Inmax
Inmin
0.8
0.0
0.01 10.0 -10.0
Kp
Ki
Kd
0.3
0.1
0.31 1.0
Inmax
Inmin
-1.0
PID gains and limiter parameters can be switched
according 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 realtime 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
•
parameter
Meta-data
– RTC’s specification
•
Introspection
–
–
–
–
–
–
•
Name, type
Port (number, kind)
Interface information
Properties
Parameter
Execution context
For dynamic reconfiguration of
systems
A
B
C
name
value
port0
port4
D
port1
port5
E
port2
port6
Periodic実行
port3
port7
ExecutionContext
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)
C/C++
• No wrappers, maximum efficiency
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
Summary
• OpenRTM-aist provides
– Functional components
– Execution specification
– Communications
– Configuration
• A wide range of advanced features are
available
Download