Robotic Component Specification (RTC)

22
Robotic Component Specification (RTC) Noriaki Ando, Geoffrey Biggs, Tetsuo Kotoku National Institute of Advanced Industrial Science and Technology (AIST)

Transcript of Robotic Component Specification (RTC)

Page 1: Robotic Component Specification (RTC)

Robotic Component Specification (RTC)

Noriaki Ando, Geoffrey Biggs, Tetsuo KotokuNational Institute of Advanced Industrial Science and Technology (AIST)

Page 2: Robotic Component Specification (RTC)

• RT = Robot Technology cf. IT– not only standalone robots, but also robotic elements

(sensors, actuators, etc….)

• RT-Middleware– middleware and platform for RT-element integration

• RT-Component– basic software unit in RT-Middleware

RT-Middleware

+ + + + +

What is RT?

RT-Middleware developed by AIST

OpenRTM-aist

Page 3: Robotic Component Specification (RTC)

Outline

• RTC Specification– Overview– Implementations

• OpenRTM-aist• RTMSafety

– Specification VnV• Summary

3

Page 4: Robotic Component Specification (RTC)

Robotics DTF• Founded in 2004 as a SIG• Promoted to DTF in 2005• Current active member

– AIST, ATR, ETRI, Honda R&D, JARA, Univ. (SIT, UEC, Tsukuba)

• Web: http://robotics.omg.org

• Specifications– Robotic Technology

Component Specification (RTC), with MARS PTF

– Robot Localization Specification (RLS)

– Robot Interaction Specification (RoIS)

• In progress– Dynamic Deployment and

Configuration for RTC (DDC4RTC), FTF

– Finite State Machine for RTC (FSM4RTC), reviewing RFP

4

Page 5: Robotic Component Specification (RTC)

5

OMG RTC Specification• Atlanta meeting (2005.9)

– RFP (Request For Proposal) : Robot Technology Components (RTCs) issued

• Burlingame meeting (2005.12)– Robotics DTF started

• Tampa meeting (2006.2)– Response : PIM and PSM for RT-

Component submitted– Submitter:AIST、RTI

• Sent Louis meeting (2006.4)– Proposals were merged and re-

submitted• Boston meeting (2006.6)

– RTC Spec. was submitted to AB (rejected).

• Anaheim meeting (2006.9)– RTC Spec. was submitted to AB

(approved).– FTF organized

• Jacksonville meeting (2007.9)– FTF report was approved

• Officially available formal-08-04-04 (2008.4)

• Version 1.1 formal/12-09-01 (2012.9)

Page 6: Robotic Component Specification (RTC)

6

Features of RTC

• Provides rich component lifecycle to enforce state coherency among components

• Defines data structures for describing components and other elements

• Supports fundamental design patterns– Collaboration of fine-grained components tightly

coupled in time (e.g. Simulink)– Stimulus response with finite state machines– Dynamic composition of components collaborating

synchronously or asynchronously

Page 7: Robotic Component Specification (RTC)

7

RTC Specificationformal/12-09-01

pd RTC Packages

«profile»RTC

(from Robotic Technology Components)

Execution Semantics Introspection

Lightweight RTC

SDOPackage

(from External Models)

• Specification consists of 3 packages:

– Lightweight RTC– Execution

Semantics– Introspection

Page 8: Robotic Component Specification (RTC)

8

pd RTC Packages

«profile»RTC

(from Robotic Technology Components)

Execution Semantics Introspection

Lightweight RTC

SDOPackage

(from External Models)

PIM Overview: Lightweight RTC

• Lightweight RTC– Stereotypes and

constraints for components, ports, and connectors

– Component lifecycle– Baseline support for

component execution: EC– No reflection or

introspection for dynamic system construction

– Mainly used for static component

component

port

state machine

Page 9: Robotic Component Specification (RTC)

9

pd RTC Packages

«profile»RTC

(from Robotic Technology Components)

