## 1 Introduction  
The advent of Industry 4.0 concepts has brought about a new way of ensuring machine availability, namely Condition Monitoring (CM). This method involves the continuous monitoring of machine data to detect wear, making it easier to schedule repairs and thus reduce downtime. For some kinds of components (i.e., electric motors, speed reducers, gears, bearings, etc., used in many types of machinery), CM methods have been extensively investigated and effectively adopted in industrial environments. However, difficulties in defining effective CM methods arise in the case of systems such as industrial robots or more specifically collaborative robots (cobots). This is because their kinematic chain is comprised of several mechanical components which, even if they have been extensively studied individually, have superimposed effects in a single system that can significantly increase the complexity of defining a reliable CM strategy. Moreover, in the case of cobots, the complexity increases since these are generally used in flexible manufacturing where they perform dynamic tasks driven by programmable motions rather than fixed tasks, in contrast with standard industrial robots. This means that the same cobot can be used in a single working day for different tasks executing two to three or more programs, each of which is composed of tens to hundreds of motion command combinations. Therefore, in such systems, obtaining useful data to diagnose and predict failures is not straightforward for different aspects and it is currently a challenging topic in the industry. Among various kinds of cobots, this work will be focused on CM for collaborative manipulators, and during the rest of the document, when using the term \"cobots\", we will refer to this category. In this regard, this document intends to provide a solution to contribute to the definition of an open source CM architecture based on Robot Operating System (ROS) and to solve some problems related to determining automatic fault detection algorithms in collaborative manipulators. One of the main focuses of this work is providing a technological solution for CM with collaborative manipulators in situations of industrial interest and for this reason, the content of this document is highly oriented to applied research. In this regard, the novelty of this work mainly lies in the proposed CM architecture, while the methodology chosen to assess the manipulator's health is based on previous research content. The CM can be stated as a hot topic with a lot of research and industry interests considering the current challenges and opportunities in the human-robot collaboration context [1], also regarding solutions based on augmented reality and virtual reality [2]. Going into more detail, another issue to point out is what kind of sensor is the best suited for assessing the health of cobots and which is the best strategy to collect that information. In fact, if data that we decide to analyze are already available in the system, there is the need to use a device to communicate with the robot controller, otherwise data acquisition must be managed by using external sensing units. To sum up, issues related to the application of CM to cobots can be split into three macro areas:  
* **Obtain system data. ** In order to choose which data to monitor to evaluate the health of cobot components, there is the need to answer precise questions: which data are useful for healthily evaluating the system? Which components do we need to monitor in order to avoid production stops and how do we obtain that information? The answers to these questions can fundamentally lead to two possibilities, the use of sensors already installed into the system or the use of external sensors. In the first case, there is a need to establish a connection with the industrial controllers to access sensing data (for instance, motor currents, joint positions, speeds, torques etc.).