SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

New integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean InnesNew integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean Innes
Roopa Nadkarni
 
2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z
IBM
 
Florian adler minute project
Florian adler   minute projectFlorian adler   minute project
Florian adler minute project
Dmitry Buzdin
 
Cloud Biocep
Cloud BiocepCloud Biocep
Cloud Biocep
Inria
 

Tendances (12)

Parking Lot App
Parking Lot AppParking Lot App
Parking Lot App
 
New integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean InnesNew integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean Innes
 
2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z
 
Generator
GeneratorGenerator
Generator
 
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
 
Java withrealworldtechnology
Java withrealworldtechnologyJava withrealworldtechnology
Java withrealworldtechnology
 
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
Migrating Legacy Waveforms to the Software Communications Architecture (SCA)
 
Florian adler minute project
Florian adler   minute projectFlorian adler   minute project
Florian adler minute project
 
Cloud Biocep
Cloud BiocepCloud Biocep
Cloud Biocep
 
An introduction to smart use cases
An introduction to smart use casesAn introduction to smart use cases
An introduction to smart use cases
 
Обзор продуктов IBM Rational
Обзор продуктов IBM RationalОбзор продуктов IBM Rational
Обзор продуктов IBM Rational
 
Model driven development using smart use cases and domain driven design
Model driven development using smart use cases and domain driven designModel driven development using smart use cases and domain driven design
Model driven development using smart use cases and domain driven design
 

En vedette

En vedette (11)

General Structure of a Robot - V2
General Structure of a Robot - V2General Structure of a Robot - V2
General Structure of a Robot - V2
 
The Light Bulb Moment – Learning to-identify-robotic-automation-opportunities
The Light Bulb Moment – Learning to-identify-robotic-automation-opportunitiesThe Light Bulb Moment – Learning to-identify-robotic-automation-opportunities
The Light Bulb Moment – Learning to-identify-robotic-automation-opportunities
 
Natural Language in Human-Robot Interaction
Natural Language in Human-Robot InteractionNatural Language in Human-Robot Interaction
Natural Language in Human-Robot Interaction
 
ROS-Industrial Kuka LBR-iiwa community meeting
ROS-Industrial Kuka LBR-iiwa community meetingROS-Industrial Kuka LBR-iiwa community meeting
ROS-Industrial Kuka LBR-iiwa community meeting
 
Textual Robot programming
Textual Robot programmingTextual Robot programming
Textual Robot programming
 
What You Need to Know About Robotic Process Automation: How It Works & Real-W...
What You Need to Know About Robotic Process Automation: How It Works & Real-W...What You Need to Know About Robotic Process Automation: How It Works & Real-W...
What You Need to Know About Robotic Process Automation: How It Works & Real-W...
 
Robotic Process Automation: A Cohesive View
Robotic Process Automation: A Cohesive ViewRobotic Process Automation: A Cohesive View
Robotic Process Automation: A Cohesive View
 
Industrial robots
Industrial robotsIndustrial robots
Industrial robots
 
Applying Robotic Process Automation in Banking: Innovations in Finance and Risk
Applying Robotic Process Automation in Banking: Innovations in Finance and RiskApplying Robotic Process Automation in Banking: Innovations in Finance and Risk
Applying Robotic Process Automation in Banking: Innovations in Finance and Risk
 
Industrial robotics
Industrial roboticsIndustrial robotics
Industrial robotics
 
Robot programming
Robot programmingRobot programming
Robot programming
 

Similaire à A Graphical Language for Real-Time Critical Robot Commands

Titanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performanceTitanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performance
omorandi
 
App Engine overview (Android meetup 06-10)
App Engine overview (Android meetup 06-10)App Engine overview (Android meetup 06-10)
App Engine overview (Android meetup 06-10)
jasonacooper
 
mRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System DevelopmentmRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System Development
Kazuhiro Koga 古賀一博
 
MDE based FPGA physical Design Fast prototyping with Smalltalk
MDE based FPGA physical Design Fast prototyping with SmalltalkMDE based FPGA physical Design Fast prototyping with Smalltalk
MDE based FPGA physical Design Fast prototyping with Smalltalk
ESUG
 
Enterprise apps using ruby droid con berlin 2012
Enterprise apps using ruby droid con berlin 2012Enterprise apps using ruby droid con berlin 2012
Enterprise apps using ruby droid con berlin 2012
Droidcon Berlin
 

Similaire à A Graphical Language for Real-Time Critical Robot Commands (20)

Project Zero Php Quebec
Project Zero Php QuebecProject Zero Php Quebec
Project Zero Php Quebec
 
Titanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performanceTitanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performance
 
