Abstract
Software development for robotics applications is still a major challenge that becomes even more complex when considering multi-robot systems (MRSs). Such distributed software has to perform multiple cooperating tasks in a well-coordinated manner to avoid unsatisfactory emerging behavior. This paper provides an approach for programming MRSs at a high abstraction level using the programming language X-Klaim. The computation and communication model of X-Klaim, based on multiple distributed tuple spaces, permits coordinating with the same abstractions and mechanisms both intra- and inter-robot interactions of an MRS. This allows developers to focus on MRS behavior, achieving readable, reusable, and maintainable code. The proposed approach can be used in practice by integrating X-Klaim and the popular robotics framework ROS. We demonstrate the feasibility and effectiveness of our approach by (i) showing how it scales when implementing two warehouse scenarios allowing us to reuse most of the code when passing from the simpler to the more enriched scenario and (ii) presenting the results of a few experiments showing that our code introduces a slightly greater but acceptable latency and consumes less memory than the traditional ROS implementation based on Python code.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Dhouib, S., et al.: RobotML, a domain-specific language to design, simulate and deploy robotic applications. In: Proc. of SIMPAR. LNCS, vol. 7628, pp. 149–160. Springer, Berlin (2012)
Frigerio, M., Buchli, J., Caldwell, D.G.: A domain specific language for kinematic models and fast implementations of robot dynamics algorithms. In: Proc. of DSLRob’11. CoRR (2013). arXiv:1301.7190
Nordmann, A., Hochgeschwender, N., Wigand, D., Wrede, S.: A survey on domain-specific modeling and languages in robotics. Softw. Eng. Robot. 7, 75–99 (2016)
Doriya, R., Mishra, S., Gupta, S.: A brief survey and analysis of multi-robot communication and coordination. In: Int. Conf. on Computing, Communication, Automation, pp. 1014–1021 (2015)
De Nicola, R., Di Stefano, L., Inverso, O.: Toward formal models and languages for verifiable multi-robot systems. Front. Robot. AI 5, 94 (2018)
Quigley, M., et al.: ROS: an open-source robot operating system. In: ICRA Workshop on Open Source Software (2009)
Nordmann, A., Hochgeschwender, N., Wrede, S.: A survey on domain-specific languages in robotics. In: SIMPAR. LNCS, vol. 8810, pp. 195–206. Springer, Berlin (2014)
de Araújo Silva, E., Valentin, E., Carvalho, J.R.H., da Silva Barreto, R.: A survey of model driven engineering in robotics. Comput. Lang. 62, 101021 (2021)
Casalaro, G.L., et al.: Model-driven engineering for mobile robotic systems: a systematic mapping study. Softw. Syst. Model. (2021)
Bettini, L., Bourr, K., Pugliese, R., Tiezzi, F.: Writing robotics applications with X-Klaim. In: ISoLA 2020. LNCS, vol. 12477, pp. 361–379. Springer, Heidelberg (2020)
Bettini, L., Merelli, E., Tiezzi, F.: X-Klaim is back. In: Models, Languages, and Tools for Concurrent and Distributed Programming. LNCS, vol. 11665, pp. 115–135. Springer, Berlin (2019)
Bettini, L., Bourr, K., Pugliese, R., Tiezzi, F.: Programming multi-robot systems with X-Klaim. In: Leveraging Applications of Formal Methods, Verification and Validation. Adaptation and Learning. LNCS, vol. 13703, pp. 283–300. Springer, Berlin (2022)
De Nicola, R., Ferrari, G.L., Pugliese, R.: KLAIM: a kernel language for agents interaction and mobility. IEEE Trans. Softw. Eng. 24(5), 315–330 (1998)
Milner, R.: Communication and Concurrency. PHI Series in Computer Science. Prentice Hall, New York (1989)
Gelernter, D.: Generative communication in Linda. ACM Trans. Program. Lang. Syst. 7(1), 80–112 (1985)
Bettini, L., De Nicola, R., Pugliese, R.: Klava: a Java package for distributed and mobile applications. Softw. Pract. Exp. 32(14), 1365–1394 (2002)
Bettini, L., De Nicola, R., Falassi, D., Lacoste, M., Loreti, M.: A flexible and modular framework for implementing infrastructures for global computing. In: DAIS. LNCS, vol. 3543, pp. 181–193. Springer, Berlin (2005)
Bettini, L., De Nicola, R., Pugliese, R., Ferrari, G.L.: Interactive mobile agents in X-Klaim. In: WETICE, pp. 110–117. IEEE Computer Society, Los Alamitos (1998)
Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend, 2nd edn. Packt Publishing (2016)
Efftinge, S., Eysholdt, M., Köhnlein, J., Zarnekow, S., von Massow, R., Hasselbring, W., Hanus, M.: Xbase: implementing domain-specific languages for Java. In: GPCE, pp. 112–121. ACM, New York (2012)
Bettini, L., Loreti, M., Pugliese, R.: An infrastructure language for open nets. In: SAC, pp. 373–377. ACM, New York (2002)
Koenig, N.P., Howard, A.: Design and use paradigms for Gazebo, an open-source multi-robot simulator. In: IROS, pp. 2149–2154. IEEE Press, New York (2004)
Estévez, E., et al.: ART2ool: a model-driven framework to generate target code for robot handling tasks. Adv. Manuf. Technol. 97(1–4), 1195–1207 (2018)
Harbin, J., et al.: Model-driven simulation-based analysis for multi-robot systems. In: 24th Int. Conf. on Model Driven Engineering Languages and Systems (MODELS) (2021)
Bubeck, A., et al.: BRIDE - a toolchain for framework-independent development of industrial service robot applications. In: ISR, pp. 137–142. VDE, (2014)
Rutle, A., Backer, J., Foldøy, K., Bye, R.T.: CommonLang: A DSL for defining robot tasks. In: Proc. of MODELS18 Workshops. CEUR Workshop Proc., vol. 2245, pp. 433–442 (2018)
Desai, A., Saha, I., Yang, J., Qadeer, S., Seshia, S.A.: Drona: a framework for safe distributed mobile robotics. In: 8th Intern. Conference on Cyber-Physical Systems, pp. 239–248 (2017)
Ciccozzi, F., et al.: Adopting MDE for specifying and executing civilian missions of mobile multi-robot systems. IEEE Access 4, 6451–6466 (2016)
Brugali, D., Gherardi, L.: Hyperflex: a model driven toolchain for designing and configuring software control systems for autonomous robots. In: Robot Operating System. Studies in Computational Intelligence, vol. 625, pp. 509–534. Springer, Berlin (2016)
Lomuscio, A., Qu, H., Raimondi, F.: Mcmas: an open-source model checker for the verification of multi-agent systems. Softw. Tools Technol. Transf. 19(1), 9–30 (2017)
Ghosh, R., et al.: Koord: a language for programming and verifying distributed robotics application. Proc. ACM Program. Lang. 4(OOPSLA), 1–30 (2020)
García, S., et al.: High-level mission specification for multiple robots. In: 12th ACM SIGPLAN Int. Conf on Software Language Engineering, pp. 127–140 (2019)
Miyazawa, A., et al.: RoboChart: modelling and verification of the functional behaviour of robotic applications. Softw. Syst. Model. 18(5), 3097–3149 (2019)
St-Onge, D., Varadharajan, V.S., Li, G., Svogor, I., Beltrame, G.: ROS and Buzz: consensus-based behaviors for heterogeneous teams CoRR (2017). arXiv:1710.08843
Figat, M., Zieliński, C.: Robotic system specification methodology based on hierarchical Petri nets. IEEE Access 8, 71617–71627 (2020)
De Nicola, R., Loreti, M., Pugliese, R., Tiezzi, F.: A formal approach to autonomic systems programming: the SCEL language. ACM Trans. Auton. Adapt. Syst. 9(2), 7 (2014)
Alonso, D., et al.: V3CMM: a 3-view component meta-model for model-driven robotic software development. J. Softw. Eng. Robot. 1, 3–17 (2010)
Bruyninckx, H., et al.: The BRICS component model: a model-based development paradigm for complex robotics software systems. In: SAC, pp. 1758–1764. ACM, New York (2013)
Ramaswamy, A., Monsuez, B., Tapus, A.: SafeRobots: A model-driven approach for designing robotic software architectures. In: Proc. of CTS, pp. 131–134. IEEE, New York (2014)
Kumar, P., et al.: ROSMOD: a toolsuite for modeling, generating, deploying, and managing distributed real-time component-based software using ROS. In: Int. Symp. on Rapid System Prototyping (RSP) (2015)
Adam, S., Schultz, U.P.: Towards interactive, incremental programming of ROS nodes. In: Workshop on Domain-Specific Languages and Models for Robotic Systems (2014)
Meng, W., Park, J., Sokolsky, O., Weirich, S., Lee, I.: Verified ROS-based deployment of platform-independent control systems. In: NASA Formal Methods Symposium, pp. 248–262. Springer, Berlin (2015)
Adam, S., Larsen, M., Jensen, K., Schultz, U.P.: Rule-based dynamic safety monitoring for mobile robots. J. Softw. Eng. Robot. 7(1), 121–141 (2016)
Huang, J., et al.: ROSRV: runtime verification for robots. In: Int. Conf. on Runtime Verification, pp. 247–254. Springer, Berlin (2014)
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. 13(1), 1096–1107 (2018)
Dragule, S., Meyers, B., Pelliccione, P.: A generated property specification language for resilient multirobot missions. In: SERENE. LNCS, vol. 10479, pp. 45–61. Springer, Berlin (2017)
Hu, C., Dong, W., Yang, Y., Shi, H., Zhou, G.: Runtime verification on hierarchical properties of ROS-based robot swarms. IEEE Trans. Reliab. 69(2), 674–689 (2019)
Yan, Z., Jouandeau, N., Ali, A.: A survey and analysis of multi-robot coordination. Int. J. Adv. Robot. Syst. 10, 1 (2013)
Farinelli, A., Iocchi, L., Nardi, D.: Multirobot systems: a classification focused on coordination. IEEE Trans. Syst. Man Cybern., Part B, Cybern. 34(5), 2015–2028 (2004)
Pinciroli, C., Lee-Brown, A., Beltrame, G.: A tuple space for data sharing in robot swarms. EAI Endorsed Trans. Collab. Comput. 2(9), 2 (2016)
Majumdar, R., Yoshida, N., Zufferey, D.: Multiparty motion coordination: from choreographies to robotics programs. Proc. ACM Program. Lang. 4(OOPSLA), 134 (2020)
Luckcuck, M., Farrell, M., Dennis, L.A., Dixon, C., Fisher, M.: Formal specification and verification of autonomous robotic systems. ACM Comput. Surv. 52, 1–41 (2020)
De Nicola, R., Ferrari, G.L., Pugliese, R., Venneri, B.: Types for access control. Theor. Comput. Sci. 240(1), 215–254 (2000)
Gorla, D., Pugliese, R.: Enforcing security policies via types. In: SPC. LNCS, vol. 2802, pp. 86–100. Springer, Berlin (2003)
Gorla, D., Pugliese, R.: Resource access and mobility control with dynamic privileges acquisition. In: ICALP. LNCS, vol. 2719, pp. 119–132. Springer, Berlin (2003)
De Nicola, R., Gorla, D., Pugliese, R.: Confining data and processes in global computing applications. Sci. Comput. Program. 63(1), 57–87 (2006)
De Nicola, R., Gorla, D., Pugliese, R.: Basic observables for a calculus for global computing. Inf. Comput. 205(10), 1491–1525 (2007)
De Nicola, R., et al.: From flow logic to static type systems for coordination languages. Sci. Comput. Program. 75(6), 376–397 (2010)
De Nicola, R., Loreti, M.: A modal logic for mobile agents. ACM Trans. Comput. Log. 5(1), 79–128 (2004)
De Nicola, R., Katoen, J., Latella, D., Loreti, M., Massink, M.: Model checking mobile stochastic logic. Theor. Comput. Sci. 382(1), 42–70 (2007)
Eckhardt, J., Mühlbauer, T., Meseguer, J., Wirsing, M.: Semantics, distributed implementation, and formal analysis of KLAIM models in Maude. Sci. Comput. Program. 99, 24–74 (2015)
Gjondrekaj, E., et al.: Towards a formal verification methodology for collective robotic systems. In: ICFEM12. LNCS, vol. 7635, pp. 54–70. Springer, Berlin (2012)
Belmonte, G., Ciancia, V., Latella, D., Massink, M.: VoxLogicA: A spatial model checker for declarative image analysis. In: TACAS 2019. LNCS, vol. 11427, pp. 281–298. Springer, Berlin (2019)
Basile, D., ter Beek, M.H., Ciancia, V.: An experimental toolchain for strategy synthesis with spatial properties. In: ISoLA 2022. LNCS, vol. 13703, pp. 142–164. Springer, Berlin (2022)
Ciancia, V., Gilmore, S., Grilletti, G., Latella, D., Loreti, M., Massink, M.: Spatio-temporal model checking of vehicular movement in public transport systems. Int. J. Softw. Tools Technol. Transf. 20(3), 289–311 (2018)
Gjondrekaj, E., Loreti, M., Pugliese, R., Tiezzi, F.: Modeling adaptation with a tuple-based coordination language. In: SAC12, pp. 1522–1527. ACM, New York (2012)
Acknowledgements
We thank the anonymous referees for their useful comments.
Funding
Open access funding provided by Università degli Studi di Firenze within the CRUI-CARE Agreement. This work was partially supported by the PRIN projects “SEDUCE” n. 2017TWRCNB and “T-LADIES” n. 2020TL3X8X, the INdAM - GNCS Project “Proprietà qualitative e quantitative di sistemi reversibili” n. CUP_E55F2200027001, and the project SERICS (PE00000014) under the NRRP MUR program funded by the EU - NextGenerationEU.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Competing Interests
The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest. All authors contributed equally to this work.
Additional information
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Bettini, L., Bourr, K., Pugliese, R. et al. Coordinating and programming multiple ROS-based robots with X-KLAIM. Int J Softw Tools Technol Transfer 25, 747–764 (2023). https://doi.org/10.1007/s10009-023-00727-w
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-023-00727-w