Condition monitoring of an industrial robot

10539499 ยท 2020-01-21

Assignee

Inventors

Cpc classification

International classification

Abstract

A method for detecting a fault in a robot joint includes the steps of: performing a first torque measurement at the robot joint to thereby obtain a first set of torque values; calculating a first distribution characteristic reflecting a distribution of the first set of torque values; performing a second torque measurement at the robot joint to thereby obtain a second set of torque values; calculating a second distribution characteristic reflecting a distribution of the second set of torque values; and comparing the first and the second distribution characteristics to determine whether a fault is present or not. A difference in the distributions of torque measurements is a robust fault indicator that makes use of the repetitive behavior of the system.

Claims

1. A method for detecting a fault in a robot joint, the method comprising the steps of: performing a first torque measurement at the robot joint to obtain a first set of torque values and weighting each individual torque value of the first set of torque values by means of a weighting vector to thereby obtain a first set of weighted torque values, the weighting vector having a set of different weights so that the first set of weighted torque values reflects torque magnitudes in time domain; calculating a first distribution characteristic reflecting a distribution of the first set of weighted torque values; performing a second torque measurement at the robot joint to obtain a second set of torque values and weighting each individual torque value of the second set of torque values by means of the weighting vector to thereby obtain a second set of weighted torque values reflecting torque magnitudes in time domain; calculating a second distribution characteristic reflecting a distribution of the second set of weighted torque values; comparing the first and the second distribution characteristics to determine whether a fault is present or not; and performing maintenance on the robot joint when it is determined that a fault is present.

2. The method according to claim 1, wherein the first distribution characteristic comprises a first distribution function, and the second distribution characteristic comprises a second distribution function, the method further comprising the step of: calculating a difference between the first and the second distribution functions to thereby obtain a first difference to determine whether a fault is present or not.

3. The method according to claim 2, the method further comprising the steps of: performing a third torque measurement at the robot joint to thereby obtain a third set of torque values; weighting each individual torque value of the third set of torque values to thereby obtain a third set of weighted torque values; calculating a third distribution function reflecting a distribution of the third set of weighted torque values; calculating a difference between the second and the third distribution functions to thereby obtain a second difference; and calculating a sum of the first difference and the second difference to determine whether a fault is present or not.

4. The method according to claim 3, wherein the first and second distribution functions are kernel density estimators, and the first difference is calculated using a distance measure such as Kullback-Leibler distance.

5. The method according to claim 2, wherein the first and second distribution functions are kernel density estimators, and the first difference is calculated using a distance measure such as Kullback-Leibler distance.

6. The method according to claim 2, wherein the first and the second distribution functions are weighted by means of a weighting function.

7. The method according to claim 6, wherein the weighting function has joint speed as an input.

8. The method according to claim 1, the method further comprising the step of: before calculating the first and second distribution characteristics, eliminating from the first and the second sets of weighted torque values those values that are obtained at a joint speed under a first threshold value and/or at a joint speed over a second threshold value to thereby obtain a first set of filtered torque values and a second set of filtered torque values.

9. The method according to claim 5, the method further comprising the steps of: calculating a mean value of the first set of filtered torque values to thereby obtain a first distribution mean value; calculating a mean value of the second set of filtered torque values to thereby obtain a second distribution mean value; and calculating a difference between the first and the second distribution mean values to determine whether a fault is present or not.

10. The method according to claim 1, wherein the first measurement is performed during a first task executed by the robot joint, and the second measurement is performed during a second task executed by the robot joint, the first task being executed earlier than the second task.

11. The method according to claim 10, wherein the first and the second tasks are identical.

12. The method according to claim 11, wherein the first task is executed when the robot joint is new or it is otherwise known that a fault is not present.

13. The method according to claim 10, wherein the first task is executed when the robot joint is new or it is otherwise known that a fault is not present.

14. The method according to claim 1, wherein the first torque measurement is performed at a first joint temperature, and the second torque measurement is performed at a second joint temperature, the first joint temperature being identical with the second joint temperature.

15. The method according to claim 1, wherein the comparing comprises comparing distributions of the first and second sets of weighted torque values.

