Inquiring the robot operating system community on the state of adoption of the ROS 2 robotics middleware

International Journal of Intelligent Robotics and Applications, Oct 2024

The robot operating system (ROS) is a well-established and popular open-source robotics middleware used for rapid prototyping of robotic applications. However, ROS has several known weaknesses, such as lack of support for real-time systems and limitations in fully distributed deployments with multiple robots. To address these weaknesses, ROS underwent a major update and the first version of ROS 2 was released back in 2015, being lingeringly adopted by the community in recent years. Yet, long-term support for ROS 1 will come to an end on May 2025. As such, it is more important than ever to analyze and explore the features of ROS 2, and understand its technological readiness. This work focuses on the state of adoption of ROS 2. Specifically, the article presents a user experience questionnaire targeting the ROS community to understand the more eminent needs with respect to ROS 2, determine the current levels of adoption, and identify what is holding the community back from migrating their ROS 1 applications to ROS 2. Results with more than 100 participants from around the world show that the community is aware of ROS 2 and the middleware is addressing most user expectations. We unveil the main reasons given for not migrating to ROS 2, further understand the community’s views on ROS 2, and identify what is missing to anticipate ROS 1 users migrating to ROS 2 and make ROS 2 widely adopted. Moreover, we gather important impressions on the appropriateness of ROS 2 for multi-robot system use cases.

Article PDF cannot be displayed. You can download it here:

https://link.springer.com/content/pdf/10.1007/s41315-024-00393-4.pdf

Inquiring the robot operating system community on the state of adoption of the ROS 2 robotics middleware

