[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3377813.3381358acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

How do you architect your robots?: state of the practice and guidelines for ROS-based systems

Published: 18 September 2020 Publication History

Abstract

The Robot Operating System (ROS) is the de-facto standard for robotic software. If on one hand ROS is helping roboticists, e.g., by providing a standardized communication platform, on the other hand ROS-based systems are getting larger and more complex and could benefit from good software architecture practices. This paper presents an observational study aimed at (i) unveiling the state-of-the-practice for architecting ROS-based systems and (ii) providing guidance to roboticists about how to properly architect ROS-based systems. To achieve these goals, we (i) build a dataset of 335 GitHub repositories containing real open-source ROS-based systems, (ii) mine the repositories for extracting the state of the practice about how roboticists are architecting them, and (iii) synthesize a catalog of 49 evidence-based guidelines for architecting ROS-based systems. The guidelines have been validated by 77 roboticists working on real-world open-source ROS-based systems.

References

[1]
ISO/IEC 25010:2011. 2011. Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models. (2011). https://www.iso.org/standard/35733.html
[2]
Jonathan Aldrich, David Garlan, Christian Kästner, Claire Le Goues, Anahita Mohseni-Kabir, Ivan Ruchkin, Selva Samuel, Bradley Schmerl, Christopher Steven Timperley, Manuela Veloso, et al. 2019. Model-based adaptation for robotics software. IEEE Software 36, 2 (2019), 83--90.
[3]
Rana Alkadhi, Manuel Nonnenmacher, Emitza Guzman, and Bernd Bruegge. 2018. How do developers discuss rationale?. In International Conference on Software Analysis, Evolution and Reengineering. 357--369.
[4]
Len Bass, Paul Clements, and Rick Kazman. 2012. Software Architecture in Practice (3rd ed.). Addison-Wesley Professional.
[5]
Manoj Bhat, Klym Shumaiev, Andreas Biesdorf, Uwe Hohenstein, and Florian Matthes.2017. Automatic Extraction of Design Decisions from Issue Management Systems: A Machine Learning Based Approach. In Software Architecture, Antónia Lopes and Rogério de Lemos (Eds.). Springer International Publishing.
[6]
Alex Brooks, Tobias Kaupp, Alexei Makarenko, Stefan Williams, and Anders Orebäck. 2007. Orca: A Component Model and Repository. Springer Berlin Heidelberg, Berlin, Heidelberg, 231--251.
[7]
Davide Brugali and Erwin Prassler. 2009. Software engineering for robotics [From the Guest Editors]. IEEE Robotics & Automation Magazine 16, 1 (2009), 9--15.
[8]
Simon Butler, Michel Wermelinger, Yijun Yu, and Helen Sharp. 2010. Exploring the Influence of Identifier Names on Code Quality: An Empirical Study. In European Conference on Software Maintenance and Reengineering (CSMR). IEEE CS, 156--165.
[9]
Federico Ciccozzi, Davide Di Ruscio, Ivano Malavolta, Patrizio Pelliccione, and Jana Tumova. 2017. Engineering the software of robotic systems. In International Conference on Software Engineering Companion (ICSE-C). IEEE, 507--508.
[10]
Paul Clements, David Garlan, Len Bass, Judith Stafford, Robert Nord, James Ivers, and Reed Little. 2002. Documenting software architectures: views and beyond. Pearson Education.
[11]
Toby H.J. Collett, Bruce A. MacDonald, and Gerkey Brian P. 2005. Player 2.0: Toward a Practical Robot Programming Framework. In Proceedings of the Australasian Conference on Robotics and Automation (ACRA 2005). Sydney, Australia.
[12]
D. S. Cruzes and T. Dyba. 2011. Recommended Steps for Thematic Synthesis in Software Engineering. In 2011 International Symposium on Empirical Software Engineering and Measurement. 275--284.
[13]
W. Curran, T. Thornton, B. Arvey, and W. D. Smart. 2015. Evaluating impact in the ROS ecosystem. In 2015 IEEE International Conference on Robotics and Automation (ICRA). 6213--6219.
[14]
Pablo Estefo, Jocelyn Simmonds, Romain Robbes, and Johan Fabry. 2019. The Robot Operating System: Package reuse and community dynamics. Journal of Systems and Software 151 (2019), 226--242.
[15]
Brian Gerkey. 2019. Why ROS 2? (2019). Retrieved 9/29/2019 from https://design.ros2.org/articles/why_ros2.html
[16]
Georgios Gousios. 2013. The GHTorrent dataset and tool suite. In Proceedings of the 10th Working Conference on Mining Software Repositories (MSR '13). IEEE Press, Piscataway, NJ, USA, 233--236.
[17]
R. Halder, J. Proença, N. Macedo, and A. Santos. 2017. Formal Verification of ROS-Based Robotic Applications Using Timed-Automata. In IEEE/ACM International FME Workshop on Formal Methods in Software Engineering (FormaliSE). 44--50.
[18]
William Harrison, Anthony Downs, and Craig Schlenoff. 2018. The Agile Robotics for Industrial Automation Competition. AI Magazine 39, 4 (2018), 77.
[19]
Johannes Hofmeister, Janet Siegmund, and Daniel V Holt. 2017. Shorter identifier names take longer to comprehend. In 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 217--227.
[20]
F. Ingrand. 2019. Recent Trends in Formal Validation and Verification of Autonomous Robots Software. In IEEE International Conference on Robotic Computing (IRC). 321--328.
[21]
ISO 2011. ISO/IEC/IEEE 42010, Systems and software engineering --- Architecture description. ISO.
[22]
Pooyan Jamshidi, Javier Cámara, Bradley Schmerl, Christian Kästner, and David Garlan. 2019. Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Autonomous Robots. In 2019 IEEE/ACM 14th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).
[23]
Eirini Kalliamvakou, Georgios Gousios, Kelly Blincoe, Leif Singer, Daniel M German, and Daniela Damian. 2016. An in-depth study of the promises and perils of mining GitHub. Empirical Software Engineering 21, 5 (2016), 2035--2071.
[24]
D. M. Le, D. Link, A. Shahbazian, and N. Medvidovic. 2018. An Empirical Study of Architectural Decay in Open-Source Software. In 2018 IEEE International Conference on Software Architecture (ICSA). 176--17609.
[25]
William Lidwell, Kritina Holden, and Jill Butler. 2010. Universal principles of design. Rockport Pub.
[26]
M. Mirakhorli and J. Cleland-Huang. 2015. Modifications, Tweaks, and Bug Fixes in Architectural Tactics. In IEEE/ACM Working Conference on Mining Software Repositories. 377--380.
[27]
Mehdi Mirakhorli, Ahmed Fakhry, Artem Grechko, Matteusz Wieloch, and Jane Cleland-Huang. 2014. Archie: A Tool for Detecting, Monitoring, and Preserving Architecturally Significant Code. In ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE). ACM, 739--742.
[28]
M. Pichler, B. Dieber, and M. Pinzger. 2019. Can I Depend on you? Mapping the Dependency and Quality Landscape of ROS Packages. In IEEE International Conference on Robotic Computing (IRC). 78--85.
[29]
R. Purandare, J. Darsie, S. Elbaum, and M. B. Dwyer. 2012. Extracting conditional component dependence for distributed robotic systems. In 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems. 1533--1540.
[30]
Morgan Quigley, Ken Conley, Brian Gerkey, Josh Faust, Tully Foote, Jeremy Leibs, Rob Wheeler, and Andrew Y Ng. 2009. ROS: an open-source Robot Operating System. In ICRA workshop on open source software, Vol. 3. Kobe, Japan, 5.
[31]
ROS.org. 2019. ROS Wiki Documentation. (2019). Retrieved 9/14/2019 from http://wiki.ros.org
[32]
A. Santos, A. Cunha, and N. Macedo. 2019. Static-Time Extraction and Analysis of the ROS Computation Graph. In 2019 Third IEEE International Conference on Robotic Computing (IRC). 62--69.
[33]
Forrest Shull, Janice Singer, and Dag IK Sjøberg. 2007. Guide to advanced empirical software engineering. Springer.
[34]
M. Soliman, A. Rekaby Salama, M. Galster, O. Zimmermann, and M. Riebisch. 2018. Improving the Search for Architecture Knowledge in Online Developer Communities. In IEEE International Conference on Software Architecture (ICSA).
[35]
Jan Salvador van der Ven and Jan Bosch. 2013. Making the Right Decision: Supporting Architects with Design Decision Data. In Software Architecture, Khalil Drira (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 176--183.
[36]
Elizabeth Walter. 2008. Cambridge advanced learner's dictionary. Cambridge university press.
[37]
T. Witte and M. Tichy. 2018. Checking Consistency of Robot Software Architectures in ROS. In 2018 IEEE/ACM 1st International Workshop on Robotics Software Engineering (RoSE). 1--8.
[38]
C. Wohlin, P. Runeson, M. Höst, M.C. Ohlsson, B. Regnell, and A. Wesslén. 2012. Experimentation in Software Engineering. Springer.

Cited By

View all
  • (2025)An Automata-Based Approach for Addressing Erroneous Behaviors and Deadlocks in Component-Based SystemsTheoretical Computer Science10.1016/j.tcs.2024.115052(115052)Online publication date: Jan-2025
  • (2025)Software architecture-based self-adaptation in roboticsJournal of Systems and Software10.1016/j.jss.2024.112258219(112258)Online publication date: Jan-2025
  • (2024)Present Development of Software for Railway SafetyDESIGN, CONSTRUCTION, MAINTENANCE10.37394/232022.2024.4.34(19-28)Online publication date: 25-Jun-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE-SEIP '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice
June 2020
258 pages
ISBN:9781450371230
DOI:10.1145/3377813
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

  • KIISE: Korean Institute of Information Scientists and Engineers
  • IEEE CS

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 September 2020

Permissions

Request permissions for this article.

Check for updates

Badges

Qualifiers

  • Research-article

Conference

ICSE '20
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)95
  • Downloads (Last 6 weeks)6
