A Software Products Line as Educational Tool to Learn Industrial Robots Programming with Arduino
Abstract
:1. Introduction
2. Related Work
2.1. Software Reuse in Industrial Robots with Controllers
2.2. Arduino Implemented in the Robotics Domain
2.3. Software Engineering on the Arduino Platform
2.4. Educational Robotic and Arduino
3. Materials and Methods
3.1. Domain Engineering
3.1.1. Arduino Code Analysis
3.1.2. Scoping of IRArduino-SPL
- Feature Model: The IRArduino-SPL feature model was defined using FeatureIDE. Figure 1 shows the IRArduino-SPL feature model where commons (named Nucleo_Robot) and variability features (named Personalizacion_Robot) have been organized. Common features include joints, sensors, and movements. The robot_action feature is mandatory for executing each configuration made and triggering the robot. There is also the addActivity feature that endows the robot with a set of sequential logics between conditions and motions, allowing the user to save default logics or add new ones to the robot.
- Feature Model Analysis: Using S.P.L.O.T and FeatureIDE a syntactic analysis of the IRArduino-SPL feature model was performed, it shows there are 24 features (20 concrete and 4 abstracts) in the model, of which 6 are mandatory, 8 optional, 3 alternatives, and 9 grouped. Likewise, there are 12 composite features and 12 terminal features (leaf nodes). The feature model does not have constraints because specific elements, such as multitasking or computer vision, were left out when defining the scoping of the proposal. After all, according to experts, this type of utility difficult the development of industrial IRS in Arduino, so it is a feature that must be carefully implemented in future versions of the SPL. It performed a semantic analysis on the feature model, which ruled that it was consistent and valid for both tools. In addition, no dead features were presented. It identified seven core assets as the most important reusable elements of the SPL. In addition, it was established that there are 13,440 valid product configurations. The degree of variability of the proposal is , which means a lower development cost for each product. Moreover, it found that it must make a minimum of 7 decisions to have a functional derivation. Unlike the previous iteration, this one presented one atomic set, showing that the observed separation between hardware and software does not occur in this version. Finally, a statistical summary of the proposed feature model is presented in the Table 1.
3.1.3. IRArduino-SPL Architecture
- Abstract common structures and behaviors for implementing with variability.
- Use the polymorphic capabilities to achieve flexibility for composing concrete modules.
- Reuse common structures and behaviors with a new code using the inverted control principle.
3.1.4. Core Asset Development
3.2. Application Engineering
3.2.1. Product Development at IRArduino-SPL
3.2.2. IRArduino-SPL Management
4. Case Study, Results and Discussion
4.1. Case Study Execution and Data Collection
4.2. Metric 1: Percentage of Software Reuse
4.3. Metric 2: Lines of Feature Code
4.4. Metric 3: Number of Features
4.5. Usability at IRArduino-SPL
5. Conclusions and Further Work
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
Abbreviations
SPL | Software Product Line |
IRS | Industrial Robotic Systems |
MDE | Model-Driven Engineering |
CBSE | Component-Based Software Engineering |
SOA | Service Oriented Architecture |
OOP | Object-oriented programming |
SLOC | Source Lines of Code |
ROS | Robot Operating System |
References
- Pagani, R.; Nuzzi, C.; Ghidelli, M.; Borboni, A.; Lancini, M.; Legnani, G. Cobot User Frame Calibration: Evaluation and Comparison between Positioning Repeatability Performances Achieved by Traditional and Vision-Based Methods. Robotics 2021, 10, 45. [Google Scholar] [CrossRef]
- Ghafil, H.N.; Jármai, K. Research and Application of Industrial Robot Manipulators in Vehicle and Automotive Engineering, a Survey. In Vehicle and Automotive Engineering 2; Jármai, K., Bolló, B., Eds.; Springer International Publishing: Cham, Switzerland, 2018; pp. 611–623. [Google Scholar] [CrossRef]
- Zereik, E.; Bibuli, M.; Mišković, N.; Ridao, P.; Pascoal, A. Challenges and Future Trends in Marine Robotics. Annu. Rev. Control 2018, 46, 350–368. [Google Scholar] [CrossRef]
- Garduno-Aparicio, M.; Rodriguez-Resendiz, J.; Macias-Bobadilla, G.; Thenozhi, S. A Multidisciplinary Industrial Robot Approach for Teaching Mechatronics-Related Courses. IEEE Trans. Educ. 2018, 61, 55–62. [Google Scholar] [CrossRef]
- Jafri, S.R.N.; Ahmed, A.; Azam, A.; Ihsan, U.B.; Syed, S.N.; Uddin, R. Assistive Mobile Robot for Industrial and Academic Applications. In Proceedings of the 2020 17th International Bhurban Conference on Applied Sciences and Technology (IBCAST), Islamabad, Pakistan, 14–18 January 2020; pp. 332–337. [Google Scholar] [CrossRef]
- Heineck, T.; Goncalves, E.; Sousa, A.; Oliveira, M.; Castro, J. Model-Driven Development in Robotics Domain: A Systematic Literature Review. In Proceedings of the 2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS), Maringá, Brazil, 19–20 September 2016; pp. 151–160. [Google Scholar] [CrossRef]
- Siepmann, F.; Ziegler, L.; Kortkamp, M.; Wachsmuth, S. Deploying a Modeling Framework for Reusable Robot Behavior to Enable Informed Strategies for Domestic Service Robots. Robot. Auton. Syst. 2014, 62, 619–631. [Google Scholar] [CrossRef]
- Brugali, D.; Siciliano, B.; Khatib, O.; Groen, F. Software Engineering for Experimental Robotics; Springer Tracts in Advanced Robotics; Springer: Berlin/Heidelberg, Germany, 2007; Volume 30. [Google Scholar] [CrossRef]
- Ahmad, A.; Babar, M.A. Software Architectures for Robotic Systems: A Systematic Mapping Study. J. Syst. Softw. 2016, 122, 16–39. [Google Scholar] [CrossRef] [Green Version]
- Solis, A.; Hurtado, J. Reutilización de Software En La Robótica Industrial: Un Mapeo Sistemático. Rev. Iberoam. Autom. Inf. Ind. 2020, 17, 354–367. [Google Scholar] [CrossRef]
- Londoño Ospina, N.J. Arquitectura software para robots móviles aplicando la metodología MDASR. Av. Sist. Inf. 2009, 6, 133–144. [Google Scholar]
- Vrochidou, E.; Manios, M.; Papakostas, G.A.; Aitsidis, C.N.; Panagiotopoulos, F. Open-Source Robotics: Investigation on Existing Platforms and Their Application in Education. In Proceedings of the 26th International Conference on Software, Telecommunications and Computer Networks (SoftCOM), Split, Croatia, 13–15 September 2018; pp. 1–6. [Google Scholar] [CrossRef]
- Estévez, E.; Sánchez García, A.; Gámez García, J.; Gómez Ortega, J. Aproximación Basada en UML para el Diseño y Codificación Automática de Plataformas Robóticas Manipuladoras. Rev. Iberoam. Autom. Inf. Ind. RIAI 2017, 14, 82–93. [Google Scholar] [CrossRef] [Green Version]
- 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. 2015, 22, 155–166. [Google Scholar] [CrossRef]
- Rodas-Silva, J.; Galindo, J.A.; Garcia-Gutierrez, J.; Benavides, D. Selection of Software Product Line Implementation Components Using Recommender Systems: An Application to Wordpress. IEEE Access 2019, 7, 69226–69245. [Google Scholar] [CrossRef]
- Atmatzidou, S.; Demetriadis, S. A Didactical Model for Educational Robotics Activities: A Study on Improving Skills through Strong or Minimal Guidance. In Educational Robotics in the Makers Era; Alimisis, D., Moro, M., Menegatti, E., Eds.; Advances in Intelligent Systems and Computing; Springer International Publishing: Cham, Switzerland, 2017; Volume 560, pp. 58–72. [Google Scholar] [CrossRef]
- Brugali, D.; Hochgeschwender, N. Software Product Line Engineering for Robotic Perception Systems. Int. J. Semant. Comput. 2018, 12, 89–107. [Google Scholar] [CrossRef]
- Gherardi, L.; Hunziker, D.; Mohanarajah, G. A Software Product Line Approach for Configuring Cloud Robotics Applications. In Proceedings of the 2014 IEEE 7th International Conference on Cloud Computing, Anchorage, AK, USA, 27 June–2 July 2014; pp. 745–752. [Google Scholar] [CrossRef] [Green Version]
- Abdelhady, M.A.; Dresscher, D.; Broenink, J.F. Reuse-Oriented SLAM Framework Using Software Product Lines. In Proceedings of the 2020 Fourth IEEE International Conference on Robotic Computing (IRC), Taichung, Taiwan, 9–11 November 2020; pp. 187–190. [Google Scholar] [CrossRef]
- Concha Sánchez, A.; Figueroa-Rodríguez, J.F.; Fuentes-Covarrubias, A.G.; Fuentes-Covarrubias, R.; Gadi, S.K. Recycling and Updating an Educational Robot Manipulator with Open-Hardware-Architecture. Sensors 2020, 20, 1694. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Marsono, M.; Yoto, Y.; Suyetno, A.; Nurmalasari, R. Design and Programming of 5 Axis Manipulator Robot with GrblGru Open Source Software on Preparing Vocational Students’ Robotic Skills. J. Robot. Control JRC 2021, 2, 539–545. [Google Scholar] [CrossRef]
- Loukatos, D.; Petrongonas, E.; Manes, K.; Kyrtopoulos, I.-V.; Dimou, V.; Arvanitis, K.G. A Synergy of Innovative Technologies towards Implementing an Autonomous DIY Electric Vehicle for Harvester-Assisting Purposes. Machines 2021, 9, 82. [Google Scholar] [CrossRef]
- Kulshreshtha, M.; Chandra, S.S.; Randhawa, P.; Tsaramirsis, G.; Khadidos, A.; Khadidos, A.O. OATCR: Outdoor Autonomous Trash-Collecting Robot Design Using YOLOv4-Tiny. Electronics 2021, 10, 2292. [Google Scholar] [CrossRef]
- Takeda, M.; Hirata, Y.; Weng, Y.-H.; Katayama, T.; Mizuta, Y.; Koujina, A. Accountable System Design Architecture for Embodied AI: A Focus on Physical Human Support Robots. Adv. Robot. 2019, 33, 1248–1263. [Google Scholar] [CrossRef]
- Geraldi, R.T.; Reinehr, S.; Malucelli, A. Software Product Line Applied to the Internet of Things: A Systematic Literature Review. Inf. Softw. Technol. 2020, 124, 106293. [Google Scholar] [CrossRef]
- Bonfanti, S.; Carissoni, M.; Gargantini, A.; Mashkoor, A. Asm2C++: A Tool for Code Generation from Abstract State Machines to Arduino. In NASA Formal Methods; Barrett, C., Davies, M., Kahsai, T., Eds.; Lecture Notes in Computer Science; Springer International Publishing: Cham, Switzerland, 2017; Volume 10227, pp. 295–301. [Google Scholar] [CrossRef]
- Ataide, A.; Barros, J.P.; Brito, I.S.; Gomes, L. Towards Automatic Code Generation for Distributed Cyber-Physical Systems: A First Prototype for Arduino Boards. In Proceedings of the 2017 22nd IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), Limassol, Cyprus, 12–15 September 2017; pp. 1–4. [Google Scholar] [CrossRef]
- Yaşar, O. A New Perspective on Computational Thinking. Commun. ACM 2018, 61, 33–39. [Google Scholar] [CrossRef]
- Chalmers, C. Robotics and Computational Thinking in Primary School. Int. J. Child-Comput. Interact. 2018, 17, 93–100. [Google Scholar] [CrossRef] [Green Version]
- Angeli, C.; Valanides, N. Developing Young Children’s Computational Thinking with Educational Robotics: An Interaction Effect between Gender and Scaffolding Strategy. Comput. Hum. Behav. 2020, 105, 105954. [Google Scholar] [CrossRef]
- Northrop, L.; Clements, P.; Bachmann, F.; Bergey, J.; Chastek, G.; Cohen, S.; Donohoe, P.; Jones, L.; Krut, R.; Little, R.; et al. A Framework for Software Product Line Practice, Version 5.0. SEI–2007. Available online: https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=495357 (accessed on 27 December 2021).
- Czarnecki, K.; Eisenecker, U. Generative Programming: Methods, Tools, and Applications; Addison Wesley: Boston, MA, USA, 2000. [Google Scholar]
- Ojeda, M.C.C.; Alegría, J.A.H.; Rodriguez, F.J.Á.; Melenje, P.H.R. A Collaborative Method for a Tangible Software Product Line Scoping. In Proceedings of the 2018 ICAI Workshops (ICAIW), Bogotá, Colombia, 1–3 November 2018; pp. 1–6. [Google Scholar] [CrossRef]
- Runeson, P.; Höst, M. Guidelines for Conducting and Reporting Case Study Research in Software Engineering. Empir. Softw. Eng. 2009, 14, 131–164. [Google Scholar] [CrossRef] [Green Version]
- Gou, Y.; Dam, H.K.; Ghose, A. Towards Semantic Merging of Versions of BDI Agent Systems. In PRIMA 2013: Principles and Practice of Multi-Agent Systems; Boella, G., Elkind, E., Savarimuthu, B.T.R., Dignum, F., Purvis, M.K., Eds.; Springer: Berlin/Heidelberg, Germany, 2013; pp. 437–444. [Google Scholar] [CrossRef]
- Mendonca, M.; Branco, M.; Cowan, D. S.P.L.O.T.: Software Product Lines Online Tools. In Proceedings of the 24th ACM SIGPLAN Conference Companion on Object Oriented Programming Systems Languages and Applications—OOPSLA ’09, Orlando, FL, USA, 25–29 October 2009; p. 761. [Google Scholar] [CrossRef]
- Kastner, C.; Thum, T.; Saake, G.; Feigenspan, J.; Leich, T.; Wielgorz, F.; Apel, S. FeatureIDE: A Tool Framework for Feature-Oriented Software Development. In Proceedings of the 24th 2009 IEEE 31st International Conference on Software Engineering, Vancouver, BC, Canada, 16–24 May 2009; pp. 611–614. [Google Scholar] [CrossRef] [Green Version]
- Guerra, E.; Aniche, M. Achieving Quality on Software Design through Test-Driven Development. In Software Quality Assurance; Elsevier: Amsterdam, The Netherlands, 2016; pp. 201–220. [Google Scholar] [CrossRef]
- Aho, A.V.; Sethi, R.; Ullman, Y.J.D. Compiladores: Principios, Técnicas y Herramientas; Pearson Educación: London, UK, 1998. [Google Scholar]
- Asokan, A.; Vigneshwar, M. Design and Control of an EMG-Based Low-Cost Exoskeleton for Stroke Rehabilitation. In Proceedings of the 2019 Fifth Indian Control Conference (ICC), New Delhi, India, 9–11 January 2019; pp. 478–483. [Google Scholar]
- Solis Pino, A.F.; Vargas-Ordoñez, L.M.; Collazos, C.A. Model for Writing Scientific Articles Remotely Through Collaborative Tasks. Tecnológicas 2021, 24, e1701. [Google Scholar] [CrossRef]
- de Almeida Florencio, F.; Moreno, E.D.; Teixeira Macedo, H.; de Britto Salgueiro, R.J.P.; Barreto do Nascimento, F.; Oliveira Santos, F.A. Intrusion Detection via MLP Neural Network Using an Arduino Embedded System. In Proceedings of the 2019 Fifth Indian Control Conference (ICC) 2018 VIII Brazilian Symposium on Computing Systems Engineering (SBESC), Salvador, Brazil, 5–8 November 2018; pp. 190–195. [Google Scholar] [CrossRef]
- Barbon, G.; Margolis, M.; Palumbo, F.; Raimondi, F.; Weldin, N. Taking Arduino to the Internet of Things: The ASIP Programming Model. Comput. Commun. 2016, 89–90, 128–140. [Google Scholar] [CrossRef] [Green Version]
- Ádám, N.; Gergely, T.; Hulič, M.; Hurtuk, J.; Madoš, B. Proto-Cluster: A Multi-Device Approach to Parallel Computing. In Proceedings of the 2019 IEEE 17th World Symposium on Applied Machine Intelligence and Informatics (SAMI), Herlany, Slovakia, 24–26 January 2019; pp. 176–180. [Google Scholar] [CrossRef]
- Krishnan, Y.N.; Bhagwat, C.N.; Utpat, A.P. Fog Computing—Network Based Cloud Computing. In Proceedings of the 2015 2nd International Conference on Electronics and Communication Systems (ICECS), Coimbatore, India, 26–27 February 2015; pp. 250–251. [Google Scholar] [CrossRef]
- Northrop, L.M. SEI’s Software Product Line Tenets. IEEE Softw. 2002, 19, 32–40. [Google Scholar] [CrossRef]
- Ullah, M.I.; Ruhe, G. Towards Comprehensive Release Planning for Software Product Lines. In Proceedings of the 2006 International Workshop on Software Product Management (IWSPM’06—RE’06 Workshop), Minneapolis, MN, USA, 12 September 2006; pp. 51–56. [Google Scholar] [CrossRef]
- Clements, P.C.; Jones, L.G.; Northrop, L.M.; McGregor, J.D. Project Management in a Software Product Line Organization. IEEE Softw. 2005, 22, 54–62. [Google Scholar] [CrossRef]
- Chen, B.; Wan, J.; Shu, L.; Li, P.; Mukherjee, M.; Yin, B. Smart Factory of Industry 4.0: Key Technologies, Application Case, and Challenges. IEEE Access 2018, 6, 6505–6519. [Google Scholar] [CrossRef]
- Votrubec, R.; Koblasa, F. Control System of Vehicle for Smart Factory Model with Principles of Industry 4.0. In Proceedings of the 30th DAAAM International Symposium, Zadar, Croatia, 23–26 October 2019; pp. 261–267. [Google Scholar]
- El-Sharkawy, S.; Yamagishi-Eichler, N.; Schmid, K. Metrics for Analyzing Variability and Its Implementation in Software Product Lines: A Systematic Literature Review. Inf. Softw. Technol. 2019, 106, 1–30. [Google Scholar] [CrossRef]
- Abilio, R.; Vale, G.; Figueiredo, E.; Costa, H. Metrics for Feature-Oriented Programming. In Proceedings of the 2016 IEEE/ACM 7th International Workshop on Emerging Trends in Software Metrics (WETSoM), Austin, TX, USA, 15 May 2016; pp. 36–42. [Google Scholar] [CrossRef]
- Sauro, J.; Lewis, J.R. Standardized Usability Questionnaires. In Quantifying the User Experience; Elsevier: Amsterdam, The Netherlands, 2016; pp. 185–248. [Google Scholar] [CrossRef]
Concept | Number |
---|---|
Total characteristics | 24 |
Concrete characteristics | 20 |
Abstract characteristics | 4 |
Composite characteristics | 12 |
Terminal characteristics | 12 |
Grouped characteristics | 9 |
Alternative characteristics | 3 |
Optional characteristics | 8 |
Core assets | 7 |
Dead characteristics | 0 |
Atomic sets | 1 |
Valid product configurations | 13.340 |
Degree of variability (%) |
X | Software Development Time | Total Time for the Development of the Case Study |
---|---|---|
Group 1 | 2.0 | 2.3 |
Group 2 | 2.3 | 2.5 |
Group 3 | 2.1 | 2.3 |
X | Percentage of Software Reuse | Total SLOC |
---|---|---|
Group 1 | 43% | 423 |
Group 2 | 36% | 385 |
Group 3 | 38% | 391 |
X | LoF | SLOC Linked Features |
---|---|---|
Group 1 | 16% | 70 |
Group 2 | 15% | 58 |
Group 3 | 17% | 60 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Solis Pino, A.F.; Ruiz, P.H.; Hurtado Alegria, J.A. A Software Products Line as Educational Tool to Learn Industrial Robots Programming with Arduino. Electronics 2022, 11, 769. https://doi.org/10.3390/electronics11050769
Solis Pino AF, Ruiz PH, Hurtado Alegria JA. A Software Products Line as Educational Tool to Learn Industrial Robots Programming with Arduino. Electronics. 2022; 11(5):769. https://doi.org/10.3390/electronics11050769
Chicago/Turabian StyleSolis Pino, Andrés Felipe, Pablo H. Ruiz, and Julio Ariel Hurtado Alegria. 2022. "A Software Products Line as Educational Tool to Learn Industrial Robots Programming with Arduino" Electronics 11, no. 5: 769. https://doi.org/10.3390/electronics11050769
APA StyleSolis Pino, A. F., Ruiz, P. H., & Hurtado Alegria, J. A. (2022). A Software Products Line as Educational Tool to Learn Industrial Robots Programming with Arduino. Electronics, 11(5), 769. https://doi.org/10.3390/electronics11050769