16. A method for detecting a fault in a robot joint, the method comprising the steps of: performing a first torque measurement at the robot joint to obtain a first set of torque values and weighting each individual torque value of the first set of torque values by means of a weighting vector to thereby obtain a first set of weighted torque values, the weighting vector having a set of different weights so that the first set of weighted torque values reflects torque magnitudes in time domain; calculating a first distribution characteristic reflecting a distribution of the first set of weighted torque values; performing a second torque measurement at the robot joint to obtain a second set of torque values and weighting each individual torque value of the second set of torque values by means of the weighting vector to thereby obtain a second set of weighted torque values reflecting torque magnitudes in time domain; calculating a second distribution characteristic reflecting a distribution of the second set of weighted torque values; comparing the first and the second distribution characteristics to determine whether a fault is present or not; and performing maintenance on the robot joint when it is determined that a fault is present; wherein the weighting individual torque values amplifies an indicator of whether a fault is present or not.

17. A method for detecting a fault in a robot joint, the method comprising the steps of: performing a first torque measurement at the robot joint to obtain a first set of torque values; calculating a first distribution function reflecting a distribution of the first set of torque values using a weighting function; performing a second torque measurement at the robot joint to obtain a second set of torque values; calculating a second distribution function reflecting a distribution of the second set of torque values using the weighting function; calculating a difference between the first and the second distribution functions to determine whether a fault is present or not; and performing maintenance on the robot joint when it is determined that a fault is present; wherein the weighting function has joint speed as an input.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) The invention will be explained in greater detail with reference to the accompanying drawings, wherein

(2) FIG. 1 shows a schematic illustration of an industrial robot,

(3) FIGS. 2a-2f show some kernel functions and their respective Fourier transforms,

(4) FIGS. 3a-3b show measured torque signals and their respective kernel density estimators for a tested robot joint,

(5) FIGS. 4a-4d show friction curves and three different fault indicators according to the invention for a tested robot joint,

(6) FIGS. 5a-5b show worst case estimates for an average distance and a total variability between two sets of data as a function of joint speed , and the respective optimal weights for a tested robot joint, and

(7) FIGS. 6a-6b illustrate an improved probability of fault detection P.sub.d with weighted data.

DETAILED DESCRIPTION OF THE INVENTION

(8) Referring to FIG. 1, an industrial robot can be described as a multi body dynamic mechanism by
=M(){umlaut over ()}+C(,{umlaut over ()})+D+.sub.g()+.sub.s()+.sub.f({dot over ()},.sub.m,T,w),(1)
where is torque at a robot joint, is an angular joint position of the robot joint, M() is an inertia vector, C(,{dot over ()}) relates to speed dependent terms (e.g. Coriolis and centrifugal), D is a damping vector, .sub.g() is a gravity-induced torque, .sub.s() is a nonlinear stiffness. The function .sub.f({dot over ()}, .sub.m, T, w) contains the joint friction components and is dependent on joint speed {dot over ()}, the load torque .sub.m caused by the manipulated load, the joint temperature T and the wear level w.

(9) The deterministic input of interest is the wear level w, which is zero when the robot is new and increases with time/usage. When the wear level w exceeds a predetermined threshold value, it is considered as a fault. Since from equation (1) it is obvious that the torque T is affected directly by the wear level w, the torque is apparently a quantity of interest and is to be measured. The remaining variables, the joint position and its derivatives, the load torque .sub.m and the joint temperature T, are considered as disturbances. In order to be able to exclude the effects of these disturbances, it may be advantageous to measure especially the joint position/speed /{dot over ()} and the joint temperature T as well.

(10) The torque is measured during a task custom character executed by the robot, and a set of N measured torque values is obtained to constitute an N-dimensional torque vector,
.sup.j=[.sub.1.sup.j, . . . ,.sub.N.sup.j].sup.T,
where .sub.i.sup.j denotes an individual torque value. A task custom character comprises a known movement or a sequence of movements of the robot joint at which the measurement is performed, the angular position of the robot joint changing in a known manner during a task custom character. The measurement is repeated M times, during execution of M tasks custom character, whereby the measurement data constitutes an NM torque matrix,
T.sup.M=[.sup.0, . . . ,.sup.j, . . . ,.sup.M1],
where .sup.0 is a nominal torque vector representing data with zero wear level w.

(11) According to one embodiment of the invention, for the purpose of monitoring the torque to detect changes in wear level w, the following assumptions are taken:

(12) Assumption 1: Regularity of .sup.j if no fault. It is considered that the measured torque .sup.j change only slightly along j, unless in the presence of a nonzero wear level w.sup.j.

