robochart robosim
play

RoboChart & RoboSim Modelling Robots and Collections Alvaro - PowerPoint PPT Presentation

RoboChart & RoboSim Modelling Robots and Collections Alvaro Miyazawa Department of Computer Science University of York January 23, 2019 Outline Introduction RoboChart RoboSim Collection modelling Robotic platform modelling 1 42


  1. RoboChart & RoboSim Modelling Robots and Collections Alvaro Miyazawa Department of Computer Science University of York January 23, 2019

  2. Outline Introduction RoboChart RoboSim Collection modelling Robotic platform modelling 1 42

  3. Introduction

  4. code controller robot code low-level 2nd phase: Simulation simulation environment discrete simulation hardware 1st phase: Abstract model 2nd phase: Simulation 3rd phase: Implementation simulation environment discrete simulation hardware code controller state machine 1st phase: Abstract model state machine environment Motivation 2 42

  5. Motivation State machines are often used to record, illustrate and explain Usage is informal Potential: ◮ Testing ◮ Code generation ◮ Verification 3 42

  6. Objective Graphical notations Formal semantics Specialised, but comprehensive Supporting simulation, analysis and verification 4 42

  7. Approach CSP and timed-CSP Qualitative Results Requirements Reactive Modules Formalism PRISM Storm RoboTool Quantitative RoboChart Results Models ARGoS C++ Simulation 5 42

  8. RoboChart

  9. RoboChart Standard state machines + time + probability Formal semantics: untimed, timed and probabilistic Well-formedness conditions Tool support: ◮ Modelling ◮ Validation ◮ Code generation: semantics and simulation 6 42

  10. Module Models a single Robot 1 Robotic Platform 1+ Controllers Communication ◮ Synchronous ◮ Asynchronous Robotic Platform may provide shared variables 7 42

  11. Robotic Platform Records assumptions about the robot hardware ◮ which events the robot provides ◮ which operations the robot supports ◮ which variables are available Independent of controller and state-machines Single point of interaction with robot 8 42

  12. Controller Models a specific behaviour Contains: ◮ Behavioural state-machines ◮ Operations ◮ Variables ◮ Events Supports multiple behavioural state-machines Communication between state-machines is synchronous 9 42

  13. State-Machine Main behavioural specification construct Models both operations and behaviours Simple, Composite and Final states Initial and junction nodes Non-interlevel transitions Actions: entry, during, exit, transition Local variables 10 42

  14. Types and Action Language Types based on Z Mathematical Toolkit Action language: ◮ Assignment ◮ Event signalling ◮ Operation call ◮ Sequential composition Control statements modelled using junctions and transitions 11 42

  15. Semantics Formalised in CSP Coverage: ◮ State-Machines ◮ Controllers ◮ Robotic Platforms ◮ Modules 12 42

  16. Semantics: Overview Module = CSP Process ◮ Parallel composition of controllers ◮ Connections define synchronisation sets ◮ Asynchronous communication modelled through buffers ◮ Robotic platform incorporated via renaming Controller = CSP Process ◮ Parallel composition of state-machines ◮ Connections define synchronisation sets ◮ External interactions via controller established via renaming 13 42

  17. Semantics: Overview State-Machine = CSP Process ◮ Parallel composition of states ◮ Transitions are part of the source states ◮ Junctions are part of the incoming transition ◮ Initial nodes and final states are part of the parent state ◮ States interact with each other to enter and exit ◮ States synchronise on transition triggers to support top-down interruption Action language ◮ Operation call = Process call ◮ Event signalling = Communication on event channel ◮ Assignment = Communication on setter channel State components ◮ Isolated in memory process due to sharing ◮ Help avoid polling for transition conditions 14 42

  18. RoboTool Eclipse plugins Textual editor developed using Xtext Graphical editor developed using Sirius Code generator for the semantics Code generator for simulation Validation rules 15 42

  19. RoboTool 16 42

  20. RoboTool Case studies: ◮ Alpha Algorithm (Single Robot and Collection); ◮ Chemical Detector; ◮ Autonomous Chemical Detector; ◮ Foraging; ◮ Transport; etc. Generated semantics used for verification using FDR4 FDR4 compression functions highly effective 17 42

  21. Current developments Generation of simulations Generation of probabilistic semantics Generation of sematics for Isabelle/UTP 18 42

  22. RoboSim Based on RoboChart Explicit cyclic pattern for simulation Related to RoboChart models via refinement 19 42

  23. Collection Modelling

  24. Motivation RoboChart The focus of RoboChart is the modelling, analysis and simulation of individual robots. 20 42

  25. Motivation RoboChart The focus of RoboChart is the modelling, analysis and simulation of individual robots. Other notations Support in other notations tends to be concrete. 20 42

  26. Objective Support modelling, analysis and simulation of collections Reuse RoboChart models and semantics 21 42

  27. Extensions new implicit type ID and module constant id ; robotic platform events are broadcast and directional; broadcast events have implicit ID parameters: to and from ; input events can restrict from and record its value; output events can restrict to parameter; and new diagram describes group of collections and how they communicate. 22 42

  28. Models 23 42

  29. Semantics of collections ( 9 i : { 1 .. N } • AggregationRobot ( i )) | report . in , report . out , ack . in , ack . out | J { } K   9 i : { 1 .. N } • 9 j : ( { 1 .. N } \ { i } ) • Buffer ( �� , report , i , report , j ) 9     9 i : { 1 .. N } • 9 j : ( { 1 .. N } \ { i } ) • Buffer ( �� , ack , i , ack , j ) 24 42

  30. Alpha Algorithm 25 42

  31. Alpha Algorithm (old) 26 42

  32. Alpha Algorithm (new) 27 42

  33. Events and their semantics ev![|pred|]!e semantics ev . out . id ? to : { x | x ← ID , pred } ! e − → Skip ev[| v = from | pred |]?u semantics ev . in ? from : { x | x ← ID , pred } . id ? y − → set v ! from − → set u ! y − → Skip 28 42

  34. C urrent status Partial support for modelling Code generation for semantics Validation 29 42

  35. Current status Partial support for modelling Code generation for semantics Validation Ongoing work Complete modelling support Extend simulation generation 29 42

  36. Current status Partial support for modelling Code generation for semantics Validation Ongoing work Complete modelling support Extend simulation generation Future work Optimise verification Investigate data abstraction and induction with FDR4 Investigate theorem proving with Isabelle/UTP 29 42

  37. Robotic platform modelling

  38. Motivation RoboChart focuses on modelling controllers Robotic platform is abstracted as a set of events, variables and operations Existing XML-based notations: URDF, SDF, Collada ◮ not convenient for modelling ◮ not abstract enough ◮ no facilities for modelling behaviour 30 42

  39. Objectives Restructure and refactor SDF Provide graphical representation Extend with facilities to ◮ model behaviours ◮ map between operations, events and variables to sensors and actuators Formal semantics integrated with RoboSim Linked to RoboChart via abstraction Generate both SDF models and platform dependent simulation code 31 42

  40. Simple Model 32 42

  41. Simple Model 33 42

  42. Simple Model 34 42

  43. Simple Model 35 42

  44. Simple Model 36 42

  45. Semantics Inputs Outputs distance : T → R las , ras : T → R Behaviour Revolute Behaviour IR v = R × b × das / K + K × das voltage = 4 × e − 0 . 028 × distance J × as ′ + b × as = K × i L × i ′ + R × i = v − K × as 37 42

  46. Simple Model A = ( Revolute [ [ das := ldas , . . . ] ] | Revolute [ [ das := rdas , . . . ] ] | IR ) � ( A init ldas , rdas = l , r ) � Step ( l , r ) = µ X • until ( voltage > 3 ); obstacle − → X M = var l , r : R • l , r := 0 , 0 ; µ X • Step ( l , r ) △ � true , ls = rd × ( l + r ) / 2 ∧ � � � move . ls . as − → { l , r } : ; X as = rd × ( l − r ) / aL

  47. Simple Model A = ( Revolute [ [ das := ldas , . . . ] ] | Revolute [ [ das := rdas , . . . ] ] | IR ) � ( A init ldas , rdas = l , r ) � Step ( l , r ) = µ X • until ( voltage > 3 ); obstacle − → X M = var l , r : R • l , r := 0 , 0 ; µ X • Step ( l , r ) △ � true , ls = rd × ( l + r ) / 2 ∧ � � � move . ls . as − → { l , r } : ; X as = rd × ( l − r ) / aL

  48. Simple Model A = ( Revolute [ [ das := ldas , . . . ] ] | Revolute [ [ das := rdas , . . . ] ] | IR ) � ( A init ldas , rdas = l , r ) � Step ( l , r ) = µ X • until ( voltage > 3 ); obstacle − → X M = var l , r : R • l , r := 0 , 0 ; µ X • Step ( l , r ) △ � true , ls = rd × ( l + r ) / 2 ∧ � � � move . ls . as − → { l , r } : ; X as = rd × ( l − r ) / aL

  49. Simple Model A = ( Revolute [ [ das := ldas , . . . ] ] | Revolute [ [ das := rdas , . . . ] ] | IR ) � ( A init ldas , rdas = l , r ) � Step ( l , r ) = µ X • until ( voltage > 3 ); obstacle − → X M = var l , r : R • l , r := 0 , 0 ; µ X • Step ( l , r ) △ � true , ls = rd × ( l + r ) / 2 ∧ � � � move . ls . as − → { l , r } : ; X as = rd × ( l − r ) / aL

More recommend