Robotic Component Specification (RTC)

Robotic Component Specification (RTC) Noriaki Ando, Geoffrey Biggs, Tetsuo Kotoku National Institute of Advanced Industrial Science and Technology (AI...
2 downloads 3 Views 922KB Size
Robotic Component Specification (RTC) Noriaki Ando, Geoffrey Biggs, Tetsuo Kotoku National Institute of Advanced Industrial Science and Technology (AIST)

What is RT? • RT = Robot Technology

cf. IT

– not only standalone robots, but also robotic elements (sensors, actuators, etc….) RT-Middleware developed by AIST

+

+

+

+

OpenRTM-aist

+

RT-Middleware

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

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

Outline • RTC Specification – Overview – Implementations

• OpenRTM-aist • RTMSafety – Specification VnV

• Summary

3

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

OMG RTC Specification •

Atlanta meeting (2005.9) –



Burlingame meeting (2005.12) –









RTC Spec. was submitted to AB (approved). FTF organized

Jacksonville meeting (2007.9) –



RTC Spec. was submitted to AB (rejected).

Anaheim meeting (2006.9) –



Proposals were merged and resubmitted

Boston meeting (2006.6) –



Response : PIM and PSM for RTComponent submitted Submitter:AIST、RTI

Sent Louis meeting (2006.4) –



Robotics DTF started

Tampa meeting (2006.2) –



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

FTF report was approved

Officially available formal-08-04-04 (2008.4) Version 1.1 formal/12-09-01 (2012.9) 5

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 6

RTC Specification formal/12-09-01 pd RTC Packages «profile» RTC

SDOPackage

Execution Semantics

Introspection

(from External Models)

Lightw eight RTC

(from Robotic Technology Components)



Specification consists of 3 packages:

– Lightweight RTC – Execution Semantics – Introspection 7

PIM Overview: Lightweight RTC pd RTC Packages «profile» RTC

SDOPackage

Execution Semantics

Introspection

(from External Models)

Lightw eight RTC

(from Robotic Technology Components)

component

port

• 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

state machine

8

PIM Overview: Execution pd RTC Packages «profile» RTC

SDOPackage

Execution Semantics

Introspection



Execution Semantics –

(from External Models)

Lightw eight RTC

(from Robotic Technology Components)

Data flow

FSM

Provides behavioral design patterns commonly used in robotic and control systems 1. Periodic synchronous execution (“data flow”) 2. Stimulus response/eventdriven execution (FSMs) 3. Multi-modal behavior

request response

Multi Mode

9

PIM Overview: Introspection pd RTC Packages «profile» RTC

SDOPackage

Execution Semantics

Introspection

(from External Models)

Lightw eight RTC

(from Robotic Technology Components)

RTC

SDO

component



Introspection – Query and modify component properties and connections at runtime – Based on SuperDistributed Objects (SDO) – Mainly used for dynamic component system integration

port state machine 10

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 11

OMG RTC families Name

Vendor

Feature

OpenRTM-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 12

OMG Standards and OpenRTM-aist PIM

RTC Specification

PSM

RTC CORBA PSM

Standard

Extended specification

RTC CCM PSM



OpenRTM-aist Ext. interface

SDO Specification

RTC Local PSM

PSM in other platforms

Additional specification and extended interfaces required to actual implementations

OpenRTM-aist Basic types



Impl

Other RTM

OpenRTM-aist Impl. By AIST

Impl. By other vendor

OpenRTM-aist’s design policy

Component developer never touch IDL (except service port)

Applications DAQ-Middleware: KEK/J-PARC KEK: High Energy Accelerator Research Organization J-PARC: Japan Proton Accelerator Research Complex

HRP-4: Kawada/AIST

TAIZOU: General Robotics Inc.

HIRO: Kawada/GRX

HRP-4C: Kawada/AIST 14

OpenRTM-aist’s RTC Architecture Interfaces to obtain metadata, state, configuration etc. SDO Interfaces

RTC Interfaces

Service ports

Service ports

RT-Component

Require, consume Consumer

use Provider

Activity Created

Consumer

Inactive

Receive Data ports

Buffer

Active

read

write

Buffer InPort

Provider

State machine

Consumer

InPort

Provide Provider

Error Execution

Execution context

OutPort

Buffer OutPort

Buffer

Transmit Data ports

Activity, Execution context Common state machine

Inactive

Active

Data Port • • •

Composite execution Real-time execution

Sensor RTC

1 TI s

+

Kp

TDs

Actuator RTC

Life cycle management, core logic execution

pos

Controller Component

Actuator Component

Data-centric communication

Service Port

Configuration

User defined interface Access to detailed functionality of RTC – Getting/setting parameters Ex. Stereo vision – Changing modes – etc… Service port Stereo vision interface

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

torque -

Encoder component

• •

Ex. Servo control

pos Reference

Controller RTC

Error

Data centric communication Continuous data transfer Dynamic connection/disconnection

3D depth data Image data

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

Service oriented interaction

Data port

• • •

Function for internal parameter Multiple parameter sets They can be changed from remote in run-time RTC can have several configuration sets. Runtime reconfiguration and dynamic switching are supported Name

Set name

Value Name

Set name

Value

Data Port • Data-centric communication port – Type • Defined by user in IDL

– Output:OutPort – Input:InPort

Activity

• CORBA,TCP socket, other protocol, etc…

CORBA I/F

Notify

put(data) inport.put(data) operation

buffer

Original Protocol

(a) “new” type subscription

asynchronous

Raw TCP Socket

(a) Push (publisher/subscriber) communication model

• Connection management Activity – Interface type

Publisher

Publisher

Timer buffer

put(data)

outport.get() operation

Connected by original protocol

(b) “periodic” type subscription

– Data flow type • push/pull

Activity

Data transfer through “Original Protocol”

– Subscription type

(b) Pull communication model put(data)

• Flush, New, Periodic synchronous

(c) “flush” type subscription

17

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

Real-time ExecutionContext

Normal ExecutionContext

Dynamic module loading

RT-Component

Attaching EC to RTC

RT-Component

Attaching EC to RTC

Execution scheme can be changed by attaching appropriate EC 18

Ex. External triggered EC • External triggered EC

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

– Extended interface – Calling tick() operation from Simulation time outside – Logic is progressed by one tick tick!

• Execution timing is controlled from outside • This feature is convenient for – Simulator – Debugger

External rriggered EC

tick! Extended interface Same binary component can be used in simulator and actual hardware 19

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

OpenRTM and RTMSafety RTC

RTC

RTC

RTC

OpenRTM

CORBA

OS

LwRTC

LwRTC

LwRTC

Self check

RTMSafety

Protocol Library

LwRTC

Monitoring

Safety Function Library Safety Function

Safety OS

Communication with non-safety RTC

(a) Conventional RT-Middleware

(b) d-RTM

Utilize safety functions provided safety OS LwRTCs on RTMSafety implicitly/explicitly use these safety functions

Learning from experience • Execution context gives diversity of execution of component and system structure. • Port service and combination of data-port/serviceport 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

Suggest Documents