connecting conceptual models using relational reference
play

Connecting Conceptual Models using Relational Reference Attribute - PowerPoint PPT Presentation

Ren Schne, Johannes Mey, Sebastian Ebert, Uwe Amann Connecting Conceptual Models using Relational Reference Attribute Grammars connector.relational-rags.eu October 16th 2020 Challenges when Designing Cyber-Physical Systems Distribution:


  1. René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann Connecting Conceptual Models using Relational Reference Attribute Grammars connector.relational-rags.eu October 16th 2020

  2. Challenges when Designing Cyber-Physical Systems Distribution: transparent communication with locally and remotely accessible models Multi-Paradigm: support for different paradigms and (programming as well as modelling) languages Fast, reactive behaviour: changes in input lead to automatic re-computation for fast reaction Connecting Conceptual Models using Relational Reference Attribute Grammars 2 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  3. Challenges when Designing Cyber-Physical Systems Hardware controller Distribution: transparent communication with locally and remotely accessible models Multi-Paradigm: support for different paradigms and (programming as well as modelling) languages Fast, reactive behaviour: changes in input lead to automatic re-computation for fast reaction Software robot controller Application logic Connecting Conceptual Models using Relational Reference Attribute Grammars 2 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  4. Challenges when Designing Cyber-Physical Systems Application modeller Electrical engineer Safety expert Distribution: transparent communication with locally and remotely accessible models Multi-Paradigm: support for different paradigms and (programming as well as modelling) languages Fast, reactive behaviour: changes in input lead to automatic re-computation for fast Mechanical engineer reaction Connecting Conceptual Models using Relational Reference Attribute Grammars 2 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  5. Challenges when Designing Cyber-Physical Systems Distribution: transparent communication with locally and remotely accessible models Multi-Paradigm: support for different paradigms and (programming as well as modelling) languages Fast, reactive behaviour: changes in input lead to automatic re-computation for fast reaction Connecting Conceptual Models using Relational Reference Attribute Grammars 2 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  6. Use Case: An Robotic Application Connecting Conceptual Models using Relational Reference Attribute Grammars 3 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  7. Use Case: An Robotic Application RAG Safety Model External RAG Model Application Model Robot Controller state/part/7 speed trajectory Connecting Conceptual Models using Relational Reference Attribute Grammars 3 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  8. Use Case: Relational RAG [Mey2020] Safety Model RobotArm SafetyModel ZoneModel RAG NewSpeed Safety Model External SafetyZones * RAG * Model Application Model * Robot Link EndEffector Coordinate Zone Controller Name Position CurrentPosition state/part/7 speed trajectory Model ::= RobotArm ZoneModel ; ZoneModel ::= < Size:IntPosition > SafetyZone:Zone * ; Zone ::= Coordinate * ; RobotArm ::= Link * EndEffector / < NewSpeed:double > / ; Link ::= < Name:String > < CurrentPosition:IntPosition > ; EndEffector : Link ; Coordinate ::= < Position:IntPosition > ; [Mey2020] Johannes Mey, René Schöne, Görel Hedin, Emma Söderberg, Thomas Kühn, Niklas Fors, Jesper Öqvist, and Uwe Aßmann. Relational Reference Attribute Grammars: Improving Continuous Model Validation. Journal of Computer Languages (Jan. 2020). https://doi.org/10.1016/j.cola.2019.100940 Connecting Conceptual Models using Relational Reference Attribute Grammars 4 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  9. Use Case: Relational RAG [Mey2020] Safety Model syn boolean RobotArm.isInSafetyZone () { RAG for (Link link : getLinkList ()) Safety Model if (model (). getZoneModel () External .isInSafetyZone(link.getCurrentPosition ())) RAG Model return true ; Application Model Robot return model (). getZoneModel (). isInSafetyZone( Controller getEndEffector (). getCurrentPosition ()); } state/part/7 syn boolean ZoneModel.isInSafetyZone(IntPosition pos) { for (Zone sz : getSafetyZoneList ()) speed for (Coordinate coordinate : sz.getCoordinateList ()) trajectory if (coordinate.getPosition (). equals(pos)) return true ; return false ; } syn double RobotArm.getNewSpeed () { return isInSafetyZone () ? LOW_SPEED : NORMAL_SPEED; } [Mey2020] Johannes Mey, René Schöne, Görel Hedin, Emma Söderberg, Thomas Kühn, Niklas Fors, Jesper Öqvist, and Uwe Aßmann. Relational Reference Attribute Grammars: Improving Continuous Model Validation. Journal of Computer Languages (Jan. 2020). https://doi.org/10.1016/j.cola.2019.100940 Connecting Conceptual Models using Relational Reference Attribute Grammars 4 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  10. Use Case: Relational RAG [Mey2020] Safety Model syn boolean RobotArm.isInSafetyZone () { RAG for (Link link : getLinkList ()) Safety Model if (model (). getZoneModel () External .isInSafetyZone(link.getCurrentPosition ())) RAG Model ? return true ; Application Model Robot return model (). getZoneModel (). isInSafetyZone( Controller getEndEffector (). getCurrentPosition ()); } state/part/7 syn boolean ZoneModel.isInSafetyZone(IntPosition pos) { for (Zone sz : getSafetyZoneList ()) speed for (Coordinate coordinate : sz.getCoordinateList ()) trajectory if (coordinate.getPosition (). equals(pos)) return true ; return false ; } syn double RobotArm.getNewSpeed () { return isInSafetyZone () ? LOW_SPEED : NORMAL_SPEED; } [Mey2020] Johannes Mey, René Schöne, Görel Hedin, Emma Söderberg, Thomas Kühn, Niklas Fors, Jesper Öqvist, and Uwe Aßmann. Relational Reference Attribute Grammars: Improving Continuous Model Validation. Journal of Computer Languages (Jan. 2020). https://doi.org/10.1016/j.cola.2019.100940 Connecting Conceptual Models using Relational Reference Attribute Grammars 4 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  11. Idea: Explicit Specification of Connections RAG Safety Model External RAG Model S Application Model Robot Controller R state/part/7 S speed R trajectory R Connecting Conceptual Models using Relational Reference Attribute Grammars 5 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  12. Idea: Explicit Specification of Connections RAG Safety Model External RAG Model S Application Model Robot Controller S R state/part/7 S speed R trajectory R R Connecting Conceptual Models using Relational Reference Attribute Grammars 5 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  13. Solution: The DSL “RagConnect” receive Link.CurrentPosition using ParseState , Transform; R ParseState maps byte [] bytes to RobotState {: return RobotState.parseFrom(bytes); :} Transform maps RobotState rs to IntPosition {: RobotState.Position p = rs.getPosition (); return IntPosition.of(( int ) (Math.round(p.getX() * 2)), ( int ) (Math. round(p.getY() * 2)), ( int ) (Math.round(p.getZ() * 2 - 0.5))); :} send RobotArm.NewSpeed using S CreateSpeedMessage , SerializeRobotConfig; Connecting Conceptual Models using Relational Reference Attribute Grammars 6 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  14. Solution: The DSL “RagConnect” receive Link.CurrentPosition using ParseState , Transform; R ParseState maps byte [] bytes to RobotState {: return RobotState.parseFrom(bytes); :} Transform maps RobotState rs to IntPosition {: RobotState.Position p = rs.getPosition (); return IntPosition.of(( int ) (Math.round(p.getX() * 2)), ( int ) (Math. round(p.getY() * 2)), ( int ) (Math.round(p.getZ() * 2 - 0.5))); :} send RobotArm.NewSpeed using S CreateSpeedMessage , SerializeRobotConfig; Connecting Conceptual Models using Relational Reference Attribute Grammars 6 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  15. Solution: The DSL “RagConnect” receive Link.CurrentPosition using ParseState , Transform; R ParseState maps byte [] bytes to RobotState {: return RobotState.parseFrom(bytes); :} Transform maps RobotState rs to IntPosition {: RobotState.Position p = rs.getPosition (); return IntPosition.of(( int ) (Math.round(p.getX() * 2)), ( int ) (Math. round(p.getY() * 2)), ( int ) (Math.round(p.getZ() * 2 - 0.5))); :} send RobotArm.NewSpeed using S CreateSpeedMessage , SerializeRobotConfig; Connecting Conceptual Models using Relational Reference Attribute Grammars 6 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

  16. Solution: The DSL “RagConnect” receive Link.CurrentPosition using ParseState , Transform; R ParseState maps byte [] bytes to RobotState {: return RobotState.parseFrom(bytes); :} shared Transform maps RobotState rs to IntPosition {: by both RobotState.Position p = rs.getPosition (); models return IntPosition.of(( int ) (Math.round(p.getX() * 2)), ( int ) (Math. round(p.getY() * 2)), ( int ) (Math.round(p.getZ() * 2 - 0.5))); :} send RobotArm.NewSpeed using S CreateSpeedMessage , SerializeRobotConfig; Connecting Conceptual Models using Relational Reference Attribute Grammars 6 / 12 René Schöne, Johannes Mey, Sebastian Ebert, Uwe Aßmann October 16th 2020

Recommend


More recommend