29
Ein Prozess lernt laufen LEGO® MINDSTORMS® Steuerung mit BPMN Oliver Hock Videa Project Services GmbH

Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

Embed Size (px)

Citation preview

Page 1: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

Ein Prozess lernt laufenLEGO® MINDSTORMS® Steuerung mit BPMN

Oliver Hock

Videa Project Services GmbH

Page 2: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

2

videa-services.comwww.videa.services [email protected]

JUG Hamburg Kids4IT Hamburg kids4it.de

@oliver_hockOliver_Hock3

olihock / bepemind

Page 3: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

3

Die Firma

Page 4: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

4

Die Idee

PE

Geschäftsprozesse

Neugier

SpaßPräzision

Know-how

Page 5: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

5

Der Roboter

Definition

Steuerung

Page 6: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

6

Die Schnittstellen

Momentaufnahmen9V Ausgang

Zustände

Abfragen

Motoren Sensoren

Page 7: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

7

Das Modell

CubeFinder

GRIPP3R

Page 8: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

8

Die Architektur

PC/Remote API

Sensor/Motor Port APIleJOS

Page 9: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

9

BPM Plattform

BusinessDevelopers

Admins Framework

BPMN 2 Process Engine for Java

JARWorkflowsJava Application

Page 10: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

10

Business Process Modeling Notation

Page 11: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

11

Business Process Modeling Notation

up

down

Page 12: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

12

Process DesignMain Process

Name Value

Subprocess

Name Value

EL

EL

Page 13: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

13

CubeFinder Process Design

CubeFinder Main

Walk

SearchWalk Right And

DownWalk Right And Up

TurnWalk And Scan

Scan

Page 14: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

14

Suchmuster

x

y

2m

3m

turnwalk

walk up

right

down

scanscan

Page 15: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

15

CubeFinder Project Design

Robot Access Delegate Layer

EV3 Brick Access Singleton

Service Task Processes

«JavaDelegate»

Data Objects

CubeFinder Functions RotateDelegateFetchSampleDelegate

Brick.getInstance()

Very Static Model getRegulatedMotor(p)

getSampleProvider(p)

Host = “192.168.173.67”

Page 16: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

16

Service Tasks Java DelegatesProcess

public class RotateDelegate implements JavaDelegate {

private FixedValue port;private JuelExpression angle;

Page 17: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

17

Java Implementation

@Overridepublic void execute(DelegateExecution execution)

throws Exception {

String portValue = (String) port.getValue(execution);Long angleValue = (Long) angle.getValue(execution);

String hostVar = ""+execution.getVariable("Host");

// leJOS API stuff here

}

Page 18: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

Process Execution

18

public class ProcessTestCubeFinderMain {

@Test public void startProcess()

throws RemoteException { repositoryService

.createDeployment()

.addInputStream(

"cubeFinderMain.bpmn20.xml", mainPath))

.addInputStream( "scan.bpmn20.xml", scanPath)

.deploy();}}

Run as …

Page 19: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

19

leJOS Remote API

Brick.java

Page 20: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

20

leJOS Motor API

RotateDelegate.java

Page 21: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

21

leJOS RegulatedMotor API

Page 22: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

22

leJOS RegulatedMotor API

Page 23: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

23

leJOS Sensor API

FetchSampleDelegate.java

Page 24: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

24

leJOS SampleProvider API

Page 25: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

25

Demo

Page 26: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN
Page 27: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

27

Ausblick

Page 28: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

28

QuellenTilted Twister 2.0

Cube Finder

Engine / DesignerEclipse Mars.1 for Java Developers

GitHub

Eclipse Juno Java Dev

CubeTwister (Randelshofer)KCube 1.0 by Greg SchmidtKociemba two-phase solver 

Page 29: Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN

29

Danke schön