International Journal of Intelligent Robotics and Applications https://doi.org/10.1007/s41315-024-00393-4 REGULAR PAPER Inquiring the robot operating system community on the state of adoption of the ROS 2 robotics middleware David Portugal1 · Rui P. Rocha1 · João P. Castilho1 Received: 10 November 2023 / Accepted: 30 September 2024 © The Author(s) 2024 Abstract The robot operating system (ROS) is a well-established and popular open-source robotics middleware used for rapid prototyping of robotic applications. However, ROS has several known weaknesses, such as lack of support for real-time systems and limitations in fully distributed deployments with multiple robots. To address these weaknesses, ROS underwent a major update and the first version of ROS 2 was released back in 2015, being lingeringly adopted by the community in recent years. Yet, long-term support for ROS 1 will come to an end on May 2025. As such, it is more important than ever to analyze and explore the features of ROS 2, and understand its technological readiness. This work focuses on the state of adoption of ROS 2. Specifically, the article presents a user experience questionnaire targeting the ROS community to understand the more eminent needs with respect to ROS 2, determine the current levels of adoption, and identify what is holding the community back from migrating their ROS 1 applications to ROS 2. Results with more than 100 participants from around the world show that the community is aware of ROS 2 and the middleware is addressing most user expectations. We unveil the main reasons given for not migrating to ROS 2, further understand the community’s views on ROS 2, and identify what is missing to anticipate ROS 1 users migrating to ROS 2 and make ROS 2 widely adopted. Moreover, we gather important impressions on the appropriateness of ROS 2 for multi-robot system use cases. Keywords Robotics middleware · Robot operating system (ROS) · ROS 2 adoption · User experience questionnaire · Transition from ROS 1 to ROS 2 1 Introduction Robotic systems are complex engineering systems, often comprising several robots and computers. Each robot, in turn, consists of many hardware components (sensors, actuators, hardware controllers, and embedded computer) and software modules. The robotic systems and all components that make up a single robot need to be integrated in a seamless way to perform specific tasks, such as exploration and map building of unknown environments (Koide * David Portugal Rui P. Rocha João P. Castilho 1 Department of Electrical and Computer Engineering, Institute of Systems and Robotics, University of Coimbra, 3030‑390 Coimbra, Portugal et al. 2021), autonomous navigation (Macenski et al. 2020), human assistance in public buildings (Portugal et al. 2019), health services (Lee and Thuraisingham 2012), and household (Tyree et al. 2022), assembling and manufacturing in industry (D’Avella et al. 2023), plowing, seeding, spraying and harvesting in precision agriculture (Meshram et al. 2022), search and rescue (Rocha et al. 2013), environmental monitoring (Fernández-Montes et al. 2014), and many more. As such, the need for middleware frameworks creating an abstraction layer between robotic hardware devices and high-level robot software components, which facilitate the development and reuse of robotic software from the ground up, has always been a preminent requirement in robotics, both in academia and industry. Several universities and research groups around the world have worked for the past two decades on the creation of such middleware solutions, such as GenoM (Fleury et al. 1997), Miro (Enderle et al. 2001), OROCOS (Bruyninckx et al. 2001), CARMEN (Montemerlo et al. 2003), ORCA (Brooks et al. 2007), Player (Gerkey et al. 2003), YARP (Metta et al. Vol.:(0123456789) D. Portugal et al. 2006), MOOS (Newman 2006), RoboComp (Manso et al. 2010), and ROS (Quigley et al. 2009). Some of these are discontinued and others have small developers community. Conversely, the Robot Operating System, ROS for short, has a vibrant community behind it with more than 17k wiki pages and 194k daily users in its official package repository1 as of July 2022,2 being by far the most relevant robotics middleware nowadays. ROS (Quigley et al. 2009) was first introduced in 2007 by a team of engineers at Willow Garage who were working at the time with the PR2 robot. ROS first challenge was to tackle the immense difficulty robotics engineers and researchers faced when having to implement code for robotic applications. For instance, not only was it needed for a developer to write a proper path planning algorithm, one also had to write low-level drivers for sensor interfacing (sometimes from scratch and “reinventing the wheel”), a computer vision algorithm, and other features like perception and reasoning. Thus, one had to spend time developing components that had most likely been developed in the past by other researchers. With the growth of the ROS community, new use cases have emerged to meet everyone’s needs. The new use cases have focused on teams of multiple robots, support for small embedded platforms, support for real-time control directly in ROS, production quality following industry standards, working on non-ideal networks where network traffic must be carefully managed, and prescribed design patterns for building and structuring systems, such as life cycle management. As such, API changes have been made to the code of ROS core and the first alpha version of ROS 2 (Macenskiet al. 2022) was released on August 2015. Two years later, the first official distribution of ROS 2 was released on December 2017, named Ardent Apalone. The latest version of ROS 1, Noetic, was released on May 2020 and is set to be the last version of ROS 1 with support ending on May 2025.3 Therefore, as the support for ROS 1 is ending, there is a need to evaluate the current state of ROS 2 and compare it with the widely used ROS 1. This allows to identify which hurdles users have found in the adoption of ROS 2, such as in migrating packages from ROS 1 to ROS 2 and how to build new packages with ROS 2. A clear indication of the end of support for ROS 1 is the number of commits for ROS 1 and ROS 2. Recently, the number of commits for ROS 1 distributions has been steadily 1 http://wiki.ros.org. These numbers were extracted from the 2022 ROS Community Metrics Report, accessed at http://download.ros.org/downloads/metri cs/metrics-report-2022-07.pdf on 2023-03-07. 3 https://www.openrobotics.org/blog/2020/5/23/noetic-ninjemys-the- last-official-ros-1-release, accessed on 2022-12-08. 2 decreasing, whereas the number of commits for ROS 2 has exhibited an upward trend, having surpassed ROS 1 commits since March 2021 (ROS Metrics 2022). Despite the clear advantages of ROS 2 over ROS 1, the adoption of the former is still low nowadays, especially in academia. A ROS user experience questionnaire was conducted in 2019 (Coleman et al. 2019) to (...truncated)


This is a preview of a remote PDF: https://link.springer.com/content/pdf/10.1007/s41315-024-00393-4.pdf
Article home page: https://link.springer.com/article/10.1007/s41315-024-00393-4

Portugal, David, Rocha, Rui P., Castilho, João P.. Inquiring the robot operating system community on the state of adoption of the ROS 2 robotics middleware, International Journal of Intelligent Robotics and Applications, 2024, pp. 1-26, DOI: 10.1007/s41315-024-00393-4