Execution Semantics Introspection

Lightweight RTC

SDOPackage

(from External Models)

PIM Overview: Execution

• Execution Semantics– Provides behavioral

design patterns commonly used in robotic and control systems

1. Periodic synchronous execution (“data flow”)

2. Stimulus response/event-driven execution (FSMs)

3. Multi-modal behaviorData flow

FSMrequestresponse

Multi Mode

Page 10: Robotic Component Specification (RTC)

10

pd RTC Packages

«profile»RTC

(from Robotic Technology Components)

Execution Semantics Introspection

Lightweight RTC

SDOPackage

(from External Models)

PIM Overview: Introspection

• Introspection– Query and modify

component properties and connections at runtime

– Based on Super-Distributed Objects (SDO)

– Mainly used for dynamic component system integration

component

port

state machine

RTC SDO

Page 11: Robotic Component Specification (RTC)

11

PSM (Platform-Specific Models)• CORBA IDL

– CORBA 2.x compliant IDL is provided. • Lightweight CORBA Component Model

– Distributed CORBA-based components.• Local components

– Low-overhead communication in a single process.

– C++ mapping is provided.

Other PSM can be defined and implemented if you want

Page 12: Robotic Component Specification (RTC)

OMG RTC families

12

Name Vendor FeatureOpenRTM-aist AIST C++, Python, Java

