Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
A Graphical Language for Real-Time Critical Robot Commands
1. A Graphical Language for Real-Time Critical Robot Commands
Andreas Angerer,
Remi Smirra, Alwin Hoffmann, Andreas Schierl, Michael Vistein, Wolfgang Reif
2. 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
3. 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
4. Software Development for Industrial Robots
Current situation Vision
• Sophisticated mechanical • Apply modern software
components and control engineering to industrial robots
algorithms
• Facilitate robotics software
• High precision, reliability and development by providing
repeatability “robotics” as just another API in
a popular programming
• Specialized, proprietary language (the “Robotics API”)
programming languages and
outdated software concepts • Thus increase reuse and reduce
(e.g. KUKA KRL) development time
05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
5. The SoftRobot Architecture
Robot Domain-Specific Service-Oriented
Applications Languages Automation
Programming
Application
[Angerer2010]
Robotics API
(standard Java/C#)
Automated
transformation
into real-time
Realtime Primitives Interface dataflow graphs
[Schierl2012]
Robot Control
Robot Control Core
Real-Time
(C++, Linux/RTAI) [Vistein2010]
Robot Hardware
05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
6. SoftRobot Architecture – Details
• Commands can be combined flexibly
start/stop Command
throw an error
start Java thread
…
state entered
state left
19.05.2011 Oberseminar ISSE - Das Programmiermodell der Robotics API 7
7. SoftRobot Architecture – Details
• Commands can be combined flexibly
• RPI dataflow graphs are generated at runtime
OrocosRuntime
.load(Command)
19.05.2011 Oberseminar ISSE - Das Programmiermodell der Robotics API 8
8. SoftRobot Architecture – Details
• Commands can be combined flexibly
• RPI dataflow graphs are generated at runtime
OrocosRuntime
.load(Command)
• Downside: programming Commands is tedious
19.05.2011 Oberseminar ISSE - Das Programmiermodell der Robotics API 9
9. Refining the Robotics API interface (I)
• Introducing the Activity Layer
Activity Layer
Robotics API
standard Java/C#
Meta Data Activity Actuator Interface
Action Command Actuator
PTP Command Layer Robot
RCC
Calculation Device
C++
Modules Robot Control Core Drivers
05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
10. Refining the Robotics API interface (II)
• Introducing the GSRAPID Language
Graphical SoftRobot Robotics API Diagram
Robotics API
standard Java/C#
Language
Action Command Actuator
PTP Command Layer Robot
RCC
Calculation Device
C++
Modules Robot Control Core Drivers
05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
11. 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
12. 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
19. 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
21. 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()
Returned type
not expected!
05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
22. 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()
Exactly this instance of a robot (defined in
the GSRAPID diagram) has to be accessed!
• Solution: The ISetter ”pattern”
05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
23. 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
24. 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
25. 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
26. 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
Thank you for your attention!
05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
27. 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