Abstract
An industrial robot is an automatic multi-purpose manipulator, programmable in three or more axes. A program written in a high-level programming language controls these robots, many of these programs involve multiple tasks controlling different robots. Data races are a common problem in concurrent and multi-threaded programming and they are of big concern for the multi-task industrial robotics programmers too. We present a static analysis method for detecting data races in multi-task programs for industrial robots. We propose a technique based on a relation that models when two or more statements from a task occur in between two or more statements in another task. Our static analysis is preceded by a manual, dynamic analysis step for ensuring consistency among tasks for one of the constructs which involves a task waiting for a particular duration. We define a set of not-occurs in-between rules to detect whether two statements in different tasks may race with each other. We have developed a prototype implementation of our tool for the Rapid programming language that is used to program industrial robots of ABB. Rapid has all the features of a typical programming language for industrial robots and hence our race detection framework will generalize to any programming language for industrial robots.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
ANSI/RIA R15.06-1999 American National Standard for Industrial Robots and Robot Systems - Safety Requirements (revision of ANSI/ R15.06-1992 (2012)
Adve, S.V.: Data races are evil with no exceptions: technical perspective. Commun. ACM 53(11), 84 (2010)
Artho, C., Havelund, K., Biere, A.: High-level data races. Softw. Test. Verification Reliab. 13, 207–227 (2003). https://doi.org/10.1002/stvr.281
Braumann, J., Brell-Cokcan, S.: Parametric robot control. Integrated CAD/CAM for architectural design (2011)
Faverges, S.: VAL3 REFERENCE MANUAL Version 5.3 (2006)
Harrow, J.J.: Runtime checking of multithreaded applications with visual threads. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 331–342. Springer, Heidelberg (2000). https://doi.org/10.1007/10722468_20
Havelund, K., Rosu, G.: Monitoring Java programs with Java PathExplorer. Electron. Notes Theor. Comput. Sci. 55, 200–217 (2001)
Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21(7), 558–565 (1978)
O’Kane, J.M.: A gentle introduction to ROS (2014)
Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: a dynamic data race detector for multi-threaded programs. ACM Trans. Comput. Syst. 15(4), 391–411 (1997)
Schwarz, M.D., Seidl, H., Vojdani, V., Lammich, P., Müller-Olm, M.: Static analysis of interrupt-driven programs synchronized via the priority ceiling protocol. In: Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 93–104. POPL 2011, Association for Computing Machinery, New York, NY, USA (2011). https://doi.org/10.1145/1926385.1926398
Simulation, Software, O.P.: Robotstudio 2021.2 (2021). https://new.abb.com/products/robotics/robotstudio/downloads
Sweden, A.: Technical reference manual: RAPID instructions, functions and data types. RobotWare 5.13 (2014). https://library.e.abb.com/public/688894b98123f87bc1257cc50044e809/Technical%20reference%20manual_RAPID_3HAC16581-1_revJ_en.pdf. Accessed 12 Sept 2021
Sweden, A.: Application Manual Controller Software IRC5, robotware 6.03, abb, 2016. Robotware 6.03 (2016)
Sweden, A.: Application manual MultiMove RobotWare 6.08, ABB, 2018. RobotWare 6.08 (2018)
Tulsyan, R., Pai, R., D’Souza, D.: Static race detection for RTOS applications (2020)
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Ashraf, A.K., D’Souza, M. (2023). Static Data Race Detection in Multi-task Programs for Industrial Robots. In: Molla, A.R., Sharma, G., Kumar, P., Rawat, S. (eds) Distributed Computing and Intelligent Technology. ICDCIT 2023. Lecture Notes in Computer Science, vol 13776. Springer, Cham. https://doi.org/10.1007/978-3-031-24848-1_4
Download citation
DOI: https://doi.org/10.1007/978-3-031-24848-1_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-24847-4
Online ISBN: 978-3-031-24848-1
eBook Packages: Computer ScienceComputer Science (R0)