[2011-17-C-4] Heroku & database.com
[2011-17-C-4] Heroku & database.com[2011-17-C-4] Heroku & database.com
[2011-17-C-4] Heroku & database.com
 
Blue Ruby SDN Webinar
Blue Ruby SDN WebinarBlue Ruby SDN Webinar
Blue Ruby SDN Webinar
 
Building single page applications
Building single page applicationsBuilding single page applications
Building single page applications
 
Topics in robotics
Topics in roboticsTopics in robotics
Topics in robotics
 
What is Google App Engine?
What is Google App Engine?What is Google App Engine?
What is Google App Engine?
 
FIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for Robots
FIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for RobotsFIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for Robots
FIWARE Wednesday Webinars - How to Develop FIWARE NGSI Interfaces for Robots
 
App Engine overview (Android meetup 06-10)
App Engine overview (Android meetup 06-10)App Engine overview (Android meetup 06-10)
App Engine overview (Android meetup 06-10)
 
Developing intelligent robots with AWS RoboMaker
Developing intelligent robots with AWS RoboMakerDeveloping intelligent robots with AWS RoboMaker
Developing intelligent robots with AWS RoboMaker
 
Robots in Human Environments
Robots in Human EnvironmentsRobots in Human Environments
Robots in Human Environments
 
mRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System DevelopmentmRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System Development
 
A 4-Axis Robot Arm
A 4-Axis Robot ArmA 4-Axis Robot Arm
A 4-Axis Robot Arm
 
MDE based FPGA physical Design Fast prototyping with Smalltalk
MDE based FPGA physical Design Fast prototyping with SmalltalkMDE based FPGA physical Design Fast prototyping with Smalltalk
MDE based FPGA physical Design Fast prototyping with Smalltalk
 
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 TaiwanPlugin-able POS Solutions by Javascript @HDM9 Taiwan
Plugin-able POS Solutions by Javascript @HDM9 Taiwan
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
 
Highly Surmountable Challenges in Ruby+OMR JIT Compilation
Highly Surmountable Challenges in Ruby+OMR JIT CompilationHighly Surmountable Challenges in Ruby+OMR JIT Compilation
Highly Surmountable Challenges in Ruby+OMR JIT Compilation
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell You
 
Enterprise apps using ruby droid con berlin 2012
Enterprise apps using ruby droid con berlin 2012Enterprise apps using ruby droid con berlin 2012
Enterprise apps using ruby droid con berlin 2012
 
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
(ATS3-GS02) Accelrys Enterprise Platform in Enterprise Architectures
 

Plus de Serge Stinckwich

Plus de Serge Stinckwich (11)

Pure Coordination Using the Coordinator-Configurator Pattern
Pure Coordination Using the Coordinator-Configurator PatternPure Coordination Using the Coordinator-Configurator Pattern
Pure Coordination Using the Coordinator-Configurator Pattern
 
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
Dealing with Run-Time Variability in Service Robotics: Towards a DSL for Non-...
 
Introduction to DYROS'10 Workshop
Introduction to DYROS'10 WorkshopIntroduction to DYROS'10 Workshop
Introduction to DYROS'10 Workshop
 
A DSL for the visualization of Multi-Robot Systems
A DSL for the visualization of Multi-Robot SystemsA DSL for the visualization of Multi-Robot Systems
A DSL for the visualization of Multi-Robot Systems
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
 
Visit to Vung Vieng Village - OLPC Vietnam
Visit to Vung Vieng Village - OLPC VietnamVisit to Vung Vieng Village - OLPC Vietnam
Visit to Vung Vieng Village - OLPC Vietnam
 
Pharo, an innovative and open-source Smalltalk
Pharo, an innovative and open-source SmalltalkPharo, an innovative and open-source Smalltalk
Pharo, an innovative and open-source Smalltalk
 
Smalltalk合同勉強会@名古屋 talk: Pharo introduction
Smalltalk合同勉強会@名古屋 talk: Pharo introductionSmalltalk合同勉強会@名古屋 talk: Pharo introduction
Smalltalk合同勉強会@名古屋 talk: Pharo introduction
 
Smalltalk合同勉強会@名古屋 talk : ESUG Introduction
Smalltalk合同勉強会@名古屋 talk : ESUG IntroductionSmalltalk合同勉強会@名古屋 talk : ESUG Introduction
Smalltalk合同勉強会@名古屋 talk : ESUG Introduction
 
An instrument whose music is ideas
An instrument whose music is ideasAn instrument whose music is ideas
An instrument whose music is ideas
 
Smalltalk Bar Camp Hanoi 2009
Smalltalk  Bar Camp Hanoi 2009Smalltalk  Bar Camp Hanoi 2009
Smalltalk Bar Camp Hanoi 2009
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Dernier (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

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
  • 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 Property Editor 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: Primitive types 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