Abstract
Software development for robotic systems is traditionally performed based on simulations, manual code implementation, and testing. However, this software development approach can cause safety issues in some scenarios, including multiple robots sharing a workspace. When different robots are executing individual planned tasks, they may collide when not adequately coordinated. Safety problems related to coordination between robots may not be encountered during testing, depending on timing, but may occur during the system’s operation. In this case, formal verification methods can provide a more reliable means to ensure the safety of robotic systems. This paper uses the formal method of model checking for the safety verification of multiple industrial robot manipulators with path conflicts. We give comparative results of two model-checking tools applied to a system with two robot manipulators. Whole workflows, from requirement specification to testing, are presented.
1. Introduction
Multiple robot manipulators that carry out independent tasks in a shared workspace need a solution to avoid mutual collisions. The risk of collision is an issue in various robotic fields, including industrial and service applications. However, robotic system software, which requires the evaluation of such issues, is traditionally developed by robotic system experts. Moreover, manual tests are carried out both in the real system and in the simulation environment. Therefore, the verification and validation (V&V) of the system software depend entirely on the experience and attention of the experts. If the V&V of the system software is not conducted adequately, overlooked system errors can lead to downtime for extremely expensive production plants.
Although software plays an ever-increasing role in robotics, current software engineering practices are perceived as insufficient, often leading to error-prone software that is hard to maintain and cannot easily evolve [1]. Moreover, research and industry have tried to propose many model-driven solutions to engineer the software of robotics systems. Casalaro et al. [2] provide a map of software engineering research in MDE for robotic systems since there is no systematic study of state-of-the-art developments in model-driven engineering (MDE) for robotic systems. Robotic systems are advanced cyber-physical systems (CPS) composed of an intricate blend of hardware, software, and environmental components. Software engineering can be very beneficial in the CPS domain; however, it has traditionally been considered an auxiliary concern of robotic system construction. On the other hand, software engineering technologies and methodologies can facilitate the development of robotic systems by adopting a systematic, disciplined, quantifiable approach in each phase of a software application’s lifespan, from requirements analysis, system architecture definition, and component design to code implementation, testing, and deployment [3]. Some studies provide roboticists with methods and tools to easily create and validate software for robotic systems. Miyazawa et al. [4] and Ye et al. [5] propose a set of constructs suitable for modeling robotic applications and supporting verification via model checking and theorem proving. Their goal is to support roboticists in writing models and applying modern verification techniques using a language familiar to them. With the use of formal verification methods together with software engineering approaches, robotic systems can be less error-prone and more reliable, and the dependency on human skills can be eliminated.
Although formal verification methods have been discussed in the software domain for many years, they are relatively new for robotic systems. Therefore, the demonstration of workflows and application models for formal verification of robotic systems is essential for dissemination. Some survey papers are investigating formal verification methods for robotic systems. Sinha et al. [6] survey formal methods for the dependability of industrial automation systems. They focus on offline or static approaches, leaving out online or runtime approaches like monitoring, diagnosis, and fault tolerance. Luckcuck et al. [7] systematically survey the state of the art in formal specification and verification for autonomous robotics. The main emphasis is that the commonly used both testing methods and simulations are insufficient to ensure correctness, and there is a need to employ formal methods for autonomous robotic systems. Zheng et al. [8] present a literature survey, an online survey of CPS researchers, and interviews in their paper, Perceptions on the State of the Art in Verification and Validation in Cyber-Physical Systems. Ingrand [9] deals with recent trends in the formal V&V of autonomous robot software. Autonomous robot software needs to be organized along with a particular architecture. Some architectures make easier the V&V of the overall system.
Some studies present architectures to implement V&V for robotic systems. Kanter and Vain [10] present a testing toolkit named TestIt. It provides tools for the automated model-based testing of autonomous multi-robot systems. They use UPPAAL (Ver.4.1.26-2) [11] for modeling and model checking. Wang et al. [12] present a model-based approach, which has the phases of modeling, verification, and automatic code generation. In their framework, UPPAAL is employed for verification, and the code generator produces ROS code. An industrial robot application of grasping a cup is used to demonstrate and evaluate the proposed framework.
The use of various verification methods like model checking, runtime verification, and simulation-based testing, in combination, increases the verification coverage and provide a more reliable system. Webster et al. [13] present an approach for the V&V of a robot assistant in the context of human–robot interaction. They use model checking, simulation-based testing, and user validation in experiments. They entitle their systematic approach corroborative V&V. They employ PRISM (Ver.4.7) [14] for model checking and ROS–Gazebo [15] for simulation-based testing. Villani et al. [16] propose the combined application of two verification techniques: model checking with UPPAAL and CoFI (Conformance and fault injection) model-based testing with ConData [17]. They present the tool and discuss its usage in industrial software development cases. Kejstova et al. [18] describe a novel approach for adapting an existing software model checker to perform precise runtime verification. They assert that the runtime verification after model checking improves coverage. Desai et al. [19] also promote a similar approach. They present an approach for validating the end-to-end correctness of a robotic system by combining model checking and runtime verification. They claim that combining model checking with runtime verification provides a bridge between software verification and the actual execution of the software on a real robotic platform in the physical world.
On the other hand, demonstrating formal verification methods in robotic system applications is of great importance. These applications serve as a model for robotic system developers. These demonstrations will remain valuable until formal verification methods become standard processes in robotic systems and tools are developed to facilitate this process. Halder et al. [20] propose an approach to model and verify ROS systems by using the UPPAAL model checker, focusing on one of the main features of ROS, the communication between nodes. Webster et al. [21] present a case study on formal verification for a high-level planner for the robot named Care-O-bot, an autonomous personal robot assistant. The robot can implement many service tasks in a structured robot house by operating close to its human operators. In this study, the robot models and their environment are formally verified by using model checking. Konur et al. [22] develop and apply automated probabilistic formal verification techniques to robot swarms. They used the probabilistic model checker PRISM and analyzed the probabilistic properties of the swarm. They targeted an existing swarm algorithm for foraging robots. Gjondrekaj et al. [23] present a formal verification approach for collective robotic systems. They used the formal language KLAIM and related analysis tools. They claim that while existing approaches focus on microscopic or macroscopic views of the system, they model aspects of both the robot hardware and behavior, and the related environment. They model a scenario of collective transport by robots. Dixon et al. [24] use formal verification techniques for analyzing the emergent behaviors of robotic swarms. They apply model checking to check whether temporal properties are satisfied for all the possible behaviors of the system. Weismann et al. [25] present a compiler that can transform industrial robot programs into PROMELA models. Then, they implement model checking using SPIN (Ver.6.0) to check collisions and deadlocks in a car-body welding station with nine robots. Quottrup et al. [26] present a study in which they model, analyze, and verify motion-planning problems in a scenario with multiple robotic vehicles. The verification is employed by using the verification software UPPAAL. Gu et al. [27] explore model checking for the automatic generation of mission plans for autonomous vehicles. They propose modeling autonomous vehicles as agents in timed automata with a monitor. Then, they implement a tool called TAMAA (timed-automata-based planner for multiple autonomous agents). The demonstration is conducted in an industrial autonomous wheel-loader use case. Wang et al. [28] present a motion planning method using model checking for reconfigurable robot systems. The verification of the model is implemented by UPPAAL.
Industrial robots are programmable multifunction mechanical devices designed to move material, parts, tools, and specialized devices in order to perform a variety of tasks including assembly, sorting, inspection, and others. Many tasks require the robot to work in coordination with other robots and mechanisms like conveyor bands and CNCs. Studies indicate that many robot accidents occur during non-routine operating conditions, such as programming, maintenance, testing, setup, or adjustment. Rather than directly programming and testing a robotic system, modeling the system software, verifying the model with a formal approach, and subsequently programming in accordance with the model will not only reduce accidents but also increase confidence in the safety of the developed system.
This paper presents a methodology from creating verified models to constructing software designs for robotic systems. The methodology is explained through a case study involving multiple industrial robot manipulators with path conflicts. When there is an overlap in the workspaces of more than one robot, they may collide with each other in their movements in this overlapping space. In order to avoid a safety problem, the robots should not have a path passing through the overlapping space or they should be synchronized. While a solution is proposed for the case study consisting of a safety problem that is encountered with many similar problems in production processes, the methodology for the safety verification of robotic systems is also given. The verified models are constructed by using two prominent model-checking tools: UPPAAL and PRISM. The comparison of the two tools is conducted in terms of the suitability and effectiveness of their features for robotic systems. From the verified model, the design of the software in accordance with the model is explained.
This paper uses the formal method, which is model checking, for the safety verification of multiple industrial robot manipulators with path conflicts. The main contributions are: (i) the presentation of model-checking methods for the conflict resolution of multiple industrial robot manipulators that have a shared workspace; (ii) the creation of suitable models in a sample scenario that can be easily adapted to different similar scenarios; and (iii) demonstration of the opportunities offered by the model-checking method for the effective programming of robot systems. The paper is organized as follows. In Section 2, we introduce the model-checking technique with two different model constructions. Section 3 describes the case study with modeling. Section 4 presents the verification analysis. The results and discussions are given in Section 5. Then, we provide concluding remarks and directions for future work in Section 6.
2. Model Checking
Model checking is one of the techniques for the formal verification of systems. It verifies the correctness of a system (that is, meeting the defined requirements) by rigorously exploring the behavior of the model, which is an abstraction of the system, expressed in mathematical notation. Thus, all possible behaviors of the systems are described by a finite structure such as a finite-state automaton. Then, the desired properties are specified in a property specification language e.g., temporal logic. Furthermore, all possible paths throughout the automaton correspond to all possible runs of the system. There are many tools for model checking. Two of them, UPPAAL and PRISM, are used in this study. Thus, the first stage of the formal verification of the system using the model-checking technique is to construct the behavioral model of the system. In the following subsections, we introduce the system modeling formalisms utilized by UPPAAL and PRISM, respectively.
2.1. System Modeling Based on Timed Automata
Timed automata were introduced as a formal notation to model the behavior of real-time systems [29,30]. This formalism provides labeled state-transition graphs with timing constraints using real-valued clock variables. The state transition system is defined by a tuple , where is a set of states, is a set of initial states, is a set of labels (or events), and is a set of transitions. The system starts in an initial state, and any transitions between the states are written by for where and .
The behaviors of the system may also be expressed as a state transition system with timing constraints. , also called a timed automaton, is defined by a tuple . is a finite set of locations (representing states of ), is the set of start (initial) locations, is the finite set of clocks, is a set of actions (actions, co-actions, internal -action), and is a set of edges (transitions) between locations with an action, a guard, and a set of clocks. is the set of clock constraints involving clocks from , and is the powerset of . A clock constraint is simply a term of the form , where is a clock, is a constant, and is a comparison operator. , which is called an invariant, is a mapping that labels each location in with some clock constraint in .
The states of are represented by pairs , where is a location and is a clock interpretation for , such that satisfies the invariant . The set of all states of is denoted by . A state is the initial state if is an initial location of and for all clocks .
The transition may occur with elapse of time for a state and a real-valued time increment , , if for all , satisfies the invariant . It may also occur with a location switch for a state and a switch representing an edge from location to location , where is a label, is a guard and a clock constraint over , and is a subset of clocks to be reset. The location switch implements . means the clock assignment that maps all clocks in to 0 and agrees with for other clocks in .
Timed automata are often composed of a network of timed automata over a common set of clocks and actions, consisting of timed automata , .
The expressions in timed automata can be addressed in guard, invariant, channel, and update. A guard is a particular expression evaluating a Boolean function on edges. An invariant is an expression that indicates the time that can be spent on a node. A channel is considered for synchronizing the progress of two or more automata. An update is an expression set that assigns values to clocks and variables.
2.2. System Modeling Based on Continuous Time Markov Chains (CTMC)
A continuous-time Markov chain (CTMC) is a continuous stochastic process. The process changes state according to an exponential random variable and then moves to a different state as specified by the probabilities of a stochastic matrix. A continuous-time Markov chain is a tuple , where is a finite set of states; is the transition rate matrix; and is a labeling with atomic propositions [31]. assigns to each state the set of atomic propositions that are valid in .
A transition between and may occur when , and is the probability that the transition can be triggered within time units. Thus, the delay of transition may occur with the exponential distribution with the rate .
2.3. Relation between Verification Models and Software Design
Software designs generally consist of many modules that interact with each other. If an object-oriented approach is used for the software design, each module becomes an instance of a class. The model of each module may be represented by timed automata or CTMS, and the behavior of each module in the overall software is represented by the network of timed automata, as seen in Figure 1.
Figure 1.
A representation of timed automata as the members of a network.
In Figure 1, are the sent synch messages from the module to other modules for triggering action. Similarly, are the received synch from the module to the module for triggering action. Some state transitions of the module may depend on the states of other modules as the parameters of the guard condition. Therefore, are the locations (states) of a module needed by another module.
4. Verification Analysis
Each robotic system is designed and implemented based on some requirements. The requirements may be categorized as functional and non-functional. For example, placing soda cans from the moving conveyor band in the red crate and water bottles in the white crate by means of the robot arms is a functional requirement. However, the requirements labeled RQ1–RQ5 that are given in Section 3.1 are non-functional safety requirements.
During the construction of the model, the model of the robotic system needs to be checked to establish whether it meets the requirements. Model checkers perform this task by exploring the model state space exhaustively in order to determine whether or not it satisfies the required property. The requirements are formally specified as properties. There are many formal specification languages used by various model checkers.
4.1. Property Specification and Model Checking for UPPAAL
The UPPAAL requirement specification language provides semantics for specifications in CTL. Let be a given state formula for the specification of requirements. A state formula is an expression that can be evaluated for a state without looking at the behavior of the model. It supports five types of properties. These are as follows:
- is named possibly and evaluates to true for a timed transition system if and only if there exists a path starting at the initial state, such that is eventually satisfied along that path;
- is named invariantly and evaluates to true if and only if every reachable state satisfies ;
- is named potentially always and evaluates to true for a timed transition system if and only if there is a sequence for which holds in all states;
- is named eventually and evaluates to true if and only if all possible transition sequences eventually reach a state satisfying ;
- whenever holds eventually will hold as well.
The requirements RQ1–RQ5 can be specified as follows:
- RQ1.
- A[] not (R2.MOVING_HW && (R1.MOVING_HW || R1.WHITE))
- RQ2.
- A[] not ((R2.MOVING_HW || R2.MOVING_HR) && (R1.MOVING_HR || R1.RED))
- RQ3.
- A[] not ((R1.MOVING_HR) && (R2.MOVING_HR || R2.RED))
- RQ4.
- A[] not ((R1.MOVING_HW || R1.MOVING_HR) && (R2.MOVING_HW || R2.WHITE))
- RQ5.
- No need to query for this requirement since there is no direct path between the states and on the model of the robot controller.
4.2. Property Specification and Model for PRISM
PRISM is capable of understanding properties written in several well-known probabilistic temporal logics. The system requirements are expressed as properties written in PCTL (probabilistic computational tree logic), which is one of these logics. The PRISM property specification language allows the P operator to be used to express the probability of an event occurring. The P operator is used with a bound value and a path property. A bound value could be any of , , , or , where has a range of 0 to 1.
- is true in a state S of a model if the probability that is satisfied by the paths from state S is greater than 0.98.
Through the quantitative properties approach, the P operator has also a usage as follows:
- ∙ is used when computing the actual probability of the given path property’s occurrences.
The path property is a formula to be verified for a single path in a model. It has different types of temporal operators that can be used inside the P operator as follows:
- X (next): The property X prop is true for a path if prob is true in its second state;
- U (until): The property prop1 U prop2 is true for a path if prop2 is true in some state of the path and prop1 is true in all preceding states;
- F (eventually or future): The property F prop is true for a path if prop eventually becomes true at some point along the path;
- G (always or globally): The property G prop is true of a path if prop remains true all states along the path;
- W (weak until): The property prop1 W prop2 is true for a path if prop1 remains true until prop2 becomes true, but does not require that prop2 ever does become true;
- R (release): The property prop1 R prop2 is true for a path if prop2 is true until prop1 becomes true, or prop2 is true forever.
The requirements RQ1-RQ5 can be specified as follows:
- RQ1.
- P = ? [F(robotState2 = 7) & ((robotState1 = 4) | (robotState1 = 7))]
- RQ2.
- P = ? [F((robotState2 = 6) | (robotState2 = 7)) & ((robotState1 = 3) | (robotState1 = 6)) ]
- RQ3.
- P = ? [F(robotState1 = 6) & ((robotState2 = 3) | (robotState2 = 6))]
- RQ4.
- P = ? [F((robotState1 = 6) | (robotState1 = 7)) & ((robotState2 = 4) | (robotState2 = 7))]
- RQ5.
- No need to query for this requirement since there is no direct path between the states and on the model of the robot controller.
The model given in Algorithms 1–5 and properties RQ1–RQ4 are verified by PRISM. The probability of occurrence of the given properties RQ1–RQ4 is zero, as expected.
5. Results and Evaluation
A case study for multiple industrial robot manipulators with path conflicts is discussed. The software of the robotic system in our case study was developed by a model-based approach. First, a state-based verification model of the system was created in order to be verified by two model checker tools, UPPAAL and PRISM.
UPPAAL and PRISM are model-checking tools capable of verifying systems against given specifications. Both tools are used for modeling and verification. However, each tool has strengths and weaknesses compared to others. UPPAAL is more suitable for real-time systems modeled as networks of timed automata, while PRISM is suitable for developing probabilistic models. Furthermore, UPPAAL allows the modeling of the system via a GUI, but the modeling process in PRISM is code-based [32]. Therefore, modeling in PRISM requires more attention than in UPPAAL. Both consist of a simulator that enables the examination of possible dynamic executions of a system. Moreover, their verifier can detect syntax errors, but properties must be verified through the verifier. UPPAAL uses a subset of CTL as its property specification language, but PRISM utilizes logic such as LTL and PCTL. In addition, there is a difference in model constructions that can be inspected from Figure 5 and Algorithms 1 and 2. The model of the robot controller can be described as a template in UPPAAL. Furthermore, the template is instantiated by two processes for robots R1 and R2. However, in PRISM, the robots R1 and R2 are described in two separate modules.
After the model of the system was verified by meeting the desired requirements, then the control software of the system could be developed to reflect the verified model. The object-oriented design approach was employed to implement the control software. The UML class diagram of the system is given in Figure 15. run() methods of each class implement the related state transition models, which are verified for meeting the requirements. The classes are coded in C++.
Figure 15.
The UML design of the robot software based on the verified model.
The simulation environment was constructed by using WEBOTS. Then, the robot program was run in the simulation environment. The products soda and water moved randomly on the conveyor band. During the execution, it was seen that the requirements were met. Figure 16 shows some snapshots from the simulations. The complete simulation video can be watched at the link https://youtu.be/V_Tpsp5NUA0 (accessed on 3 January 2023). At , the grippers mounted on the robot arms are over the conveyor band, and the products are coming through the grippers. Before , both robot arms hold a water bottle and move towards the white crate at almost the same time. Furthermore, at , robot R2 is waiting for R1 while robot R1 is dropping the bottle and returning to the position HOME. Then, at , the robot R2 also moves toward the white crate and drops the bottle. Similarly, at , R1 grabs a soda can while R2 grabs a water bottle. In this case, R1 waits at HOME until R2 returns HOME after dropping the water bottle into the white crate.

