Abstract
As the field of automation and robotics develops, control software driving the robotic systems becomes more and more complex. Currently, a predominant approach to modularization and structuring of software in the robotics community, which is embodied by ROS (Robot Operating System) and similar frameworks, is to decompose software into a set of functional modules (i.e. nodes, processes, classes). Particular modules comprising the system are chosen manually by the programmer and they exchange data using loosely coupled publish/subscribe communication mechanisms. While such an approach is helpful and currently highly developed, it seems to lack the means of verifying correctness of the whole control software system (i.e. is there a source of data for all input signals of a given module?, are its outputs actually used by other modules in the system?). Manual specification of system structure and verification of its correctness can be tedious and prone to errors. To help alleviate this, we propose a system composition algorithm utilizing graph search methods. It processes a set of modules implemented by the programmer and produces a graph of modules representing the system with input and output signals specified by the programmer. Such an algorithm can be used with nearly arbitrary control software frameworks.
This work was partially supported by Poznan University of Technology under the grant 33/32/SIGR/0003 and National Science Centre (NCN) under the grant No.2014/15/B/ST7/00429.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Embedded template library. http://www.etlcpp.com/. Accessed 20 Jan 2020
Bruyninckx, H., Soetens, P., Koninckx, B.: The real-time motion control core of the Orocos project. In: IEEE International Conference on Robotics and Automation, pp. 2766–2771 (2003)
Chupin, G., Nilsson, H.: Functional reactive programming, restated. In: Proceedings of the 21st International Symposium on Principles and Practice of Programming Languages 2019, PPDP 2019. Association for Computing Machinery, New York (2019). https://doi.org/10.1145/3354166.3354172
Cowley, A., Taylor, C.J.: Stream-oriented robotics programming: the design of roshask. In: 2011 IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 1048–1054 (2011). https://doi.org/10.1109/IROS.2011.6095033
Garber, L.: Robot OS: a new day for robot design. Computer 46(12), 16–20 (2013). https://doi.org/10.1109/MC.2013.434
Gulwani, S., Polozov, O., Singh, R.: Program synthesis. Foundations Trends® Program. Lang. 4(1–2), 1–119 (2017). https://doi.org/10.1561/2500000010
Kozlowski, K., Pazderski, D., Krysiak, B., Jedwabny, T., Piasek, J., Kozlowski, S., Brock, S., Janiszewski, D., Nowopolski, K.: High precision automated astronomical mount. In: Szewczyk, R., Zieliński, C., Kaliczyńska, M. (eds.) Automation 2019, pp. 299–315. Springer, Cham (2020)
Maruyama, Y., Kato, S., Azumi, T.: Exploring the performance of ROS2. In: 2016 International Conference on Embedded Software (EMSOFT), pp. 1–10 (2016). https://doi.org/10.1145/2968478.2968502
de Moura, L., Bjørner, N.: Z3: an efficient smt solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) Tools and Algorithms for the Construction and Analysis of Systems, pp. 337–340. Springer, Heidelberg (2008)
Perez, I., Bärenz, M., Nilsson, H.: Functional reactive programming, refactored. In: Proceedings of the 9th International Symposium on Haskell, Haskell 2016, pp. 33–44. Association for Computing Machinery, New York (2016). https://doi.org/10.1145/2976002.2976010
Pike, L., Wegmann, N., Niller, S., et al.: Copilot: monitoring embedded systems. Innovations Syst. Softw. Eng. 9(1), 235–255 (2013). https://doi.org/10.1007/s11334-013-0223-x
Tedrake, R., The Drake Development Team: Drake: model-based design and verification for robotics (2019). https://drake.mit.edu
Zieliński, C., Winiarski, T.: General specification of multi-robot control system structures. Bull. Polish Acad. Sci. Tech. Sci. 58(1), 15–28 (2010). https://doi.org/10.2478/v10175-010-0002-x
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Gawron, T., Kozłowski, K. (2020). Semi-automated Synthesis of Control System Software Through Graph Search. In: Bartoszewicz, A., Kabziński, J., Kacprzyk, J. (eds) Advanced, Contemporary Control. Advances in Intelligent Systems and Computing, vol 1196. Springer, Cham. https://doi.org/10.1007/978-3-030-50936-1_91
Download citation
DOI: https://doi.org/10.1007/978-3-030-50936-1_91
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-50935-4
Online ISBN: 978-3-030-50936-1
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)