27
A Graphical Language for Real-Time Critical Robot Commands Andreas Angerer, Remi Smirra, Alwin Hoffmann, Andreas Schierl, Michael Vistein, Wolfgang Reif

A Graphical Language for Real-Time Critical Robot Commands

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: A Graphical Language for Real-Time Critical Robot Commands

A Graphical Language for Real-Time Critical Robot Commands Andreas Angerer, Remi Smirra, Alwin Hoffmann, Andreas Schierl, Michael Vistein, Wolfgang Reif

Page 2: A Graphical Language for Real-Time Critical Robot Commands

Agenda

1. Motivation – the SoftRobot architecture

2. GSRAPID basics

3. Parameter handling in GSRAPID

4. Conclusion

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 3: A Graphical Language for Real-Time Critical Robot Commands

Agenda

1. Motivation – the SoftRobot architecture

2. GSRAPID basics

3. Parameter handling in GSRAPID

4. Conclusion

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 4: A Graphical Language for Real-Time Critical Robot Commands

Software Development for Industrial Robots

Current situation

• Sophisticated mechanical components and control algorithms

• High precision, reliability and repeatability

• Specialized, proprietary programming languages and outdated software concepts (e.g. KUKA KRL)

Vision

• Apply modern software engineering to industrial robots

• Facilitate robotics software development by providing “robotics” as just another API in a popular programming language (the “Robotics API”)

• Thus increase reuse and reduce development time

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 5: A Graphical Language for Real-Time Critical Robot Commands

