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                                 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
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
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
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
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
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
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
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                                                                     Tool-
                                                                            box




Properties
Editor



05.11.2012     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
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()
                                                                            Returned type
                                                                            not expected!
05.11.2012     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()
                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
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
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
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

A Graphical Language for Real-Time Critical Robot Commands

  • 1.
    A Graphical Languagefor 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 forIndustrial 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 RoboticsAPI 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 RoboticsAPI 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
  • 13.
    GSRAPID editor layout 05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
  • 14.
    GSRAPID editor layout Diagram Canvas Tool- box Properties Editor 05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
  • 15.
    Basic GSRAPID elements(I) 05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
  • 16.
    Basic GSRAPID elements(II) 05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
  • 17.
    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
  • 18.
    Parametrization using PropertyEditor 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
  • 20.
    Property arguments: Primitivetypes 05.11.2012 A Graphical Language for Real-Time Critical Robot Commands
  • 21.
    Property arguments: Recursivemethod 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 propertyarguments • 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 forvariables • 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 isan 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 presentsresults 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