# Robot Operating System 2 (ROS2)-Based Frameworks for Increasing Robot Autonomy: A Survey
## 6 Conclusions and Future Works  
This work analyzes the use of ROS2 as middleware to implement modular and customizable architectures aimed at increasing the autonomy and flexibility of commercially available fixed-base robots, with a particular focus on industrial cobots. In addition to providing an extensive review of the literature regarding ROS2 and its applications, the paper surveys what is currently implemented and available in ROS2 for the development of each module and layer of the proposed high-level architecture, describing their potential and limitations, with particular emphasis on similarities and differences from ROS1 and highlighting both ready-to-use components and those still in development and/or requiring custom implementation. A proof of concept is provided using the ROS2-based framework in a specific case study involving an OMRON TM5-900 cobot equipped with an external depth camera, in order to show how to exploit the analyzed ROS2 features to enable the cobot to perform a pick-and-place task with increased autonomy and flexibility. In the provided case study, the increased flexibility concerns two aspects, i.e., the possibility to modify the position and size of the object to be grasped without resorting to manual reprogramming, and the avoidance of collisions with static unknown obstacles in the robot's workspace. The aim of this experiment is to demonstrate how even a company can provide its industrial cobots with greater flexibility, albeit within certain application limits, only by appropriately combining existing ROS2 features and tools, and how easy it is to add further customized modules to the basic framework to enable a higher level of autonomy. In conclusion, our analysis confirms that ROS2 is a powerful middleware that can provide companies with all the tools and features needed to implement the architecture described in Section 3 for enhancing the autonomy and flexibility of cobots on the market (Section 4) to make them perform non-standard tasks not supported by their manufacturers without having to start from scratch. Moreover, unlike ROS1, ROS2 was built to be an industrial framework for use in the production environment (Section 2.2). Despite this, as a matter of fact, there are still many remaining challenges for its commercial use. The first is linked to it being open source and constantly evolving, therefore inherently lacking the reliability of commercial software developers, not supported by customer service, not user friendly, and consequently not very appealing to companies. A possible solution to this challenge is represented by ROS-Industrial, which aims to address these issues and dispel these myths. Another challenge is ensuring real-time performance because, as discussed in Section 2.2, DDS guarantees them at the communication level, but they must be properly managed by the developer at system level. Finally, being relatively new, ROS2 is still under development both in terms of porting of the functionalities previously developed for ROS1 and in the development and/or analysis of new features. Figure 17: Example of pick-and-place execution. Regarding future works, they will further explore the potential of the proposed ROS2-based framework in order to show how to unlock a higher level of flexibility and autonomy by incorporating less standard and more custom components. Specifically, we plan to add a re-planning module, to enable the cobot to also handle dynamic obstacles with the implementation of a proper hybrid planner, and to upgrade the recognition module by also including object classification capabilities required for the recognition of objects to be grasped. Moreover, in order to avoid the inevitable blind spots of a single camera and to achieve complete awareness of the whole robot workspace, the experimental setup could be enhanced by adding two additional depth cameras, thus resorting to a multi-sensor architecture that can be managed by the perception layer.