Abstract
Developing robotics applications is a demanding software engineering challenge. Such a software has to perform multiple cooperating tasks in a well-coordinated manner in order to avoid unsatisfactory behavior. In this paper, we define an approach for developing robot software based on the integration of the programming language X-Klaim and the popular robotics framework ROS. X-Klaim is a programming language specifically devised to design distributed applications consisting of software components interacting through multiple distributed tuple spaces. Advantages of using X-Klaim in the robotics domain derive from its high abstraction level, that allows developers to focus on robots’ behavior, and from its computation and communication model, which is especially suitable for dealing with the distributed nature of robots’ architecture. We show the feasibility and the effectiveness of the proposed approach by implementing a scenario involving a robot looking for potential victims in a disaster area.
The work was supported by the PRIN project “SEDUCE” n. 2017TWRCNB.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
- 2.
- 3.
- 4.
- 5.
For the sake of presentation, we omit from the description of Klaim nodes the distinction between physical and logical localities and, hence, the so called allocation environment. The latter is a component of a node that acts as a name solver binding logical localities, occurring in the processes hosted in the node, to specific physical localities.
- 6.
Code completion is provided in the X-Klaim Eclipse editor for imports as well as standard “Organize imports” mechanisms.
- 7.
- 8.
Jetty 9: https://www.eclipse.org/jetty/.
- 9.
This interaction is denoted in Fig. 5 by a white arrow, to stress its optionality.
- 10.
We ‘consume’ java_rosbridge and X-Klaim runtime libraries as Maven artifacts.
- 11.
Non-blocking versions of in and read are also available: in_nb and read_nb, respectively.
References
Adam, S., Schultz, U.P.: Towards interactive, incremental programming of ROS nodes. In: Workshop on Domain-Specific Languages and Models for Robotic Systems (2014)
Alonso, D., Vicente-Chicote, C., Ortiz, F., Pastor, J., Álvarez, B.: V\(^3\)CMM: a 3-view component meta-model for model-driven robotic software development. J. Softw. Eng. Rob. 1, 3–17 (2010)
Bettini, L., De Nicola, R., Falassi, D., Lacoste, M., Loreti, M.: A flexible and modular framework for implementing infrastructures for global computing. In: Kutvonen, L., Alonistioti, N. (eds.) DAIS 2005. LNCS, vol. 3543, pp. 181–193. Springer, Heidelberg (2005). https://doi.org/10.1007/11498094_17
Bettini, L., De Nicola, R., Pugliese, R.: KLAVA: a Java package for distributed and mobile applications. Softw. Pract. Experience 32(14), 1365–1394 (2002)
Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend, 2nd edn. Packt Publishing, Birmingham (2016)
Bettini, L., De Nicola, R., Pugliese, R., Ferrari, G.L.: Interactive mobile agents in X-Klaim. In: WETICE, pp. 110–117. IEEE Computer Society (1998)
Bettini, L., Loreti, M., Pugliese, R.: An infrastructure language for open nets. In: SAC, pp. 373–377. ACM (2002)
Bettini, L., Merelli, E., Tiezzi, F.: X-Klaim is back. In: Boreale, M., Corradini, F., Loreti, M., Pugliese, R. (eds.) Models, Languages, and Tools for Concurrent and Distributed Programming. LNCS, vol. 11665, pp. 115–135. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-21485-2_8
Brugali, D.: Model-driven software engineering in robotics: Models are designed to use the relevant things, thereby reducing the complexity and cost in the field of robotics. IEEE Robot. Autom. Mag. 22(3), 155–166 (2015)
Bruyninckx, H., Klotzbücher, M., Hochgeschwender, N., Kraetzschmar, G.K., Gherardi, L., Brugali, D.: The BRICS component model: a model-based development paradigm for complex robotics software systems. In: SAC, pp. 1758–1764. ACM (2013)
Buravlev, V., De Nicola, R., Mezzina, C.A.: Evaluating the efficiency of Linda implementations. Concurr. Comput. Pract. Exp. 30(8) (2018)
De Nicola, R., Di Stefano, L., Inverso, O.: Toward formal models and languages for verifiable multi-robot systems. Front. Rob. AI 5, 94 (2018)
De Nicola, R., Ferrari, G.L., Pugliese, R.: KLAIM: a kernel language for agents interaction and mobility. IEEE Trans. Software Eng. 24(5), 315–330 (1998)
Dhouib, S., Kchir, S., Stinckwich, S., Ziadi, T., Ziane, M.: RobotML, a domain-specific language to design, simulate and deploy robotic applications. In: Noda, I., Ando, N., Brugali, D., Kuffner, J.J. (eds.) SIMPAR 2012. LNCS (LNAI), vol. 7628, pp. 149–160. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-34327-8_16
Di Ruscio, D., Malavolta, I., Pelliccione, P.: A family of domain-specific languages for specifying civilian missions of multi-robot systems. In: Proceedings of MORSE@STAF. CEUR Workshop Proceedings, vol. 1319, pp. 16–29 (2014)
Djukic, V., Popovic, A., Tolvanen, J.: Domain-specific modeling for robotics: from language construction to ready-made controllers and end-user applications. In: Proceedings of MORSE@RoboCup, pp. 47–54. ACM (2016)
Efftinge, S., et al.: Xbase: implementing domain-specific languages for Java. In: GPCE, pp. 112–121. ACM (2012)
Frigerio, M., Buchli, J., Caldwell, D.G.: A domain specific language for kinematic models and fast implementations of robot dynamics algorithms. In: Proceedings of DSLRob’11. CoRR, vol. abs/1301.7190 (2013)
Gelernter, D.: Generative Communication in Linda. ACM Trans. Program. Lang. Syst. 7(1), 80–112 (1985)
Houliston, T., et al.: NUClear: a loosely coupled software architecture for humanoid robot systems. Front. Rob. and AI 3, 20 (2016)
Meng, W., Park, J., Sokolsky, O., Weirich, S., Lee, I.: Verified ROS-based deployment of platform-independent control systems. In: Havelund, K., Holzmann, G., Joshi, R. (eds.) NFM 2015. LNCS, vol. 9058, pp. 248–262. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-17524-9_18
Milner, R.: Communication and Concurrency. PHI Series in Computer Science. Prentice Hall, Upper Saddle River (1989)
Nordmann, A., Hochgeschwender, N., Wigand, D., Wrede, S.: A survey on domain-specific modeling and languages in robotics. J. Softw. Eng. Rob. 7, 75–99 (2016)
Quigley, M., et al.: ROS: an open-source robot operating system. In: ICRA Workshop on Open Source Software (2009)
Ramaswamy, A., Monsuez, B., Tapus, A.: SafeRobots: a model-driven approach for designing robotic software architectures. In: Proceedings of CTS, pp. 131–134. IEEE (2014)
Rutle, A., Backer, J., Foldøy, K., Bye, R.T.: CommonLang: a DSL for defining robot tasks. In: Proceedings of MODELS 2018 Workshops. CEUR Workshop Proceedings, vol. 2245, pp. 433–442 (2018)
Schlegel, C., Steck, A., Lotz, A.: Model-driven software development in robotics: communication patterns as key for a robotics component model. In: Introduction to Modern Robotics, pp. 119–150. iConcept Press (2011)
Schmidt, D.C.: Guest editor’s introduction: model-driven engineering. IEEE Comput. 39(2), 25–31 (2006)
Voelter, M.: Using language workbenches and domain-specific languages for safety-critical software development. In: Proceedings of SE/SWM. LNI, vol. P-292, pp. 143–144. GI (2019)
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Bettini, L., Bourr, K., Pugliese, R., Tiezzi, F. (2020). Writing Robotics Applications with X-Klaim. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation: Engineering Principles. ISoLA 2020. Lecture Notes in Computer Science(), vol 12477. Springer, Cham. https://doi.org/10.1007/978-3-030-61470-6_22
Download citation
DOI: https://doi.org/10.1007/978-3-030-61470-6_22
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-61469-0
Online ISBN: 978-3-030-61470-6
eBook Packages: Computer ScienceComputer Science (R0)