Industrial robot production data clustering for anomaly prediction
K-means clustering with silhouette scoring effectively separates robot joint parameter data into operating condition clusters, addressing false alarms and enhancing maintenance accuracy by identifying true anomalies.
Patent Information
- Application Number
- JP2025039900
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-13
- Filing Date
- 2025-03-13
- Publication Date
- 2025-09-29
AI Technical Summary
Existing robotics data analysis techniques struggle to distinguish between variations in operating conditions and actual robot degradation, leading to false alarms and incorrect maintenance alerts due to intermixed data from different job tasks and duty cycles.
A method using K-means clustering with silhouette scoring to separate robot joint parameter data into clusters, determining the optimal number of clusters based on data similarity and dissimilarity, allowing for accurate separation of data points into operating conditions and identifying anomalies.
Accurately separates robot joint parameter data into clusters corresponding to operating conditions, reducing false alarms and enabling precise identification of anomalies, thereby improving robot reliability and maintenance efficiency.
Smart Images

Figure 2025141922000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to the field of industrial robotic operational diagnostics, and more particularly to a method and system for analyzing data from the production operations of a robot to identify abnormal conditions, including applying a K-means clustering algorithm that uses a scoring technique to determine an optimal value for the number of clusters K, where data points are separated by clusters for further analysis, one of the clusters containing data indicative of any abnormal condition. [Background technology]
[0002] The use of industrial robots to perform a wide range of manufacturing, assembly, and material transfer operations is well known. Many of these operations and tasks are performed by articulated robots, such as five- or six-axis robots with servo motors at each rotary joint. Control of such robots is performed in real time, where the end tool motion program is broken down into small steps and the robot controller performs real-time feedback control calculations to calculate joint motor input commands that move the robot end tool according to the prescribed motion program. Summary of the Invention [Problem to be solved by the invention]
[0003] Industrial robots, like any machine or mechanical device, experience wear and deterioration over time, especially when the robot operates nearly continuously and when the robot experiences high velocities, accelerations, forces, and / or torques during its motion program. Because of the potential for deterioration over time, it is known to collect data during the robot's production operations and analyze the data for early indications of problems requiring attention. For example, certain data trends may indicate that a joint bearing is worn out and needs replacement, or that a joint servo motor is not operating within specifications. When these symptoms are detected, production with the robot can be stopped and maintenance can be performed.
[0004] Existing robotics data analysis techniques typically search for outlier data points (such as joint torque values outside of a normal range of values) and for trends in data values over time. When evaluating data trends, analysis software typically calculates trendlines that show changes in a particular parameter over time. For example, a trendline can be drawn showing the maximum torque values at a particular joint as the robot operates over a period of time (days, weeks, months, etc.). If the direction and rate of change of the trendline are greater than a predetermined threshold, the software provides a notification or warning that the joint is deteriorating and maintenance should be performed.
[0005] However, in the example above, the robot may handle primarily light objects for a period of time, followed by primarily heavy objects at a later time. Variations in the tasks performed by the robot may be the cause of changes in data patterns rather than actual problems or degradation of the robot. Similarly, actual problems may be masked by changes in the robot's duty cycle. Unless robot operators manually separate the data into different job types and program branches, existing robot data analysis methods may draw incorrect conclusions and generate many false alarms.
[0006] In light of the above, there is a need for improved methods of analyzing robotics data to better determine actual data patterns and identify any anomalies that require attention. [Means for solving the problem]
[0007] This disclosure describes a method and system for analyzing robotic data and identifying anomalies. Data from a robot's production operations is provided to a processor that runs a K-means clustering algorithm, which separates the data into multiple (K) clusters. The K-means clustering algorithm is run on the data several times, each time using a different value of K within a predetermined range. A scoring technique is used to determine an optimal value for the number of clusters, K, and a score is calculated in a calculation that rewards small distances between points within a cluster and large distances between points in different clusters. The results of the K-means clustering for the optimal value of K are used to separate the data by cluster, which is then analyzed to identify any notable data patterns in the parameter data. One of the clusters may contain outlier data points, some of which may indicate an abnormal condition. Other types of clustering algorithms other than K-means may also be used.
[0008] Additional features of the disclosed systems and methods will become apparent from the following description and claims, taken in conjunction with the accompanying drawings. [Brief explanation of the drawings]
[0009] [Figure 1] 1 is an illustration of an industrial robot having an articulated arm including multiple joints, data from which is analyzed using the techniques of the present disclosure.
[0010] [Figure 2] Graphs of robot joint parameter data in ideal scenarios are shown along with graphs of robot joint parameter data from real-world scenarios where erroneous conclusions may be drawn using data analysis techniques known in the art.
[0011] [Figure 3]1 is a graph of robot joint parameter data from a real-world scenario in which the robot frequently alternates between two different operating conditions, the parameter data being analyzed using the techniques of this disclosure.
[0012] [Figure 4] FIG. 1 is a flowchart diagram of a method for robotic data analysis, including clustering to separate data by operating conditions, according to an embodiment of the present disclosure.
[0013] [Figure 5] FIG. 5 is a diagram of steps involved in clustering robot parameter data using K-means clustering, as included in the method of FIG. 4, according to an embodiment of the present disclosure.
[0014] [Figure 6] FIG. 5 is a diagram of a scoring technique used to evaluate K-means clustering results calculated similarly to the method of FIG. 4 at different K values, according to an embodiment of the present disclosure.
[0015] [Figure 7] FIG. 10 is a three-dimensional graph plotting multiple time series data points with coordinates defined by three different robot joint parameters, demonstrating data clusters consistent with K-means clustering results, according to an embodiment of the present disclosure.
[0016] [Figure 8] 7 is a graph of the robot joint parameter data of FIG. 3, where each time series data point is assigned to one of the three clusters shown in FIG. 7, according to an embodiment of the present disclosure.
[0017] [Figure 9A] 9 is a graph of the robot joint parameter data of FIG. 8, with data points for each of the three clusters plotted on separate graphs, according to an embodiment of the present disclosure. [Figure 9B]9 is a graph of the robot joint parameter data of FIG. 8, with data points for each of the three clusters plotted on separate graphs, in accordance with an embodiment of the present disclosure. [Figure 9C] 9 is a graph of the robot joint parameter data of FIG. 8, with data points for each of the three clusters plotted on separate graphs, in accordance with an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0018] The following description of embodiments of the present disclosure directed to robotic production data clustering for anomaly prediction is merely exemplary in nature and is not intended to limit the disclosed techniques or their application or uses.
[0019] Industrial robots are used in a variety of manufacturing, assembly, and material transfer operations. While robots can be operated in a manually controlled mode, they are typically provided with predefined motion programs that control their movements. For example, a spot welding robot may have a motion program that defines several consecutive locations on a workpiece at which spot welds should be performed. A pick-and-place robot may have a motion program that defines a first position and orientation at which the workpiece is to be grasped and a second position and orientation at which the workpiece is to be placed. These are very basic examples, and many other types of robotic operations are known in the art.
[0020] Like any other machine, industrial robots experience wear and tear over their useful life. Some types of wear conditions can cause the robot tool to move inaccurately through a prescribed motion program or can lead to a failure where the robot is no longer operational. For these reasons, it is common to monitor the production operation data of a robot and analyze that data to detect early signs of any problems. This analysis is the subject of this disclosure.
[0021] FIG. 1 is a diagram of an industrial robot 100 having an articulated arm including multiple joints, data from which may be analyzed using the techniques of this disclosure. The robot 100 is controlled by a controller 102 to perform tasks described in a motion program, as described above and known in the art. The robot 100 is an articulated robot having, among other components, a base 110, a link 112, a link 114, a link 116, and a tool 120. In the robot 100, each robot arm link is connected to an adjacent link by a rotary joint, the motion of each joint is controlled by a joint motor, and the actual angular position of each joint is measured by an encoder that provides a signal to the controller 102. The controller 102 sends joint motion commands to the joint motors, which causes the robot 100 to move the tool 120 through a predetermined motion program.
[0022] Joint 130 connects link 112 to link 114 and is used as an example in this description. Joint 130 typically includes one or two support bearings in addition to the joint motor and position encoder described above. The bearings and motor, along with possibly other components of joint 130, are all subject to wear and degradation over time. For this reason, it is common to measure and record joint parameter data during robot operation and analyze the data to identify anomalies. A commonly measured parameter in robotic joints is motor torque. Torque may be measured directly or derived from measured motor current. Other parameters, such as the difference between theoretically estimated torque and actual torque (known as disturbance torque) and the difference between the desired and actual position of the joint, may also be recorded and analyzed. These are discussed further below.
[0023] 1 includes a mechanical gripper and a particular arm configuration (multiple links). It should be understood that the data clustering techniques of the present disclosure are applicable to industrial robots having different arm configurations than robot 100, industrial robots with different end-of-arm tools, and / or industrial robots used for different applications. For example, the techniques of the present disclosure may also be used with robots configured for painting, material dispensing welding, machine tending, material movement using vacuum grippers, etc. Furthermore, data from any joint of these robots may be analyzed in the manner described below.
[0024] 2 shows a graph 200 of robot joint parameter data in an ideal scenario and a graph 240 of robot joint parameter data in a real-world scenario where erroneous conclusions may be drawn using data analysis techniques known in the art. Both graphs 200 and 240 plot joint parameter data on the vertical axis and time on the horizontal axis.
[0025] Consider robot joint torque as the parameter to analyze. Because a robot repeatedly performs its job task, the time series of joint torque data will typically be highly periodic. For example, if the job task is for a robot to pick up an object from a conveyor belt and place the object on a pallet or in a shipping container, the torque at the joints will increase and decrease as the robot moves to a start position, picks up the object, moves to a destination position, places and releases the object, and returns to the start position. This type of periodic (with respect to time) joint torque is shown as trace 210 in graph 200.
[0026] It is clear that trace 210 has an upward trend in addition to rapid periodic fluctuations. Existing robotics data analysis methods are designed to identify trends such as those seen in graph 200. A trendline 220 can be plotted to characterize the data in trace 210, and the trendline 220 can be calculated, for example, using a least-squares calculation applied to the peak torque values from each cycle in trace 210. Trendline 220 has a significant positive slope, and existing robotics data analysis methods can use the slope of trendline 220 to issue a warning, indicating a problem at the corresponding robot joint.
[0027] Graph 200 and trend line 220 are illustrative of the type of data that can be expected to be encountered in a robot joint data analysis tool, however, the data actually encountered from real-world robot operation can differ significantly from that shown in graph 200.
[0028] Graph 240 includes trace 250, which plots joint torque (versus time) for an example of real-world robot operation. Trace 250 is seen to include three distinct sections, labeled sections 252, 254, and 256. Sections 252, 254, and 256 represent three different operating conditions of the robot, each with significantly different joint torque characteristics. Section 252 may represent data for an operating condition involving small robot movements with low accelerations and / or movement of a light workpiece. Conversely, section 254 may represent data for an operating condition involving large robot movements with high accelerations and / or movement of a heavy workpiece. Section 256 represents yet another operating condition. The data in trace 250 is representative of real-world robot operation, where individual robots may perform significantly different job tasks from day to day or within a shift of a day, and may even switch from one job task to another from job to job. In summary, the operating conditions of a robot can significantly affect joint loads, and the operating conditions include which task is being executed, which branch of the control program has been executed, what type of workpiece is being handled, trajectory characteristics, etc. Furthermore, because the operating conditions of individual robots change frequently, the measured robot joint parameter data is likely to include multiple operating conditions.
[0029] Similar to conventional robot joint data analysis systems, when trend line 260 is plotted to characterize the joint torque data in graph 240, trend line 260 has a significant positive slope similar to trend line 220 in graph 200. Based on the slope of trend line 260, conventional robot joint data analysis systems issue a warning indicating a problem with the corresponding robot joint. However, this warning is based on the erroneous conclusion that the increase in joint torque is due to a problem with the robot joint, when in fact the torque increase trend is due to the nature of the operating conditions contained in the underlying torque data.
[0030] In the discussion of Figure 2, the slope of the trend line was described as indicating a problem or perceived problem with the robot. The slope of the trend line is merely a simple example of how degradation of a robot joint may be detected. In later discussions of the techniques of this disclosure, more general analytical techniques are used to detect characteristics of the data that may indicate a problem with the robot.
[0031] Figure 2 illustrates a challenge commonly experienced with conventional robot joint data analysis systems: the inability to distinguish between multiple operating conditions represented in measured robot parameter data, resulting in erroneous conclusions (i.e., false alarms) regarding the degradation and maintenance needs of robot components. In graph 240 of Figure 2, three different operating conditions are clearly visible in the data, allowing the data to be separated into different files or groups before analysis using a conventional joint data analysis system. However, in many real-world applications, the measured parameter data from different operating conditions is intermixed in the time domain, making it impractical or impossible to separate the data based on operating condition.
[0032] The disclosed technique was developed to overcome the problems of conventional robot joint data analysis systems described above. The disclosed method uses clustering techniques to separate time-series robot joint parameter data into multiple clusters, with data points from different operating conditions necessarily falling into different clusters. "Leftover" data points (those that do not belong to an operating condition cluster) can be easily evaluated to determine whether they represent outliers (such as points obtained during a transition from one operating condition to another), problems that need to be addressed, or other types of anomalies.
[0033] FIG. 3 illustrates a graph 300 of robot joint parameter data from a real-world scenario in which a robot frequently alternates between two different operating conditions, where the parameter data is analyzed using the techniques of this disclosure. Graph 300 plots "disturbance torque" versus time at a robot joint. Disturbance torque is defined as the difference between a theoretical estimated torque and the actual torque. The theoretical estimated torque is the torque calculated by the robot controller as needed to move the robot according to a prescribed motion program, while the actual torque may be measured directly or derived from measured current to the joint motor. Disturbance torque values may be normalized to fall within a predetermined range, such as zero to one. The data included in graph 300 is a time series of thousands of data points over a period of time. The length of time covered by graph 300 is not critical and could be hours, days, weeks, or any other period.
[0034] The data points plotted on graph 300 are from two different operating conditions of the robot. This is not possible to determine by visual inspection of graph 300 because, unlike graph 240 of FIG. 2 , data points from different operating conditions in graph 300 are interspersed. For example, some data points could be collected while the robot is running under operating condition 1, then some data points could be collected from operating condition 2, then more data points could be collected from operating condition 1, and so on. Alternatively, the data points in graph 300 could be recorded less frequently than the operating condition cycle; for example, one data point could be recorded every hour while the operating conditions switch every minute or every two minutes. In this case, individual data points could arise randomly from operating condition 1 or operating condition 2, or from some other situation, such as a transition between operating conditions.
[0035] The data analysis techniques of the present disclosure have been developed to separate data points into groups (clusters) based on similarity characteristics between the data points, thereby naturally separating the data points into clusters based on operating conditions without prior knowledge of how many operating conditions are represented in the data set or which data points correspond to which operating conditions. These clustering and analysis methods are described in detail below.
[0036] FIG. 4 is a flowchart diagram 400 of a method for robotic data analysis including clustering to separate data by operating condition, according to an embodiment of the present disclosure. While different clustering techniques may be used to separate robot joint parameter data based on operating condition, FIG. 4 specifically illustrates a method using K-means clustering. In box 402, a robot is operated under one or more operating conditions. In box 404, time series data for multiple robot joint parameters is collected. In the example detailed here, three different parameters are collected for the robot joints: joint torque, disturbance torque (defined above), and error count. The error count parameter is a measure of the position error (the difference between the command and actual joint rotation position).
[0037] For the purposes of the following description, the recorded parameter data will be considered to be time series data for each parameter (torque, disturbance torque, and error count) of one joint of a particular robot (e.g., joint 130 in FIG. 1). In other words, at each sampling time, three parameters are measured and recorded with a timestamp. When the method of FIG. 4 is applied to multiple robots and / or multiple joints of a robot, the data for each joint of each robot is kept separate.
[0038] In box 406, a range for the number of possible clusters, "K," is defined. For example, in a relatively simple example, as described below, the number of clusters can be expected to fall within the range of 2 to 5. For more complex data sets, such as a motion program with many branches in which the robot performs many different motions at many different robot poses, the number of clusters may be much larger, such as in the range of 2 to 20. In box 408, a K-means clustering algorithm is run on the collected joint parameter data. The goal of the clustering algorithm is to generate group assignments such that similar objects are in the same group and dissimilar objects (that are far apart in the data space) are in different groups. As described above, the goal of clustering in the disclosed method is to classify / separate robot motion data based on common modes of robot motion, which can significantly improve the performance and accuracy of data analysis.
[0039] 5 is a diagram of steps involved in clustering robot parameter data using K-means clustering, as included in the method of FIG. 4, according to an embodiment of the present disclosure. K-means clustering is a type of clustering algorithm. It uses the means of groups of data points for the partitioning process, and the groups / partitions and means are recalculated recursively in an optimization calculation. The optimization objective is to minimize the variance within each cluster. Given a set of n observations (x1, x2, ..., xn), each a d-dimensional real vector, K-means clustering aims to partition the n observations into K sets and minimize the sum of squares (i.e., variance) within the clusters.
[0040] Figure 5 illustrates a d-dimensional vector space in two dimensions (for simplicity). In the initial step shown in box 510, n observations (data points) are shown as dashed ellipses, all of which are labeled 520. It is important to note that at this stage, the data points are not assigned to any clusters or groups. Also, in the initial step of box 510, given the number of clusters K as input, K centroids are randomly placed in the data space. In this example, the number of clusters K=3. The three centroids in the initial step of box 510 are labeled 530, 532, and 534.
[0041] In the next step, shown in box 540, an iterative optimization calculation begins. Here, the centroids (means) are labeled as 530A, 532A, and 534A. Each data point (of data points 520) is assigned to the centroid or mean point to which it is closest in vector space. Once each data point has been assigned to one of the three centroids, partitions separating the clusters can be drawn, and each data point is assigned to the cluster corresponding to its mean. In the step shown in box 540, the partitions are shown as lines labeled 550A, 552A, and 554A. The resulting clusters (shown as geometric regions in this 2D representation, but actually volumes in vector space) are labeled as 560A, 562A, and 564A.
[0042] After each data point 520 is assigned to a cluster as in box 540, a new mean is calculated as the centroid of the data points within each cluster, and the data point is reassigned to the cluster with the closest mean. This process is repeated until the centroids and partitions change little (i.e., less than a predetermined threshold), at which point the iterations are considered to have converged.
[0043] Box 570 shows the final iteration of the K-means clustering optimization for data points 520. In box 570, the centroids have been moved to their final positions, labeled 530B, 532B, and 534B. The partitions have therefore been moved to their final positions, labeled 550B, 552B, and 554B. The final shapes of the clusters are labeled 560B, 562B, and 564B. Note that the data points 520 themselves do not move during the iteration; each data point is fixed in vector space based on its vector value.
[0044] As mentioned above, the K-means clustering algorithm requires a number of clusters, K, to be provided as input. Because the techniques of this disclosure do not assume or require prior knowledge of the number of operating conditions contained in the data points, there is no way to know in advance the optimal value for K. Therefore, a methodology must be included to determine the number of clusters (i.e., the value of K) that best matches the data.
[0045] Returning to Figure 4, in box 408 (described above), a value of K is defined for running the K-means clustering algorithm, starting with the minimum value in the range from box 406. In box 410 (described below), a score is calculated that represents how well the K-means clustering results for the current value of K match the data. In decision diamond 412, it is determined whether the K-means clustering algorithm and score calculations have been completed for all possible values of K (within a predetermined range). The loop through boxes 408, 410, and decision diamond 412 continues until the K-means clustering algorithm has been run for all required values of K.
[0046] FIG. 6 is a diagram of a scoring technique used to evaluate K-means clustering results calculated using different values of K, similar to the method of FIG. 4, according to an embodiment of the present disclosure. The scoring technique illustrated in FIG. 6 and described herein is performed in box 410 of FIG. 4. FIG. 6 is also illustrated in two dimensions for simplicity, and it should be understood that in practice the 2D distances in FIG. 6 correspond to distances in a d-dimensional vector space. Furthermore, FIG. 6 shows the data points separated into two clusters because only two clusters are needed to illustrate the calculation. It should be understood that the scoring technique of FIG. 6 is equally applicable to other numbers of clusters (e.g., 3, 4, 5, etc.).
[0047] The technique shown in Figure 6 is known as silhouette scoring. Silhouette scoring calculates a score that falls within a range, such as [-1, 1]. The higher the score, the better the K-means clustering algorithm assigned the data points to different clusters. Thus, after running the K-means clustering algorithm using several different values of K, the K-means clustering result that produces the highest silhouette score corresponds to the optimal value of K, i.e., the value of K that results in the best clustering of the data points. The silhouette scoring technique discussed here with respect to Figure 6 is only one example of a scoring technique for quantifying clustering data results; other cluster consistency scoring techniques can be used as appropriate.
[0048] Again, the silhouette scoring method is performed after the K-means clustering algorithm is run for a particular value of K. Thus, each data point is assigned to a cluster. In Figure 6, a first cluster 610 includes data points 620, 622, 624, etc. A second cluster 640 includes data points 650, 652, 654, etc.
[0049] Each data point i∈C I For a, a(i) is defined as the average distance between i and all other data points in the same cluster.I | is the number of points belonging to cluster I, and d(i,j) is the distance between data points i and j. The calculation of a(i) is shown in equation (1) below. JPEG2025141922000002.jpg16151
[0050] Each data point i∈C I Regarding cluster C J b(i) is defined as the minimum average dissimilarity of point i to all data points in C I ≠C J The calculation of b(i) is shown in equation (2) below. JPEG2025141922000003.jpg16151
[0051] In FIG. 6, the average intra-cluster distance b is labeled as 630 and the average inter-cluster distance b is labeled as 660.
[0052] For each data point i in each cluster, a score value s(i) is calculated as follows: JPEG2025141922000004.jpg14151All variables in equation (3) are defined above. In equation (3), the larger the value of b(i) and the smaller the value of a(i), the larger the score s(i). For each cluster, the average value of s(i) represents how tightly grouped all the points in the cluster are.
[0053] JPEG2025141922000005.jpg25169
[0054] Returning to FIG. 4, the K-means clustering algorithm is performed in box 408 for a particular value of K (the number of clusters) as shown in FIG. 5, and a score (e.g., silhouette score) for the particular value of K is calculated in box 410 using equations (1)-(4) as shown in FIG. 6. This process is repeated for all specified values of K (e.g., 2-5) via decision diamond 412. Thus, at this stage of the process, a set of clustering results (data points assigned to clusters) and scores are available for each specified value of K. For example, the silhouette scores SC(K) for the values of K might be SC(2)=0.7, SC(3)=0.9, SC(4)=0.4, and SC(5)=0.3.
[0055] Next, at decision diamond 414, it is determined whether the maximum score for any of the values of K is greater than a predetermined threshold. For silhouette scoring, the threshold can be set to a value of 0.5, for example. If the maximum score for any value of K is less than or equal to the threshold, it means that none of the K-means clustering results fit the data points well, and the process ends at terminal 416.
[0056] If the maximum score for any of the values of K is greater than the threshold, then in box 418 the K-means clustering result for the optimal value of K is used. In the silhouette score example above, the highest score is SC(3) = 0.9, which means that K = 3 (i.e., 3 clusters) best fits the data points. Thus, in box 418, the time series data points are separated based on which clusters the data points were assigned to in the K-means clustering run using K = 3.
[0057] FIG. 7 illustrates a three-dimensional graph 700 plotting multiple time-series data points having coordinates defined by three different robot joint parameters, according to an embodiment of the present disclosure. The graph clearly shows data clusters consistent with the results of K-means clustering. As described above, in the example discussed throughout this disclosure, time-series data is collected for three different joint parameters: joint torque, disturbance torque, and error count. This results in a joint torque data set with many (e.g., thousands) entries, a disturbance torque data set with the same number of entries, and an error count data set with the same number of entries, with each measured parameter value also being recorded with a corresponding timestamp. For example, the normalized value of the first entry in the joint torque data set may be 0.8, the normalized value of the first entry in the disturbance torque data set may be 0.85, and the normalized value of the first entry in the error count data set may be 0.9. A data point having coordinates (0.8, 0.85, 0.9), representing the first time-series data sample, can then be plotted on graph 700. Thousands of time-series data are plotted in this manner, resulting in the graph shown in FIG. 7.
[0058] The locations of the thousands of data points are purely functions of the raw time series data from the robot joints, and the point locations are not affected by the K-means clustering algorithm. However, when each point is formatted (e.g., by color or grayscale) according to its cluster from the K-means clustering analysis (box 418 in FIG. 4), it is immediately apparent that the K-means clustering results accurately reflect the spatial clusters of the data points as seen in graph 700. Data points assigned to the first cluster by the K-means clustering algorithm (K=3) are included in ellipse 710, data points assigned to the second cluster are included in ellipse 720, and data points assigned to the third cluster are included in ellipse 730.
[0059] The data points within ellipse 710 (first cluster) and the data points within ellipse 720 (second cluster) are so spatially dense or tightly packed that they appear more like blobs than hundreds of data points. The data points within ellipse 730 (third cluster) are much fewer in number and more spatially spread out. The physical meaning of clusters will be discussed below in connection with Figures 8 and 9.
[0060] Figure 7 clearly shows that the data point cluster assignments from the K-means clustering algorithm accurately capture the spatial locations of the plotted data points from the three-parameter time series data. It is important to emphasize that neither the spatial location of the data points nor the cluster assignment of each data point requires any prior knowledge of the number of operating conditions contained in the raw time series data. However, when we performed validation experiments in which each time series data point was labeled with the operating condition that was running when that data point was recorded, we confirmed two very important results. First, the optimal value of K (the number of clusters) used in the K-means clustering algorithm was typically one greater than the number of operating conditions in the raw time series data. The example time series shown in Figure 7 contained two operating conditions. For the silhouette score calculation example in Figure 4, the optimal value of K was determined to be 3, and these three clusters are shown in Figure 7.
[0061] A second important result was that individual data points were assigned to clusters according to the operating conditions that were in effect when the data points were recorded. In FIG. 7 , data points located in the first cluster 710 were points recorded from operating condition number 1. Data points located in the second cluster 720 were points recorded from operating condition number 2. Data points located in the third cluster 730 may be from operating condition number 1 or 2, or may be from a transition phase. Data points within cluster 730 may also represent anomalous data points requiring further analysis, as discussed further below.
[0062] FIG. 8 is a graph 800 of the robot joint parameter data of FIG. 3 , in which each time series data point is assigned to one of three clusters as shown in FIG. 7 , according to an embodiment of the present disclosure. Similar to FIG. 3 , graph 800 of FIG. 8 plots disturbance torque at a robot joint versus time. When each data point in graph 800 is formatted with a color (or grayscale shade) according to its cluster assignment, it is readily apparent that the data points in cluster 710 (of FIG. 7 ) all fall within a narrow range of normalized disturbance torque values between 0.8 and 1.0. A representative group of these points is enclosed by ellipse 810. Similarly, the data points in cluster 720 all fall within a slightly wider range of normalized disturbance torque values between 0.6 and 1.0. A representative group of these points is enclosed by ellipse 820.
[0063] The number of data points in cluster 730 is much smaller than the number of data points in the other two clusters, and these data points are dispersed within a lower range of disturbance torque values (0.0 to approximately 0.5). A representative group of these points is enclosed by ellipse 830. These data points represent a combination of outliers, transition points (where neither operating condition 1 nor 2 was executed), and possibly anomalies. The existence of this third group or cluster of data points explains why the optimal value of K is typically one greater than the number of operating conditions included in the time series data.
[0064] Again, several important points need to be emphasized here. First, data points from two different operating conditions are scattered in the time series data. Therefore, it is not possible to visually separate the data points into groups of different operating conditions, as shown in graph 240 of FIG. 2 . Second, the number of operating conditions in the data and the specific operating condition represented by each time series data point are not known in advance. That is, as shown in FIG. 4 , the clustering method for separating the data by operating condition is performed as a completely unsupervised learning and analysis. The techniques of the present disclosure have been proven effective in determining the number of clusters present in the time series data and in assigning each data point to a cluster based on which operating condition it represents.
[0065] 9A, 9B, and 9C are graphs of the robot joint parameter data from FIG. 8, with the data points for each of the three clusters plotted on separate graphs, according to an embodiment of the present disclosure. Figures 9A / 9B / 9C demonstrate the power of the disclosed technique, namely, the ability to separate large amounts of time series data, where the operating conditions are unknown, into operating condition groups, and visualize and analyze the data by operating condition.
[0066] In FIG. 8 , all disturbance torque time series data are plotted on one graph, with each data point grayscale coded based on its cluster assignment. In FIGS. 9A / 9B / 9C , data from each cluster is plotted on its own graph. Graph 910 includes the disturbance torque data points of a first cluster enclosed by ellipse 710 in FIG. 7 , with its samples enclosed by ellipse 810 in FIG. 8 . This first cluster represents a first operating condition of the robot motion. Graph 920 includes the disturbance torque data points of a second cluster enclosed by ellipse 720 in FIG. 7 , with its samples enclosed by ellipse 820 in FIG. 8 . This second cluster represents a second operating condition of the robot motion. Graph 930 includes the disturbance torque data points of a third cluster enclosed by ellipse 730 in FIG. 7 , with its samples enclosed by ellipse 830 in FIG. 8 . This third cluster represents outlier or anomalous data points.
[0067] Because the disturbance torque data is separated into clusters, as shown in Figures 9A, 9B, and 9C, the true pattern of the data is apparent both visually and through analysis software. In graph 910 (first cluster, operating condition 1), the normalized disturbance torque values fall quite regularly within a range of approximately 0.8 to 1.0. Visual inspection of graph 910 reveals no obvious problematic behavior at the robot joints, and generalized analysis of the data pattern in graph 910 reveals that high-frequency oscillations in the data values are superimposed on low-frequency oscillations, with both the frequency and amplitude characteristics appearing to be consistent and regular over time. In other words, the robot is operating normally when operated under operating condition 1, as indicated by the measured disturbance torques at the joints.
[0068] In graph 920 (second cluster, operating condition 2), the normalized disturbance torque values fall quite regularly within a range of approximately 0.6 to 1.0. Visual inspection of graph 920 does not reveal any problematic behavior at the robot joints, and a generalized analysis of the data pattern in graph 920 reveals high-frequency oscillations in the data values superimposed on one or more low-frequency oscillations, with frequency and amplitude characteristics that appear to be consistently regular over time. That is, when the robot is operated under operating condition 2, it is performing normally, as indicated by the measured disturbance torques at the joints.
[0069] Graph 930 includes a small number of data points from the third cluster. Graph 930 exhibits more random variation, but some points appear very similar, with values in the range of approximately 0.4. In the 3D graph of FIG. 7, it was clear that these points (in the third cluster) were significantly separated from the points in the other two clusters. These points therefore represent outliers and can be evaluated in any preferred or appropriate manner. Analysis software can be configured to detect specific values or combinations of parameter values (e.g., high joint torque and low disturbance torque in a time sample). A human analyst can also evaluate specific points as needed based on visual inspection. Separating the data by cluster, as in FIGS. 9A / 9B / 9C, allows analytical techniques, such as linear regression models, to be performed on the data in each cluster to detect notable characteristics.
[0070] 8 and 9 contain data for only the disturbance torque parameter, and each data point is assigned to its cluster according to the results of the K-means clustering algorithm. The other two joint parameters (joint torque and error count) can be similarly assigned to clusters as in FIG. 8 and plotted separately for analysis as in FIG. 9. The clustered data can also be displayed and analyzed in other ways, such as plotting the normalized values of all three parameters (joint torque, disturbance torque, and error count) of the third cluster (outlier) on one graph. Parameters other than joint torque, disturbance torque, and error count may also be used, and the number of such parameters may be more or less than three.
[0071] Returning to flowchart diagram 400 of FIG. 4, in box 418, the time series data is separated into clusters. As a result, in the case of the disturbance torque data, each data point is assigned to one of three clusters, as shown in FIG. 8, and further, in FIGS. 9A / 9B / 9C, each of the three graphs plots only the disturbance torque data points of the corresponding cluster. In box 420, the time series data is analyzed for each parameter by cluster, as described above, particularly with respect to FIGS. 9A / 9B / 9C. The analysis of the data in box 420 may include any combination of simple trendline calculations and slope analyses, as well as more advanced statistical and other analyses that may be performed in the time and / or frequency domains. All of these analyses are made possible by the clustering techniques described above that separate the data by operating condition.
[0072] In box 422, the analysis software sends an alert when warranted by the analysis performed in box 420. For example, if graph 910 (FIG. 9A) exhibits an upward trend over time, similar to graph 200 (FIG. 2), a warning or alert is triggered. Besides the slope of a trendline, other types of data patterns and characteristics may be detected and trigger a warning or alert. Separating data points by cluster also improves the accuracy of other types of analysis, including manual analysis. For example, because the outlier data points in the third cluster are few in number, they can be analyzed individually to determine whether they indicate an abnormal condition that should be checked by the robot.
[0073] Verification experiments confirmed the effectiveness of the disclosed technology in several ways. First, the K-means clustering algorithm, combined with silhouette score calculation, can automatically and accurately determine the correct number of clusters in raw time series data. The method in Figure 4 accurately increments the value of K (number of clusters) by one when a third operating condition is included in the joint time series data. Furthermore, when individual time series data points are tagged during data collection to identify the operating condition they represent, and the tagged (true) operating condition is compared with the cluster assignment from the K-means clustering algorithm, the results show that data points are assigned to clusters corresponding to the correct operating condition with greater than 99% accuracy. This unsupervised learning method, which uses automatic determination of the number of clusters and assignment of data points to specific clusters, is important for effective post-mortem analysis of real-world production datasets, where the number of operating conditions contained in the data may be unknown.
[0074] The method and system for robot production data clustering for anomaly prediction, as disclosed above, were developed to meet a real need in improving robot reliability: the ability to accurately detect characteristics of robot data collected under multiple robot operating conditions. The disclosed technology automatically and accurately separates time-series data into clusters by operating condition, without needing to know the number of operating conditions involved. This enables accurate analysis and visualization of robot joint parameter data, detecting noteworthy characteristics, and investigating remaining outlier data points that may be signs of anomalies requiring attention.
[0075] Various computers and controllers have been described and suggested throughout the preceding discussion. It should be understood that the software applications and modules of these computers and controllers execute on one or more electronic computing devices having a processor and memory modules. Specifically, this includes the processor within the robot controller 102 of FIG. 1 and any other computers used to perform the steps and calculations embodied in the method of FIG. 4. In one embodiment, the controller 102 facilitates collection of raw time-series data from the robot 100, and the time-series joint parameter data is provided to another computer that runs a K-means clustering algorithm and analyzes the separated data. The other computer may be a local computer relative to the robot 100 and the controller 102, or may be a remote computer, including a cloud-based computing device. As will be appreciated by those skilled in the art, other permutations are also possible.
[0076] While several exemplary aspects and embodiments of methods and systems for robotic production data clustering for anomaly prediction have been described above, those skilled in the art will recognize modifications, permutations, additions, and subcombinations thereof. Accordingly, the appended claims, and any claims hereafter introduced, should be construed to include all such modifications, permutations, additions, and subcombinations that are within their true spirit and scope.
Claims
1. 1. A method for analyzing robotics data, comprising: Collecting time series data of a plurality of joint parameters during operation of the robot; performing, with a computing device, a clustering operation on the time series data using a first number of clusters and assigning each of the time series data to one of the clusters; calculating a cluster consistency score for the result of the clustering operation using the number of clusters; performing the clustering operation and calculating the score for at least one new number of clusters; selecting the result of said clustering operation having the highest score; Separating the time series data points into a plurality of data sets according to the cluster assignments in the selected results, at least one of the data points corresponding to an operating condition of the robot; analyzing the data set including data points corresponding to operating conditions of the robot to identify data patterns; sending an alert when an alert criterion is met during the analysis; A method comprising:
2. The method of claim 1 , wherein the joint parameters include at least one parameter comprising torque data for a joint of the robot.
3. The method of claim 2 , wherein the joint parameters include a joint torque of the joint, a disturbance torque of the joint, and a position error of the joint, the disturbance torque being the difference between a theoretical estimated torque and an actual torque.
4. The method of claim 1 , wherein the time series data includes at least two different operating conditions for the operation of the robot.
5. The method of claim 4 , wherein the robot alternates between the different operating conditions any number of times during collection of the time series data.
6. The method of claim 4 , wherein after the time series data points are separated into multiple data sets according to cluster assignments, data points from each of the different operating conditions are included in a different data set.
7. The method of claim 1 , wherein separating the time series data points into multiple data sets and analyzing the data sets is performed only if the highest score is greater than a predetermined threshold.
8. The method of claim 1 , wherein the clustering operation uses K-means clustering, and the number of clusters is K.
9. The method of claim 8 , wherein a range of K is predetermined, and performing the K-means clustering and calculating the score is performed for each value of K in the range.
10. 9. The method of claim 8, wherein performing a K-means clustering operation comprises: defining a quantity of means equal to K; associating each of the data points with the closest mean in a vector space; defining spatial clusters, each containing one mean and its associated data points; calculating a new mean for each cluster; and repeating the associating, defining, and calculating until the change from one iteration to the next is below a predetermined threshold.
11. 2. The method of claim 1 , wherein the cluster consistency scores are silhouette scores, and calculating the silhouette scores includes calculating the distance from each data point to every other data point in the same cluster (intra-cluster distance) and calculating the distance from each data point to every other data point in other clusters (inter-cluster distance), and the silhouette scores are calculated using an operation such that the larger the inter-cluster distance and the smaller the intra-cluster distance, the higher the silhouette score.
12. The method of claim 1 , wherein analyzing the dataset comprises analyzing the dataset for each joint parameter separately for each cluster.
13. The method of claim 1 , wherein one of the data sets includes outlier data points that do not correspond to a motion state of the robot, and the outlier data points are analyzed to detect motion anomalies of the robot.
14. 1. A system for analyzing robotic data, comprising: means for collecting time series data of a plurality of joint parameters during operation of the robot; a computing device having a processor and a memory; The computing device performing a clustering operation on the time series data using a first number of clusters and assigning each of the time series data to one of the clusters; calculating a cluster consistency score for the result of the clustering operation using the number of clusters; performing the clustering operation and calculating the score for at least one new number of clusters; selecting the result of said clustering operation having the highest score; Separating the time series data points into a plurality of data sets according to the cluster assignments in the selected results, at least one of the data points corresponding to an operating condition of the robot; analyzing the data set including data points corresponding to operating conditions of the robot to identify data patterns; sending an alert when an alert criterion is met during the analysis; The system is configured to run
15. The system of claim 14 , wherein the joint parameters include at least one parameter comprising torque data for a joint of the robot.
16. 16. The system of claim 15, wherein the joint parameters include a joint torque of the joint, a disturbance torque of the joint, and a position error of the joint, the disturbance torque being the difference between a theoretical estimated torque and an actual torque.
17. The system of claim 14 , wherein the time series data includes at least two different operating conditions for the operation of the robot.
18. The system of claim 17 , wherein the robot alternates between the different operating conditions any number of times during collection of the time series data.
19. The system of claim 17 , wherein after the time series data points are separated into multiple data sets according to cluster assignments, data points from each of the different operating conditions are included in a different data set.
20. 15. The system of claim 14, wherein separating the time series data points into multiple data sets and analyzing the data sets is performed only if the highest score is greater than a predetermined threshold.
21. The system of claim 14 , wherein the clustering operation uses K-means clustering, and the number of clusters is K.
22. 22. The system of claim 21, wherein a range of K is predetermined, and wherein performing the K-means clustering and calculating the score is performed for each value of K within the range.
23. 22. The system of claim 21, wherein performing a K-means clustering operation comprises: defining a quantity of means equal to K; associating each of the data points with the closest mean in a vector space; defining spatial clusters, each containing one mean and its associated data point; calculating a new mean for each cluster; and repeating the associating, defining, and calculating until a change from one iteration to the next falls below a predetermined threshold.
24. 15. The system of claim 14, wherein the cluster consistency scores are silhouette scores, and calculating the silhouette scores includes calculating the distance from each data point to every other data point in the same cluster (intra-cluster distance) and calculating the distance from each data point to every other data point in other clusters (inter-cluster distance), and the silhouette scores are calculated using an operation such that the larger the inter-cluster distance and the smaller the intra-cluster distance, the higher the silhouette score.
25. The system of claim 14 , wherein analyzing the dataset comprises analyzing the dataset for each joint parameter separately for each cluster.
26. 15. The system of claim 14, wherein the means for collecting time series data is a robot controller and the computing device is either the robot controller or a different computer.
27. 15. The system of claim 14, wherein one of the data sets includes outlier data points that do not correspond to a motion state of the robot, and the outlier data points are analyzed to detect motion anomalies of the robot.