The SoftRobot Architecture

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Robotics API (standard Java/C#)

Robot Control Core (C++, Linux/RTAI)

Realtime Primitives Interface

Robot Hardware

Robot Applications

Domain-Specific Languages

Service-Oriented Automation

Automated transformation into real-time

dataflow graphs

Re

al-T

ime

R

ob

ot

Co

ntr

ol

Ap

plic

atio

n

Pro

gram

min

g

[Vistein2010]

[Angerer2010]

[Schierl2012]

Page 6: A Graphical Language for Real-Time Critical Robot Commands

SoftRobot Architecture – Details

state entered

state left

start/stop Command

throw an error

start Java thread

• Commands can be combined flexibly

19.05.2011 Oberseminar ISSE - Das Programmiermodell der Robotics API 7

Page 7: A Graphical Language for Real-Time Critical Robot Commands

SoftRobot Architecture – Details

• Commands can be combined flexibly • RPI dataflow graphs are generated at runtime

19.05.2011 Oberseminar ISSE - Das Programmiermodell der Robotics API 8

OrocosRuntime .load(Command)

Page 8: A Graphical Language for Real-Time Critical Robot Commands

SoftRobot Architecture – Details

• Commands can be combined flexibly • RPI dataflow graphs are generated at runtime

19.05.2011 Oberseminar ISSE - Das Programmiermodell der Robotics API 9

OrocosRuntime .load(Command)

• Downside: programming Commands is tedious

Page 9: A Graphical Language for Real-Time Critical Robot Commands

Refining the Robotics API interface (I)

• Introducing the Activity Layer

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Robot Control Core Device Drivers

Calculation Modules

Command Layer

Activity Layer

Actuator

Activity

PTP Robot

Action Command

Actuator Interface Meta Data

Ro

bo

tics

AP

I st

and

ard

Jav

a/C

#

RC

C

C+

+

Page 10: A Graphical Language for Real-Time Critical Robot Commands

Refining the Robotics API interface (II)

• Introducing the GSRAPID Language

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Robot Control Core Device Drivers

Calculation Modules

Command Layer

Actuator

PTP Robot

Action Command

Ro

bo

tics

AP

I st

and

ard

Jav

a/C

#

RC

C

C+

+

Graphical SoftRobot Robotics API Diagram Language

Page 11: A Graphical Language for Real-Time Critical Robot Commands

Agenda

1. Motivation – the SoftRobot architecture

2. GSRAPID basics

3. Parameter handling in GSRAPID

4. Conclusion

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 12: A Graphical Language for Real-Time Critical Robot Commands

What is GSRAPID?

• A graphical language for specifying complex Robotics API Commands

• Diagrams can be edited, saved/loaded and syntactically checked

• Integrated code generator: Creates Java code that instantiates the specified Robotics API Command => Command can be used as black-box in Java code

• Realized in Eclipse with GMF (EMF + GEF)

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 13: A Graphical Language for Real-Time Critical Robot Commands

GSRAPID editor layout

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 14: A Graphical Language for Real-Time Critical Robot Commands

GSRAPID editor layout

Diagram Canvas

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Properties Editor

Tool- box

Page 15: A Graphical Language for Real-Time Critical Robot Commands

Basic GSRAPID elements (I)

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 16: A Graphical Language for Real-Time Critical Robot Commands

Basic GSRAPID elements (II)

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 17: A Graphical Language for Real-Time Critical Robot Commands

Agenda

1. Motivation – the SoftRobot architecture

2. GSRAPID basics

3. Parameter handling in GSRAPID

4. Conclusion

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 18: A Graphical Language for Real-Time Critical Robot Commands

Parametrization using Property Editor

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 19: A Graphical Language for Real-Time Critical Robot Commands

Dynamic Properties

• Properties are dynamic and context sensitive

• Java reflection is used to determine possible sources of property values (by type)

• Challenge: How to deal with method arguments?

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 20: A Graphical Language for Real-Time Critical Robot Commands

Property arguments: Primitive types

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 21: A Graphical Language for Real-Time Critical Robot Commands

Property arguments: Recursive method calls

• Arguments for method parameters can be provided by further method calls

• Possible methods again determined by type

• Challenge: How to deal with “intermediate” types? E.g.: lwr.getForceTorqueSensor() .getForceX()

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Returned type not expected!

Page 22: A Graphical Language for Real-Time Critical Robot Commands

Variables as property arguments

• Solution: Treat un-set properties as variables

• All variables have to be set at code level by developers that use Commands defined with GSRAPID

• Challenge: What about the context of a property variable? Again: lwr.getForceTorqueSensor().getForceX()

• Solution: The ISetter ”pattern”

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Exactly this instance of a robot (defined in the GSRAPID diagram) has to be accessed!

Page 23: A Graphical Language for Real-Time Critical Robot Commands

Defining ISetters for variables

• Generic interface ISetter: public interface ISetter<T> {

T set(); }

• Developer has to supply concrete instances of ISetters that serve as callbacks for setting unresolved variables

• ISetters are called only once the variable‘s context (e.g. ‚lwr‘ in the previous example) has been initialized

• Context is accessible via static fields of the generated class

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 24: A Graphical Language for Real-Time Critical Robot Commands

Agenda

1. Motivation – the SoftRobot architecture

2. GSRAPID basics

3. Parameter handling in GSRAPID

4. Conclusion

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 25: A Graphical Language for Real-Time Critical Robot Commands

Conclusion

• GSRAPID is an approach to quickly and intuitively specify real-time critical Robotics API Commands

• Focus on visualizing Command structure

• Eclipse-based DSL tools proved to be a good platform

– Complex, but flexible and powerful

– GSRAPID was created in a 6-month master thesis!

• First (informal) evaluations of GSRAPID are promising, yet many improvements possible!

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Page 26: A Graphical Language for Real-Time Critical Robot Commands

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands

Thank you for your attention!

This work presents results of the research project SoftRobot which was funded by the European Union and the Bavarian

government. The project was carried out together with KUKA Laboratories GmbH and MRK-Systeme GmbH and was kindly

supported by VDI/VDE-IT GmbH

Page 27: A Graphical Language for Real-Time Critical Robot Commands

References

[Angerer2010] Angerer, A.; Hoffmann, A.; Schierl, A.; Vistein, M. & Reif, W.

The Robotics API: An Object-Oriented Framework for Modeling Industrial Robotics Applications Proc. 2010 IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems (IROS2010), Taipeh, Taiwan, IEEE, 2010, 4036-4041

[Vistein2010] Vistein, M.; Angerer, A.; Hoffmann, A.; Schierl, A. & Reif, W.

Interfacing Industrial Robots using Realtime Primitives Proc. 2010 IEEE Intl. Conf. on Automation and Logistics (ICAL~2010), Hong Kong, China, IEEE, 2010, 468-473

[Schierl2012] Schierl, A.; Angerer, A.; Hoffmann, A.; Vistein, M. & Reif, W.

From Robot Commands To Real-Time Robot Control - Transforming High-Level Robot Commands into Real-Time Dataflow Graphs Proc. 2012 Intl. Conf. on Informatics in Control, Automation and Robotics, Rome, Italy, 2012

05.11.2012 A Graphical Language for Real-Time Critical Robot Commands