23
Technical aspects of OpenRTM-aist Geoffrey Biggs Intelligent Systems Research Institute National Institute of Advanced Industrial Science and Technology Japan

Technical aspects of OpenRTM-aist Geoffrey Biggs Intelligent Systems Research Institute National Institute of Advanced Industrial Science and Technology

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

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

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

Summary

• OpenRTM-aist provides– Functional components– Execution specification– Communications– Configuration

• A wide range of advanced features are available