(13) Assumption 2: Faults are observable. Changes on wear level w.sup.j affect the measured torque .sup.j.

(14) Assumption 3: Nominal data is available. At j=0, wear level w.sup.0=0, and the nominal torque vector .sup.0 is always available.

(15) According to one embodiment of the invention, the nominal torque vector .sup.0 (always available from Assumption 3) is compared against the remaining torque vectors .sup.j. While Assumption 2 is necessary, Assumption 1 ensures that two given torque vectors .sup.j and .sup.l are comparable and might differ significantly only if there is a fault.

(16) The effects of the angular position , its derivatives, and the load torque .sub.m are defined by the task custom character. Therefore, if two torque vectors .sup.j and .sup.l are obtained from two identical tasks custom character, these disturbances are not an obstacle to satisfy Assumption 1. If also the joint temperature T is identical during the two identical tasks custom character, then the torque vectors .sup.j and .sup.l satisfy the Assumption 1 and the framework is valid. The joint temperature T is however the result of complicated losses mechanisms in the robot joint and heat exchanges with the environment and might cause the Assumption 1 not to be satisfied. The effect of the joint temperature T on the torque is in fact comparable to that caused by the wear level w. The problem of robust monitoring of the wear level w is therefore challenging.

(17) The torque vectors .sup.j need to be characterized in an appropriate way in order to render two torque vectors .sup.j and .sup.l comparable for the purpose of detecting a fault in the robot joint. There are several ways to characterize a torque vector .sup.j. It could be represented by a single number, such as its mean, peak, range, etc. Summarizing the whole torque vector .sup.j into a single quantity might however hide many of the torque vector's .sup.j features. A second alternative would be to simply store the whole torque vector .sup.j and try to monitor the difference .sup.0.sup.j, but this requires that the torque vectors .sup.0 and .sup.j are synchronized, which is a limitation in many applications. Sometimes, looking at the data spectra is helpful, but this type of analysis requires the data to be ordered.

(18) The alternative according to the present invention is to consider the distribution of the torque vector .sup.j, which does not require ordering or synchronization and reveals many of the torque vector's .sup.j features.

(19) Because the mechanisms that generate the torque vector .sup.j are considered unknown, the use of a nonparametric estimate of the distribution {circumflex over (p)}() of the torque vector .sup.j is a suitable alternative. Such estimate can be obtained with the use of kernel density estimators,
{circumflex over (p)}.sup.j()=N.sup.1.sub.i=1.sup.Nk.sub.h(.sub.i.sup.j),(2)
where k.sub.h() is a kernel function, satisfying k.sub.h()0 and that integrates to 1 over custom character. The bandwidth h>0 is a smoothing parameter and includes the domain of T.sup.M. From the definition, it follows that {circumflex over (p)}()d=1, that is, the distribution is normalized to 1.

(20) The operation according to the equation (2) can be rewritten as the convolution
{circumflex over (p)}.sup.j()=N.sup.1.sub..sup. .sub.i=1.sup.N(x.sub.i.sup.j)k.sub.h(x)dx,(3)
where () is the Dirac delta. Using the convolution theorem, the kernel density estimator can be seen as a filter in the frequency domain, controlling the smoothness of the estimated distribution. It is typical to choose kernel functions with a low pass behavior, where the bandwidth parameter h controls its cutoff frequency. Typical kernel functions (left column) and their Fourier transforms (right column) are shown in FIG. 2.

(21) FIG. 3 shows results of a wear test (Wear Test 1) performed at a robot joint with the objective of studying the wear effects. During the test, the joint temperature T is kept constant and torque vectors .sup.j corresponding to the torque signals shown in FIG. 3a are obtained from identical tasks custom character so that Assumption 1 is satisfied. The measurement is repeated for identical tasks custom character executed regularly a total of M=33 times yielding a torque matrix T.sup.M=[.sup.0, . . . , .sup.j, . . . , .sup.M1]. The tests are executed until the wear levels are considered significant, so that maintenance should be performed. The torque signals corresponding to the torque vectors .sup.0, .sup.1 and .sup.33 are shown in FIG. 3a, and the corresponding kernel density estimators are shown in FIG. 3b. The torque vectors .sup.0 and .sup.1 are considered to represent a new and a substantially new robot joint, respectively, while the torque vector .sup.33 represents a robot joint with increased wear level w. The kernel density estimators are close to identical for the torque vectors .sup.0 and .sup.1, and differ considerably from the kernel density estimators of the torque vector .sup.33. The results according to FIG. 3 show that Assumptions 1 and 2 are valid, and that it is possible to detect a fault by monitoring the changes in the kernel density estimators.