Reflects downloads up to 18 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2025)An Automata-Based Approach for Addressing Erroneous Behaviors and Deadlocks in Component-Based SystemsTheoretical Computer Science10.1016/j.tcs.2024.115052(115052)Online publication date: Jan-2025
  • (2025)Software architecture-based self-adaptation in roboticsJournal of Systems and Software10.1016/j.jss.2024.112258219(112258)Online publication date: Jan-2025
  • (2024)Present Development of Software for Railway SafetyDESIGN, CONSTRUCTION, MAINTENANCE10.37394/232022.2024.4.34(19-28)Online publication date: 25-Jun-2024
  • (2024)Efficient Deployment of Machine Learning Models in Manufacturing and Industrial Environments using ROSProcedia CIRP10.1016/j.procir.2024.10.074130(188-193)Online publication date: 2024
  • (2024)Architectural views for social robots in public spaces: business, system, and security strategiesInternational Journal of Information Security10.1007/s10207-024-00924-x24:1Online publication date: 5-Nov-2024
  • (2023)On the Discoverability of npm Vulnerabilities in Node.js ProjectsACM Transactions on Software Engineering and Methodology10.1145/357184832:4(1-27)Online publication date: 26-May-2023
  • (2023)GraphQL: A Systematic Mapping StudyACM Computing Surveys10.1145/356181855:10(1-35)Online publication date: 2-Feb-2023
  • (2023)An Empirical Study on Fault Diagnosis in Robotic Systems2023 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME58846.2023.00030(207-219)Online publication date: 1-Oct-2023
  • (2023)ROBOTONT – Open-source and ROS-supported omnidirectional mobile robot for education and researchHardwareX10.1016/j.ohx.2023.e0043614(e00436)Online publication date: Jun-2023
  • (2022)The Need for a Meta-Architecture for Robot AutonomyElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.362.9362(81-97)Online publication date: 20-Jul-2022
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media