Figure 16.
Snapshots from the simulations.
6. Conclusions
This paper addresses the verification problem of robotic systems, including multiple industrial robot manipulators with path conflicts. Robotic system developers generally prefer the use of test processes based on expertise. However, safety issues are likely to arise with this approach. In this study, we demonstrate the use of formal verification methods in robotic systems. The formal verification method is implemented by two model-checker tools: UPPAAL and PRISM. The paper presents a model description and property specifications for two different model checker tools on the same system, revealing the modeling similarities and differences between the two leading tools. In addition, we show how system software designed using an object-oriented approach utilizes the verified model. Finally, the simulation presents the execution of the software that enables the robotic system to perform safely without any collisions between robot manipulators.
Author Contributions
Conceptualization, M.O. and Z.D.; methodology, M.O.; software, Z.D.; validation, M.O., Z.D. and A.Y.; formal analysis, Z.D. and Ö.A.; investigation, M.O. and Z.D.; resources, Z.D.; data curation, Z.D.; writing—original draft preparation, M.O., Z.D., and A.Y.; writing—review and editing, M.O., Z.D., and A.Y.; visualization, M.O. and Z.D.; supervision, M.O.; project administration, M.O.; funding acquisition, A.Y. All authors have read and agreed to the published version of the manuscript.
Funding
This work was supported by theVALU3S project that has received funding from the ECSEL Joint Undertaking (JU) under grant agreement No 876852. The JU receives support from the European Union’s Horizon 2020 research and innovation programme and Austria, Czech Republic, Germany, Ireland, Italy, Portugal, Spain, Sweden, Turkey (TUBITAK, under contract no:119N356). The views expressed in this work are the sole responsibility of the authors and do not necessarily reflect the views or position of the European Commission. The authors, the VALU3S Consortium, and the ECSEL JU are not responsible for the use which might be made of the information contained in here. This work is supported by the Scientific and Technical Research Council of Turkey (TUBITAK), Contract No 120N800, project title: “Verification and Validation of Automated Systems’ Safety and Security”.
Data Availability Statement
Not applicable.
Acknowledgments
This work was supported by theVALU3S project that has received funding from the ECSEL Joint Undertaking (JU) under grant agreement No 876852. The JU receives support from the European Union’s Horizon 2020 research and innovation programme and Austria, Czech Republic, Germany, Ireland, Italy, Portugal, Spain, Sweden, Turkey (TUBITAK, under contract no:119N356).
Conflicts of Interest
The authors declare no conflict of interest.
References
- Garcia, S.; Strüber, D.; Brugali, D.; Berger, T.; Pelliccione, P. Robotics Software Engineering: A Perspective from the Service Robotics Domain. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Virtual, 8–13 November 2020. [Google Scholar]
- Casalaro, G.L.; Cattivera, G.; Malavolta, I.C.; Wortmann, A.; Pelliccione, P. Model-driven engineering for mobile robotic systems: A systematic mapping study. Softw. Syst. Model. 2022, 21, 19–49. [Google Scholar] [CrossRef]
- Brugali, D.; and Prassler, E. Software engineering for robotics [From the Guest Editors]. IEEE Robot. Autom. Mag. 2009, 16, 9–15. [Google Scholar] [CrossRef]
- Miyazawa, A.; Ribeiro, P.; Li, W.; Cavalcanti, A.; Timmis, J.; Woodcock, J. RoboChart: Modelling and verification of the functional behaviour of robotic applications. Softw. Syst. Model. 2019, 18, 3097–3149. [Google Scholar] [CrossRef]
- Ye, K.; Cavalcanti, A.; Foster, S.; Miyazawa, A.; Woodcook, J. Probabilistic modelling and verification using RoboChart and PRISM. Softw. Syst. Model. 2021, 21, 667–716. [Google Scholar] [CrossRef]
- Sinha, R.; Patil, S.; Gomes, L.; Vyatkin, V. A Survey of Static Formal Methods for Building Dependable Industrial Automation Systems. EEE Trans. Ind. Inform. 2019, 15, 3772–3783. [Google Scholar] [CrossRef]
- Luckcuck, M.; Farrell, M.; Dennis, L.; Dixon, C.; Fisher, M. Formal Specification and Verification of Autonomous Robotic Systems: A Survey. ACM Comput. Surv. 2019, 52, 1–41. [Google Scholar] [CrossRef]
- Zheng, X.; Julien, C.; Kim, M.; Khurshid, S. Perceptions on the State of the Art in Verification and Validation in Cyber-Physical Systems. IEEE Syst. J. 2017, 11, 2614–2627. [Google Scholar] [CrossRef]
- Ingrand, F. Recent Trends in Formal Validation and Verification of Autonomous Robots Software. In Proceedings of the 2019 Third IEEE International Conference on Robotic Computing (IRC), Naples, Italy, 25–27 February 2019. [Google Scholar]
- Kanter, G.; Vain, J. Model-based testing of autonomous robots using TestIt. J. Reliab. Intell. Environ. 2020, 6, 15–30. [Google Scholar] [CrossRef]
- Larsen, K.G.; Pettersson, P.; Yi, W. UPPAAL in a nutshell. Int. J. Softw. Tools Technol. Transf. 1997, 1, 134–152. [Google Scholar] [CrossRef]
- Wang, R.; Luo, P.; Guan, Y.; Wei, H.; Li, X.; Zhang, J.; Song, X. Timed automata-based motion planning for a self-assembly robot system. In Proceedings of the 2014 IEEE International Conference on Robotics and Automation (ICRA), Hongkong, China, 31 May–7 June 2014. [Google Scholar]
- Webster, M.; Western, D.; Araiza-Illan, D.; Dixon, C.; Eder, K.; Fisher, M.; Pipe, A.G. Corroborative approach to verification and validation of human-robot teams. Int. J. Robot. Res. 2019, 39, 73–79. [Google Scholar] [CrossRef]
- Kwiatkowska, M.; Norman, G.; and Parker, D. PRISM 4.0: Verification of Probabilistic Real-time Systems. In Proceedings of the 23rd International Conference on Computer Aided Verification (CAV’11), Snowbird, UT, USA, 14–20 July 2011; Springer: Berlin/Heidelberg, Germany, 2011; Volume 6806, pp. 585–591. [Google Scholar]
- GAZEBO. 2021. Available online: https://gazebosim.org/ (accessed on 3 January 2023).
- Villani, E.; Pontes, R.P.; Coracini, G.K.; Ambrósio, A.M. Integrating model checking and model based testing for industrial software development. Comput. Ind. 2019, 104, 88–102. [Google Scholar] [CrossRef]
- Martins, E.; Sabião, S.B..; Ambrosio, A.M. ConData: A tool for automating specification-based test case generation for communication systems. Softw. Qual. J. 1999, 8, 303–319. [Google Scholar] [CrossRef]
- Kejstova, K.; Rockai, P.; Barnat, J. From Model Checking to Runtime Verification and Back. RV2017: Runtime Verification. In Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2017; Volume 10548, pp. 225–240. [Google Scholar]
- Desai, A.; Dreossi, T.; Seshia, S.A. Combining Model Checking and Runtime Verification for Safe Robotics. Runtime Verification. RV 2017. In Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2017; Volume 10548, pp. 172–189. [Google Scholar]
- Halder, R.; Proença, J.; Macedo, N.; Santos, A. Formal Verification of ROS-Based Robotic Applications Using Timed-Automata. In Proceedings of the 2017 IEEE/ACM 5th International FME Workshop on Formal Methods in Software Engineering, Buenos Aires, Argentina, 27 May 2017; pp. 44–50. [Google Scholar]
- Webster, M.; Dixon, C.; Fisher, M.; Salem, M.; Saunders, J.; Koay, K.L.; Dautenhahn, K.; Saez-Pons, J. Toward Reliable Autonomous Robotic Assistants Through Formal Verification: A Case Study. IEEE Trans. Hum.-Mach. Syst. 2016, 46, 186–196. [Google Scholar] [CrossRef]
- Konur, S.; Dixon, C.; Fisher, M. Analysing robot swarm behaviour via probabilistic model checking. Robot. Auton. Syst. 2012, 60, 199–213. [Google Scholar] [CrossRef]
- Gjondrekaj, E.; Loreti, M.; Pugliese, R.; Tiezzi, F.; Pinciroli, C. Towards a Formal Verification Methodology for Collective Robotic Systems. In Formal Methods and Software Engineering. ICFEM 2012. Lecture Notes in Computer Science; Aoki, T., Taguchi, K., Eds.; Springer: Berlin/Heidelberg, Germany, 2012; Volume 7635. [Google Scholar]
- Dixon, C.; Winfield, A.F.T.; Fisher, M.; Zeng, C. Towards temporal verification of swarm robotic systems. Robot. Auton. Syst. 2012, 60, 1429–1441. [Google Scholar] [CrossRef]
- Weißmann, M.; Bedenk, S.; Buckl, C.; Knoll, A. Model Checking Industrial Robot Systems. In Proceedings of the International SPIN Workshop on Model Checking of Software, Snowbird, UT, USA, 14–15 July 2011. [Google Scholar]
- Quottrup, M.M.; Bak, T.; Izadi-Zamanabadi, R. Multi-robot planning: A timed automata approach. In Proceedings of the IEEE International Conference on Robotics and Automation, ICRA ’04, New Orleans, LA, USA, 26 April–1 May 2004. [Google Scholar]
- Gu, R.; Enoiu, E.; Secelenau, C. TAMAA: UPPAAL-based mission planning for autonomous agents. In Proceedings of the 35th Annual ACM Symposium on Applied Computing, Virtual, 30 March–3 April 2020; Association for Computing Machinery: Brno, Czech Republic, 2020; pp. 1624–1633. [Google Scholar]
- Wang, R.; Guan, Y.; Song, H.; Li, X.; Li, X.; Shi, Z.; Song, X. A Formal Model-Based Design Method for Robotic Systems. IEEE Syst. J. 2019, 13, 1096–1107. [Google Scholar] [CrossRef]
- Alur, R. Timed Automata. In Computer Aided Verification. CAV 1999. Lecture Notes in Computer Science; Halbwachs, N., Peled, D., Eds.; Springer: Berlin/Heidelberg, Germany, 1999; Volume 1633. [Google Scholar] [CrossRef]
- Alur, R.; Dill, D.R. A theory of timed automata. Theor. Comput. Sci. 1994, 126, 183–235. [Google Scholar] [CrossRef]
- Baier, C.; Haverkort, B.; Hermanns, H.; Katoen, J. Model Checking Algorithms for Continuous-Time Markov Chains. IEEE Trans. Softw. Eng. 2003, 29, 6. [Google Scholar] [CrossRef]
- Naeem, A.; Azam, F.; Amjad, A.; Anwar, M.W. Comparison of Model Checking Tools Using Timed Automata—PRISM and UPPAAL. In Proceedings of the 2018 IEEE International Conference on Computer and Communication Engineering Technology, Beijing, China, 19–20 September 2018. [Google Scholar]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
