(22) In statistics and information theory, the Kullback-Leibler divergence (KLD) is one of the methods used to measure the difference between two probability distributions. For two continuous distributions on x, p(x) and q(x), it is defined as

(23) D KL ( p .Math. q ) = - - p ( x ) log q ( x ) p ( x ) dx , ( 4 )
wherein q(x)>0 for any x such that p(x)>0. The KLD satisfies D.sub.KL(pq)0 (Gibbs inequality), with equality if and only if p(x)=q(x). The KLD is in general not symmetric, D.sub.KL(pq) D.sub.KL(qp). The quantity
KL(pq)custom characterD.sub.KL(p q)+D.sub.KL(qp),(5)
known as the Kullback-Leibler distance (KL distance), is however symmetric. Although the KL distance is defined for probability functions, it can also be used for kernel density estimators since they are normalized to 1. The torque vectors .sup.j can consequently be characterized with the help of a KL distance in order to render two torque vectors .sup.j and .sup.l comparable for the purpose of detecting a fault in the robot joint. From Assumption 3 it follows that nominal data is available, so that the nominal torque vector .sup.0 is known and {circumflex over (p)}.sup.0() can be evaluated. The quantities KL({circumflex over (p)}.sup.0{circumflex over (p)}.sup.j) can therefore be used as a fault indicator.

(24) Using the torque matrix T.sup.M=[.sup.0, . . . , .sup.j, . . . , .sup.M1] obtained from the Wear Test 1, the respective kernel density estimators are computed, resulting in [{circumflex over (p)}.sup.0(), . . . , {circumflex over (p)}.sup.j(), . . . , {circumflex over (p)}.sup.M1()], wherein {circumflex over (p)}.sup.0() represents a new fault free robot joint. The quantities KL({circumflex over (p)}.sup.0{circumflex over (p)}.sup.j) are computed for j=1, . . . , M1. As shown in FIG. 4b, these quantities show a clear response to the increased wear level w and can therefore be used as a fault indicator. For an illustration of the wear behavior during the experiments, the friction curves in the joint were estimated using a dedicated experiment at each execution of a task custom character and are shown in FIG. 4a.

(25) The above example illustrates how the basic framework according to the invention can be successfully used to monitor a robot joint that operates in a repetitive manner. The regularity requirement according to Assumption 1 is, however, limiting in many practical applications. Further embodiments of the invention are therefore adopted with the aim of relaxing the Assumption 1.

(26) Since KL({circumflex over (p)}.sup.j1{circumflex over (p)}.sup.j) measures the difference between the kernel density estimators of consecutive torque vectors .sup.j1 and .sup.j, the sum of these increments over 1, . . . , j gives the accumulated changes up to j, which is related to a fault and can therefore be used for monitoring.

(27) Because of measurement noise, the increments KL({circumflex over (p)}.sup.j1{circumflex over (p)}.sup.j) will also have a random behavior when there is no fault. The simple summation of the increments will therefore behave like a random walk and drift away. An alternative is to use a cumulative sum (CUSUM) algorithm, defined as
g.sup.j=g.sup.j1+s.sup.j(6)
g.sup.j=0 if g.sup.j<0(7)

(28) The test statistic g.sup.j adds up the signal to be monitored s.sup.j, which in the context presented here is s.sup.j=KL({circumflex over (p)}.sup.j1{circumflex over (p)}.sup.j). To avoid positive drifts, a subtracted drift parameter is included in the equation (6). Negative drifts are avoided by resetting g.sup.j according to equation (7) if the outcome of equation (6) is negative. The resulting quantity g.sup.j is suitable for condition monitoring and does not require assignment of a nominal data, that is, Assumption 3 is relaxed. The drift parameter can be chosen as
=+,(8)
where and are the mean and the standard deviation of the increments KL({circumflex over (p)}.sup.j1{circumflex over (p)}.sup.j) under no fault, and is a positive constant.

