Upload
argus
View
34
Download
0
Embed Size (px)
DESCRIPTION
Angeliki Topalidou-Kyniazopoulou 1 , Nikolaos I. Spanoudakis 2 and Michail G. Lagoudakis 1 [email protected] [email protected] [email protected] 1 Department of Electronic and Computer Engineering, Technical University of Crete, Greece - PowerPoint PPT Presentation
Citation preview
A CASE Tool For Robot Behavior Development
The KSE CASE Tool- Liveness Formula Editor, text editor‐ Liveness2IAC transformation tool‐ Graphical Statechart Editor‐ Validation Tool‐ Link model to local code repository‐ Source Code Generator‐ Code Generator Customization‐ Runs on Windows and Linux
Angeliki Topalidou-Kyniazopoulou1, Nikolaos I. Spanoudakis2 and Michail G. Lagoudakis1
[email protected] [email protected] [email protected]
1 Department of Electronic and Computer Engineering, Technical University of Crete, Greece2 Department of Sciences, Technical University of Crete, Greece
SummaryWe present KSE (Kouretes StateChart Editor), a CASE (Computer-Aided Software Engineering) tool designed for developing robot behaviors or multi-agent systems by using ASEME’s models and transformations and a source code generator for the Monas robot software architecture. KSE supports:‐ Automatic generation of the initial abstract statechart model using
compact liveness formulas‐ Graphical editing of the statechart model and its transition expressions‐ Automatic source code generation for compilation and execution on the
robot
Agent Systems Engineering Methodology‐ Applies a Model-Driven Engineering approach ‐ In the Analysis phase we define liveness formulas that describe and connect the activities
included in the desired behavior in a formal way, similar to regular expressions‐ Each liveness formula is a rule decomposing one capability (shown on the left side) into a
number of interconnected smaller activities (shown on the right side)‐ Liveness formulas are transformed to statecharts
‐ In the Design Phase, we define the Intra-Agent Control (IAC) models as statecharts. A statechart is a formal model that describes complex processes and control structures using a directed graph with nodes (states) and edges (transitions). ‐ Each node has a name, type, label and is
associated with an activity‐ Each transition is characterized by an expression
e[c]/a (e, c and a are all optional)‐ e, the event triggering the transition‐ c, the condition that needs to be
satisfied for the transition to take place when e occurs or the previous state activity finishes execution
‐ a, actions executed when the transition is taken
KSE Technology‐ Eclipse Rich Client Platform (RCP)‐ Eclipse Modeling Framework (EMF)‐ Graphical Modeling Framework (GMF)‐ OCL tools‐ Xpand SDK‐ Xtext SDK‐ Deltapack
KSE Graphical Interface
StateChart Model’s Graphical RepresentationTransition Connection → directed edge, Node Element → several types: OR → AND → BASIC → CONDITION →
START → END →
Statechart Example for the Noxious-Kouretes Goalie in Robocup SPL 2011
KSE Empirical EvaluationDuring a lab session 28 undergraduate ECE students used KSE to design an attacker behavior for Robocup SPL. All of them managed to complete the task and evaluated KSE positively.
Very Easy Easy Normal Difficult Very Difficult0
10
20
30
40
50
60
70
The Liveness formula was … to edit.
The statechart was … to edit.
The navigation of the KSE menu was … .
The use of KSE was ... in general.
The Statechart Metamodel
Methodology
Liveness Formula Editor
#include "TestBehavior.h"#include "transitionHeaders.h"
using namespace statechart_engine;
namespace {StatechartRegistrar<TestBehavior>::Type temp("TestBehavior");}
TestBehavior::TestBehavior(Narukom* com) {
_statechart = new Statechart ( "Node_TestBehavior", com );
Statechart* Node_0 = _statechart;
_states.push_back( Node_0 );StartState* Node_0_1 = new StartState ( "Node_0_1", Node_0 ); //Name:0.1
_states.push_back( Node_0_1 );
...
Comparison with Other ToolsAuto-Generated Code for the Monas Architecture
Results
The properties of the selected transition (with orange background in the graph)
Use the palette objects to draw
elements in the graph