{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,13]],"date-time":"2025-10-13T09:16:27Z","timestamp":1760346987074,"version":"3.37.3"},"reference-count":47,"publisher":"Springer Science and Business Media LLC","issue":"6","license":[{"start":{"date-parts":[[2021,4,19]],"date-time":"2021-04-19T00:00:00Z","timestamp":1618790400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2021,4,19]],"date-time":"2021-04-19T00:00:00Z","timestamp":1618790400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"name":"National Funds through the Portuguese funding agency","award":["PTDC\/CCI-INF\/29583\/2017"],"award-info":[{"award-number":["PTDC\/CCI-INF\/29583\/2017"]}]},{"name":"German Federal Ministry for Economic Affairs and Energy"},{"DOI":"10.13039\/100010661","name":"Horizon 2020 Framework Programme","doi-asserted-by":"publisher","award":["732287"],"award-info":[{"award-number":["732287"]}],"id":[{"id":"10.13039\/100010661","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Softw Syst Model"],"published-print":{"date-parts":[[2021,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Model-driven engineering (MDE) addresses central aspects of robotics software development. MDE could enable domain experts to leverage the expressiveness of models, while implementation details on different hardware platforms would be handled by automatic code generation. Today, despite strong MDE efforts in the robotics research community, most evidence points to manual code development being the norm. A possible reason for MDE not being accepted by robot software developers could be the wide range of applications and target platforms, which make all-encompassing MDE IDEs hard to develop and maintain. Therefore, we chose to leverage a large corpus of open-source software widely adopted by the robotics community to extract common structures and gain insight on how and where MDE can support the developers to work more efficiently. We pursue modeling as a complement, rather than imposing MDE as separate solution. Our previous work introduced metamodels to describe components, their interactions, and their resulting composition. In this paper, we present two methods based on metamodels for automated generation of models from manually written artifacts: (1) through static code analysis and (2) by monitoring the execution of a running system. For both methods, we present tools that leverage the potentials of our contributions, with a special focus on their application at runtime to observe and diagnose a real system during its execution. A comprehensive example is provided as a walk-through for robotics software practitioners.\n<\/jats:p>","DOI":"10.1007\/s10270-021-00873-2","type":"journal-article","created":{"date-parts":[[2021,4,19]],"date-time":"2021-04-19T07:02:59Z","timestamp":1618815779000},"page":"2047-2070","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":8,"title":["Bootstrapping MDE development from ROS manual code: Part 2\u2014Model generation and leveraging models at runtime"],"prefix":"10.1007","volume":"20","author":[{"given":"Nadia","family":"Hammoudeh\u00a0Garc\u00eda","sequence":"first","affiliation":[]},{"given":"Harshavardhan","family":"Deshpande","sequence":"additional","affiliation":[]},{"given":"Andr\u00e9","family":"Santos","sequence":"additional","affiliation":[]},{"given":"Bj\u00f6rn","family":"Kahl","sequence":"additional","affiliation":[]},{"given":"Mirko","family":"Bordignon","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2021,4,19]]},"reference":[{"key":"873_CR1","unstructured":"Catalog of ROS supported sensors. http:\/\/wiki.ros.org\/Sensors. Accessed 29 Mar 2021"},{"key":"873_CR2","unstructured":"COB monitoring source code-GitHub link. https:\/\/github.com\/ipa320\/cob_command_tools\/tree\/indigo_dev\/cob_monitoring. Accessed 29 Mar 2021"},{"key":"873_CR3","unstructured":"DiagnosticStatus message definition. http:\/\/docs.ros.org\/api\/diagnostic_msgs\/html\/msg\/DiagnosticStatus.html. Accessed 29 Mar 2021"},{"key":"873_CR4","unstructured":"Docker project website. https:\/\/www.docker.com\/. Accessed 25 Apr 2019"},{"key":"873_CR5","unstructured":"IEEE RAS Technical Committee for Software Engineering for Robotics and Automation. https:\/\/www.ieee-ras.org\/software-engineering-for-robotics-andautomation. Accessed 29 Mar 2021"},{"key":"873_CR6","unstructured":"Industrie 4.0 an der B\u00f6rse: Software lukrativer als Hardware. https:\/\/www.wiwo.de\/finanzen\/geldanlage\/industrie-4-0-an-der-boerse-softwarelukrativer-als-hardware\/14452080-3.html. Accessed 29 Mar 2021"},{"key":"873_CR7","unstructured":"RobMoSys\u2014Composable Models and Software. https:\/\/robmosys.eu\/. Accessed 29 Mar 2021"},{"key":"873_CR8","unstructured":"Robotics Software Engineer Nanodegree Program. https:\/\/eu.udacity.com\/course\/robotics-software-engineer--nd209. Accessed 29 Mar 2021"},{"key":"873_CR9","unstructured":"ROS metrics wiki site. http:\/\/wiki.ros.org\/Metrics. Accessed 29 Mar 2021"},{"key":"873_CR10","unstructured":"ROS: Robot Operating System. http:\/\/www.ros.org\/. Accessed 25 Apr 2019"},{"key":"873_CR11","unstructured":"ROS wiki link to the parameter server. http:\/\/wiki.ros.org\/Parameter20Server. Accessed 29 Mar 2021"},{"key":"873_CR12","unstructured":"ROS2: Developers guide. https:\/\/index.ros.org\/doc\/ros2\/Contributing\/Developer-Guide\/. Accessed 28 Feb 2020"},{"key":"873_CR13","unstructured":"ScalABLE 4.0 project website. https:\/\/www.scalable40.eu. Accessed 29 Mar 2021"},{"key":"873_CR14","unstructured":"SeRoNet project website. https:\/\/www.seronet-projekt.de. Accessed 29 Mar 2021"},{"key":"873_CR15","unstructured":"Simplified interface for syntax trees and program models. https:\/\/github.com\/gitafsantos\/bonsai. Accessed 29 Mar 2021"},{"key":"873_CR16","unstructured":"Unified Architecture\u2014OPC Foundation. https:\/\/opcfoundation.org\/about\/opctechnologies\/opc-ua. Accessed 29 Mar 2021"},{"key":"873_CR17","doi-asserted-by":"crossref","unstructured":"Adam, S., Larsen, M., Jensen, K., Schultz, U.P.: Towards rule-based dynamic safety monitoring for mobile robots. In: Simulation, Modeling, and Programming for Autonomous Robots, pp. 207\u2013218. Springer International Publishing, Cham (2014)","DOI":"10.1007\/978-3-319-11900-7_18"},{"key":"873_CR18","first-page":"3","volume":"1","author":"D Alonso","year":"2010","unstructured":"Alonso, D., Vicente-Chicote, C., Ortiz, F., Pastor Franco, J.A., \u00c1lvarez Torres, B.: V3cmm: a 3-view component meta-model for model-driven robotic software development. J. Softw. Eng. Robot. 1, 3\u201317 (2010)","journal-title":"J. Softw. Eng. Robot."},{"key":"873_CR19","doi-asserted-by":"crossref","unstructured":"Ando, N., Suehiro, T., Kotoku, T.: A software platform for component based RT-system development: OpenRTM-Aist. In: Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR), pp. 87\u201398. Springer, Berlin (2008)","DOI":"10.1007\/978-3-540-89076-8_12"},{"key":"873_CR20","first-page":"1319","volume":"2014","author":"A Bihlmaier","year":"2014","unstructured":"Bihlmaier, A., W\u00f6rn, H.: Increasing ROS reliability and safety through advanced introspection capabilities. Informatik 2014, 1319\u20131326 (2014)","journal-title":"Informatik"},{"key":"873_CR21","doi-asserted-by":"publisher","first-page":"89","DOI":"10.1142\/S1793351X18400056","volume":"12","author":"D Brugali","year":"2018","unstructured":"Brugali, D., Hochgeschwender, N.: Software product line engineering for robotic perception systems. Int. J. Semant. Comput. 12, 89\u2013107 (2018). https:\/\/doi.org\/10.1142\/S1793351X18400056","journal-title":"Int. J. Semant. Comput."},{"issue":"4","key":"873_CR22","doi-asserted-by":"publisher","first-page":"84","DOI":"10.1109\/MRA.2009.934837","volume":"16","author":"D Brugali","year":"2009","unstructured":"Brugali, D., Scandurra, P.: Component-based robotic engineering (part I) [tutorial]. IEEE Robot. Autom. Mag. 16(4), 84\u201396 (2009)","journal-title":"IEEE Robot. Autom. Mag."},{"key":"873_CR23","doi-asserted-by":"publisher","unstructured":"Brugali, D., Shakhimardanov, A.: Component-based robotic engineering (Part II). IEEE Robot. Autom. Mag. 17(1), 100\u2013112 (2010). https:\/\/doi.org\/10.1109\/MRA.2010.935798","DOI":"10.1109\/MRA.2010.935798"},{"key":"873_CR24","doi-asserted-by":"crossref","unstructured":"Bruyninckx, H., Klotzb\u00fccher, M., Hochgeschwender, N., Kraetzschmar, G., Gherardi, L., Brugali, D.: The BRICS component model: a model-based development paradigm for complex robotics software systems. In: ACM Symposium on Applied Computing (SAC), SAC \u201913, pp. 1758\u20131764. ACM, New York (2013). https:\/\/doi.org\/10.1145\/2480362.2480693","DOI":"10.1145\/2480362.2480693"},{"key":"873_CR25","unstructured":"Bubeck, A., Weisshardt, F., Verl, A.: BRIDE\u2014a toolchain for framework-independent development of industrial service robot applications. In: International Symposium on Robotics (ISR\/Robotik), pp. 1\u20136 (2014)"},{"key":"873_CR26","doi-asserted-by":"crossref","unstructured":"Dhouib, S., Kchir, S., Stinckwich, S., Ziadi, T., Ziane, M.: RobotML, a domain-specific language to design, simulate and deploy robotic applications. In: Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR), pp. 149\u2013160. Springer, Berlin (2012)","DOI":"10.1007\/978-3-642-34327-8_16"},{"key":"873_CR27","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/s00170-018-1976-z","volume":"97","author":"E Estevez","year":"2018","unstructured":"Estevez, E., S\u00e1nchez, A., Garc\u00eda, J., Ortega, J.: ART2ool: a model-driven framework to generate target code for robot handling tasks. Int. J. Adv. Manuf. Technol. 97, 1\u201313 (2018). https:\/\/doi.org\/10.1007\/s00170-018-1976-z","journal-title":"Int. J. Adv. Manuf. Technol."},{"key":"873_CR28","doi-asserted-by":"publisher","unstructured":"Estevez, E., S\u00e1nchez-Garc\u00eda, A., G\u00e1mez-Garc\u00eda, J., G\u00f3mez-Ortega, J., Satorres, S.: A novel model-driven approach to support development cycle of robotic systems. Int. J. Adv. Manuf. Technol. 82, 737\u2013751 (2016).https:\/\/doi.org\/10.1007\/s00170-015-7396-4","DOI":"10.1007\/s00170-015-7396-4"},{"key":"873_CR29","unstructured":"Foote, T.: ROS Community Metrics Report. http:\/\/download.ros.org\/downloads\/metrics\/metrics-report-2019-07.pdf (2019)"},{"key":"873_CR30","unstructured":"Gerkey, B., Stoy, K., Vaughan, R.T.: Player robot server. Tech. rep., Institute for Robotics and Intelligent Systems, School of Engineering, University of Southern California (November 2000)"},{"key":"873_CR31","doi-asserted-by":"crossref","unstructured":"Gherardi, L., Hunziker, D., Mohanarajah, G.: A software product line approach for configuring cloud robotics applications. In: IEEE International Conference on Cloud Computing (CLOUD), pp. 745\u2013752. https:\/\/doi.org\/10.1109\/CLOUD.2014.104 (2014)","DOI":"10.1109\/CLOUD.2014.104"},{"issue":"1","key":"873_CR32","doi-asserted-by":"publisher","first-page":"118","DOI":"10.1109\/MRA.2015.2512741","volume":"23","author":"M H\u00e4gele","year":"2016","unstructured":"H\u00e4gele, M.: Robots conquer the world [turning point]. IEEE Robot. Autom. Mag. 23(1), 118\u2013120 (2016). https:\/\/doi.org\/10.1109\/MRA.2015.2512741","journal-title":"IEEE Robot. Autom. Mag."},{"key":"873_CR33","doi-asserted-by":"crossref","unstructured":"Hammoudeh Garcia, N., Deval, L., L\u00fcdtke, M., Santos, A., Kahl, B., Bordignon, M.: Bootstrapping mde development from ros manual code - part 2: Model generation. In: ACM\/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS), pp. 95\u2013105. https:\/\/doi.org\/10.1109\/MODELS.2019.00-11 (2019)","DOI":"10.1109\/MODELS.2019.00-11"},{"key":"873_CR34","doi-asserted-by":"publisher","unstructured":"Hammoudeh Garcia, N., L\u00fcdtke, M., Kortik, S., Kahl, B., Bordignon, M.: Bootstrapping mde development from ROS manual code\u2014part 1: metamodeling. In: IEEE International Conference on Robotic Computing (IRC), pp. 329\u2013336. https:\/\/doi.org\/10.1109\/IRC.2019.00060 (2019)","DOI":"10.1109\/IRC.2019.00060"},{"key":"873_CR35","doi-asserted-by":"crossref","unstructured":"Hammoudeh Garcia, N., L\u00fcdtke, M., Kortik, S., Kahl, B., Bordignon, M.: Bootstrapping MDE development from ROS manual code. Int. J. Robot. Comput. (IJRC) 2 (2020)","DOI":"10.1109\/MODELS.2019.00-11"},{"key":"873_CR36","doi-asserted-by":"crossref","unstructured":"Kilgo, P., Syriani, E., Anderson, M.: A visual modeling language for RDIS and ROS nodes using atom3. In: Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR), pp. 125\u2013136. Springer, Berlin (2012)","DOI":"10.1007\/978-3-642-34327-8_14"},{"key":"873_CR37","doi-asserted-by":"crossref","unstructured":"Kittmann, R., Fr\u00f6hlich, T., Sch\u00e4fer, J., Reiser, U., Wei\u00dfhardt, F., Haug, A.: Let me Introduce Myself: I am Care-O-bot 4, a Gentleman Robot. In: Mensch und Computer, pp. 223\u2013232. De Gruyter Oldenbourg, Berlin (2015)","DOI":"10.1515\/9783110443929-024"},{"key":"873_CR38","unstructured":"OMG: Deployment and Configuration of Component-Based Distributed Applications Specification Version 4.0. Object Management Group (2006)"},{"key":"873_CR39","unstructured":"Quigley, M., Conley, K., Gerkey, B.P., Faust, J., Foote, T., Leibs, J., Wheeler, R., Ng, A.Y.: ROS: an open-source robot operating system. In: IEEE International Conference on Robotics and Automation (ICRA)\u2014Workshop on Open Source Software (2009)"},{"key":"873_CR40","doi-asserted-by":"crossref","unstructured":"Santos, A., Cunha, A., Macedo, N.: Static-time extraction and analysis of the ROS computation graph. In: IEEE International Conference on Robotic Computing (IRC), pp. 62\u201369 (2019). https:\/\/doi.org\/10.1109\/IRC.2019.00018","DOI":"10.1109\/IRC.2019.00018"},{"key":"873_CR41","doi-asserted-by":"crossref","unstructured":"Santos, A., Cunha, A., Macedo, N., Arrais, R., dos Santos, F.N.: Mining the usage patterns of ROS primitives. In: IEEE\/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 3855\u20133860 (2017). https:\/\/doi.org\/10.1109\/IROS.2017.8206237","DOI":"10.1109\/IROS.2017.8206237"},{"key":"873_CR42","doi-asserted-by":"crossref","unstructured":"Santos, A., Cunha, A., Macedo, N., Louren\u00e7o, C.: A framework for quality assessment of ROS repositories. In: IEEE\/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 4491\u20134496. IEEE. https:\/\/doi.org\/10.1109\/IROS.2016.7759661 (2016)","DOI":"10.1109\/IROS.2016.7759661"},{"key":"873_CR43","doi-asserted-by":"crossref","unstructured":"Schlegel, C., Worz, R.: The software framework SMARTSOFT for implementing sensorimotor systems. In: IEEE\/RSJ International Conference on Intelligent Robots and Systems (IROS), vol.\u00a03, pp. 1610\u20131616. https:\/\/doi.org\/10.1109\/IROS.1999.811709 (1999)","DOI":"10.1109\/IROS.1999.811709"},{"key":"873_CR44","unstructured":"Soetens, P.: A software framework for real-time and distributed robot and machine control. Ph.D. thesis, Department of Mechanical Engineering, Katholieke Universiteit Leuven, Belgium. http:\/\/www.mech.kuleuven.be\/dept\/resources\/docs\/soetens.pdf (2006)"},{"key":"873_CR45","first-page":"3","volume":"7","author":"D Stampfer","year":"2016","unstructured":"Stampfer, D., Lotz, A., Lutz, M., Schlegel, C.: The smartmdsd toolchain: an integrated mdsd workflow and integrated development environment (IDE) for robotics software. J. Softw. Eng. Robot. (JOSER) 7, 3\u201319 (2016)","journal-title":"J. Softw. Eng. Robot. (JOSER)"},{"key":"873_CR46","doi-asserted-by":"crossref","unstructured":"Zaman, S., Steinbauer, G., Maurer, J., Lepej, P., Uran, S.: An integrated model-based diagnosis and repair architecture for ROS-based robot systems. In: IEEE International Conference on Robotics and Automation (ICRA), pp. 482\u2013489. https:\/\/doi.org\/10.1109\/ICRA.2013.6630618 (2013)","DOI":"10.1109\/ICRA.2013.6630618"},{"key":"873_CR47","doi-asserted-by":"publisher","DOI":"10.1126\/scirobotics.aar1868","author":"L Zhang","year":"2017","unstructured":"Zhang, L., Merrifield, R., Deguet, A., Yang, G.Z.: Powering the world\u2019s robots\u201410 years of ROS. Sci. Robot. (2017). https:\/\/doi.org\/10.1126\/scirobotics.aar1868","journal-title":"Sci. Robot."}],"container-title":["Software and Systems Modeling"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10270-021-00873-2.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10270-021-00873-2\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10270-021-00873-2.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,12,6]],"date-time":"2021-12-06T03:10:53Z","timestamp":1638760253000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10270-021-00873-2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,4,19]]},"references-count":47,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2021,12]]}},"alternative-id":["873"],"URL":"https:\/\/doi.org\/10.1007\/s10270-021-00873-2","relation":{},"ISSN":["1619-1366","1619-1374"],"issn-type":[{"type":"print","value":"1619-1366"},{"type":"electronic","value":"1619-1374"}],"subject":[],"published":{"date-parts":[[2021,4,19]]},"assertion":[{"value":"1 March 2020","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"20 January 2021","order":2,"name":"revised","label":"Revised","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"6 February 2021","order":3,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"19 April 2021","order":4,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}