smartsoft mdsd toolchain - zafh · pim psm / psi deployment runtime idea servicerobotics autonomous...

41
15. November 2010 SIMPAR / Steck, Schlegel servicerobotics Autonomous Mobile Service Robots SmartSoft MDSD Toolchain 15th November 2010 / SIMPAR Workshop, Darmstadt Andreas Steck and Christian Schlegel Computer Science Department University of Applied Sciences Ulm http://smart-robotics.sourceforge.net/ http://www.zafh-servicerobotik.de/ULM/index.php

Upload: phamnhi

Post on 16-Dec-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

15. November 2010 SIMPAR / Steck, Schlegel

serviceroboticsAutonomous Mobile Service Robots

SmartSoft MDSD Toolchain15th November 2010 / SIMPAR Workshop, Darmstadt

Andreas Steck and Christian Schlegel

Computer Science DepartmentUniversity of Applied Sciences Ulm

http://smart-robotics.sourceforge.net/http://www.zafh-servicerobotik.de/ULM/index.php

15. November 2010 SIMPAR / Steck, Schlegel

serviceroboticsAutonomous Mobile Service Robots

SmartSoft MDSD Toolchain

Example 1: Servo (RTAI-Linux)

Example 3: “Follow Me” - RoboCup@Home

Example 2: Navigation Task

Example 4: Cleanup Table Scenario

15. November 2010 SIMPAR / Steck, Schlegel

serviceroboticsAutonomous Mobile Service Robots

SmartSoft MDSD Toolchain• Eclipse

• openArchitectureWare

• PapyrusUML

15. November 2010 SIMPAR / Steck, Schlegel

PIM

PSM / PSI

deployment

runtime

idea

serviceroboticsAutonomous Mobile Service Robots

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

overview

servo example

PIM

PSM / PSI

deployment

runtime

idea

• introduction into overall MDSD process via simple example

• hard realtime in servo component

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

SmartServo component - will be created in the following demo

SmartJoystickServer component - preexisting component (COTS)

deployment diagram

overview

servo example

PIM

PSM / PSI

deployment

runtime

idea

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

SmartServo component - will be created in the following demo

SmartJoystickServer component - preexisting component (COTS)

deployment diagram

overview

servo example

PIM

PSM / PSI

deployment

runtime

idea

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

creating a

componentidea

PIM

PSM / PSI

deployment

runtime

idea

onTime

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

SmartTask

(realtime)

SmartTask

SmartMutex

creating a

componentPIM

PIM

PSM / PSI

deployment

runtime

idea

PIM

create PIM using the elements offered by theSmartSoft MDSD Toolchain palette

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

SmartTask

(realtime)

SmartTask

SmartMutex

control servo calculate servoposition

port connected to smartJoystickServer

creating a

componentPIM

PIM

PSM / PSI

deployment

runtime

idea

PIM

tagge

d valu

es

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

SmartTask

(realtime)

SmartTask

SmartMutex

Run code generator

creating a

component

generate PSI

PIM

PSM / PSI

deployment

runtime

idea

PIM

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

executable component

creating a

component

generate PSI

PIM

PSM / PSI

deployment

runtime

idea

verification (e.g. QoS)+ transformation

(is done by toolchain)

PIM

SmartTask

(realtime)

SmartTask

SmartMutex

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

User CodeMATLAB / SimulinkRTAI-LabOpenCV / Qt / Kavraki-Lab

verification (e.g. QoS)+ transformation

(is done by toolchain) executable component

creating a

component

integrate

user-code

PIM

PSM / PSI

deployment

runtime

idea

PIM

SmartTask

(realtime)

SmartTask

SmartMutex

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

PIM

PSM / PSI

deployment

runtime

idea

isRealtime = falseisRealtime = false

mapping PIM elements

to PSM elements(is done by toolchain)

isPeriodic = falseisPeriodic = true

creating a

component

generate PSM

PIM

PSM

toolchain generates elements to emulate periodic tasks

PSI

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

PIM

PSM / PSI

deployment

runtime

idea

mapping PIM elements

to PSM elements(is done by toolchain)

creating a

component

generate PSM

PSMRTAI-Linux already providesperiodic tasks

PSI

isRealtime = falseisRealtime = trueisPeriodic = falseisPeriodic = true

PIM

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

PIM

PSM / PSI

deployment

runtime

idea

generate PSIout of

PSM elements(is done by toolchain)

creating a

component

generate PSI

PSM

PSI

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

PIM

PSM / PSI

deployment

runtime

idea

creating a

component

integrate

user-code

code added by developer

code added by developer

PSI

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

PIM

PSM / PSI

deployment

runtime

idea

creating a

component

integrate

user-code

code added by developercalculate servo

position(servoOnTime)

wait for position update(joystickServer)

PSI

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

PIM

PSM / PSI

deployment

runtime

idea

creating a

component

integrate

user-code

code added by developer

PSI

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

deployment diagram

SmartServo component - created

SmartJoystickServer component - preexisting component (COTS)

overview

servo example

PIM

PSM / PSI

deployment

runtime

idea

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

create

deployment

PIM

PSM / PSI

deployment

runtime

idea

use these elementsto create deployment

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

PIM

PSM / PSI

deployment

runtime

idea

create

deployment

