TY - JOUR
T1 - Verified simulation for robotics
AU - Cavalcanti, Ana
AU - Sampaio, Augusto
AU - Miyazawa, Alvaro
AU - Ribeiro, Pedro
AU - Conserva Filho, Madiel
AU - Didier, André
AU - Li, Wei
AU - Timmis, Jon
N1 - Funding Information:
This work is funded by the EPSRC grants EP/M025756/1 and EP/R025479/1 , by the Royal Academy of Engineering , and by INES, grants CNPq / 465614/2014-0 and FACEPE / APQ/0388-1.03/14 . No new primary data was created as part of the study reported here. We are grateful to anonymous reviewers and James Baxter for detailed comments that helped us improve the presentation of our work.
Publisher Copyright:
© 2019 Elsevier B.V.
PY - 2019/4/1
Y1 - 2019/4/1
N2 - Simulation is a favoured technique for analysis of robotic systems. Currently, however, simulations are programmed in an ad hoc way, for specific simulators, using either proprietary languages or general languages like C or C++. Even when a higher-level language is used, no clear relation between the simulation and a design model is established. We describe a tool-independent notation called RoboSim, designed specifically for modelling of (verified) simulations. We describe the syntax, well-formedness conditions, and semantics of RoboSim. We also show how we can use RoboSim models to check if a simulation is consistent with a functional design written in a UML-like notation akin to those often used by practitioners on an informal basis. We show how to check whether the design enables a feasible scheduling of behaviours in cycles as needed for a simulation, and formalise implicit assumptions routinely made when programming simulations. We develop a running example and three additional case studies to illustrate RoboSim and the proposed verification techniques. Tool support is also briefly discussed. Our results enable the description of simulations using tool-independent diagrammatic models amenable to verification and automatic generation of code.
AB - Simulation is a favoured technique for analysis of robotic systems. Currently, however, simulations are programmed in an ad hoc way, for specific simulators, using either proprietary languages or general languages like C or C++. Even when a higher-level language is used, no clear relation between the simulation and a design model is established. We describe a tool-independent notation called RoboSim, designed specifically for modelling of (verified) simulations. We describe the syntax, well-formedness conditions, and semantics of RoboSim. We also show how we can use RoboSim models to check if a simulation is consistent with a functional design written in a UML-like notation akin to those often used by practitioners on an informal basis. We show how to check whether the design enables a feasible scheduling of behaviours in cycles as needed for a simulation, and formalise implicit assumptions routinely made when programming simulations. We develop a running example and three additional case studies to illustrate RoboSim and the proposed verification techniques. Tool support is also briefly discussed. Our results enable the description of simulations using tool-independent diagrammatic models amenable to verification and automatic generation of code.
KW - CSP
KW - Process algebra
KW - Refinement
KW - Semantics
KW - State machines
UR - http://www.scopus.com/inward/record.url?scp=85060236187&partnerID=8YFLogxK
U2 - 10.1016/j.scico.2019.01.004
DO - 10.1016/j.scico.2019.01.004
M3 - Article
AN - SCOPUS:85060236187
SN - 0167-6423
VL - 174
SP - 1
EP - 37
JO - Science of Computer Programming
JF - Science of Computer Programming
ER -