OpenRTM.NET SEC .NET(C#,VB,C++/CLI, F#, etc..

RTM for VxWorks SEC OpenRTM-aist port to VxWorks

RTM for TOPPERS AIST OpenRTM-aist port to uITRON embedded OS

RTM for T-Kernel NEC software OpenRTM-aist port to T-Kernel embedded OS

miniRTC, microRTC SEC RTC for embedded system with CAN

RTC CANOpen SIT, CIA Based on CANOpen standard and RTC standard

PALRO Fujisoft C++ PSM impl. for small humanoid robot

OPRoS ETRI Korean national project

GostaiRTC GOSTAI,THALES Based on C++ PSM running on URBI

H-RTM (Tentative name) Honda R&D Compatible with OpenRTM, with FSM type RTC

Implementation diversity by same specification• guarantees continuity of products• makes easy to bridge between implementations

Page 13: Robotic Component Specification (RTC)

OMG Standards and OpenRTM-aist<<PIM>>RTCSpecification

PSM in other platformsStandard

Impl. By AIST

Extendedspecification

Impl

PIM

Impl. By other vendor

<<mapping>>

<<use>>

<<implements>>

<<PSM>>RTCCORBA PSM

<<PIM>>SDOSpecification

<<type>>OpenRTM-aistBasic types

OpenRTM-aistOther RTM

<<interface>>OpenRTM-aistExt. interface

PSM

Additional specificationand extended interfacesrequired to actual implementations

<<PSM>>RTCCCM PSM

<<PSM>>RTCLocal PSM

OpenRTM-aist’s design policy

Component developer never touch IDL (except service port)

Page 14: Robotic Component Specification (RTC)

Applications

14

HRP-4: Kawada/AIST

DAQ-Middleware: KEK/J-PARCKEK: High Energy Accelerator Research OrganizationJ-PARC: Japan Proton Accelerator Research Complex

HRP-4C: Kawada/AISTTAIZOU: General Robotics Inc. HIRO: Kawada/GRX

Page 15: Robotic Component Specification (RTC)

SDO Interfaces RTC Interfaces

Activity

RT-Component

InPort

InPort OutPort

OutPort

Buffer Buffer

BufferBuffer

Provider

ProviderProvider

ProvideRequire, consume

Service portsService ports

Receive

read write

Transmit

Data portsData ports

Inactive Active

Error

Created State machine

use

Interfaces to obtain metadata, state, configuration etc.

Consumer

Consumer Consumer

Execution contextExecution

OpenRTM-aist’s RTC Architecture

Page 16: Robotic Component Specification (RTC)

Inactive Active

Error

Life cycle management, core logic execution

Common state machine

Sensor RTC

Composite executionReal-time execution

Controller RTC

Actuator RTCEncoder

component

ActuatorComponent

ControllerComponent

1TI sTDs

Kp+-

Referencepos

pos

torque

• Data centric communication• Continuous data transfer• Dynamic connection/disconnection

Data-centric communication

• User defined interface• Access to detailed functionality of RTC

– Getting/setting parameters– Changing modes– etc…

Imagedata

3D depthdata

Stereo visioninterface

・set_mode()・set_coordination()・do_calib()・etc…

Service port

ステレオビジョンコンポーネント

Data port

Service oriented interaction

Name

ValueSet name

Name

ValueSet name

• Function for internal parameter• Multiple parameter sets• They can be changed from remote in run-time

Activity, Execution context Data Port

Service Port Configuration

Ex. Servo control

Ex. Stereo vision RTC can have severalconfiguration sets.Runtime reconfigurationand dynamic switchingare supported

Page 17: Robotic Component Specification (RTC)

17

Data Port• Data-centric

communication port– Type

• Defined by user in IDL– Output:OutPort– Input:InPort

• Connection management– Interface type

• CORBA,TCP socket, other protocol, etc…

– Data flow type• push/pull

– Subscription type• Flush, New, Periodic

inport.put(data) operation

outport.get() operation

(a) Push (publisher/subscriber) communication model

(b) Pull communication model

(a) “new” type subscription

(b) “periodic” type subscription

(c) “flush” type subscription

Activity

synchronous

put(data)

PublisherActivityNotify

asynchronous

put(data)

buffer

PublisherActivityput(data)

Timerbuffer

CORBA I/F

Raw TCP Socket

Original Protocol

Connected by original protocol

Data transfer through “Original Protocol”

Page 18: Robotic Component Specification (RTC)

Execution of RTC logic

18

・Execution context (EC) = entity of logic execution ≒ thread・RTC⇔EC: Dynamic binding

Execution scheme can be changed by attaching appropriate EC

Dynamic module loading

RT-Middleware

RT-Component RT-ComponentReal-timeExecutionContext Normal

ExecutionContext

Attaching EC to RTC Attaching EC to RTC

Default context

Page 19: Robotic Component Specification (RTC)

Ex. External triggered EC• External triggered EC

– Extended interface– Calling tick() operation from

outside– Logic is progressed by one

tick

• Execution timing is controlled from outside

• This feature is convenient for – Simulator– Debugger

19

Same binary component can be used in simulator and actual hardware

Execution timing of all the components in dynamics simulator should be controlled by

simulator’s scheduler

tick!

tick!

Extended interface

Simulation time

Externalrriggered EC

Page 20: Robotic Component Specification (RTC)

RTMSafety

• IEC61508 (Functional safety standard) capable RTM

• Developed by SEC and AIST

• Based on lightweight RTC specification

• Implemented in C, runs on QNX safety kernel

20

Page 21: Robotic Component Specification (RTC)

OpenRTM and RTMSafety

RTC RTC RTC RTC LwRTC LwRTC LwRTC LwRTC

OpenRTM

CORBA

OS

RTMSafety

Safety Function Library

Safety OS

Protocol Library

Safety Function

MonitoringSelfcheck

Communication with non-safety RTC

(a) Conventional RT-Middleware (b) d-RTM

Utilize safety functions provided safety OSLwRTCs on RTMSafety implicitly/explicitly use these safety functions

Page 22: Robotic Component Specification (RTC)

Learning from experience• Execution context gives diversity of execution of

component and system structure.• Port service and combination of data-port/service-

port extend the range of application.• RTC based system shows good conformity to

SysML’s IBD.– Block = RTC, flow-port = data port

• Specification should be defined from point of view such as functional safety and cording standards– RTC has some bugs as specification– RTC specs expandability helps applying to various

platform and field.

22