# Robot Operating System 2 (ROS2)-Based Frameworks for Increasing Robot Autonomy: A Survey
## 3 General Architecture for Enhancing Cobot Autonomy
### Industrial Application Overview  
Implementing at different levels the architecture described above, currently nontrivial or even impossible tasks for commercial cobots become feasible. This section briefly describes some of the more interesting industrial applications, focusing on those made possible by the implementation of a perception module that uses depth cameras to perceive the surrounding environment in 3D. More extensive surveys are available in [9; 73; 74]. For some specific applications, a single camera may be sufficient, but it could be affected by occlusion when certain areas in the scene are hidden from the camera's field of view, leading to incomplete depth information. Increasing the number of cameras is a simple and feasible solution, but it involves increasing the complexity of the perception layer [75]. Access to depth information about the surrounding environment and manipulated objects enables cobots to successfully complete their tasks despite dynamic environments and changing scenarios. Specifically, the recognition of the spatial pose of the object and of its size enables tasks such as flexible grasping [76; 77; 78] and flexible palletization/packaging [79]. While commercial cobots are primarily trained to recognize and grasp specific, identical objects from the same surface (usually a flat surface), with additional information about the position and size of objects, these can be used to adapt tasks from static conditions to changing conditions (e.g., change in the type of object, its spatial location or palleting/packaging) without the need of manual reprogramming. This obviously requires adequate development of the perception layer, to perceive and recognize the objects with which the robot must interact, and of the planning layer (i.e., behavior, planning, and manipulation) to adapt the robot's behavior to changes in the properties of these objects. Similarly, the same depth information, but about the surrounding environment, is the key to enabling proper trajectory planning that can avoid static obstacles in an unknown and unstructured environment as well as online trajectory re-planning to deal with dynamic obstacles [77; 80]. Again, the perception layer is essential for reconstructing the external environment, keeping it up to date, and for estimating the movement of dynamic obstacles, while the tasks of the planning layers involved are mainly planning and re-planning, which are responsible for managing static and dynamic obstacles. Thanks to these enhanced capabilities, enabled by relatively limited additional hardware and a proper middleware implementation, cobots become capable of performing standard tasks but in a flexible manner, having the ability to adapt to changing scenarios and to react to dynamic environments. Moreover, this is also the basis for enabling more complex tasks, for example, in the field of human-robot collaboration (HRC), where direct interaction between the human operator and the cobot is required. An overview of the main industrial applications where HRC is advantageous can be found in [73], where standard tasks such as handling [81], welding [82], and assembly [83] are discussed. Besides these, there are also other less common tasks whose efficiency can be improved with HRC such as disassembly with HRCD (human-robot collaborative disassembly) [84]. In general, applications of this kind require a higher level of autonomy than simple human-robot Coexistence, in which the human and robot do not work together but only have to share the same workspace, and thus the human can be treated as a generic obstacle to be avoided. While this second scenario can be handled with the use of RGB-D cameras that provide both depth and image information, tasks requiring a more advanced level of HRC [8] require the integration of other sensors (e.g., wearable sensors [85]) and/or a more complex implementation of the layers described above [75; 86], but can still be made feasible by adopting the architecture proposed here.