Upload
stinckwich-serge
View
914
Download
3
Embed Size (px)
DESCRIPTION
Citation preview
A Graphical Language for Real-Time Critical Robot Commands Andreas Angerer, Remi Smirra, Alwin Hoffmann, Andreas Schierl, Michael Vistein, Wolfgang Reif
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
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
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
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]
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
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)
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
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+
+
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
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
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
GSRAPID editor layout
05.11.2012 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
Basic GSRAPID elements (I)
05.11.2012 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
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
Parametrization using Property Editor
05.11.2012 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
Property arguments: Primitive types
05.11.2012 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!
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!
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
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
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
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
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