Component Interface Standardization in Robotic Systems
Anton Hristozov, Eric Matson, Eric Dietz, Marcus Rogers
Citation: Communication Papers of the 17th Conference on Computer Science and Intelligence Systems, M. Ganzha, L. Maciaszek, M. Paprzycki, D. Ślęzak (eds). ACSIS, Vol. 32, pages 305–312 (2022)
Abstract. Components are heavily used in many software systems, including robotic systems. The growth in sophistication and diversity of new capabilities for robotic systems presents new challenges to their architectures. Their complexity is growing exponentially with the advent of AI, smart sensors, and the complex tasks they have to accomplish. Such complexity requires a more flexible approach for creating, using, and interoperability of software components. The issue is exacerbated because robotic systems are becoming increasingly reliant on third-party components for specific functions. In order to achieve this kind of interoperability, including dynamic component replacement, we need a way to standardize their interfaces. A formal approach is desperately needed for specifying what an interface of a robotic software component should contain. This study performs an analysis of the issue and presents a universal and generic approach to standardizing component interfaces for robotic systems. Our approach is inspired and influenced by well-established robotic architectures such as ROS, PX4, and Ardupilot. The study is also applicable to other software systems with similar characteristics to robotic systems. We consider using either JSON or Domain-Specific Languages (DSL) development with tools such as Antlr and automatic code and configuration files generation for frameworks such as ROS and PX4. A case study with ROS2 has been done as a proof of concept for the proposed methodology.
- O. Scheickl, M. Rudorfer, and C. Ainhauser, “How timing interfaces in autosar can improve distributed development of real-time software,” INFORMATIK 2008. Beherrschbare Systeme-dank Informatik. Band 2, 2008.
- B. Y. Alkazemi, “A precise characterization of software component interfaces.” J. Softw., vol. 6, no. 3, pp. 349–365, 2011.
- I. Malavolta, G. Lewis, B. Schmerl, P. Lago, and D. Garlan, “How do you architect your robots? state of the practice and guidelines for ros-based systems,” in 2020 IEEE/ACM 42nd International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP), 2020, pp. 31–40.
- J. Axelsson and A. Kobetski, “On the conceptual design of a dynamic component model for reconfigurable autosar systems,” SIGBED Rev., vol. 10, no. 4, p. 45–48, dec 2013. [Online]. Available: https://doi.org/10.1145/2583687.2583698
- L. Meier, D. Honegger, and M. Pollefeys, “Px4: A node-based multithreaded open source robotics framework for deeply embedded platforms,” in 2015 IEEE International Conference on Robotics and Automation (ICRA), 2015, pp. 6235–6240.
- M. Lauer, M. Amy, J.-C. Fabre, M. Roy, W. Excoffon, and M. Stoicescu, “Engineering adaptive fault-tolerance mechanisms for resilient computing on ros,” in 2016 IEEE 17th International Symposium on High Assurance Systems Engineering (HASE), 2016, pp. 94–101.
- M. Lauer, M. Amy, J. Fabre, M. Roy, W. Excoffon, and M. Stoicescu, “Resilient computing on ros using adaptive fault tolerance,” Journal of Software: Evolution and Process, vol. 30, 2018.
- P. T. Eugster, P. Felber, R. Guerraoui, and A.-M. Kermarrec, “The many faces of publish/subscribe,” ACM Comput. Surv., vol. 35, pp. 114–131, 2003.
- E. Erős, M. Dahl, K. Bengtsson, A. Hanna, and P. Falkman, “A ros2 based communication architecture for control in collaborative and intelligent automation systems,” Procedia Manufacturing, vol. 38, pp. 349–357, 2019, 29th International Conference on Flexible Automation and Intelligent Manufacturing ( FAIM 2019), June 24-28, 2019, Limerick, Ireland, Beyond Industry 4.0: Industrial Advances, Engineering Education and Intelligent Manufacturing. [Online]. Available: https://www.sciencedirect.com/science/article/pii/S2351978920300469
- N. T. Huynh, “An analysis view of component-based software architecture reconfiguration,” 03 2019, pp. 1–6.
- A. Butting, R. Heim, O. Kautz, J. O. Ringert, B. Rumpe, and A. Wortmann, “A classification of dynamic reconfiguration in component and connector architecture description,” in MODELS, 2017.
- G. T. Leavens and Y. Cheon, “Design by contract with jml,” 2006.
- A. Beugnard, J.-M. Jezequel, N. Plouzeau, and D. Watkins, “Making components contract aware,” Computer, vol. 32, no. 7, pp. 38–45, 1999.
- A. Sangiovanni-Vincentelli, W. Damm, and R. Passerone, “Taming dr. frankenstein: Contract-based design for cyber-physical systems,” European journal of control, vol. 18, no. 3, pp. 217–238, 2012.
- D. de Leng and F. Heintz, “Dyknow: A dynamically reconfigurable stream reasoning framework as an extension to the robot operating system,” in 2016 IEEE International Conference on Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR), 2016, pp. 55–60.
- C. Cu, R. Culver, and Y. Zheng, “Dynamic architecture-implementation mapping for architecture-based runtime software adaptation.” in SEKE, 2020, pp. 135–140.
- A. Saadi, M. C. Oussalah, Y. Hammal, and A. Henni, “An approach for the dynamic reconfiguration of software architecture,” in 2018 International Conference on Applied Smart Systems (ICASS), 2018, pp. 1–6.
- S. Alhazbi and A. B. Jantan, “Safe runtime reconfiguration in component-based software systems,” in Software Engineering Research and Practice, 2008.
- T. V. Batista, A. Joolia, and G. Coulson, “Managing dynamic reconfiguration in component-based systems,” in EWSA, 2005.
- T. J. Parr and R. W. Quong, “Antlr: A predicated-ll(k) parser generator,” Softw. Pract. Exper., vol. 25, no. 7, p. 789–810, jul 1995. [Online]. Available: https://doi.org/10.1002/spe.4380250705
- M. Eysholdt and H. Behrens, “Xtext: Implement your language faster than the quick and dirty way,” in Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion, ser. OOPSLA ’10. New York, NY, USA: Association for Computing Machinery, 2010, p. 307–309. [Online]. Available: https://doi.org/10.1145/1869542.1869625
- K. Grochowski, M. Breiter, and R. Nowak, “Serialization in object-oriented programming languages,” in Introduction to Data Science and Machine Learning, K. Sud, P. Erdogmus, and S. Kadry, Eds. Rijeka: IntechOpen, 2020, ch. 12. [Online]. Available: https://doi.org/10.5772/intechopen.86917