deploy to target systemand run startscript

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 2: Navigation Task

overview

navigation task

• deployment of COTS components

• simple replacement of components (P3DX/SICK ↔ Player/Stage)

• robot drives to positions given by operator

• collision avoidance, map building, path planning, etc.

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 2: Navigation Task

deployment

navigation task

P3DX/SICK

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 2: Navigation Task

deployment

navigation task

Player/Stage

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 2: Navigation Task

Live Demo

• how to create a deployment in SmartSoft MDSD Toolchain

• define the initial wiring between the components

• add platform specific details

• add target platform settings

• deploy scenario to target

• run scenario in Player/Stage simulator

watch on youtube: http://www.youtube.com/watch?v=4dZnDPgw3fA

attached file: 2009-12-02-deploy-toolchain.mp4

overview

navigation task

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 3: “Follow Me” - RoboCup@Home

overview

• deployment of COTS components

• reuse for RoboCup@Home

• robot follows a person through an unstructured environment

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 3: “Follow Me” - RoboCup@Home

deployment

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 3: “Follow Me” - RoboCup@Home

overview

watch on youtube: http://www.youtube.com/watch?v=-xvO_bbrb-Ihttp://www.youtube.com/watch?v=grf-_-32oY0

attached files: 2009-09-10-followMe.mp42010-02-25-followMe.mp4

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 4: Cleanup Table Scenario

overview

• deployment of COTS components

• complex real world scenario in everyday environment

• robot cleans up the table

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 4: Cleanup Table Scenario

deployment

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 4: Cleanup Table Scenario

deployment

behav

ior

spee

ch

recognitio

n

spee

ch

synthes

is

map

building

path

planning

robot

base

laser

ranger

(SIC

K)

SLAM

collis

ion

avoidan

ce

(CDL)

path plan

ning

(Open

RAVE)

object r

ecognitio

n

Katana m

anipulat

or

Hokuyo

lase

r ran

ger

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainExample 4: Cleanup Table Scenario

overview

watch on youtube: http://www.youtube.com/watch?v=40d4Dlk5LCQ

attached file: 2010-02-23-cleanUpTable.mp4

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainLinks

http://smart-robotics.sourceforge.net/

http://www.youtube.com/roboticsAtHsUlm

15. November 2010 SIMPAR / Steck, Schlegel

Addendum

15. November 2010 SIMPAR / Steck, Schlegel

Eclipse Modeling FrameworkMeta-Modeling

Ecore-Metamodel(based on OMG EMOF)

UML

SmartMARS (UML-Profile) MARTE

any othermeta-model

M3meta-meta-model

M2meta-model

M1model

M0sourcecode/text

any othermeta-model

user-modeluser-model user-model user-modeluser-model

sourcecodesourcecode sourcecode sourcecodesourcecode

modeling tool

code generation

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD Toolchain

15. November 2010 SIMPAR / Steck, Schlegel

SmartSoft MDSD ToolchainGeneration Gap Pattern

15. November 2010 SIMPAR / Steck, Schlegel

PIM

SmartMARS – Metamodel

(Modeling and Analysis of Robotics Systems)

UML2-Profile

platform independent stereotypes

• SmartComponent• SmartTask• SmartMutex• SmartQueryServer• SmartEventClient• ...

PSM

CorbaSmartSoftCORBA based implementationof SmartSoft

PSI

has to be created by a middleware expert

UML2-Profile

platform specific stereotypes

AceSmartSoftACE based implementationof SmartSoft

M2ToAW

xPandcheck

The User Space can contain arbitrary code and libraries

The User Space stays the same independent of the different platform specific models

Just the component hull will be created

creating a

component

workflow

...any other middleware

M2MoAW

xTendcheck

SmartSoft MDSD ToolchainExample 1: Servo (RTAI-Linux)

15. November 2010 SIMPAR / Steck, Schlegel

PIM

SmartMARS – Metamodel

(Modeling and Analysis of Robotics Systems)

UML2-Profile

platform independent stereotypes

• SmartComponent• SmartTask• SmartMutex• SmartQueryServer• SmartEventClient• ...

PSM

CorbaSmartSoftCORBA based implementationof SmartSoft

PSI

has to be created by a middleware expert

UML2-Profile

platform specific stereotypes

M2ToAW

xPandcheck

The User Space can contain arbitrary code and libraries

The User Space stays the same independent of the different platform specific models

Just the component hull will be created

M2MoAW

xTendcheck

creating a

component

workflow

SmartSoft MDSD Toolchain

15. November 2010 SIMPAR / Steck, Schlegel

PIM

SmartMARS – Metamodel

(Modeling and Analysis of Robotics Systems)

UML2-Profile

platform independent stereotypes

• SmartComponent• SmartTask• SmartMutex• SmartQueryServer• SmartEventClient• ...

PSM

CorbaSmartSoftCORBA based implementationof SmartSoft

PSI

has to be created by a middleware expert

UML2-Profile

platform specific stereotypes

M2ToAW

xPandcheck

The User Space can contain arbitrary code and libraries

The User Space stays the same independent of the different platform specific models

Just the component hull will be created

M2MoAW

xTendcheck

model checking + M2M + M2T

creating a

component

workflow

SmartSoft MDSD Toolchain