Abstract
Robots come out of the cage. Soon, it will be possible to interact with free-standing robots along an assembly line or in a manufacturing workshop (robotic co-working). New sensitive robot arms have appeared on the market [1] that slow down or stop when humans enter their context, which creates rich opportunities for collaboration between human and robots. But how to program them? This paper contributes an architectural design pattern to engineer software for robotic co-working with world-oriented modelling (WOM). We argue that robotic co-working always has to take place in smart rooms tracking the movements of humans carefully, so that the robotic system can automatically adapt to their actions. Because robotic co-working should be safe for humans, robots, and their work items, the robots should enter safe states before harmful encounters happen. Based on the safety automata in the style of [1], we suggest to engineer software for the smart rooms of human-robotic co-working with an explicit world model, an automaton of the world’s states, and a software variant space, a software variant family, which are related by a total activation mapping. This construction has the advantage that the world model is split off the software system to make its construction simpler, avoiding if-bloated code. Also, proofs about the entire smart system can be split into a proof about the world model and a proof obligation for the software variant space. Therefore, we claim that world-oriented modelling (WOM) simplifies the development of robotic co-working applications, leveraging the principle of separation of concerns for improved maintainability and quality assurance.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
These dimensions could also be called aspects, but that could imply that in the software variant space, dynamic AOP is used as a programming paradigm, which is not intended.
- 2.
In the following, for simplicity, the listing only specifies the atomic states and their transitions; transitions to complex states can easily be added.
- 3.
At the moment, however, CROM does not support the specification of compartment automata directly. However, from CROM specifications, code in the language SCROLL can be generated. This code can be extended with transition rules for switching compartments.
- 4.
http://st.inf.tu-dresden.de/weir. A video can be found on YouTube: https://www.youtube.com/watch?v=i4Dmzm1CHwM.
References
Haddadin, S., et al.: Towards the robotic co-worker. In: Pradalier, C., Siegwart, R., Hirzinger, G. (eds.) Robotics Research. Springer Tracts in Advanced Robotics, vol. 70, pp. 261–282. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-19457-3_16
Pransky, J.: The Pransky interview: Dr Esben Ostergaard, inventor, co-founder and CTO of Universal Robots. Ind. Robot 42, 93–97 (2015)
Kirschner, D., Velik, R., Yahyanejad, S., Brandstötter, M., Hofbaur, M.: YuMi, come and play with me! A collaborative robot for piecing together a tangram puzzle. In: Ronzhin, A., Rigoll, G., Meshcheryakov, R. (eds.) ICR 2016. LNCS (LNAI), vol. 9812, pp. 243–251. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-43955-6_29
Ju, Z., Yang, C., Li, Z., Cheng, L., Ma, H.: Teleoperation of humanoid Baxter robot using haptic feedback. In: International Conference on Multisensor Fusion and Information Integration for Intelligent Systems (MFI), pp. 1–6. IEEE (2014)
Many: Discussion on the web platform reddit (2015)
Nunez, A., Gasiunas, V.: ECaesarJ User’s Guide. Technische Universität Darmstadt, Germany (2009)
Capilla, R., Bosch, J., Trinidad, P., Cortés, A.R., Hinchey, M.: An overview of dynamic software product line architectures and techniques: observations from research and industry. J. Syst. Softw. 91, 3–23 (2014)
Classen, A., Cordy, M., Schobbens, P.Y., Heymans, P., Legay, A., Raskin, J.F.: Featured transition systems: foundations for verifying variability-intensive systems and their application to LTL model checking. IEEE Trans. Softw. Eng. 39, 1069–1089 (2013)
Raskin, J.F.: An introduction to hybrid automata. In: Hristu-Varsakelis, D., Levine, W.S. (eds.) Handbook of Networked and Embedded Control Systems, pp. 491–518. Birkhäuser (2005)
Kramer, J., Magee, J.: Towards robust self-managed systems. Prog. Inf. 5, 1–4 (2008)
Bencomo, N., France, R.B., Cheng, B.H.C., Aßmann, U. (eds.): Models@run.time - Foundations, Applications, and Roadmaps. LNCS, vol. 8378. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-08915-7
Bencomo, N., Grace, P., Flores-Cortés, C.A., Hughes, D., Blair, G.S.: Genie: supporting the model driven development of reflective, component-based adaptive systems. In: Schäfer, W., Dwyer, M.B., Gruhn, V. (eds.) 30th International Conference on Software Engineering (ICSE 2008), Leipzig, Germany, 10–18 May 2008, pp. 811–814. ACM (2008)
Appeltauer, M., Hirschfeld, R., Lincke, J.: Declarative layer composition with the JCop programming language. J. Object Technol. 12(4), 1–37 (2013)
Afanasov, M., Mottola, L., Ghezzi, C.: Context-oriented programming for adaptive wireless sensor network software. In: International Conference on Distributed Computing in Sensor Systems (DCOSS), pp. 233–240. IEEE Computer Society (2014)
Steimann, F.: On the representation of roles in object-oriented and conceptual modelling. Data Knowl. Eng. 35, 83–106 (2000)
Kühn, T., Leuthäuser, M., Götz, S., Seidl, C., Aßmann, U.: A metamodel family for role-based modeling and programming languages. In: Combemale, B., Pearce, D.J., Barais, O., Vinju, J.J. (eds.) SLE 2014. LNCS, vol. 8706, pp. 141–160. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-11245-9_8
Herrmann, S.: A precise model for contextual roles: the programming language ObjectTeams/Java. Appl. Ontol. 2, 181–207 (2007)
Moret, B.M.E.: Decision trees and diagrams. ACM Comput. Surv. 14, 593–623 (1982)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997). https://doi.org/10.1007/BFb0053381
Cardozo, N., González, S., Mens, K., Straeten, R.V.D., D’Hondt, T.: Modeling and analyzing self-adaptive systems with context Petri nets. In: TASE, pp. 191–198. IEEE Computer Society (2013)
Leuthäuser, M.: Pure embedding of evolving objects. In: Ninth International Conference on Adaptive and Self-Adaptive Systems and Applications (ADAPTIVE), IARIA (2017)
Maycock, J., Steffen, J., Haschke, R., Ritter, H.: Robust tracking of human hand postures for robot teaching. In: 2011 IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 2947–2952. IEEE (2011)
Ude, A., Atkeson, C.G., Riley, M.: Programming full-body movements for humanoid robots by observation. Rob. Auton. Syst. 47, 93–108 (2004)
Andersson, J., de Lemos, R., Malek, S., Weyns, D.: Modeling dimensions of self-adaptive software systems. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 27–47. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02161-9_2
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Aßmann, U., Piechnick, C., Püschel, G., Piechnick, M., Falkenberg, J., Werner, S. (2018). Modelling the World of a Smart Room for Robotic Co-working. In: Pires, L., Hammoudi, S., Selic, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2017. Communications in Computer and Information Science, vol 880. Springer, Cham. https://doi.org/10.1007/978-3-319-94764-8_20
Download citation
DOI: https://doi.org/10.1007/978-3-319-94764-8_20
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-94763-1
Online ISBN: 978-3-319-94764-8
eBook Packages: Computer ScienceComputer Science (R0)