(29) The Wear Test 1 is considered again. Instead of using KL({circumflex over (p)}.sup.0{circumflex over (p)}.sup.j) as a fault indicator, the increments KL({circumflex over (p)}.sup.j1{circumflex over (p)}.sup.j) are computed and the CUSUM algorithm is used. The drift parameter is chosen according to equation (8), with =3 and and estimated from the first 5 sequences. The resulting quantities are shown FIGS. 4c and 4d, which show a clear response to the increase of the wear level w.

(30) Let custom character.sup.j denote the task under which a torque vector .sup.j is generated. Assumption 1 requires the whole torque matrix T.sup.M to have been generated under the same task custom character to be comparable. The alternative solution of monitoring the accumulated consecutive increments KL({circumflex over (p)}.sup.j1{circumflex over (p)}.sup.j) requires, in principle, that only custom character.sup.j1 and custom character.sup.j are the same, thereby relaxing Assumption 1.

(31) Since the behavior of the increments might differ depending on the task custom character, special care should be taken when monitoring their accumulated changes. If the CUSUM algorithm is used, the drift parameter can be set differently according to the executed task, that is, will be a function of custom character.

(32) An alternative to achieve robustness to disturbances is to consider weighting the raw data according to prior knowledge of the fault and disturbances. Defining a weighting vector custom character.sup.N, the weighted torque data can be written as
.sup.j= .sup.j,(9)
where is the Hadamard product (element-wise multiplication). The idea is to choose the weighting vector to maximize the sensitivity to faults while increasing the robustness to disturbances.

(33) Considering the basic framework presented above, a natural criterion for weighting vector would be to choose it such that KL({circumflex over (p)}.sup.j(){circumflex over (p)}.sup.1()) is maximized when .sup.j represents a fault free robot joint and .sup.l represents a faulty robot joint, and it is minimized in case .sup.j and .sup.l both represent a fault free or faulty robot joint. A general solution to this problem is however difficult since it depends on how {circumflex over (p)}.sup.j() was computed (e.g. the kernel function chosen). In the following, simpler criteria are used in a compromise of explicit solutions. As it will be shown, the results are directly related to linear discriminant analyses.

(34) Consider that the torque matrix T.sup.M is available and the fault status (present or not) is known for each torque vector .sup.j, and the fault status is the same for each element in each torque vector .sup.j. The data representing a fault free status are said to belong to the class C.sub.0, with M.sub.0 observations, while the data representing a faulty status belong to class C.sub.1, with M.sub.1=MM.sub.0 observations. Applying the weighting vector to the torque matrix T.sup.M yields
T.sup.Mcustom character[.sup.0, . . . ,.sup.M.sup.0.sup.+1, . . . ,.sup.M.sup.1.sup.+M.sup.0],(10)
and the objective is to choose such that the separation between the classes is maximized. A simple criterion is to consider the difference between the classes' means m. The kth class mean m.sup.k over all M.sub.k observations is

(35) m _ k ( 11 )

(36) The distance between the means of classes C.sub.0 and C.sub.1 is proportional to
m.sup.1m.sup.0.sup.T(m.sup.1m.sup.0)(12)

(37) This problem is equivalently found in linear discriminant analyses. Constraining to unit length in order to achieve a meaningful solution, it is easy to see that the optimal choice is to take (m.sup.1m.sup.0).

(38) A criterion based only on the distance between the classes' means m does not consider the variability found within each class C.sub.0, C.sub.1, for instance caused by disturbances. An alternative is to consider maximum separation between the classes' means m while giving small variability within each class C.sub.0, C.sub.1. Considering a measure of variability for each class C.sub.0, C.sub.1 as the mean of variances for each ith component,

(39) s _ k ( 13 )
where S.sup.k is a diagonal matrix with diagonal elements given by s.sub.i.sup.k. Defining the total within class variation as .sub.k s.sup.k, the following criterion can be used when two classes are considered

(40) ( m _ 1 - m _ 0 ) 2 s _ 1 + s _ 0 T ( m 1 - m 0 ) ( m 1 - m 0 ) T T ( S 1 + S 0 ) , ( 14 )
which is a special case of the Fisher criterion. It can be shown that solutions for this problem satisfy
(S.sup.1+S.sup.0).sup.1(m.sup.1m.sup.0).(15)

(41) That is, each weight .sub.i is proportional to the ratio between the average changes m.sub.i.sup.1m.sub.i.sup.0 and the total variability found in the data s.sub.i.sup.1+s.sub.i.sup.0.

