smartsoft mdsd toolchain - zafh · pim psm / psi deployment runtime idea servicerobotics autonomous...
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
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
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