(42) Notice however that the solutions according to the equations (12) and (15) require the data to be synchronized, which is difficult in many practical applications. In case this is possible (for instance using simulations), the result of such analyses might reveal some useful pattern of the weights .sub.i. For instance, if the weights .sub.i are strongly correlated to measured data, an approximate function can be used to describe the weights .sub.i depending on the data, e.g. .sub.i=h(.sub.i.sup.j) for a continuous function h().

(43) To illustrate the ideas presented hereinbefore, a simulation study is carried out. A task custom character is simulated M=M.sub.1+M.sub.0 times under different conditions, forming a torque matrix T.sup.M, with M.sub.1=M.sub.0=100. A realistic friction model is used that represents the effects of the wear level w and joint temperature T.

(44) The two sets of data are generated with the following settings
.sup.i:w=0,Tcustom character[T,T+.sub.T],iC.sub.0(16a)
.sup.l:w=w.sub.c,Tcustom character[T,T+.sub.T],lC.sub.1(16b)
where iC.sub.0 corresponds to the first M.sub.0 simulations and lC.sub.1 the remaining ones, w.sub.c=35 is a wear level considered critical to generate an alarm. The unit of the wear level w can be considered to be percentage %, where 0% represents a new robot joint, and 100% represents a totally worn out robot joint. Here, the joint temperature T is considered random, with uniform distribution given by T=30 C. and .sub.T=40 C. This assumption is carried out for analyses purposes.

(45) Worst case estimates, average distance m.sub.i.sup.1m.sub.i.sup.0 closest to zero and largest total variability s.sub.i.sup.1+s.sub.i.sup.0, respectively, are displayed as a function of the joint speed {dot over ()} in FIG. 5a. FIG. 5b presents the ratio for such worst case estimate, which is considered as the optimal weights according to equation (15). As it can be seen, the optimal weights present a strong correlation with joint speed {dot over ()}, which is not a surprise since the effects of wear level w and joint temperature T depend on the joint speed {dot over ()} as established before. The optimal region for wear monitoring is concentrated in a narrow speed range. The solid line in FIG. 5b is a function approximation of the optimal weights given by
({dot over ()})=sech({dot over ()})tan h({dot over ()})(17)
with =1.4510.sup.2 and =4.5510.sup.2. Effectively, the optimal weighting function selects a joint speed region that is more relevant for robust wear monitoring.

(46) The performance improvements achieved using the weighting function can be illustrated by considering the detection of an abrupt change of the wear level w from 0 to w.sub.c. Considering a data set generated according to equations (16a) and (16b), a pair (.sup.m, .sup.n) is given, and the objective is to decide whether the pair is from the same class or not, that is, the two hypotheses custom character.sub.0, custom character.sub.1 are considered
custom character.sub.0:m,nC.sub.0 or m,nC.sub.1(18a)
custom character.sub.1:mC.sub.0,nC.sub.1 or mC.sub.1,nC.sub.0(18b)

(47) In view of the framework presented hereinbefore, this problem is analyzed by computing the distribution of KL({circumflex over (p)}.sup.m{circumflex over (p)}.sup.n) for each hypothesis.

(48) The overlap of these distributions gives a probability of false alarm P.sub.f, and a probability of fault detection P.sub.d (the problem is a binary hypothesis test). The procedure is repeated for different values of .sub.T, with and without the use of the weighting function. For the fixed P.sub.f=0.01, FIG. 6a presents the achieved P.sub.d as a function of .sub.T. Notice that the use of the weighting function considerably improves the robustness to temperature variations, but for too large .sub.T it becomes difficult to distinguish the effects.

(49) A similar study can be performed to illustrate how w.sub.c affects the performance. For the fixed .sub.T=25 C., data are generated according to equations (16a) and (16b) for different values of w.sub.c. Similarly, the hypotheses distributions are computed. FIG. 6b presents P.sub.d as a function of w.sub.c for the fixed P.sub.f=0.01. The improvements achieved using the weighted data are obvious.

(50) The invention is not limited to the embodiments shown above, but the person skilled in the art may modify them in a plurality of ways within the scope of the invention as defined by the claims. Thus, the invention is not limited to detecting faults in robot joints, but may also be applied to any machine parts executing repetitive tasks.