Robot joint health determination

The method dynamically determines robot joint condition parameters by monitoring and comparing state variables with target variables, addressing the limitations of existing methods by accounting for actual usage and being applicable to various robot arm systems.

WO2025131213A1PCT designated stage expired Publication Date: 2025-06-26UNIVERSAL ROBOT

Patent Information

Application Number
PCT/DK2024/050316
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-02
Filing Date
2024-12-18
Publication Date
2025-06-26

AI Technical Summary

Technical Problem

Existing methods for determining the remaining use life of robot arms are not dynamic and do not account for the actual usage of the robot arm, making them applicable only to specific robot arm systems.

Method used

A method that involves operating a robot arm according to a control program, monitoring state variables related to the actuation of robot joints, comparing these with target state variables, and deriving a state metric to determine the robot joint condition parameter, which is indicative of the amount of wear on the joint.

Benefits of technology

This method allows for the dynamic determination of robot joint condition parameters, taking into account the actual use of the robot arm, and is applicable across a broad range of robot arm systems, enabling more accurate assessment of remaining use life.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure DK2024050316_26062025_PF_FP_ABST
    Figure DK2024050316_26062025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed is a method of determining a robot joint condition parameter, comprising; providing a robot arm comprising a plurality of robot joints, each robot joint comprising a joint motor and a joint gear; operating said robot arm according to a robot control program executed by a robot controller, said operating comprising actuating at least one robot joint; sequentially monitoring a state variable relating to actuation of said at least one robot joint and comparing said monitored state variable with an associated target state variable of said robot control program to determine a sequence of discrepancies between said monitored state variable and said target state variable; deriving a state metric on the basis of said sequence of discrepancies; and determining a robot joint condition parameter of said at least one robot joint on the basis of said state metric. Disclosed is also a method of generating a training data set, a robot system, and a computer program product.
Need to check novelty before this filing date? Find Prior Art

Description

ROBOT JOINT HEALTH DETERMINATIONFIELD OF THE INVENTION

[0001] The present invention relates to a method of determining a robot jointcondition of a robot arm, a method of generating a training data set for training of anartificial intelligence model, a robot system, and a computer program product.BACKGROUND OF THE INVENTION

[0002] Robot arms comprising a plurality of robot joints and links where motors can rotate the joints in relation to each other are known in the field of robotics. Typically, the robot arm comprises a robot base which serves as a mounting base for the robot arm and a robot tool flange where to various tools can be attached. A robot controller is configured to control the robot joints to move the robot tool flange in relation to the base. For instance, in order to instruct the robot arm to carry out a number of workinginstructions. The robot joints may be rotational robot joints configured to rotate partsof the robot arm in relation to each other, prismatic joints configured to translate parts of the robot arm in relation to each other and / or any other kind of robot joints configured to move parts of the robot arm in relation to each other.

[0003] Typically, the robot controller is configured to control the robot joints based on a dynamic model of the robot arm, where the dynamic model defines a relationship between the forces acting on the robot arm and the resulting accelerations of the robot arm. Often, the dynamic model comprises a kinematic model of the robot arm, knowledge about inertia of the robot arm and other parameters influencing the movements of the robot arm. The kinematic model defines a geometric relationship between the different parts of the robot arm and may comprise information of the robot arm such as, length, size of the joints and links and can for instance be described by Denavit-Hartenberg parameters or the like. The dynamic model makes it possible for the controller to determine which torques the joint motors shall provide in order to move the robot joints for instance at specified velocity, acceleration or in order to hold the robot arm in a static posture.

[0004] Robot arms need to be programmed by a user or a robot integrator which defines various instructions for the robot arm, such as predefined moving patterns and working instructions such as gripping, waiting, releasing, screwing instructions. The instruction can be based on various sensors or input signals which typically provide a triggering signal used to stop or start at a given instruction. The triggering signals can be provided by various indicators, such as safety curtains, vision systems, position indicators, etc.

[0005] Typically, it is possible to attach various end effectors to the robot tool flange or other parts of the robot arm, such as grippers, vacuum grippers, magnetic grippers, screwing machines, welding equipment, dispensing systems, visual systems etc. In industrial contexts, robot arm applications are primarily optimized to minimize cycle time, directly influencing production pipeline output and thus critical for time-to- market evaluations (the time it takes to produce a product). Factors affecting thisindicator encompass speed loss from prolonged operations, such as extended waittimes, protective stops, or faults, along with reduced cycles due to unplanned downtime, breakdowns, and program inefficiency.

[0006] Protective stops occur when a disparity between a physical state and a pre- configured model is detected, e.g., when an erroneous payload configuration is used. In such instances, the robot controller might calculate an excessive high target current, channeling excessive power to individual joints, leading to faster-than-anticipated movements.

[0007] Typically, a remaining use life, e.g., the duration until the next protective stop,or until a failure occurs, is determined based on average estimates of systemcomponents, and such determination takes little account of the actual use of the robot arm.

[0008] US 2008 / 0140321 A1 discloses a method for monitoring the condition of an industrial robot having a plurality of links movable relative to each other about aplurality of joints. The monitoring of the industrial robot involves a comparison of acalculated mechanical property of the industrial robot and an expected mechanical property, and the deviation between these values are used to provide a condition parameter. However, such a method is specific to a given industrial robot and presumes that data relating to expected mechanical properties are already known for that industrial robot.

[0009] It is therefore an object of the present invention to provide methods andsystems for determining remaining use life of any robot arm which are dynamic in thesense that account is taken of the actual use of the robot arm and dynamic in thesense that they are applicable for any robot arm system. SUMMARY OF THE INVENTION

[0010] The objective of the present invention is to address the above-describedlimitations with the prior art or other problems of the prior art. This may be achievedby the invention according to the following aspects.

[0011] A first aspect of the invention relates to a method of determining a robot jointcondition parameter of a robot joint, said method comprising the steps of:providing a robot arm comprising a plurality of robot joints, each robot joint of said plurality of robot joints comprising a joint motor and a joint gear, said joint motor being arranged to drive said joint gear;operating said robot arm according to a robot control program executed by a robot controller, said step of operating said robot arm comprising actuating at least one robot joint of said plurality of robot joints; sequentially monitoring a state variable relating to actuation of said at least one robot joint and comparing said monitored state variable with an associated target state variable of said robot control program to determine a sequence of discrepancies between said monitored state variable and said target state variable; deriving a state metric on the basis of said sequence of discrepancies, said state metric being indicative of an amount of wear of said at least one robot joint; and determining a robot joint condition parameter of said at least one robot joint on the basis of said state metric.

[0012] Thereby is provided an advantageous method of determining a robot joint condition parameter of a robot joint of a robot arm. The method is advantageous for a number of reasons.

[0013] First, the method is advantageous in that it is usable across a broad range of robot arms and applications. Robot arms span a spectrum of sizes, for example some robot arms are capable of handling a payload of a few kilos whereas some robot arms are capable of handling tens of kilos. As a result, robot arms possess distinct robot joint dimensions, which subsequently require different operational resources. Moreover, the programmable nature of robot arms enable the execution of a wide array of procedures, and as consequence, even two identical robot arms may be used in different applications, and the different uses may cause different wear and tear on the robot arms. During operation of the robot arm, the robot arm may operate with outset in target values (referred to herein as target state variables), i.e., values that are theoretically assumed. For example, when the robot arm moves, the robot controller may compute the electrical currents required for that movement. Concurrently, real-time measurements (referred to herein as monitored state variables) may be conducted and utilized as feedback to continuously and accurately adjust the target values. Due to disparities between the real-world physical state andthe mathematical model of the robot arm, discrepancies commonly emerge between the target values and the actual measurements. Such discrepancies may emerge irrespective of the static configuration of the robot arm (e.g., the size of the robot arm, the number of robot joints, the tool mounted on the robot arm, etc.) or the specific application of the robot arm (e.g., the program cycle of the robot control program). Thus, by deriving a state metric on the basis of such discrepancies that allows forcross-comparison and determining a robot joint condition parameter on the basis ofthat state metric, a method is provided which may determine a robot joint condition parameter for a broad range of robot arms and applications.

[0014] Second, the method is advantageous in that the determination of the robot joint condition parameter is dynamic in the sense that it is based on actual measurements of state variables. Such a dynamic determination of a robot joint condition parameter is advantageous in that the robot joint condition parameter may take into consideration the actual use of the robot arm.

[0015] In the context of the present disclosure, a “robot control program” may be understood as any computer-implemented control program which is capable of being executed by a robot controller with the purpose of controlling operation of a robot arm. The robot control program may comprise instructions which when executed by the robot controller ensures that the robot arm moves according to target motions defined by the instructions. In the context of the present disclosure, a “robot controller” is understood as any kind of data processing arrangement capable of executing a robot control program. The robot controller may be a discrete data processor, or the robot controller may be adistributed data processing system. The robot controller may be arranged in the robotarm, or it may be arranged externally to the robot arm. In any case, the robot controller is communicatively associated with the robot arm whereby the robot controller may provide control signals to the robot arm such that the robot arm iscontrolled according to the robot control program executed by the robot controller.

[0016] In the context of the present disclosure, a “state variable” may be understood as any kind of variable which is indicative of a state of the robot joint, and which is measurable or derivable from measured parameters. Thus, a state variable may indicate the current configuration of the robot arm at any given time. Examples of such state variables may include current (i.e., current supplied to the joint motor), motor torque (i.e., torque generated by the joint motor, or torque provided by the joint gear), joint position (e.g., angular position of the robot joint), and accelerations of the robot joints. As stated above, the state variable may be derivable from measured parameters. For example, the motor torque may be derived based onmeasured motor currents. It should be noted that other examples of state variables may be used for the purpose of the present method, and that the above examples of state variables are merely exemplary. The state variable may exist by virtue of different manifestations; the state variable may be designated by the robot control program as a target state variable and the state variable may also be measured as a measured state variable. That is, the robot control program may define a desiredtrajectory of the robot arm (start- and end positions of the robot joints, including forexample velocities of the robot joints). The robot control program may then designatethe required robot state variables, i.e., target values, which may realize the desiredtrajectory. In reality, when the robot arm is moving, the actual value of the state variable may differ from the target value when measured. As an example, the robot control program may request that a certain target current is supplied to a robot joint to perform an intended movement of the robot arm, however, in practice the actual current necessary for performing the movement may differ from the target current due to wear in the robot joint such as in a joint gear.

[0017] In the context of the present disclosure, “sequentially monitoring” may be understood as monitoring a state variable at multiple instances over time. For example, the state variable may be monitored at multiple sampling points throughout a program cycle of the robot control program, such as monitored at fixed time intervals throughout the program cycle. For every sampling point of the state variable, a measured state variable is obtained, and likewise, for every sampling point of the state variable there exists an associated target state variable. For any given sampling point, the measured state variable may be compared with the associated target state variable to ascertain a difference between the measured state variable and the target state variable for every sampling point. Comparing the values may include performing calculations involving both values of the measured stated variable and the target state variable. For example, for every sampling point ^, a discrepancy ^^may be calculated from the measured state variable ^^and the target state variable ^^(the subscript ^ representing a sampling point number) using equation 1 here below.

[0018] The above function (1) directly compares the monitored state variable with the target state variable by subtracting the value of the target state variable in a samplingpoint ^ from the value of the measured state variable in the same sampling point,whereby a discrepancy is provided for every sampling points.

[0019] Thus, by sequentially monitoring the state variable and comparing the monitored state variable with the associated target state variable for every point ofmeasurement or sampling point, a sequence of discrepancies may be obtained. The sequence may for example represent parts of a program cycle or an entire program cycle. The sequence of discrepancies may also be referred to as the load case. Obtaining such a sequence, or load case, is particularly advantageous in that it may bepossible to gain insights into the wear pattern of the at least one robot jointthroughout a part of a robot cycle or throughout an entire robot cycle. For example, depending on the programming of the robot cycle, it may be the situation that there are only a few occasions, or maybe even only one occasion, in the program cycle where the at least one robot joint is stressed to such an extent that a significant discrepancy between a measured state variable and its associated target state variable is manifested. By monitoring the state variable sequentially, it may thus be possible to capture such occurrences of discrepancies which are significant for the determination of the state of health of the at least one robot joint.

[0020] In the context of the present disclosure, a “state metric” may be understood as a variable or measure which may represent a state of a robot joint by indicating an amount of wear of the robot joint. More specifically, the state metric may serve as a snapshot of the robot joint’s condition and the severity of the state metric may escalate with the passage of time while the robot joint is under stress.

[0021] In the context of the present disclosure, a “robot joint condition parameter” may be understood as a parameter indicative of a state of health of the at least one robot joint. The robot joint condition parameter may be derived from the state metric, or the robot joint condition parameter may be a representation of the state metric. For example, the robot joint condition parameter may be remaining use life derived from the state metric or a probability of failure derived from the state metric, e.g. robustness. Alternatively, to being derived from the state metric, the robot joint condition parameter may also be a representation of the state metric, for example the state metric itself. A representation of the state metric, such as the state metric itself, may be valuable for the assessment of the state of health of the at least one robot joint, as the state metric gives insights to the state of wear of the at least one robot joint by virtue of being a snapshot of the robot joint’s condition. For example, the robot joint condition parameter may be used as a test parameter in the production of robot arms to assess the quality of the robot joints of the robot arms. A faulty or ill- performing robot joint may thus be identified when for example executing a test program in the production, and the robot joint may thus be replaced before sending out the robot joint to users. Moreover, the robot joint condition parameter may also be used by a manufacturer of robot arms to provide a tailor-made warranty to a specific robot arm. Another example of a use case of the robot joint condition parameter isdiagnostics of the robot arm. For example, after execution of every program cycle of the robot control program, the robot joint condition parameter may be stored in a log, and this allows for tracking the condition of the at least one robot joint over time.

[0022] According to an embodiment, said sequence of discrepancies is determined in respect of a single program cycle executed by said robot controller. It may thereby be implied that the sequence of discrepancies is contained within one single program cycle.

[0023] According to an embodiment, said step of sequentially monitoring said state variable comprises monitoring said state variable while said robot controller executes a program cycle of said robot control program.

[0024] The step of monitoring the state variable may be performed while the robot controller executes a program cycle of the robot control program. Such concurrent monitoring of the state variable is advantageous in that the assessment of remaining use life may be performed without intervening the execution of the robot control program. Furthermore, the concurrent monitoring of the state variable is advantageous in that the remaining use life may utilize an actual robot cycle of the robot arm as a baseline.

[0025] According to an embodiment, said monitored state variable is used by said robot controller to adjust said target state variable.

[0026] The monitored state variable may be the same variable used by the robot controller to adjust the associated target state variable. Thereby the monitored state variable may serve multiple purposes in that the monitored state variable may be used directly in calculating the remaining use life and in the feedback control by the robot controller. Utilizing a variable already in use for the purpose of performing feedback control in respect of the control of the at least one robot joint for the method of determining the remaining use life is advantageous in that it is possible to utilize a variable already monitored by the robot controller, and it is therefore not necessary to set up a new monitoring scheme for the method to be carried out. Furthermore, by utilizing a monitored state variable already used for the adjustment of the target state variable is advantageous in that the present method becomes backwards compatible with already existing robot arm systems utilizing such feedback control as there is no need of modifying such systems with new sensors in order to carry out the present method.

[0027] According to an embodiment, said target state variable is derived from said robot control program.

[0028] The target state variable may be derived from the robot control program which may imply that the target state variable may be manifested differently inside the robotcontrol program than indicated or expressed from the outside the robot control program. For example, the robot control program may indicate poses of the robot arm,the method of movement, for example MoveJ (motion by joint movement) or MoveL(motion of tool center point in linear path), and speed of movement, whereafter the robot controller calculates the target torques for each joint based on a dynamic model of the robot arm. The target torques are then converted into motor currents. In this sense, the current may be treated as a manifestation of the desired torque. That the target state variable is derived from the robot control program may also imply that the target state variable may be represented using different units inside the robot control program than outside the robot control program. The possibility of using different manifestation and / or representations of the target state variable is advantageous in that it allows a user of the robot arm to define the target state variable independently of the monitoring of the state variable, thereby achieving a more user-friendly programming experience when setting up or adjusting the robot control program.

[0029] According to an embodiment, said monitored state variable and said target state variable comprises current.The state variables (monitored state variable and target state variable) may comprisecurrent, i.e., current for the joint motor of the at least one robot joint. The current may for example be expressed in units of Ampere, however other units of current are equally usable. By monitoring current as the monitored state variable is advantageous in that discrepancies of between target current and actual current are symptomatic of various joint health issues.

[0030] In an alternative embodiment, the state variables may comprise any of torque, gear position, or other measurable parameters which can also be expressed by means of a target parameter in a robot control program. The state variables may also be any variables derived from e.g., current, torque or gear position.

[0031] According to an embodiment, said state metric is derived on the basis of a friction coefficient of a joint motor and a joint gear of said at least one robot joint, said friction coefficient being dependent on a temperature and / or a velocity of said at least one robot joint.

[0032] The derivation of the state metric may take into consideration a friction coefficient of the at least one robot joint. The friction coefficient may be temperature- and velocity dependent. Taking into account such a friction coefficient is advantageous in that the state metric may better reflect the actual state of wear of the at least one robot joint, as effects of temperature and velocity on the joint gear may be compensated for. Such a friction coefficient may be readily available, as gearmanufacturers typically provide a gear model of the friction coefficient when distributing gears.

[0033] According to an embodiment, said friction coefficient is calculated on the basis of sensor input and on the basis of a gear model of said joint gear of said at least one robot joint.

[0034] The friction coefficient may be dependent on temperature and / or velocity of the at least one robot joint. Accordingly, the method may involve monitoring temperature of the at least one robot joint and / or monitoring velocity of the at least one robot joint and providing the monitored temperature and / or the monitored velocity as sensor inputs. For example, the respective sensor inputs may be provided by a temperature sensor and a position encoder of the at least one robot joint.

[0035] According to an embodiment, said state metric is derived based on a plurality of sub-state metrics, wherein said plurality of sub-state metrics are obtained based on a plurality of discrepancies of said sequence of discrepancies. The step of deriving a state metric may involve obtaining a plurality of sub-state metrics first. A sub-state metric may be regarded as a precursor for deriving a state metric. The sequence of discrepancies, obtained from sequentially monitoring the state variable and comparing the monitored state variable with an associated target state variable, contains a sequence of values (one value for every sampling point, e.g., for every sampling point throughout a program cycle). For every value in the sequence of discrepancies, a sub-state metric may be derived, whereby a plurality of sub-state metrics may be derived / obtained. The definition of the state metric presented above equally applies to the sub-state metric, however, a sub-state metric is first interesting when evaluated among the plurality of sub-state metrics. For example, as the robot arm operates in accordance with the robot program, the robot may be operated in accordance with a program cycle of the robot program, and a plurality of sub-state metrics may be derived in respect of that program cycle by monitoring the state variable throughout the program cycle and comparing each monitored value of the state variable, e.g., for every sampling point, with the corresponding target state variable to determine a discrepancy between the monitored state variable and the target state variable. Moreover, for every discrepancy, a sub- state metric may be derived, whereby a plurality of sub-state metrics are derived – one sub-state metric for every sampling point in the program cycle. Deriving a plurality of sub-state metrics is advantageous in that the chance of monitoring a decisive event for the assessment of the robot joint condition parameter may be improved. As an example, an actuation of the at least one robot joint, for example in accordance with a program cycle of the robot program, may comprise slowmovements of the robot joint which does not stress the robot joint, however, the actuation may also comprise faster and more stressing movements of the joint where issues relating to the robot joint may be manifested more explicitly through larger variations between the monitored state variable and the target state variable. Deriving more sub-state metrics is thus advantageous in that events which are more symptomatic of a pending malfunction of the robot joint are more easily captured, and one or more of these sub-state metrics may be used as the state metric. Accordingly, the method may involve using a subset of the derived state metrics in the assessment of remaining use life, for example a subset of state metrics, e.g., a single state metric, representative of such decisive events.

[0036] According to an embodiment, each sub-state metric of said plurality of sub- state metrics is derived using a recursive formula, wherein a value of each sub-state metric of said plurality of sub-state metrics is calculated by subtraction of a value of a neighboring sub-state metric of said plurality of sub-state metrics.

[0037] By a neighboring sub-state metric is understood a sub-state metric associated with a neighboring sampling point. Deriving, or calculating, each sub-state metric in this way is advantageous in that the sub-state metrics may reflect rate of change of the metric from sampling point to sampling point, and thereby a filter is introduced which efficiently illuminates abnormal changes in the error magnitude (i.e., abnormal changes in discrepancies throughout the sequence of discrepancies).

[0038] Below is presented an example of a formula for calculating sub-state metrics.The sub-state metrics are denoted ^^ , where the subscript ^ refers to a particulardatapoint within a sequence of measurements, ^ from 0 → ^^. Throughout the presentdisclosure, these sub-state metrics may be referred to as alphas or alpha values. Thecomputation of the alpha values is conducted relative to the absolute error value ^ (epsilon), which is the absolute value of the discrepancy between the measured state variable ^^and the associated target state variable ^^. Epsilon may be defined as in equation 1 above.

[0039] To evaluate the severity of epsilon relative to the robot joint composition, the result is scaled according to the weighting function ^(^,^)(omega) in equation 2 herebelow. Please note that the subscript of omega indicates that omega is velocity- andtemperature dependent. )( ^^ ^^∗^ )^|^| ∗ ^ ∗ ^^ + ^ ∗ ^^(2)This equation is a combination of two terms, where the left-hand term depends on theabsolute velocity, ^ (radians per second), and a constant defining the absolutemaximal velocity, ^^^^. The right-hand term is formulated based on a temperature- dependent friction coefficient model and resembles the way friction decrease / increase is computed in a robot controller. The model depends on a set of constants ^^,…^), obtainable during joint calibration, and temperature t. Consequent to this weighting function, epsilon is penalized such that high-velocity rotations of the at least one robot joint leading to a specific level of error are considered less detrimental than low- velocity rotations yielding the same error magnitude. With an increase in temperature, there is an expected reduction in joint rigidity, which aligns with the anticipation of increased error magnitudes. Below is presented the outcome, namely equation 3 for calculation of alpha values.The above equation 3 may also be formulated in the following way:where n represents the length of the sequence of measurements, indexed from 0 to n-1 and i starts at 1. In accordance with the type of the at least one robot joint, there exists an associated resistance to force, essentially denoting the maximum load threshold that the joint can sustain prior to breakdown. The proximity of the current load to this maximum load serves as an indicator of the current level of stress the at least one robot joint is experiencing. This concept is factored in in equation 3 by incorporating the maximumtorque ^^^^, the gear ratio ^ (e.g., number of teeth), and a torque constant ^^ whichdescribes the correlation between electric input in the joint motor and torque, ^ ,provided by the joint motor of the at least one robot joint (see equation 4 below). ^= ^ ∗ ^^ ∗ ^ (4)

[0040] It should be noted that equation 3 has been derived in respect of the state variable being current, however, the inventor has realized that the above computations of alpha values may also be conducted using other state variables and yield results usable for deriving a robot joint condition parameter. As seen fromequation 3, the sub-state metrics are calculated recursively, meaning that for every sub-state metric ^^the neighboring sub-state metric ^(^^^)is subtracted.

[0041] According to an embodiment, said robot joint condition parameter is a remaining use life, and wherein said remaining use life is calculated by analyzing a temporal evolution of said state metric.

[0042] In the context of the present disclosure, a “remaining use life” may be understood as any kind of indicator indicating a remaining time until a repair is expected to be needed as a consequence of wear of the at least one robot joint. Although the term “remaining use life” may indicate a time, it should be noted that the term may also denote a number of program cycles until a repair is expected to be needed as a consequence of wear of the at least one robot joint.

[0043] Attributing health related significance to the state metric may include establishing a reference point for the state metric. Such a reference point may be achieved through acquisition of empirical data derived from a series of accelerated life tests conducted on various robot joints using a test program. Such a test program may involve high velocity joint rotations from negative to positive degrees and their subsequent reversal, collectively constituting a single program cycle. Parallel to the execution of the test program, a state variable, for example current, may be sequentially monitored to establish a multiple sets of a plurality of sub-state metrics. Each set of sub-state metrics being made at an increasing number of program cycles; for example a first set conducted at 0 program cycles, second set conducted at 200.000 program cycles, a third set conducted at 400.000 program cycles, a fourth set conducted at 11.2 million program cycles, and a fifth set conducted at 15 million cycles. These are merely examples, and the number of sets conducted, and the number of program cycles at which each set is conducted may of course be subject to changes. For every set of sub-state metrics an infimum value is chosen for each set. The data set (infimum value of state metric as a function of program cycles) may reveal an exponential increase in state metric as the number of program cycles increase. The state metric may thus be characterized by an exponential function fitting the data set. The inventors have realized that the following exponential function seen in equation 5 below is a suitable function for characterizing the temporal evolution of the state metric. Note that the temporal evolution of the state metric is denoted ^^in the following.where ^ and α[^^^] are both rate parameters, ^ is a constant dependent on thebaseline and α[^^^]is contingent on the particular robot joint and robot controlprogram calculated with outset in equation 3 above. For ^̅ is used a mean value from adata set of healthy robot joints, before the supremumΩ(^),assuming an averageoutset for ^^ at ^ = 0 (delta ^ denoting a number of program cycles).Putting in numbers relating to an exemplary robot arm in equation 5, the equation can be expressed as in equation 6 below. ^^ ≈ [3.453] ∗ ^^∗[^.^^^^] + [0.3795] (6)The general equation 5, and the more specific equation 6) above may be referred to as temporal baseline models which may describe the temporal evolution of the state metric for a specific robot joint of a specific robot arm. Depending on the specific robot joint, the values of the parameters used in equation 5 above may be different and thus equation 6 should only be regarded as an example of a function describing the temporal evolution of the state metric for a particular robot joint. By performing a test program on another robot arm, different values may of course be derived and used for the parameters in the formula.

[0044] The above formulas may be regarded as an example of an analysis of a“temporal evolution of said state metric”, and the remaining use life may be calculated based on that analysis. As equation 5 above provides a description of the temporal state metric ^^, the end of life is of the at least one robot joint may be approximated with outset in a gearbox lifetime equation, such as a industry-standard gearbox lifetime equation. This ascertains the time at which 10% of a group of gears are projected to fail and also serves as the formula commonly employed curing gear specification tests. Such an equation is represented by equation 7 below.where ^^signifies the nominal lifetime of the gears, ^^corresponds to the rated speed in rotations per minute (rpm), while ^^^^denotes the average speed.is the rated torque, and ^^^^is the average torque. Rated loads depend on the particular gear model, and the actual torque, as opposed to the target torque, is required as input for the equation. This distinction arises due to the latter being a calculated value that is considerably influenced by the robotcontroller. ^10 is divided by ^^ and multiplied with 100 to obtain the fraction of lifespent as a percentage. ^^ denotes the percentical representation. To estimate the endof life expected for the baseline, alpha value at ^^ = 100% may be extrapolated, andthus by comparing the temporal evolution of alpha with the alpha value at ^^ = 100%, itmay be found at what program cycle number, ^, that value is reached, and this may serve to define the remaining use life.

[0045] Calculating the remaining use life is advantageous in that it may provide a userof the robot arm with a tangible measure of the state of the at least one robot joint, and it may thus be easy for the user to schedule a repair, for example when a certain number of program cycles have passed and before the end of life.

[0046] According to an embodiment, said remaining use life is calculated on the basis of a selected sub-state metric of said plurality of sub-state metrics.

[0047] The remaining use life may be calculated on the basis of a selected sub-state metric of the plurality of sub-state metrics. By a selected sub-state metric may be understood a single sub-state metric, for example a single sub-state metric derived in respect of a program cycle of the robot program. The selected sub-state metric maybe selected in the sense that it may be decisive for the state of the at least one robotjoint. As an example, the remaining use life may be calculated on the basis of a selected sub-state metric which is the greatest sub-state metric among the plurality of sub-state metrics, or on the basis of a selected sub-state metric which is the greatest sub-state metric among a subset of the plurality of sub-state metrics. For example, the selected sub-state metric may represent a supremum sub-state metric or an infimum sub-state metric among the plurality of sub-state metrics.

[0048] According to an embodiment, said analysis of said temporal evolution of said state metric comprises analyzing said state metric with respect to an increasing number of program cycles of said robot control program.

[0049] As time progresses, so may the number of performed program cycles in thecase that the robot control program repeats execution of a program cycle. Thus, the temporal evolution of the state metric may also be expressed as an evolution in respect of an increasing number of program cycles. As the state metric may be regarded as a snapshot of the condition of the at least one robot joint, analyzing the evolution of the state metric as the number of performed program cycles evolve it may be possible to track how the state of wear of the at least one robot progresses with an increased number of robot cycles. Analyzing the state metric with respect to an increasing number of program cycles of the robot control program is advantageous in that the remaining use life may be expressed by a number of remaining program cycles before the at least one robot joint is expected to cause a protective stop of the robot arm.

[0050] According to an embodiment, said analysis of said temporal evolution of said state metric involves projecting when said state metric reaches a critical value of said robot arm, wherein said critical value is determined on the basis of historic data.

[0051] The analysis of the temporal evolution of the state metric may involve projecting how the state metric evolve as time progresses (or as a number of program cycles of the robot control program increases). Such projection may involve fitting values of the state metric to an exponential function, for example the exponential function according to equation 5, and determining at what point in time (or at what number of program cycles) that the state metric reaches a critical value. The critical value of the state metric may be determined on the basis of historic data meaning that the critical value is determined empirically by considering occurrences of failures of other similar robot arms and the value of the state metric at which the at least one robot joint caused a failure. By historic data may be understood data obtained in relation to historic breakdowns of other robot joints, such as other robot joints of a similar type. For every breakdown of a robot joint as reflected in the historic data, there may be associated an alpha value at the point of failure, and these values may be used to determine a critical value.

[0052] The inventor of the present invention has realized that the evolution of the state metric may exhibit an exponentially increasing behavior with respect to an increasing number of program cycles performed by the robot arm, and therefore have concluded that a projection of the temporal evolution of the state metric may be possible in respect of a robot joint of any robot arm. Likewise, the inventor has realized that a failure of a robot joint may be attributed to a correspondingly high value of the state metric. Through these two realizations, the inventor has realized that it may be possible to determine an instance of time when (or a remaining number of program cycles before) the state metric reaches the critical value and a failure is expected.

[0053] According to an embodiment, said robot arm comprises actuating said at least one robot joint according to a program cycle of said robot control program, and wherein said remaining use life denotes a number of remaining program cycles in respect of said at least one robot joint.

[0054] The robot arm may be controlled by the robot control program executing a program cycle. For example, the robot control program may repeat execution of a dedicated program cycle in a number of consecutive program cycles. Such repetitive nature of robot control is typical of most applications of robot arms in industry as the robot arms used in industry are typically programmed to repeat the same task over and over again. Considering that the robot control program may repeat execution of the same dedicated program cycle, it may be advantageous to express the remaining use life by a number of remaining program cycles before a failure is expected. For example, the robot arm may be used in the production and / or processing of products,with one program cycle being used for handling of one product, and thus by expressing remaining use life by a number of remaining program cycles, it may be projected how many products may be handled before a failure is expected.

[0055] According to an embodiment, said at least one robot joint is a first robot joint, and wherein said method comprises calculating a remaining use life of a second robot joint of said plurality of robot joint.

[0056] The method may involve calculating the remaining use life of more than one robot joint of the robot arm, such as in respect of both a first robot joint and a second robot joint of the plurality of robot joints. According to an embodiment of the invention, the method is carried out with respect of each robot joint of the plurality of robot joint.Performing the method with respect to multiple robot joints is advantageous in that itmay be possible to determine which robot joint of the plurality of robot joints that may become the bottleneck with respect to downtime of the robot arm.

[0057] According to an embodiment, said method comprises a further step of adjusting one or more control parameters of said robot control program in respect of said at least one robot joint after said step of determining a robot joint condition parameter of said at least one robot joint.

[0058] After the step of determining a robot joint condition parameter, such as after calculating a remaining use life of the at least one robot joint, the method may involve a step of adjusting one or more control parameters of the robot control program in respect of the at least one robot joint. The determination of the robot joint condition parameter may serve multiple purposes. Obviously, a robot joint condition parameter like the remaining use life of the at least one robot joint may be useful information for the purpose of servicing the robot arm. However, a robot joint condition parameter, such as the remaining use life, may also be used as a performance indicator for a user of the robot arm, such as a programmer, to perform optimizations of the robot control program. For example, the remaining use life may indicate that the way the at least one robot arm is actuated during a program cycle results in a shorter remaining use life than for other robot joints of the robot arm. The user, e.g., a programmer, may take this information into consideration and perform a small modification to the program cycle by adjusting one or more control parameters of the robot control program. For example, the user may reduce a speed of the at least one robot joint in order to impose less stress on the joint and thereby improve the remaining use life of the robot joint. Thus, adapting control parameters following a calculation of remaining use life is advantageous in that the time, or the number of program cycles, until a next failure occurs may be improved.

[0059] According to an embodiment, said method comprises a step of providing saidrobot joint condition parameter to a user of said robot arm using an electronic display.

[0060] The robot joint condition parameter, such as remaining use life, of the at leastone robot joint, or robot joint condition parameters of a plurality of robot joints, suchas remaining use lifes of a plurality of robot joints, may be provided to a user of therobot arm by use of an electronic display, for example through a graphical user interface of a teach pendent.

[0061] According to an embodiment, said method comprises a step of triggering an alarm on a condition of said calculated remaining use life being within a critical remaining use life range.

[0062] The method may advantageously comprise a step of triggering an alarm upon detecting that the calculated remaining use life being within a critical range. The critical remaining use life may be determined with respect to the specific application of the robot arm and may for example take into consideration an expected time for a repair to be made. Thus, by triggering an alarm when the condition of critical remaining use life is met is advantageous in that it may be possible to ensure that a repair is ordered or that replacement part(s) are ordered in advance of an expected breakdown of the at least one robot joint. Thereby, overall downtime of the robot arm may be reduced. The triggering of the alarm may comprise displaying a warning to auser of the robot arm, for example through a teach pendent, or by alerting the userusing a sound signal.

[0063] According to an embodiment, said robot control program comprises a robot test program.

[0064] In the context of the present disclosure, a “robot test program” may be understood as a robot control program executing one or more test sequences of the robot arm. The robot test program may be a predefined test program, such as a standardized test program. The one or more test sequences of the robot test programmay be arranged to strain robot joints of the robot arm, for example by stressing therobot joints through e.g., application of a payload, or through high accelerations and speeds of robot joints. Using a robot test program as the robot control program is advantageous in particular with respect to commissioning of the robot arm. A strenuous robot test program may reveal robot joints that are prone to sudden failure more easily than a typical robot control program being executed in the industry, andmoreover, if the robot test program is a standardized test program, the robot jointcondition parameter emerging from a test sequence may be used for direct comparison with other robot arms, for example other robot arms that are known to bewell functioning. Thus, based on the robot joint condition parameter derived in respectof a robot arm executing such a test sequence, and by comparing the parameter with those of other well-functioning robot arms, it may be possible to ascertain whetherone or more robot joints of a robot arm is malfunctioning or at least prone to suddenfailure.

[0065] According to an embodiment, said step of deriving said robot joint condition parameter is performed using a machine learning model.

[0066] The step of determining the robot joint condition parameter may be performed at least partly by use of a machine learning model. Examples of machine learning models may include regression models and neural networks, such as trained neural networks. The machine learning model may be used in the final step of determining the robot joint condition parameter, however the machine learning model may also be used in the step of deriving a state metric on the basis of said sequence of discrepancies. As an example, a neural network may be trained using data representing sequences of discrepancies at various program cycle counts and from various robot arms, and the particular alpha value attributed to that sequence. The trained neural network may take as input a sequence of discrepancies and output a state metric for use according to the present invention.

[0067] According to an embodiment, a logging of said operation of said robot arm isperformed to provide log data, wherein said logging comprises event-based logging.

[0068] While operating the robot arm according to the robot control, program, a logging of the robot arm may be performed. The logging may provide log data which is data indicative of operation of the robot arm. Examples of log data may be state variables, parameters derived from state variables, discrepancies between monitored and target state variables, state metrics and robot joint condition parameters. The logging of the data may comprise event-based logging. By event-based logging is understood an event-driven approach to data logging where data is logged based on the occurrence of execution events. This allows for spectating e.g., robot state variables, in association with runtime (execution of the robot control program).Moreover, stress and related insights may be made aware of at runtime instanceswhere the developer of the robot control program may be more likely to make changes to the robot control program and control the outcome. Furthermore, the logging may help to provide domain-specific knowledge about the execution of the robot control program as runtime occurrences are a given.

[0069] According to an embodiment, said log data is associated with one or morerobot control program lines of said robot control program.

[0070] By a robot control program line may be understood a line in a computer codeforming the robot control program. By associating log data to one or more robotcontrol program lines, such as associating state metrics to one or more robot control program lines, robot control program lines may be represented along with robot joint health indicating parameters and thus used to monitor robot control program lineexecution in event-based detail. This is advantageous since associating runtime datawith program execution on a script line level allows for optimizations and event resolution monitoring. Furthermore, considering post-deployment, this may facilitate robot program line execution monitoring which may assist in quantifying robot program line robustness, i.e., the similarity with which each program line is executed across a plurality of program cycles. Furthermore, given that a robot joint is approaching a state at which repair is required for continued reliable operation, state metrics and / or robot joint condition parameters in association with distinct robot control program line(s) may help a developer in identifying possible optimization. Furthermore, considering pre-deployment, this may facilitate robot control program optimization with respect to prolonged life span of robot joint(s).

[0071] According to an embodiment of the invention, said robot joint condition parameter comprises robustness. Robustness (Θ, theta) may be calculated using the formula shown in equation 8 below: Θ= (1 − ^^) ∗ 100, ^^(^ ≤ ^^) = 1 − ^^^^ / (^^^)(8) where theta signifies that for a given state metric (alpha), it has been observed thatthis percentage of robot arms are not experiencing protective stops or otherwisebreakdowns, alpha is the state metric, lambda is the lambda value also shown inrespect of equation 5 above, and fc denotes the distribution of alpha values of faultyrobots.

[0072] Another aspect of the invention relates to a method of generating a training data set for training of an artificial intelligence model, said method comprising the steps of: a) operating a robot arm according to one or more operating instructions of a robot control program executed by a robot controller of a robot system, said robot arm comprising at least one robot joint, said step of operating said robot arm comprising actuating at least one robot joint; b) sequentially monitoring a state variable relating to actuation of said at least one robot joint and comparing said monitored state variable with an associated target state variable of said robot control program to determine a sequence of discrepancies between said monitored state variable and said target state variable;c) deriving a state metric on the basis of said sequence of discrepancies, said state metric being indicative of an amount of wear of said at least one robot joint; d) determining a robot joint condition parameter of said at least one robot joint on the basis of said state metric;e) performing steps a-d a plurality of times using a plurality of robot arms, thereby obtaining a training data set comprising a plurality of operating instructions with a respective plurality of robot joint condition parameters.

[0073] Thereby is provided an advantageous way of generating a training data set for training of an artificial intelligence model. Use of a trained artificial intelligence model will be described in the following. As stated, the steps a-d are performed multiple times using a plurality of robot arms, preferably including different robot arms of various types and sizes, to generate a more diverse training data set. A training data set generated in this way is advantageous in that it enables an artificial intelligence model to be trained to evaluate a robot control program prior to run-time for the purpose of determining one or more robot joint condition parameters relating to operating instructions of the robot control program. Such a use of a trained artificialintelligence model will also be described in the following.

[0074] Another aspect of the invention relates to a robot system comprising: a robot arm comprising a plurality of robot joints, each robot joint of said plurality of robot joints comprising a joint motor and a joint gear, said jointmotor being arranged to drive said joint gear; a robot controller configured to execute a robot control program and to control operation of said robot arm on the basis of said robot control program; and wherein said robot controller is arranged to determine a robot joint conditionparameter by: sequentially monitoring a state variable relating to actuation of at least one robot joint of said plurality of robot joints and comparing said monitored state variable with an associated target state variable of said robot control program to determine a sequence of discrepancies between said monitored state variable and said target state variable; deriving a state metric on the basis of said sequence of discrepancies, said state metric being indicative of an amount of wear of said at least one robot joint; anddetermining a robot joint condition parameter of said at least one robot joint on the basis of said state metric.

[0075] According to an embodiment, said robot system is arranged to carry out the method according to any of the above paragraphs.

[0076] Yet another aspect of the invention relates to a computer program product comprising instructions which when executed by a robot controller of a robot system causes the robot controller to carry out the method according to any of the above paragraphs.

[0077] According to an embodiment, said robot system is a robot system according to any of the above paragraphs.

[0078] As already mentioned, said step of deriving said robot joint conditionparameter may be performed using a machine learning model. As an example, aneural network may be trained using data representing sequences of discrepancies at various program cycle counts and from various robot arms, and the particular alphavalue attributed to that sequence. In such a situation, the trained neural networktakes as input a sequence of discrepancies and output a state metric for use according to the present disclosure.

[0079] The use of trained artificial intelligence models, such as trained neural networks,need not be limited to the mere calculation of a robot joint condition parameter basedon measured date from execution of a robot arm. A trained artificial intelligence model may also be used to evaluate a robot control program for a robot arm which robot control program is being developed in a programming environment of a robot program development software.

[0080] Thus, another aspect of the present invention relates to a computer- implemented method of evaluating a robot control program for a robot arm, wherein said robot arm comprises a plurality of robot joints connecting a robot base and a robot tool flange, wherein said method comprises the steps of: -providing one or more operating instructions of a robot control program in a programming environment of a robot program development software, said one or more operating instructions representing one or more robot tasks; -automatically inputting said one or more operating instructions into a trained artificial intelligence model, said trained artificial intelligence model being adapted to take one or more operating instructions as input and adapted to output one or more robot joint condition parameters on the basis of said one or more operating instructions; and -outputting, by said trained artificial intelligence model, one or more robot joint condition parameters of one or more robot joints of said plurality of robot joints.

[0081] Thereby is provided an advantageous computer-implemented method of evaluating a robot control program. The method may enable developers of robot control programs to better understand the impact of their programming on robots executing the robot control programs being developed.

[0082] In the context of the present disclosure, an “operating instruction” (or“instruction” as previously referred to) may be understood as instructions designatingparticular robot tasks. For example, an operating instruction may designate a particular movement of a robot arm, such as movement of a tool center point (TCP) from one point in space to another point in space, rotation of the robot arm base, or rotation of one or more robot arm joints. An operating instruction may be provided to the programming environment in various formats, such as script lines, list of positions, list of objects including metadata describing object dimensions, and Open X- Embodiment datasets. A robot control program may comprise operating instructions.

[0083] In the context of the present disclosure, a “programming environment” is a software-implemented environment in which a developer is able to develop robotcontrol programs. The programming environment may be accessible to theuser / developer through a user interface, such as a graphical user interface (GUI). The programming environment may be an integrated development environment (IDE), i.e., a software application that provides comprehensive facilities for software development. In other words, the programming environment may also be regarded as an editor.

[0084] In the context of the present disclosure, a “trained artificial intelligence model” (or trained AI model), may be understood as a computer algorithm which has been trained on a set of data to perform a specific task. Specifically, in the context of the present disclosure, the trained artificial intelligence model may be trained using training data sourced from operational robot arms. Further details of usable training data will be provided throughout the present disclosure. Examples of artificial intelligence models suitable for carrying out the computer-implemented method of evaluating a robot control program according to the present disclosure includes statistical models, regression models and machine learning models, such as deep learning models, such as deep learning models employing neural networks, forexample stacked corrective feedforward multilayer perceptron (MLP) models.

[0085] As demonstrated in the preceding paragraphs, a robot joint conditionparameter, such as a state metric, or parameters derived from the state metric, may be established by monitoring state variables of actual robot arms and using target variables defined on the basis of robot control programs. The robot joint condition parameter, such as state metric, may be used as a ground truth for the training of anartificial intelligence model employed by the method of evaluating a robot control program according to the present disclosure.

[0086] According to an embodiment, said automatically inputting of said one or moreoperating instructions comprises extracting one or more features from said one ormore operating instructions, and wherein said one or more features are used as input in said trained artificial intelligence model.

[0087] The operating instructions may be facilitated in numerous ways using various robot programming languages, from low-level robot programming languages to high- level robot programming languages, whereas the trained artificial intelligence model may be trained on, and may take as input, data having a specific data format. Accordingly, it may be advantageous to perform extraction of features from the one or more operating instructions and using the extracted features as input to the trained artificial intelligence model. In the context of the present disclosure, such feature extraction may be referred to as scoping, where literals are extracted based on the area where the particular function or variable is visible in the code. Not only may the feature extraction perform necessary formatting conversions between data present (orencoded) in the operating instructions, but the feature extraction (or scoping) mayalso include calculation of kinematic features. As an example, the operating instructions may comprise a move function which is a function instructing a robot arm to move from one set of coordinates to another set of coordinates at any given speed or acceleration.

[0088] Calculations may be performed to obtain kinematic information with positional input configurations, such as joint rotations in radians, and parameters like payload,velocity and acceleration. Such calculations may for example be made using the movefunction as input. The kinematic information obtained may for example be the robotarm configuration at the start and end of its task. Below is shown table (Table 1) featuring a non-exhaustive list of features which may be extracted from operating instructions (either by direct extraction or by calculation), and examples of methods used for extracting the features:Feature Unit Notation MethodJoint index ^^^^^ ^^ indexingMain joint ^^^^^ ^^ max^^(^,^)^ ∀ ^ ∈ ^Velocity argument ^^^^ / ^ ^^̇^ ^^^ ^^[^̇^ ]^^^^^^^ Acceleration argument ^^^^ / ^^ ^^̈^ ^^^ ^^[ ]^̈^^^^^^^^ Joint position (start) ^^^^ ^^ ^[^]Joint position (end) ^^^s ^^ ^[^^]Joint distance ^^^^ ^(^,^) |^^ − ^^|TCP (Tool Centre Point) travel^ ^^^^^^distance^^^^^ ^[^^^^][^] − ^^[^^^][^]^^^^ TCP (Tool Centre Point)^ ^^^^^^distance to base, start^^^^^ ^[^^^^][^] − ^^[^^^][^]^^^^ TCP (Tool Centre Point)^ ^^^^^^distance to base, end^^^^ − ^ ^^ ^[^^^^][^] ^[^^^][^]^^^ Table 1: A non-exhaustive list of features extractable from an operating instruction. Please note that features which are joint specific, such as joint start position, joint end position, joint distance, etc., are features in respect of individual joints. Accordingly,each joint specific row in the table corresponds to a joint index ^^ where ^ ∈ [0, … ,5].

[0089] The features may apply to individual robot joints of the robot arm.

[0090] It should be noted, with respect to the above list, that T denotes the 3 by 1submatrix of the Denavit Hartenberg coordinate transform, signifying the relativeposition of the joint, such that ^^ = 3, and that TCP is an abbreviation of Tool CenterPoint. It should also be noted that the above list is only exemplary and represents features for a robot arm comprising six robot joints.

[0091] According to an embodiment, said one or more features are selected from the list of velocity, acceleration, start position of one or more robot joints, end position ofone or more robot joints, tool center point travel distance, tool center point distance torobot base at start of trajectory, tool center point distance to robot base at end of trajectory.

[0092] The above listed features, i.e., joint index, main joint, velocity argument, acceleration argument, start position of joint, end position of joint, joint distance, TCP travel distance, TCP distance to base at start, and TCP distance to base at end may be used as input to the trained artificial intelligence model (both for the purpose of training of the model and for the purpose of deploying the model). It should be understood that any combination of the above features, comprising any number of features, may be used as input to the trained artificial intelligence model (including for the purpose of training said model).

[0093] According to an embodiment, said method comprises providing said one or more operating instructions to a path planning module, said path planning module being arranged to output one or more target state variables based on said one or more operating instructions, and providing said one or more target state variables as input to said trained artificial intelligence model.

[0094] The input provided to the artificial intelligence model may not only be features extracted from operating instructions, as the input may also encompass data which is generated by simulating the behaviour of a robot arm executing the operating instructions. Furthermore, other types of state data which has relevance to health may additionally be included, such as GPU and CPU frequencies, memory usages, clock cycles (or other computational resources), air pollution, or CO2-measurements. The data may be generated using a path planning module. In the context of the present disclosure, a “path planning module” may be understood a software implemented module capable of interpreting operating instructions, such as script lines of a robot control program, and capable of translating the operating instructions into target state variables for the control of a robot arm. For example, an operating instruction may represent a motion by joint movement (MoveJ), a motion of a tool center point in a linear path (MoveL) or in a circular path (MoveC), or a motion of a tool center point inlinear motion at constant speed with circular blends (MoveP). An example of a jointmovement is given by the MoveTo function in the above. In order to carry out such movements using a robot arm, a path planning module (also referred to herein as path planner) may translate the instructions into currents provided to one or morerobot joints of a robot arm (or likewise into torques to be provided by one or more robot joints of a robot arm). In this example, the currents or torques may be regarded as target state variables.

[0095] A more comprehensive list of target state variables which may be output by thepath planning module includes at least the following values: window size (or sample size; indicative of the amount of data points used), directional changes (the number of directional changes made by a robot joint), current, torque, momentum, rate of change of momentum, velocity, acceleration, trajectory distances, payload mass, trajectory shape, execution time(s), Tool Center Points (TCP) at the start and end, distances between joints and base, or series data (series of datapoints comprising e.g., current, torque, momentum, velocity, accelerations and trajectory distances). Below isshown a list of various target state variables along with methods of calculating thesetarget state variables. Target state variable Unit Notation MethodWindow size ^^^^^ ^ ^^^^^ℎ()Directional changes ^^^^^ ^^^^ countCurrent ^ ^ ^^^{|^|}Torque ^ ∗ ^ ^ ^^^^ ^^ ∗ ^^ ∗ ^^^ ^^^^Momentum ^^ ∗ ^ / ^ ^ ^^^^ ^^^^^ ^^^^Momentum ROC ∆ ^^^ ∗^Δ^ max^^^[^^^] − ^[^]^^^^Velocity ^^^^ / ^ ^̇ max{^^̇^^^^^}Acceleration ^^^^ / ^^ ^̈ max{^^̈^^^^^}Table 2: A non-exhaustive list of target state variables extractable from operating instructions and output of a path planning module. Please note that features which are joint specific, such as current, torque, acceleration, etc., are features in respect ofindividual joints. Accordingly, each joint specific row in the table corresponds to a jointindex ^^ where ^ ∈ [0, … ,5].

[0096] The target state variables may apply to individual robot joints of the robot arm.

[0097] Using target state variables as additional input to the AI model is particularly advantageous in that it may result in more precise determination of robot joint condition parameters, provided that the AI model used is complex enough to properly comprehend the additional input. The use of target state variables as input for the artificial intelligence model (and for training thereof) is advantageous in that artificial intelligence model may better reflect the kinematics and dynamics of the robot arm and thereby better understand the links between input and robot joint condition parameter(s). As will be described in further details in the detailed description, the inventors have realized that numerous AI models exist which are capable of using target state variables as additional input (in addition to operating instructions) while having performance metrics that render the models usable for the purpose of the present method. In particular, the inventors have realized that use of target state variables as input have proven particular useful in combination with a stacked corrective feedforward MLP machine learning model.

[0098] Accordingly, both the one or more operating instructions and one or more target state variables may be provided as input to the trained artificial intelligence model. Throughout the present disclosure, a trained artificial intelligence model which takes both operating instructions and target state variables as input is referred to as a target data model, whereas a trained artificial intelligence model taking only operating instructions (or features) as input is referred to as an input data model.

[0099] According to an embodiment, said one or more target state variables are selected from the list of current, torque, momentum, rate of change of momentum, velocity, acceleration, trajectory distance, payload mass, trajectory shape, execution time, tool center point coordinates, or distance between robot joint and robot base.

[0100] The one or more target state variables may be selected from the list ofcurrent, torque, momentum, rate of change of momentum, velocity, acceleration, trajectory, distance, payload mass, trajectory shape, execution time (or execution times), tool center point coordinates (coordinated of tool center point at start and end of trajectory), or distance between robot joint and robot base. It should be understood that any combination of the above target state variables may be selected from this list, including any number of target state variables.

[0101] According to an embodiment, said method comprises providing aplurality of target state variables as input to said trained artificial intelligence model. Aplurality of target state variables may be provided as input to the trained artificial intelligence model, such as at least two target state variables, such as at least four target state variables, such as at least ten target state variables, for example at least twenty target state variables. Increasing the number of target state variables provided to the artificial intelligence model, and thereby adapting the artificial intelligencemodel to include an increasing amount of input, may be advantageous in that higherdegrees of accuracy of the trained artificial intelligence model may be achieved.

[0102] According to an embodiment, said one or more target state variablescomprises current. According to an embodiment, said one or more target statevariables comprises torque and / or momentum.

[0103] The one or more target state variables may advantageously compriseany of current, torque, or momentum, or any combination thereof. Use of such target state variables is particularly advantageous in that these variables may have a high degree of correlation with the robot joint condition parameter.

[0104] According to an embodiment, said trained artificial intelligence modelcomprises an embedding layer, said embedding layer being arranged to embed input to said trained artificial intelligence model into functions.

[0105] The trained artificial intelligence model may comprise an embeddinglayer being arranged to embed input to said trained artificial intelligence model into functions. The input may comprise any features extracted from operating instructions and target state variables generated by a path planning module. The embedding layer may be responsible for carrying out computations for each feature or variable using an approximation function, such as a predefined approximation function. The approximation function reflects on the correlation between variables or features and robot joint condition parameters. During training of the trained artificial intelligence model, the nature of the approximation function(s) may be retained, however the constants associated with the approximation function(s) may be re-calibrated. For example, torque (see table 2) may be expressed with an exponential function. Accordingly, during training of the artificial intelligence model, the training data may be curve-fitted with outset in an exponential form. Such a semi-learnable embedding layer may therefore continuously improve its coherence with the data foundation. The embedding layer may be implemented such that it may automatically determine the type, or nature, of approximation functions. Accordingly, the approximation functions shown in the tables of the present disclosure, are merely exemplary, and other approximation functions may also be used depending on e.g., the training data used for training the artificial intelligence model.

[0106] According to an embodiment, said trained artificial intelligencecomprises an attention layer. The trained artificial intelligence model may comprise an attention layer being arranged to ascertain the relative significance of each of each input feature or target state variable. The attention layer may be arranged in such a way that features / target state variables that closely align with a robot joint conditionparameter, e.g., joint stress ^ , are assigned lower weights, while those that alignmore poorly are given higher weights. This approach emphasizes features / target state variables with higher variance, thereby enhancing the model’s ability to discern patterns in the data. The relative significance, or attention score, may be determined based on the approximation functions coherence with increasing alpha values.

[0107] Below is presented a non-exhaustive list of embedding functions andweights for various features and target state variables (referred to simply as features)according to an example. The below functions are of the type Pass-Through functionsmeaning that they pass on the input as the output. Feature Embedding functionAttention ^^^^^ ^^^^^^^^(^)^^ ^^(^)^^^^ ^ ^^^^^^^ (^) = ^ ^^^^^^^^^^^ ^ ^^^^^^^ (^) = ^ ^^^^^^^^^^^ ^ ^^^^^^^ (^) = ^ ^^^^^^^^ ^[^]^ (^) = ^ 0.5027Table 3: List of “pass-through” embedding functions and their associated weights (attention). Please note that

[0108] Below is presented another non-exhaustive list of embedding functionsand weights for various features according to an example. The below functions are linear functions.Feature Embedding functionAttention ^^^^^ ^^^^^^^^(^)^^^^(^) ^^ ^[^^]^ (^) = (^ + 1) / ^^ ^^^^^^^^^ ^[^^]^ (^) = (^ + 1) / ^^ ^^^^^^^^^^[^^]^ (^) = ^ + 6.323846 0.4949^^ ^[^^]^ (^) = ^ + 6.323846 0.4949Table 4: List of linear embedding functions and their associated weights (attention).

[0109] In table 3 and 4 are stated default values. The default values areadvantageously chosen as 0.5 which results in higher weights being assigned to the robot’s configuration parameters.

[0110] Below is presented another non-exhaustive list of embedding functionsand weights for various features and target state variables (referred to simply as features) according to an example. The below functions are exponential functions.Feature Embedding functionAttention ^^^^^ ^^^^^^^^(^)^^^^(^) ^^^^ ^[^^^^]^ (^) = 0.000186 ∗ ^^∗^^.^^^^^ 0.4931^ ^[^]^ (^) = 0.0144406 ∗ ^^∗^.^^^^^^ 0.2727^ ^[^] ^∗^.^^^^^^^ (^) = 0.007659 ∗ ^ 0.4663^ ^[^] ^∗^.^^^^^ (^) = 0.017037 ∗ ^ ^^ 0.2626^(^,^)^ ^^(^,^)^(^) = 0 ^∗^.^^^^^^ 0.4545^ .006781 ∗ ^^^̇^ ^[^̇^^] ^∗^.^^^^^^^ (^) = 0.007607 ∗ ^ 0.4162Table 5: List of exponential embedding functions and their associated weights (attention).

[0111] Below is presented another non-exhaustive list of embedding functionsand associated weights for a target state variable (referred to simply as feature) according to an example. The below function is a polynomial function. Feature Embedding functionAttention ^^^^^ ^^^^^^^^(^)^^ ^^(^)Δ^ ^[^^] ^ ^^ (^) = 8.705322 ∗ ^ + 5.078426 ∗ ^0.4545 +2.088403 ∗ ^ + 8.03^^^Table 6: Exponential embedding function and associated weight (attention).

[0112] Below is presented yet another non-exhaustive list of embeddingfunctions and weights for various features and target state variables (referred to simply as features) according to an example. The below functions are Weibull distribution functions.Feature Embedding functionAttention ^^^^^ ^^^^^^^^(^)^^^^(^) ^̇ ^[^̇] ^^ / ^.^^^^^^^.^^^^^^^(^) = 1 − ^0.1239 ^̈ ^^^̈̇^^^ / ^.^^.^^^^^^^(^) = 1 − ^ ^^^^^0.6996 ^^̈^^ ^^̈^^̇^^ (^) = 1 − ^^^ / ^.^^^^^^^.^^^^^^0.6467 Table 7: Weibull distribution embedding functions and their associated weights (attention).

[0113] It should be noted that the embedding functions and scalar valuesthroughout tables 3-7 are merely exemplary and are established by approximating dependencies between features and alpha values and by calculation of Fréchet distances. However other functions may be obtained by performing other approximations, by using other data sets for establishing dependencies, or by use of other functions to establish weights such as cosine similarity functions. It should also be noted that the functions shown in tables 3-7 are normalized and clamped, meaning that they convert feature values to a scale between 0 and 1.

[0114] According to an embodiment, said trained artificial intelligence modelcomprises a machine learning model. Examples of suitable machine learning modelsmay include stochastic gradient descent (SGD), logistic regression, decision trees such as eXtreme Gradient Boosting (XGBoost), RandomForests, and Extremely RandomizedTrees, feedforward neural networks such as feedforward MPL (multilayer perceptron)and stacked corrective feedforward MLP, and Support Vector Machines (SVMs), and models utilizing adaptive boosting (AdaBoost).

[0115] According to an embodiment, said trained artificial intelligence modelcomprises a deep learning model. The trained artificial intelligence model may be adeep learning model. By a deep learning model is understood a model including multi- layered neural networks to simulate the complex decision-making power of the human brain. Examples of suitable deep learning models may include feedforward models such as feedforward Multi Layered Perceptron models, variational auto encoders (VAE), long short term memory models (LSTM), convolutional neural networks (CNN), and recurrent neural networks (RNN). According to an embodiment, said deep learning model comprises a feedforward multi-layered perceptron model.

[0116] In the context of the present disclosure, a “feedforward multi-layeredperceptron model" may be understood as a model comprising a series of Multi-Layer perceptrons (MLP), such as at least two MLPs, for example three MPLs. An example of a feedforward multi-layered perceptron model is denoted “stacked corrective feedforward multilayer perceptron (MLP) model” throughout the present disclosure. In such a model, a first MLP maps features onto a vector that encapsulates output classes, and a second MLP maps said vector and said features onto a new vector that encapsulates the output classes. Such a design choice results in a stacked architecture, where the second MLP leverages the output of the first model in conjunction with processed input features. Such a synergy enhances the quality of predictions made by the model. According to an embodiment, said deep learning model is a stacked corrective feedforward multilayer perceptron (MLP) model comprising three MLPs, where the third and final MLP maps the output of the first and second MLPs to a final vector encapsulating the classes. Using such a third MLP imparts a correctivebehaviour to the architecture, where the final model may be trained to discern whichof the first two MLPs to trust or when to completely modify a prediction, particularly in instances where both of the initial MLPs are incorrect. Thus, using a third MLP enhances the robustness and accuracy of the overall model.

[0117] It should be noted, that according to embodiments of the invention, thetrained artificial intelligence model may comprise a mixture of different machine learning models, such as a mixture of any of the above-mentioned machine learning models, deep learning models. For example, according to a preferred embodiment, the trained artificial intelligence model comprises a combination of one or more MLP’s and an XGBoost model.XGBoost and MLP have distinct underlying structures and learning mechanisms.XGBoost, a gradient-boosting model, constructs decision trees, while MLP is a neural network. This diversity may result in a more robust model capable of capturing various data aspects. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 illustrates a robot system according to an embodiment of the invention;fig. 2 illustrates a schematic cross-sectional view of a robot joint which can beimplemented in robot systems according to various embodiments of the present invention;fig. 3 illustrates a structural diagram of a robot arm which can be implemented inrobot systems according to various embodiments of the present invention;fig. 4 illustrates a sequence of discrepancies obtained by monitoring a state variable according to embodiments of the present invention, fig. 5 illustrates a derivation of a state metric according to embodiments of the present invention, fig. 6 illustrates distributions of state metric values for specific program cycle counts useful for understanding the present invention, fig. 7 illustrates a way of determining a remaining use life of a robot joint according to embodiments of the invention, fig. 8 illustrates steps of a method according to an embodiment of the invention, fig. 9 illustrates use of other type of state metrics according to other embodiments of the invention, fig. 10 illustrates a screenshot of a display showing two iterations of a robot control program with respective robot joint condition parameters according to an embodiment of the invention, figs. 11-12 illustrate a programming environment of a robot control program development software according to an embodiment of the invention, fig. 13 illustrates an input data model according to an embodiment of the invention,fig. 14 illustrates a target data model according to an embodiment of the invention,figs. 15a-b illustrates a stacked corrective feedforward model employed in embodiments of the present invention, fig. 16 illustrates a stacked corrective feedforward model employed in embodiments of the invention, figs. 17a-d illustrate correlations of input features with robot joint condition parameters, which correlations are utilized in embodiments of the present invention, fig. 18 represents a dataset underlying the feature approximations seen in figs. 17a-d, figs. 19a-h illustrate the performance of trained artificial intelligence models used in various embodiments of the invention, and fig. 20 illustrates steps of a computer-implemented method of evaluating a robot control program according to an embodiment of the invention.DETAILED DESCRIPTION OF THE INVENTION

[0118] The present invention is described in view of exemplary embodimentsonly intended to illustrate the principles of the present invention. The skilled person will be able to provide several embodiments within the scope of the claims.

[0119] The invention can be embodied into a robot arm and is described inview of the robot arm illustrated in fig. 1. The robot arm 101 comprises a plurality of robot joints 103a, 103b, 103c, 103d, 103e, 103f and robot links 104b, 104c, 104d connecting a robot base 105 and a robot tool flange 107. A base joint 103a is connected directly with a shoulder joint and is configured to rotate the robot arm around a base axis 111a (illustrated by a dashed dotted line) as illustrated by rotationarrow 113a. The shoulder joint 103b is connected to an elbow joint 103c via a robotlink 104b and is configured to rotate the robot arm around a shoulder axis 111b (illustrated as a cross indicating the axis) as illustrated by rotation arrow 113b. The elbow joint 103c connected to a first wrist joint 103d via a robot link 104c and is configured to rotate the robot arm around an elbow axis 111c (illustrated as a cross indicating the axis) as illustrated by rotation arrow 113c. The first wrist joint 103d connected to a second wrist joint 103e via a robot link 104d and is configured to rotate the robot arm around a first wrist axis 111d (illustrated as a cross indicating the axis) as illustrated by rotation arrow 113d. The second wrist joint 103e is connected to a robot tool joint 103f and is configured to rotate the robot arm around a second wrist axis 111e (illustrated by a dashed dotted line) as illustrate by rotation arrow 113e. The robot tool joint 103f comprising the robot tool flange 107, which is rotatable around a tool axis 111f (illustrated by a dashed dotted line) as illustrated by rotation arrow 113f. The illustrated robot arm is thus a six-axis robot arm with six degrees of freedom, however it is noticed that the present invention can be provided in robotarms comprising less or more robot joints, and the robot joints can be connecteddirectly to the neighbor robot joint or via a robot link. It is to be understood that the robot joints can be identical and / or different and that the robot joint gear may be omitted in some of the robot joints.

[0120] Fig. 1 illustrates a direction of gravity 123, which in the situationdepicted in the figure is in a downwards direction with respect to the robot arm. However, it should be noted that the direction of gravity, with respect to the robot arm, may change depending on the orientation of the robot arm, and obviously, the direction of gravity in respect of individual robot links and robot joints may change depending on the orientation and posture of the robot arm.

[0121] Fig. 1 also illustrates that the robot base 105 is associated with a basereference point 114 (indicated by coordinates xbase, ybase, zbase). The coordinates of thebase reference point 114 are given with respect to a reference coordinate system 116,which in the present embodiment is a cartesian coordinate system having three axis:an x-axis (denoted xrefin the fig. 1), a y-axis (denoted yrefin the fig. 1), and a z-axis (denoted zref in the fig. 1). In the present embodiment, the reference coordinate system 116 is a coordinate system having as origin the center of mass of the earth. The use of the base reference point, and its relation to a reference coordinate system will become more clear when the present invention is described in relation to fig. 3.

[0122] The robot arm comprises at least one robot controller 115 configured tocontrol the robot joints by controlling the motor torque provided to the joint motors based on a dynamic model of the robot. The robot controller 115 can be provided as a computer comprising an interface device 117 enabling a user to control and program the robot arm. The controller can be provided as an external device as illustrated in fig. 1 or as a device integrated into the robot arm. The interface device can for instance be provided as a teach pendent as known from the field of industrial robots which can communicate with the controller via wired or wireless communication protocols. The interface device can for instance comprise a display 119 and a number of input devices 121 such as buttons, sliders, touchpads, joysticks, track balls, gesture recognition devices, keyboards etc. The display may be provided as a touch screen acting both as display and input device.

[0123] Fig. 2 illustrates a schematic cross-sectional view of a robot joint 203.The schematic robot joint 203 can reflect any of the robot joints 103a-103f of therobot arm 101 of fig. 1. The robot joint 203 comprises a joint motor 209 having amotor axle 225. The motor axle 225 is configured to rotate an output axle 227 via a robot joint gear 229. The output axle 227 rotates around an axis of rotation 211 (illustrated by a dot-dash line) and can be connected to a neighbor part (not shown) of the robot. Consequently, the neighbor part of the robot can rotate in relation to the robot joint 203 around the axis of rotation 211 as illustrated by rotation arrow 213. In the illustrated embodiment the robot joint comprises an output flange 231 connected to the output axle and the output flange can be connected to a neighbor robot joint oran arm section of the robot arm. However, the output axle can be directly connectedto the neighbor part of the robot or by any other way enabling rotation of the neighbor part of the robot by the output axle.

[0124] The joint motor is configured to rotate the motor axle by applying amotor torque to the motor axle as known in the art of motor control, for instance based on a motor control signal 233 indicating the torque, τcontrol, motor, applied by said motor axle.

[0125] The robot joint gear 229 forms a transmission system configured totransmit the torque provided by the motor axle to the output axle for instance to provide a gear ratio between the motor axle and the output axle. The robot joint gear can for instance be provided as spur gears, planetary gears, bevel gears, worm gears,strain wave gears or other kind of transmission systems.The robot joint comprises at least one joint sensor providing a sensor signal indicative of at least the angular position, q, of the output axle and an angular position, Θ, of themotor axle. For instance, the angular position of the output axle can be indicated byan output encoder 235, which provide an output encoder signal 236 indicating the angular position of the output axle in relation to the robot joint. Similarly, the angular position of the motor axle can be provided by an input encoder 237 providing an input encoder signal 238 indicating the angular position of the motor axle in relation to the robot joint. The output encoder 235 and the input encoder 237 can be any encoder capable of indicating the angular position, velocity and / or acceleration of respectively the output axle and the motor axle. The output / input encoders can for instance be configured to obtain the position of the respective axle based on the position of anencoder wheel 239 arranged on the respective axle. The encoder wheels can forinstance be optical or magnetic encoder wheels as known in the art of rotary encoders. The output encoder indicating the angular position of the output axle and the input encoder indicating the angular position of the motor axle makes it possible to determine a relationship between the input side (motor axle) and the output side (output axle) of the robot joint gear.

[0126] The robot joints may optionally comprise one or more motor torquesensors 241 providing a motor torque signal 242 indicating the torque provided by the motor axle. For instance, the motor torque sensor can be provided as current sensors obtaining the current through the coils of the joint motor whereby the motor torque can be determined as known in the art of motor control. For instance, in connection with a multiphase motor, a plurality of current sensors can be provided in order to obtain the current through each of the phases of the multiphase motor and the motor torque can then be obtained based on the quadrature current obtained from the phase currents through a Park Transformation. Alternatively, the motor torque can be obtained using other kind of sensors for instance force-torque sensors, strain gauges etc.

[0127] Fig. 3 illustrates a simplified structural diagram of a robot armcomprising a plurality of n number of robot joints 303i, 303i+1….303n. The robot arm can for instance be embodied like the robot arm illustrated in fig. 1 with a plurality of interconnected robot joints, where the robot joints can be embodied like the robotjoint illustrated in fig. 2. It is to be understood that some of the robot joints and robot links between the robot joints have been omitted for sake of simplicity. The controller is connected to an interface device comprising a display 119 and a number of input devices 121, as described in connection with fig.1. The controller 315 comprises a processor 343, a memory 345 and at least one input and / or output port enabling communication with at least one peripheral device.

[0128] The controller is configured to control the joint motors of the robotjoints by providing motor control signals to the joint motors. The motor control signals 333i, 333i+1….333n are indicative of the motor torqueτcontrol,motor,i,τcontrol,motor,i+1, and τcontrol,motor,n, that each joint motor shall provide by the motor axles. The motor control signals can indicate the desired motor torque, the desired torque provided by the output axle, the currents provided by the motor coils or any other signal from which the motor torque can be obtained. The motor torque signals can be sent to a motor control driver (not shown) configured to drive the motor joint with the motor current resulting in the desired motor torque. The robot controller is configured to determine the motor torque based on a dynamic model of the robot arm as known in the prior art. The dynamic model makes it possible for the controller to calculate which torque the joint motors shall provide to each of the joint motors to make the robot arm perform a desired movement and / or be arranged in a static posture. The dynamic model of the robot arm can be stored in the memory 345. As described in connection with fig. 2 the robot joints comprise an output encoder providing output encoder signals 336i, 336i+1…336n indicating the angular position q,i,q,i+1…q,nof the output axle in relation to the respective robot joint; an input encoder providing an input encoder signal 338i, 338i+1…338n indicating the angular position of the motor axle Θ,i, Θ,i+1…Θ,n in relation to the respective robot joint and a motor torque sensor providing a motor torque signal 342i,342i+1…342n indicating the torque τactually,motor,i, τactually,motor,i+1...τactually,motor,n, provided by the motor axle of the respectiverobot joint. The controller is configured to receive the output encoder signal 336i,336i+1…336n, the input encoder signal 338i, 338i+1…338n and the motor torque signals 342i,342i+1…342n.

[0129] Fig. 4 illustrates data relating to control of a single robot joint of a robotarm. The single robot joint may be a robot joint as described in relation to fig. 2. The data is used for the purpose of determining a robot joint condition parameter, in particular a remaining use life of a robot joint, according to an embodiment of the invention.

[0130] The data illustrated by the graph in fig. 4 represents movement of arobot joint of a robot arm in a program cycle of a robot control program. The robotcontrol program may be executed by the robot controller 115, 315. The program cycleis represented by a number of sampling points (denoted with letter “i" in the figure),and each sampling point contains a point of measurement. Thus, when the robot control program is executed, the robot joint in question is moving according to instructions provided by the robot controller. In the present embodiment, the robot controller sets a target value for the current provided to the joint motor of the robot joint. This target value is referred to as a target state variable 402. The graph in fig. 4also shows the actual value of the current provided to the joint motor which ismeasured for every sampling point. This measured current is referred to as a measured state variable 401. As seen in the graph of fig. 4, The measured state variable 401 and the target state variable 402 follows substantially the same trajectory throughout the program cycle, however there are some discrepancies between the two for most of the sampling points. Due to disparities between the real- world physical state of the robot joint and the mathematical model of the robot joint as employed by the robot control program, discrepancies commonly emerge between the measured state variable 401 and the target state variable 402. Upon sudden incrementation of the robot joint’s rotational speed and direction, the actual current fluctuates. Such a fluctuation is clearly represented in fig. 4 by the joint oscillations 404, where at around sampling point i=60, there is a great discrepancy 403 (or overshoot) between the measured state variable 401 and the target state variable 402.This discrepancy 403 may also be referred to as epsilon according to the presentdisclosure. In the present example, the state variable, i.e., current, has beenmonitored sequentially, i.e., at a number of sampling points, and compared with the target state variable to reveal a sequence of discrepancies between the monitored state variable 401 and the target state variable 402. The sequence of discrepanciesthus contains a discrepancy, i.e., a value of epsilon, for every sampling point. Havingestablished the sequence of discrepancies between the monitored state variable 401 and the target state variable 402, it is possible to derive a state metric indicative of an amount of wear of the robot joint.

[0131] In fig. 5 is shown a graph of a plurality of sub-state metrics 405 – onesub-state metric 405 for each sampling point (represented by the letter “I” on thehorizontal axis in the graph). Each sub-state metric 405 of the plurality of sub-state metrics 405 is calculated using equations 1 to 4 of the present disclosure. For the purpose of intelligibility, the sub-state metrics (also referred to as “alphas”) are normalized in fig. 5. As seen slightly after the i=60 sampling point, there is a sudden spike in the sub-state metrics 405, with the greatest value coinciding in samplingnumber with the greatest discrepancy 403, or overshoot, in fig. 4. The sub-statemetric 405 having the greatest value in fig. 5 is referred to simply as the state metric406 in the present example, however a state metric 406 may be derived in numerousways. The state metric 406 thus represents a selected sub-state metric among theplurality of sub-state metrics. The state metric 406 may be selected among theplurality of sub-state metrics 405 in numerous ways. The state metric 406 may represent the infimum value of the sub-state metrics 405, i.e., the greatest value accounting for erroneous outliers. The state metric 406 may be selected using a maximum searching algorithm, or alternatively, the state metric 406 may be derived based on the sequence of discrepancies using a trained neural network, trained on other data of sequences of discrepancies.

[0132] The state metric 406 serves as a snapshot of the state of health of therobot joint, however, as will be clear from the following, deriving the state metric over a large number of program cycles may be useful for the purpose of determining a remaining use life of the robot joint.

[0133] The above methodology of extracting a state metric 406 from a programcycle may naturally be done for a plurality of program cycles, and this is utilized in the following.

[0134] Attributing health related significance to alpha may involveestablishment of a reference point / baseline. This may be achieved through acquisitionof empirical data derived from a series of accelerated life tests conducted on various robot joints of different robot arms. The empirical data may be obtained by execution of a robot test program. Parallel to the execution of the robot test program, measured state variables are collected. In the present example of fig. 6, the measured state variable is current, and the state variables are collected at 0 program cycles, at 200,000 (200k) program cycles, at 401,000 (401k) program cycles, at 11,200,000 (11200k) program cycles, and at 15,000,000 (15000k) program cycles. For every sequence of measurements of the state variable, a sequence of discrepancies is obtained between the measured state variable and the associated target state variable (also current in this example), ands for every sequence, a state metric 406 is derived. This procedure is performed for a number of program cycles around the above-listed program cycle numbers, so that a distribution of alpha values is obtained (see fig. 6).

[0135] Fig. 6 shows a graph over distributions of alpha values. The distributionsof alpha values are at 0 program cycles, at 200,000 (200k) program cycles, at 401,000 (401k) program cycles, at 11,200,000 (11200k) program cycles, and at 15,000,000 (15000k) program cycles. The results indicate a rising trend, according to continuous use over time, thereby suggesting progressive joint deterioration attributed to an increase in the discrepancy between the physical state of the robotjoint and the model in the robot controller. Notably, the nature of alpha implies that the infimum may be impeded by velocity, load, and environmental factors, enabling influence, i.e., the potential to simulate a healthy robot joint by employing slow and cautious rotations, thus avoiding the generation of significant oscillations.

[0136] Thus, from the above has been shown a methodology of deriving a statemetric (alpha), and from fig. 6, it can be seen that the value of alpha increases withan increasing number of program cycles. Thus, the alpha value may be used as a snapshot of robot joints health condition, and thus the alpha value may directly serve as a parameter relating to the robot joint condition (or robot joint condition parameter).

[0137] Other robot joint condition parameters may be determined according toembodiments of the present invention. An example of a robot joint condition parameter is remaining use life, which is a parameter indicating at which robot program cycle a robot joint is expected to malfunction. Fig. 7 shows a way of calculating a remaining use life of a robot joint according to an embodiment of the invention.

[0138] Fig. 7 shows a graph illustrating alpha values as a function of thenumber of program cycles (delta) in units of millions of program cycles. As seen in thefigure, the distribution of alpha values of fig. 6 have been incorporated into the graph.The distribution of alpha values has been fitted to an exponential function 701 (seeexponential function according to equations 5 and 6 of the present disclosure). Thefitted exponential function 701 indicating the temporal evolution of the state metric406 – temporal evolution with respect to an increasing number of program cycles.Using equation 7 of the present disclosure, a critical value 702 is extrapolated. The critical value in the present example is calculated using equation 7 of the present disclosure to be 139.02, meaning that the robot joint in question is expected to be malfunctioning when its associated alpha value (or state metric) reaches that value. In the present example, the fitted exponential function 701, representing the baseline of the robot joint, intersects the critical value 702 at intersection 703. Intersection 703 is established to be at a delta value of 17.293, meaning that the end of life of the robot joint is projected to be at 17.293 million program cycles.

[0139] It should be noted that, figures. 6 and 7 are merely exemplary, and thatthe data represented by the figures are subject to change. For example, the distributions of fig. 6 may be obtained at other program cycles, the robot control program being executed by the robot controller 115, 315 may differ with some robot control programs being more strenuous on the robot joints 103a-103f of the robot arm101, and of course robot arms 101 may be different. Thus, for any robot arm 101performing a particular robot control program (including a program cycle), thebaseline model (fitted exponential function 701) and the critical value 702 may be different, and the above methodology of determining a state metric and e.g., aremaining use life, may be performed in respect of any kind of robot arm 101employing a plurality of robot joints 103a-103f.

[0140] Fig. 8 illustrates steps S1-S5 of a method of determining a robot jointcondition parameter of a robot joint according to an embodiment of the invention.

[0141] In a first step S1, a robot arm 101 is provided. The robot arm providedmay be the robot arm 101 described in relation to fig. 1. The robot arm comprises a plurality of robot joints 103a-103f, and each robot joint comprises its own joint motor and joint gear. An example of a joint gear, or robot joint gear 229, is seen in fig. 2, along with a joint motor, or robot joint motor 209. The robot joint motor 209 is arranged to drive the robot joint gear 229.

[0142] In a second step S2, the robot arm 101 is operated according to a robotcontrol program executed by a robot controller. The robot control program may be executed by the robot controller 115, 315 described in relation to figs. 1 and 3. When the robot controller executed the robot control program the robot arm 101 is moving according to instructions of the robot control program. These movements are facilitated by the robot joints 103a-103f actuating, i.e., rotating. At least one of the robot joints 103a-103f are actuating during execution of the robot control program, however other robot joints may also be actuated, for example all the robot joints 103a-103f.

[0143] In a third step S3, a state variable relating to actuation of the at leastone robot joint is monitored. This state variable, when monitored, is referred to as ameasured state variable 401. The measured state variable is compared to an associated target state variable 402 of the robot control program to determine a sequence of discrepancies 403 between the measured state variable 401 and the target state variable 402. Fig. 4 is an example of a sequence of such discrepancies.

[0144] In a fourth step S4, a state metric 406 is derived on the basis of thesequence of discrepancies obtained in the third step S3. The state metric may beindicative of an amount of wear of the at least one robot joint 103a-103f. The statemetric 406 may be derived like the state metric 406 described in relation to fig. 5, however other ways of deriving the state metric 406 are also conceivable within the scope of the claims, including use of a machine learning model.

[0145] In a fifth step S5, a robot joint condition parameter of the at least onerobot joint is determined. The robot joint condition parameter may be the state metric 406 itself (also referred to as the “alpha value”), however, the robot joint conditionparameter may also be a remaining use life, for example as described in relation to figs. 6 and 7 above.

[0146] Although the method above is only described as determining a robotjoint condition parameter of one robot joint 103a-103f, it should be understood that the method may also involve determination of a plurality of robot joint condition parameters, such as a robot joint condition parameter for each robot joint 103a-103f of the plurality of robot joints 103a-103f of the robot arm.

[0147] The above steps S1-S5 of the method may be implemented asinstructions of a computer program product, which when executed by the robot controller 115, 315 causes the robot controller to carry out the method.

[0148] Figs. 9a-9d illustrates four different graphs. The graph in fig. 9a isanalogous to fig. 4, i.e., a comparison of monitored state variable and target statevariable, however in the case of the state variable being robot joint position. Thegraph in fig. 9c illustrates yet another monitoring scheme where the state variable istorque. The units on the vertical axis of figs. 9a and 9c are represented unitless, andthe horizontal axis on these figures denotes sample number [i]. The position dataillustrated in fig. 9a could be obtained using output encoders 235 and input encoders237 (see fig. 2), and the torque data illustrated in fig. 9c could be obtained usingmotor torque sensor 241 (see also fig. 2). It should be noted that figures 9a and 9c corresponds to the exact same program cycle for the same robot arm as in the case of fig. 4. As such, they merely resemble alternative monitoring schemes, where instead of monitoring current, joint position and torque is monitored. In both cases, the associated target state variable is also depicted in the respective graphs and based onthe sequence of discrepancies in figs. 9a and 9c respectively, there may bedetermined a plurality of sub-state metrics 405. These are shown as normalized alphavalues in in figures 9b and 9d, with fig. 9b corresponding to fig. 9a, and fig. 9dcorresponding to fig. 9c. As seen from this data when comparing with figures 4 and 5,the same program cycle in respect of a robot joint 103a-103f yields a plurality of sub-state metrics 405, with the greatest value (the state metric 406) corresponding insample number. Accordingly, the other types of state variables, i.e., position or torque, may also be suitable for use in determining a robot joint condition parameteraccording to embodiments of the present invention.

[0149] Fig. 10 illustrates a screenshot 1004 of a program profiling toolspecifically developed to accommodate robot arms. The program profiling tool operates in conjunction with a programming language. Consequently, the program profiling tool processes input based on scripts, facilitating the correlation of runtime data with specific programming lines. The program profiling tool relies on runtime datato record information with which, upon completion of a program cycle, it uses toconduct the computation of insights 1002a-1002c, which in the present exampleincludes a plurality of robot joint condition parameters. The insights provided by the program profiling tool form part of a module named “Program Quality”, as they give insight to the quality of robot control programs. Moreover, the program profiling tool relies on configurable settings. These configurations delineate the application of particular modules or calculations to designated lines, thus affording the capability for selective profiling.

[0150] The program profiling tool may be accessed by a user using an interfacedevice, for example using display 119 as seen in fig. 1. In that sense, the program profiling tool may be accessed as a software module directly within the programming platform used for establishing robot control programs for the robot arm.

[0151] The screenshot 1004 provided in fig. 10 provides a scenario whereoptimization of a robot control program transpires through two distinct iterations. Thefirst iteration (named Polyscope: First Iteration in the figure) is shown in the figure asrobot control program 1001a, and the second iteration (named Polyscope: SecondIteration in the figure) is shown in the figure as robot control program 1001b. In thisprocess, the user of the system (or programmer) executes the first robot control program 1001a, and evaluates the ensuing insights, introduces alterations to the program (thereby obtaining the second robot control program 1001b), and executes the second robot control program 1001b to assess the potential positive impacts of the changes.

[0152] Fig. 10 presents a linear motion function (where rotations of robot jointsare dynamically adjusted in accordance with the desired Tool Center-Point (TCP) coordinates). In the initial iteration (or first robot control program 1001a), the robot control program executes the linear motion with high velocity and acceleration, directed towards a cartesian location positioned closer to the base of the robot arm. In the subsequent iteration (or second robot control program 1001b), the user has incrementally adjusted this location to be farther away from the base, accompanied by a reduction in speed. Consequently, the data (e.g., sensor data) obtained during execution of these iterations are different, and therefore the obtained metrics androbot insights 1002a-1002c will have other results. In the present case ofdecrementing speed and locating a more optimal robot configuration, the lifespan ofthe robot arm is extended, and the robustness is increased, however at the cost of alonger cycle time. In the present example, the cycle time of the first robot control program 1001a is 79.211 seconds, whereas the cycle time of the second robot control program 1001b is 185.26 seconds.

[0153] Fig. 10 presents each individual joint (Base joint, shoulder joint, firstwrist joint, second wrist joint, third wrist joint, and elbow joint) to a quantifies assessment of insights 1002a-1002c including robot joint condition parameters. Thefirst insight 1002a is a robot joint condition parameter relating to robustness (denotedtheta in the figure), the second insight 1002b is a robot joint condition parameterrelating to remaining use life or RUL (denoted delta in the figure), and the third insight 1002c is repeatability. These insights may be described by the following: ^Robustness (theta): an estimate indicating the probability that the robotcontrol program will run without the need for human intervention. -Input: Actual current and target current (ampere).- Output: Probability (percentage).^ Remaining use life (delta): an estimate indicating the number of program lineiterations (denoted as program cycles) left before repair is required. -Input: Actual current and target current (ampere).- Output: Number of cycles remaining.^ Repeatability: an estimate on precision, highlighting the expected ±-bound withwhich the program line will be executed. -Input: Actual position and target position of robot joints (radians).- Output: Robot tool-flange precision, measured in millimeters.

[0154] The robustness may be calculated using equation 8 above, theremaining use life may be calculated in the way presented with respect to fig. 7. The repeatability may be calculated / determined by comparing joint positions to a default position, extracting the last two actual position measurements and target positions (in radians) for each joint and computing the maximal position error through subtraction. Forward kinematics using Denavit-Hartenberg parameters are then applied to derivejoint positions in 3D space up to the tool flange. The distance between this tool flangeposition (the current configuration) and the default position (the zero configuration,where all joints are at 0 radians) indicated the programming line’s precision inmillimeters.

[0155] Also, as seen in fig. 10, the program profiling tool also incorporates aperformance module which presents the user with performance metrics encompassing cycle and execution time (measured in seconds), in conjunction with measurements of the computational resources expanded.

[0156] Additionally, the visualization in fig. 10 highlights the specific segmentof the trajectory where the movement encountered the most adverse state or condition, signified as the trajectory hazard 1003. The trajectory hazard 1003 is a visualization provided by a trajectory hazard module of the program profiling tool. Thetrajectory hazard module builds upon the state metric discussed throughout the present disclosure. This module endeavors to accentuate the most adverse state within a given trajectory of the robot arm. Considering the analysis of a signal emanating from a single programming line governing the TCP (tool center point) movement along a designated trajectory. Through the segmentation of the signal into smaller segments, according to a number of bins (segment), it becomes possible to state metric for each subset and individual robot joint. This capability equips engineers or programmers with a heightened understanding of the distribution of potential failures across trajectory movement. The maximum state metric (alpha) is extracted within each bin thereby identifying the trajectory partition wherein the robot is most prone to failure. The process is repeated for each of the robot joints of the robot arm (Base joint, shoulder joint, first wrist joint, second wrist joint, third wrist joint, and elbow joint). The number of bins can be increased to obtain better accuracy. Table 8 below shows results of such a computation. Base Shoulder Elbow Wrist 1 Wrist 2 Wrist 3Bin 4 0.0092 0.0045 0.0022 0.3742 0.0108 0.0168Bin 3 0.002 0.0039 0.0012 0.1201 0.0086 0.0063Bin 2 0.0017 0.0268 0.0014 0.0831 0.0038 0.0041Bin 1 0.0033 0.0112 0.0035 0.1131 0.0038 0.0088Bin 0 0.0071 0.0023 0.0065 0.0504 0.0078 0.0031Max alpha 0.0092 0.0045 0.0065 0.3742 0.0108 0.0168Table 8: Calculations of state metric (alpha) for six robot joints (Base joint, shoulder joint, elbow joint, first wrist joint Wrist 1, second wrist joint Wrist 2, and third wrist joint Wrist 3) across five bins.

[0157] Table 8 illustrates a table representation resulting from this computation.The table not only emphasizes the trajectory segment with the highest estimated point of failure but also identifies the joint experiencing the most significant amount of stress during execution of the programming line. In summary, the computation indicates the Wrist 1 experiences the highest amount of stress at the end of the programming line (Bin 4). Consequently, the robot application is most susceptible to necessitating human intervention during this phase. This is graphically illustrated inthe screenshot 1004 with a cross in the line of the trajectory hazard 1003, the linerepresenting the trajectory.

[0158] Table 9 below illustrates the insights 1002a-1002c for the first robotcontrol program 1001a, which are also graphically illustrated in fig. 10.Robot joint Robustness (delta) Remaining use life (delta)Elbow 99.8 17.5-18.1Wrist 3 99.8 16.5-17.1Wrist 2 99.8 10.6-11.3Wrist 1 76.4 1.1-1.7Shoulder 95.4 6.1-6.8Base 99.7 15.4-16.0Table 9: Insights (robustness and remaining use life) from execution of first robot control program 1001a. The insights are provided in respect of six robot joints (Basejoint, shoulder joint, elbow joint, first wrist joint Wrist 1, second wrist joint Wrist 2,and third wrist joint Wrist 3). The repeatability is here ±0.03 mm.

[0159] Table 10 below illustrates the insights 1002a-1002c for the first robotcontrol program 1001b, which are also graphically illustrated in fig. 10.Robot joint Robustness (delta) Remaining use life (delta)Elbow 99.9 > 20Wrist 3 99.4 12.8-13.5Wrist 2 99.0 11.3-11.9Wrist 1 95.2 6.7-7.3Shoulder 99.6 14.9-15.6Base 99.9 > 20Table 10: Insights (robustness and remaining use life) from execution of second robot control program 1001b. The insights are provided in respect of six robot joints (Base joint, shoulder joint, elbow joint, first wrist joint Wrist 1, second wrist joint Wrist 2,and third wrist joint Wrist 3). The repeatability is here ±0.01 mm.

[0160] By consulting table 9 and 10 above, it is seen that the adjustment to therobot control program (i.e., the change from the first robot control program 1001a to the second robot control program 1001b) has resulted in a robot control program yielding overall better robustness and remaining use life. This goes to show the potential impact of the method of determining a robot joint condition parameter according to embodiments of the present invention.

[0161] In the preceding disclosure, it has been shown how the state metric (oralpha value) can be used to determine robot joint condition parameters of robot joints and how this is useful for evaluating performance of robot joints using data acquired from the robot arm during run-time. In the following, it is shown how the state metricmay be usable for training of an artificial intelligence model for the purpose of providing a trained artificial intelligence model capable of evaluating a robot control program prior to execution of the robot control program on a robot system. Such an evaluation can already be performed at a programming stage as shown in fig. 11.

[0162] Fig. 11 illustrates a programming environment 1101 of a robotprogram development software according to an embodiment of the invention. The programming environment 1101 is facilitated as an integrated development environment (IDE) providing comprehensive facilities for development of robot control programs for controlling a robot arm. In fig. 11, a user has developed a robot control program 1102 (or simply referred to as robot program in the following). The robot control program 1102 is arranged to be executed on a robot controller controlling a robot arm. The robot program 1102 comprises four script lines 1103, including a first script line 1103 (see most upper script line in the figure) designating a wait command (“Wait pickup = True”), a second script line 1103, below the first script line, designating a move command (“MoveL(pickup_pos, acc=1.20, vel=0.25”), a third script line 1103, below the second script line, designating another move command (“MoveJ(point_1, acc=1.39, vel=1.04”), and a fourth script line 1103, below the third script line, invoking a conveyor script. It should be noted that the robot control program 1102 is merely exemplary and a user can develop other robot programs (including other command functions and having any number of script lines) using the programming environment 1101. The script lines 1103 are an example of an operating instruction in the sense that the script lines dictate how a robot arm should operate when the robot program is executed by its associated robot controller.

[0163] Next to each script line 1103 in the robot control program 1102 alongevity rating 1104 is indicated. The longevity rating 1104 indicates how each script line 1103 affects the lifespan of a robot arm executing the script line. In this embodiment, the longevity rating is a numbered rating where the number “0” indicates that the robot will live longer than its expected life, the number “1” indicates that the robot will have an average expected life, and the number “2” indicates that the robot will live shorter than its expected life. This longevity rating provides developers with direct feedback about the impact of their code in the robot’s lifespan, and thereby equips developers with the necessary tools to balance operational speed and hardware longevity, which is crucial for developing more sustainable and efficientrobot control programs. In the example shown in fig. 11 the first and second scriptlines 1103 are associated with a longevity rating of “0”, whereas the third and fourth script lines are associated with respective longevity ratings of “2” and “1”. A developerlooking at the programming environment 1101 in fig. 11 will therefore immediately beaware of issues concerning the third script line 1103, as it is associated with the highest rating in the longevity rating 1104. In trying to improve the longevity rating of the third script line 1103, and thereby improve the quality of the robot control program 1102, the developer will modify features of the script line 1103 in question, and in this particular case, the developer modifies the maximum allowed jointacceleration and the maximum allowed joint velocity.

[0164] Fig. 12 shows the results of such a modification, where the maximumallowed joint acceleration has been reduced from 1.39 (arbitrary unit) to 1.22 (same arbitrary unit), and the maximum allowed joint velocity has been reduced from 1.04 (arbitrary unit) to 0.85 (same arbitrary unit). The effect of this modification of the third script line 1103 has resulted in the associated longevity rating changing from “2” to “1”, and the quality of the robot control program 1102 has been improved.

[0165] In the present embodiment, the longevity ratings are provided on thebasis of an evaluation of the robot control program 1102 according to embodiments of the present invention. The evaluation involves inputting of operating instructions (e.g., the individual script lines of the robot control program 1102) into a trained artificial intelligence model to obtain one or more robot joint condition parameters, which will be described in greater details throughout the following disclosure. The longevity ratings are provided on the basis of these one or more robot joint condition parameters. It should be understood that other ways of representing robot joint condition parameters in the programming environment are possible according to embodiments of the present disclosure, for example, a developer could click on each script line 1103 in the programming environment 1101 to reveal robot joint condition parameters, the robot joint condition parameters may be directly visible in the programming environment 1101, or the individual script lines 1103 may be colour coded to reveal the impact of the script line on the longevity.

[0166] To better understand how such longevity ratings as seen in figs. 11 and12 can be provided, it is useful to remember how robot joint condition parametersmay be provided in the first place – see figs. 4-7 and the accompanying text above.The methodology presented above, such as in relation to figs. 4-7, shows how a robot joint condition parameter, such as a state metric (alpha) or remaining use life (derived from alpha) can be determined. Such determination can be made with respect to robots that are already executing robot control programs, but clearly it is advantageous if such robot joint condition parameters are determined pre-deployment (i.e., before the robot system is executing a robot control program) since that would enable developers of robot control programs to optimize the program with respect tolongevity of the robot arm on an informed basis and thereby avoid executing a robotcontrol program which is unnecessarily strenuous on a robot.

[0167] In the following are described two model architectures which arecapable of performing such evaluation of a robot control program (determining one or more robot joint condition parameters) without having to execute the robot control program on a robot controller of an actual robot arm system. As will be made clear in the following, the previously presented analytical way of determining a robot jointcondition parameter is useful with respect to the model architectures.

[0168] Fig. 13 illustrates a model architecture usable for evaluation of a robotcontrol program according to an embodiment of the invention. The architecture shownin fig. 13 is fully computer-implemented. The model architecture shown in fig. 13employs an input data model in which input data, in the form of an operating instruction 1301 is processed by a trained artificial intelligence model 1303 to provide a robot joint condition parameter 1309. The operating instruction 1301 comprises a move function defining both starting positions and ending positions of a robot arm 101,however, in other examples the operating instruction may be of any other typedesignating a movement of a robot arm. The move function takes the following form (however other representations of the move function are also conceivable as the form / representation may depend on the programming language utilized for developinga robot control program – there are various programming languages for robots, suchas KAREL, KRL, PDL, AS, and RAPID, and despite differing slightly in syntax, they operate based on near-identical mathematical foundations, at least concerning robot manipulators of various kinds, i.e., Kinematics and Dynamics): MoveTo([^^^, ^^^, ^^^, ^^^, ^^ ^^, ^^] , ^^ ^ ^ ^ ^ ^^, ^^ , ^^, ^^, ^^, ^^^^^^^^^^^^ = ^̇, ^^^^^^^^^^^^ = ^̈)

[0169] The individual terms in the brackets ([ ])of the above move functionrepresents positions of respective individual robot joints of a robot arm. Withreference to the robot arm 101 shown in fig. 1, the first positions ^^^ and ^^^represent positions (i.e., rotational positions) of robot joint 103a at the beginning and ending of the movement respectively, positions ^^^ and ^^^represent positions (i.e., rotational positions) of robot joint 103b at the beginning and ending of the movement respectively, positions^^^ and ^^^represent positions (i.e., rotational positions) of robot joint 103c at the beginning and ending of the movement respectively, positions^^^ and ^^^represent positions (i.e., rotational positions) of robot joint 103d at the beginning and ending of the movement respectively, positions ^^^ and ^^^represent positions (i.e., rotational positions) of robot joint 103e at the beginning and ending of the movement respectively, and positions ^^^ and ^^^represent positions (i.e., rotational positions) of robot joint 103f at the beginning and ending of the movementrespectively. The parameters ^̇ and ^̈ represent the maximum values of velocity (i.e.,rotational speed) and acceleration (i.e., rotational acceleration) respectively for the robot joint moving the most (e.g. having the highest acceleration or velocity during the movement). The operating instruction 1301 represents a part of a robot control program, however, in other embodiments, the operating instruction may represent an entire robot control program.

[0170] The operating instruction 1301 is forwarded to a feature extractionmodule 1302 which takes the operating instruction 1301 as input and extracts a number of features. In the present embodiment, the features extracted are shown in table 1 above, however other sets of features may also be extracted in other embodiments. The features are extracted using the methods shown in table. 1.

[0171] Next, the extracted features are used as input in a trained artificialintelligence model 1303 (or simply referred to as model 1303 in the following). The training of the trained artificial intelligence model 1303 will be described later, but first is given a general introduction to the structure of the model. The model 1303 comprises a number of layers including an embedding layer 1304 and an attention layer 1305. The embedding layer carries out computations for each feature using a predefined approximation function ^^(^), i.e., the embedding layer embeds featuresinto functions. Tables 3-7 presents suitable embedding (approximation) functions ^^(^)for given features, including the features extracted using the methods shown in table 1. Figures 17a-d illustrate such approximation functions.

[0172] The model 1303 comprises three Multi-Layer Perceptrons (MLP’s),including a first MLP 1306, a second MLP 1307, and a third MLP 1308. The three MLP’s, denoted as ^^^,and ^^^respectively, are all implemented with adaptive learning rate and uses a Nesterov-Adam Optimizer. The first MLP 1306, ^^^, with shape (10, 16, 10, 9, 6, 3) maps the features onto a vector, which encapsulates the three output classes, as outlined in equation A.where ^ denotes a logarithmic probability scalar.

[0173] The second MLP 1307, ^^^, with shape (13, 19, 13, 9, 6, 3), maps the features and the output of the previous layer (i.e., the output of ^^^) to a new vector that encapsulates the output classes. This design choice results in a stacked architecture, where the second MLP 1307 leverages the output of the first MLP 106 inconjunction with the processed input features, as outlined in equation B. This synergyenhances the quality of the predictions made by the trained artificial intelligence model 1303. ^^^([^^(^)^^(^), ^ ^^, ^ ^^, ^ ^^]) → [^ ^^, ^ ^^, ^ ^^] (eq. B)

[0174] The third MLP 1308, ^^^, with shape (6, 7, 6, 3), maps the output of the first MLP ^^^, and of the secondto a final vector, as described in equation C.^^^([^ ^^, ^ ^^, ^ ^^, ^ ^^, ^ ^^, ^ ^^]) → [^ ^^, ^ ^^, ^ ^^] (eq. C)

[0175] The output of the third MLP, ^^^, is passed through a softmax function, which is a function that turns an input vector of K real values into a vector of K real values that sum up to 1. The input values (or logits) to the softmax function can be positive, negative, zero, or greater than one, but the softmax function transforms them into values between 0 and 1, so that they can be interpreted as probabilities. The key advantage of the softmax is that it highlights the largest values and supresses values which are significantly below the maximum value. The output of the softmax function is are probabilities of respective classes ”0”, “1”, and “2”, with “0” indicating that the robot will live longer than its expected life (above 23 million cycles), “1” indicating that the robot will live according to its expected life (between 17 million and 23 million cycles), and “2” indicating that the robot will live shorter than its expected life (less than 17 million cycles). The softmax function assigns the label ”0”, “1”, or “2”, based on the class having the highest probability. Accordingly, the output of the trained artificial intelligence model 1303 is a robot joint condition parameter 1309 which in the present embodiment is represented as a discretized value of a state metric (discretized in the sense that the possible values of the state metric are 0, 1, and 2. The robot joint condition parameter 1309 derived in this way may be represented in a programming environment 1101 as seen in fig. 11.

[0176] Fig. 14 illustrates another model architecture for evaluation of a robotcontrol program according to an embodiment of the invention. The architecture shownin fig. 14 is similar to the architecture seen in fig. 13 but differs in two ways. Thearchitecture shown in fig. 14 is also fully computer implemented. The modelarchitecture in fig. 14 takes additional input to the operating instructions 1301,namely a target state variable input 1310. The target state variable input 1310 is based on the operating instructions 1301 and are a result of processing the operating instructions using a path planning module (not shown in the figure). The path planning module extracts other variables from the operating instructions including target currents for robot joints of a robot arm. The full list of input data is seen in seen in table 2 of the present disclosure.

[0177] Similar to the model architecture of fig. 13, a number of Multi-LayerPerceptrons (MLPs) are used, including a first MLP 1306, a second MLP 1307, and a third MLP 1308, however these MLPs differ in their shape.

[0178] The first MLP 1306, ^^^, with shape (18, 24, 18, 9, 6, 3) maps the features onto a vector, which encapsulates the three output classes, as outlined in equation A. The initial MLP is depicted in fig. 12b.

[0179] The second MLP 1307,with shape (21, 27, 21, 12, 9, 6, 3), maps the features and the output of the previous layer (i.e., the output of ^^^) to a new vector that encapsulates the output classes. This design choice results in a stackedarchitecture, where the second MLP 1307 leverages the output of the first MLP 1306 inconjunction with the processed input features, as outlined in equation B.

[0180] The third MLP 1308, ^^^, with shape (6, 7, 6, 3), maps the output of the first MLP ^^^, and of the secondto a final vector, as described in equation C.

[0181] As seen when comparing the first MLP 1306 of the input data model infig. 13 and the target data model in fig. 14, it is seen that the first layer of the firstMLP 1306 of the target data model has more neurons (18 neurons) compared to thenumber of neurons (10 neurons) of the first layer of the first MLP 1306 of the input data model. Thereby, more accurate predictions may be made by the trained artificial intelligence model. The three MLPs of both the input data model and the target data model are implemented with adaptive learning rate and uses a Nesterov-Adam optimizer.

[0182] According to preferred embodiments of the invention, the trainedartificial intelligence model is implemented by a stacked-corrective feed-forward model.

[0183] Fig. 15a illustrated an architecture of a stacked-corrective feed-forwardmodel, which is a way of implementing a trained artificial intelligence model according to the present invention. The trained artificial intelligence model includes a first MLP 1306, a second MLP 1307, and a third MLP 1308, as seen in fig. 15a. The first MLP 1306 is explained in greater detail in fig. 15b. As seen in fig. 15a. the first MLP 1306 takes input data in its input layer and an output is provided and used as input in both the second MLP 1307 and the third MLP 1308. In this way is provided a stacked architecture where the second MLP takes as input the raw input (also provided to thefirst MLP 1306) as well as the output of the first MLP 1306, and the third MLP 1308takes as input the output of both the first MLP and the second MLP. In this example the first MLP 1306 has shape (18, 24, 18, 9, 6, 3), the second MLP 1307 has shape (21, 27, 21, 12, 9, 6, 3), and the third MLP 1308 has the shape (6, 7, 6, 3). It should be noted that according to other embodiments, the shape of the individual perceptronlayers may be different, and the trained artificial intelligence model may also differ inthe number of perceptrons used.

[0184] Fig. 15b illustrates in greater details the first MLP 1306 as seen in fig.15a. The MLP seen in fig. 15b is of the shape (18, 24, 18, 9, 6, 3), implying that the first layer N1 has 18 neurons, the second layer N2 has 24 neurons, the third layer N3 has 18 neurons, the fourth layer N4 has 9 neurons, the fifth layer N5 has 6 neurons, and the sixth layer N6 has 3 neurons. As seen in the figure, not all of the neurons are seen as connected, however this is merely for illustration purposes, and indeed the neurons 1501 are fully connected. The second MLP 1307 and the third MLP 1308referenced in fig. 15a adopt structures which are similar in type to the first MLP 1306seen in fig. 15b but naturally differs in the number of neurons in each neuron layer and in the number of neuron layers.

[0185] Fig. 16 illustrate another model architecture for evaluation of a robotcontrol program according to a preferred embodiment. The architecture shown in fig.16 is similar to the architecture seen in fig. 14 but differs in the choice of artificialintelligence models employed. The architecture shown in fig. 16 is also fully computerimplemented. The model architecture in fig. 16 utilizes a combination of machinelearning models, specifically a combination of two MLP’s and an Extreme GradientBoosting model (XGBoost). As seen in fig. 16, in addition to an embedding layer 1304 and attention layer 1305, the trained artificial intelligence model 1303 comprises two MLP’s 1306 and 1308, and an Extreme Gradient Boosting model 1601. The first MLP 1006, ^^^, with shape (18, 24, 18, 9, 6, 3) maps the features onto a vector, which encapsulates the three output classes, as outlined in equation A. The initial MLP isdepicted in fig. 15b. The XGBoost model 1601, denoted ^^^(see equation D below), is implemented with a multi-softmax objective function, utilizing the exact tree method with a maximum depth of 21, a minimum split loss of 0.001, a learning rate of 0.01, and set to run for a maximum of 200 iterations. ^^^ ([^ ^ ^ ^ ^ ^^(^)^^(^), ^^, ^^, ^^]) → [^^, ^^, ^^^](eq. D)

[0186] The XGBoost model 1601 maps features and the output of the previouslayer (i.e., the output of ^^^) to a new vector that encapsulates the output classes. Thisdesign choice results in a stacked architecture, where the second model, i.e., the XGBoost model 1601, leverages the output of the initial MLP 1306 in conjunction with the processed input features, as outlined in equation D. This synergy enhances thequality of the predictions made by the model.

[0187] The final MLP 1308, ^^^, with shape (6, 7, 6, 3), maps the output of the first MLP ^^^, and of the XGBoost model, ^^^, to a final vector, as described in equationC. The trained artificial intelligence model as depicted in fig. 16 is likewise alsoreferred to as a target data model owing to the model taking target state variable input 1310 as input data, however it should be noted that according to otherembodiments, the trained artificial intelligence model as depicted in fig. 16 may alsobe utilized in another variant (input data model) where only operating instructions 1301 are used as input (similar to the model architecture as seen in fig. 13).

[0188] It should be noted that the trained artificial intelligence models 1003described in relation to figs. 13-16 are merely exemplary of trained artificialintelligence models suitable for carrying out pre-runtime evaluation of robot control programs, and that other specific trained artificial intelligence models 1303 may also be employed according to other embodiments. These other models may vary in complexity. For example, the models may vary in the amount of input (some models are of the ‘input data model’ type, meaning that they only take operating instructions 1301 as input, whereas other models are of the ‘target data model’ type meaning that in addition to operating instructions 1301 also take target state variable input 1310 as input). The other models may also differ in their choice of artificial intelligence model being utilized.

[0189] Each of the trained artificial intelligence models 1303 as described inrelation to the embodiments of figs. 13, 14, and 16 comprises an embedding layer1304 and an attention layer 1305 used for correlation of input features (operating instructions 1301 and target state variable input 1310) with robot joint condition parameters.

[0190] Figures 17a-d illustrate correlation of various input features with robotjoint condition parameters. The correlations shown in the figures are used in embedding layers and attention layers of trained artificial intelligence models used according to embodiments of the present invention.

[0191] Fig. 17a shows three graphs which, from left to right, represents theinput parameters torque, momentum and rate of change of momentum respectively.In each of the three graphs, the corresponding feature is sorted in ascending order and mirrored to the ascending normalized alpha value (note that alpha is a state metric which is an example of a robot joint condition parameter). The feature value isshown on the horizontal axis, and the corresponding alpha value is shown on the vertical axis in each of the graphs, and the data is represented by the solid line (see curve 17a in the graphs). The data are approximated using a best-fit approach. Thisinvolves an approximation function ^^(^) represented by a long-dashed line (see curve17b in the graphs). The mathematical expressions of these approximations are shownin table 5 of the present disclosure (where ^ denotes torque, ^ denotes momentum,and Δ^ denoted rate of change of momentum). A Fréchet distance is calculated foreach of the features (see dashed curve 17c in the graphs). A scalar value ^^(^) iscalculated on the basis of the Fréchet distance as outlined in the following equation E.This distance is defined as the infimum over all reparameterizations ^ and ^ of [0,1] ofthe maximum over all ^ ∈ [0, ^] of the distance S between ^^^(^)^where d is the Euclidian distance function of S, n the particular feature index, and t the index of each value by ascending order.

[0192] The Fréchet correlation is seen in the graphs as the solid and dashedcurve 17d.

[0193] The scalar values ^^(^) is used in the attention layer of the trainedartificial intelligence model and are also seen in table 5 of the present disclosure.

[0194] Fig. 17b shows similar data as in fig. 17a, however it shows, from leftgraph to right graph, date in respect of velocity, acceleration and current. Thecorresponding approximation functions ^^(^) and scalar values ^^(^) for velocity andacceleration are shown in table 7 of the present disclosure (where velocity is denoted^̇ , and acceleration is denoted ^̈), and the approximation function ^^(^) and scalarvalue ^^(^) for current are shown in table 5 of the present disclosure (where current isdenoted I).

[0195] Fig. 17c shows similar data as in figs. 17a-b, however it shows, from leftgraph to right graph, date in respect of directional changes, joint distance, and ToolCentre Point travel distance. The corresponding approximation functions ^^(^) andscalar values ^^(^) for directional changes is shown in table 7 of the present disclosure(where directional changes is denoted ^^^^), and the approximation functions ^^(^) andscalar values ^^(^) for joint distance and Tool Centre Point travel distance are shown intable 5 of the present disclosure (where joint distance is denotedand Tool CentrePoint travel distance is denoted ^^^^).

[0196] Fig. 17d shows similar data as in figs. 17a-c, however it shows, from leftgraph to right graph, date in respect of Tool Centre Point distance to base at start of movement, Tool Centre Point distance to base at end of movement, and window size.The corresponding approximation functions ^^(^) and scalar values ^^(^) for Tool CentrePoint distance to base at start of movement and Tool Centre Point distance to base atend of movement, and window size are shown in table 3 of the present disclosure(where Tool Centre Point distance to base at start of movement is denoted ^^^^, and Tool Centre Point distance to base at end of movement is denoted ^^^^, and window size is denoted s).

[0197] The feature values (horizontal axis) of the graphs seen throughout figs.17a-d have units as expressed in tables 1 and 2 of the present disclosure.

[0198] The data set underlying the feature approximations as seen in figs. 17a-d is seen in fig. 18 which illustrates a graph of a data distribution. The horizontal axisrepresents alpha values and the vertical axis represents normalized counts or value. The value 0 on the horizontal axis indicates healthy robots, and the supremum value Ω(^)=1, indicates a value of alpha above which 36.1% of the data points have alpha values above 1. These 36.1% represents cases where the robots have a low longevity. As illustrated in fig. 18, the dataset exhibits an overrepresentation of instances belonging to class 0. Accordingly, a balancing strategy is implemented according to embodiments of the invention for the dataset to prevent a bias towards over- performing robot arms and to ensure a robust assessment of the model’s predictive capabilities.

[0199] To provide a comprehensive and quantitative evaluation of theperformance of the stacked corrective feed-forward model employed in embodiments of the present disclosure (including embodiments seen in figs. 13-16), the model is evaluated against several other artificial intelligence models, including Stochastic Gradient Descent (SGD), Logistic Regression (LReg), Decision Trees (DCT), Extreme Gradient Boosting (XGBoost), and a single MLP similar to. To ensure a robust assessment of the predictive capabilities of the models, the performance of all models were evaluated using k-fold cross validation with a split ratio of 0.4, implying that 40 percent of the entries in the dataset is used for training the artificial intelligence model and 60 percent of the entries in the dataset is used for testing the trained artificial intelligence model. The models have been trained and tested using both an entire unbalanced dataset, comprising 56405 entries, and using a balanced dataset comprising 10938 instances for each class (classes “0”, “1”, and “2”) resulting in a total of 32814 entries. This balancing strategy accounts for over-representation ofinstances belonging to class “0”, previously depicted in fig. 15. For each iteration in the k-fold cross validation, the accuracy and F1 score are collected to formulate the distributions depicted in figs. 16a-h. These distributions reveal how effectively the respective models scale with an increase in information. Additionally, the distributions aid in determining whether a particular result can be classified as an outlier. Figures 19a-d illustrate these distributions for the balanced dataset, and figs. 19e-h illustrate these distributions for the unbalanced dataset.

[0200] Fig. 19a illustrates two columns comprising distributions (accuracy andF1 score) for various trained artificial intelligence models of the input data model type (implying that the models utilize operating instructions as input), and the models arestandardized (implying that they do not contain embedding- and attention layers). Thefirst column depicts accuracy 1606 of the standardized input data models, and the second column depicts the associated F1-score 1907 of the standardized input data models. The distributions in the first row are in respect of a Stochastic Gradient Descent model 1901, the distributions in the second row are in respect of a Logistic Regression model 1902, the distributions in the third row are in respect of a Decision Trees model 1903, the distributions in the fourth row are in respect of a single Feed- Forward model 1904, the distributions in the fifth row are in respect of an Extreme Gradient Booster (XGBoost) model 1601, and the distributions in the sixth row are inrespect of a Stacked-Corrective Feed-Forward model 1905 according to a preferredembodiment (the model depicted in fig. 16 of the present disclosure). For each of themodels shown in fig. 19a is shown a worst-case accuracy and a worst case F1-score. For example, the Stochastic gradient Descent model has a worst-case accuracy of 42.64% and a worst-case F1-score of 38.34%, whereas the Stacked-Corrective Feed- Forward model 1905 has a worst-case accuracy of 98.8% and a worst-case F1-score of 98.8%. The worst-case accuracies of the logistic regression model 1902, decision trees model 1603, single feed-forward MLP model 1604, and XGBooster model are, 59.6%, 69.41%, 86.59%, and 90.7%, respectively, and the associated worst-case F1- scores are 59.46%, 69.36%, 86.63%, and 90.74%, respectively.

[0201] The accuracy and F1-score are performance metrics, where accuracy isa measure of how many of the predictions made was true, and the F1-score is ameasure for assessing how much predictions are right or wrong – both measures arecommonly used for assessing the performance of artificial intelligence models.

[0202] Fig. 19b illustrates two columns comprising distributions (accuracy andF1 score) for various trained artificial intelligence models of the input data model type (implying that the models utilize operating instructions as input), however, as opposedto fig. 19a, the models contain embedding- and attention layers. The first columndepicts accuracy 1908 of the input data models (comprising embedding and attention layers), and the second column depicts the associated F1-score 1909 of these models. The distributions in the first row are in respect of a Stochastic Gradient Descent model 1901, the distributions in the second row are in respect of a Logistic Regression model 1902, the distributions in the third row are in respect of a Decision Trees model 1903, the distributions in the fourth row are in respect of a single Feed-Forward model 1904, the distributions in the fifth row are in respect of an Extreme Gradient Booster (XGBoost) model 1601, and the distributions in the sixth row are in respect of a Stacked-Corrective Feed-Forward model 1905 according to a preferred embodiment(the model depicted in fig. 16 of the present disclosure). For each of the modelsshown in fig. 19b is shown a worst-case accuracy and a worst case F1-score. Forexample, the Stochastic gradient Descent model has a worst-case accuracy of 60.43% and a worst-case F1-score of 60.49%, whereas the Stacked-Corrective Feed-Forward model 1905 has a worst-case accuracy of 98.87% and a worst-case F1-score of98.86%. The worst-case accuracies of the logistic regression model 1902, decisiontrees model 1903, single feed-forward MLP model 1904, and XGBooster model are, 61.77%, 88.41%, 86.95%, and 90.85%, respectively, and the associated worst-case F1-scores are 61.66%, 88.39%, 87.03%, and 90.86%, respectively.

[0203] Fig. 19c illustrates two columns comprising distributions (accuracy andF1 score) for various trained artificial intelligence models of the target data model type (implying that the models utilize operating instructions and target state variable input as input), and the models are standardized (implying that they do not containembedding- and attention layers). The first column depicts accuracy 1910 of thestandardized target data models, and the second column depicts the associated F1- score 1911 of the standardized target data models. The distributions in the first row are in respect of a Stochastic Gradient Descent model 1901, the distributions in the second row are in respect of a Logistic Regression model 1902, the distributions in the third row are in respect of a Decision Trees model 1903, the distributions in the fourth row are in respect of a single Feed-Forward model 1904, the distributions in the fifthrow are in respect of an Extreme Gradient Booster (XGBoost) model 1601, and thedistributions in the sixth row are in respect of a Stacked-Corrective Feed-Forwardmodel 1905 according to a preferred embodiment (the model depicted in fig. 16 of thepresent disclosure). For each of the models shown in fig. 19c is shown a worst-case accuracy and a worst case F1-score. For example, the Stochastic gradient Descent model has a worst-case accuracy of 53.05% and a worst-case F1-score of 48.14%, whereas the Stacked-Corrective Feed-Forward model 1905 has a worst-case accuracy of 99.47% and a worst-case F1-score of 99.47%. The worst-case accuracies of thelogistic regression model 1902, decision trees model 1903, single feed-forward MLP model 1904, and XGBooster model are, 64.33%, 87.04%, 81.86%, and 91.4%, respectively, and the associated worst-case F1-scores are 64.41%, 87.15%, 81.76%, and 91.39%, respectively.

[0204] Fig. 19d illustrates two columns comprising distributions (accuracy andF1 score) for various trained artificial intelligence models of the target data model type (implying that the models utilize operating instructions as input), however, as opposedto fig. 19c, the models contain embedding- and attention layers. The first columndepicts accuracy 1912 of the target data models (comprising embedding and attention layers), and the second column depicts the associated F1-score 1913 of these models. The distributions in the first row are in respect of a Stochastic Gradient Descent model 1901, the distributions in the second row are in respect of a Logistic Regression model 1902, the distributions in the third row are in respect of a Decision Trees model 1903, the distributions in the fourth row are in respect of a single Feed-Forward model 1904, the distributions in the fifth row are in respect of an Extreme Gradient Booster (XGBoost) model 1601, and the distributions in the sixth row are in respect of a Stacked-Corrective Feed-Forward model 1905 according to a preferred embodiment(the model depicted in fig. 16 of the present disclosure). For each of the modelsshown in fig. 19d is shown a worst-case accuracy and a worst case F1-score. For example, the Stochastic gradient Descent model has a worst-case accuracy of 77.13% and a worst-case F1-score of 77.17%, whereas the Stacked-Corrective Feed-Forward model 1905 has a worst-case accuracy of 99.45% and a worst-case F1-score of 99.45%. The worst-case accuracies of the logistic regression model 1902, decision trees model 1903, single feed-forward MLP model 1904, and XGBooster model are, 76.28%, 89.02%, 90.85%, and 92.5%, respectively, and the associated worst-case F1-scores are 76.39%, 89.06%, 90.88%, and 92.52%, respectively.

[0205] Fig. 19e illustrates similar distributions as in fig. 19a, however thedataset used is the unbalanced dataset. Fig. 19f illustrates similar distributions as in fig. 19b, however the dataset used is the unbalanced dataset. Fig. 19g illustrates similar distributions as in fig. 19c, however the dataset used is the unbalanced dataset. Fig. 19h illustrates similar distributions as in fig. 19d, however the dataset used is the unbalanced dataset.

[0206] In the case of the single MLP model 1904 applied to the balanceddataset (see figs. 19a-d), the distribution of results transitions from a normal or near- uniform distribution to a left-skewed one, indicating an enhancement in prediction reliability. A similar trend is observed for the decision trees model 1903 on theunbalanced dataset (see figs. 19e-h); however, for the balanced dataset, the decision trees model 1903 exhibits an inverse behaviour.

[0207] As seen from the distributions (see accuracies and F1-scores) of figs.19a-h, an enhancement is clearly provided by use of an embedding layer and an attention layer, which transforms the raw input data into a format that aligns with the stress metric (denoted alpha in the present disclosure), thereby facilitating more effective interpretation by the artificial intelligence models. Ultimately, the stacked corrective feedforward model 1905 consistently outperforms in terms of worst-caseaccuracies across both input data model and target data model. With embedding andattention layers included, the stacked-corrective feedforward model 1905 achieves an accuracy of 98.48% and 91.51% for the input data model and the target data model respectively on the unbalanced dataset, and 98.87% and 99.45%, respectively, on the balanced dataset. XGBoost and MLP have distinct underlying structures and learning mechanisms. XGBoost, a gradient-boosting model, constructs decision trees, while MLP is a neural network. This diversity results in a mode robust model (stacked-corrective feed forward model employing both MLP and XGBoost – see fig. 16) capableof capturing various data aspects. Additionally, the stacked architecture enriches the input vector with more knowledge as data progresses through the pipeline. Accordingly, the trained artificial intelligence model employed in preferred embodiments of the invention, is of the stacked corrective feedforward type asdemonstrated in fig. 16 of the present disclosure.

[0208] Fig. 20 illustrates steps S1*-S3* of a computer-implemented ofevaluating a robot control program for a robot arm according to an embodiment of the invention. The robot arm is a robot arm comprising a plurality of robot joints connecting a robot base and a robot tool flange.

[0209] In a first step S1* of the method, one or more operating instructions1301 of a robot control program 1102 is provided in a programming environment 1101 of a robot program development software. The one or more operating instructions 1301 represents one or more robot tasks to be carried out by a robot arm. In the present embodiment, the programming environment is a programmingenvironment 1101 as seen in fig. 11, however the programming environment may bemanifested in other ways according to other embodiments.

[0210] In a second step S2* of the method, the one or more operatinginstructions are provided as input to a trained artificial intelligence model, which model is adapted to take one or more operating instructions as input and adapted to output one or more robot joint condition parameters on the basis of said one or more operating instructions. In the present embodiment, the trained artificial intelligencemodel is a target data model as explained in relation to fig. 14 of the presentdisclosure, however, the trained artificial intelligence model may be of other types (such as decision trees, stochastic gradient descent models, logistic regression models, etc.) according to other embodiments of the invention.

[0211] In a third step S3* of the method, one or more robot joint conditionparameters are outputted by the trained artificial intelligence model, the one or more robot joint condition parameters relating to one or more robot joints of a plurality of robot joints of a robot arm. In this embodiment, the one or more robot joint condition parameters are outputted as one of the values “0”, “1” and “2” as mentioned in relation to fig. 11, however the robot joint condition parameter may be represented / outputted in other ways according to other embodiments of the invention.BRIEF DESCRIPTION OF FIGURE REFERENCES100 Robot system101 Robot arm103a-103f Robot joint104b-104d Robot link105 Robot base107 Robot tool flange111a-111f Robot axis113a-113f Rotation arrow114 Robot base reference point115, 315 Robot controller116 Reference coordinate system117 Interface device119 Display121 Input devices123 Direction of gravity209 Robot joint motor211 Axis of rotation of output axle213 Rotation arrow225 Motor axle227 Output axle229 Robot joint gear231 Output flange233 Motor control signal235 Output encoder236 Output encoder signal237 Input encoder238 Input encoder signal239 Encoder wheel241 Motor torque sensor242 Motor torque signal303i-303n Robot joints333i-333n Motor control signals336i-336n Output encoder signals338i-338n Input encoder signals342i-342n Motor torque signals343 Processor345 Memory401 Measured state variable402 Target state variable403 Overshoot (epsilon)404 Joint oscillations405 Sub-state metric406 State metric (alpha)701 Fitted exponential function702 Critical value703 Intersection1001a-b Robot program1002a-c Insights1003 Trajectory hazard1004 Screenshot1101 Programming environment1102 Robot control program1103 Script lines of robot control program1104 Longevity rating1301 Operating instruction1302 Feature extraction module1303 Trained artificial intelligence model1304 Embedding layer1305 Attention layer1306 First Multi-Layer Perception (MLP)1307 Second Multi-Layer Perception (MLP)1308 Third Multi-Layer Perception (MLP)1309 Robot joint condition parameter1310 Target state variable input1610 Extreme Gradient Booster model1901 Stochastic Gradient Descent model1902 Logistic Regression Model1903 Decision Trees model1904 Single Feed-Forward MLP model1905 Stacked-Corrective Feed-Forward model1906 Accuracy of standardized input data models1907 F1-score of standardized input data models1908 Accuracy of input data models utilizingembedding and attention1909 F1-score of input data models utilizingembedding and attention1910 Accuracy of standardized target data models1911 F1-score of standardized target data models1912 Accuracy of target data models utilizingembedding and attention1913 F1-score of target data models utilizingembedding and attention qi-qnAngular position of output axlesΘi- θn Angular position of motor axlesN1-N6 Layers of Multi-Layer PerceptronS1-S5 Method stepsS1*-S3* Steps of a method of evaluating a robot controlprogram

Claims

CLAIMS1. A method of determining a robot joint condition parameter of a robot joint, saidmethod comprising the steps of: providing a robot arm comprising a plurality of robot joints, each robot joint ofsaid plurality of robot joints comprising a joint motor and a joint gear, saidjoint motor being arranged to drive said joint gear; operating said robot arm according to a robot control program executed by arobot controller, said step of operating said robot arm comprising actuating atleast one robot joint of said plurality of robot joints; sequentially monitoring a state variable relating to actuation of said at leastone robot joint and comparing said monitored state variable with an associatedtarget state variable of said robot control program to determine a sequence ofdiscrepancies between said monitored state variable and said target statevariable; deriving a state metric on the basis of said sequence of discrepancies, saidstate metric being indicative of an amount of wear of said at least one robotjoint; and determining a robot joint condition parameter of said at least one robot joint onthe basis of said state metric.

2. The method according to claim 1, wherein said sequence of discrepancies is determined in respect of a single program cycle executed by said robot controller.

3. The method according to claim 1 or 2, wherein said step of sequentially monitoringsaid state variable comprises monitoring said state variable while said robot controllerexecutes a program cycle of said robot control program.

4. The method according to any of the preceding claims, wherein said monitored state variable is used by said robot controller to adjust said target state variable.

5. The method according to any of the preceding claims, wherein said target state variable is derived from said robot control program.

6. The method according to any of the preceding claims, wherein said monitored state variable and said target state variable comprises current.

7. The method according to any of the preceding claims, wherein said state metric isderived on the basis of a friction coefficient of a joint motor and a joint gear of said atleast one robot joint, said friction coefficient being dependent on a temperature and / ora velocity of said at least one robot joint.

8. The method according to claim 7, wherein said friction coefficient is calculated on the basis of sensor input and on the basis of a gear model of said joint gear of said at least one robot joint.

9. The method according to any of the preceding claims, wherein said state metric isderived based on a plurality of sub-state metrics, wherein said plurality of sub-statemetrics are obtained based on a plurality of discrepancies of said sequence ofdiscrepancies.

10. The method according to claim 9, wherein each sub-state metric of said pluralityof sub-state metrics is derived using a recursive formula, wherein a value of each sub-state metric of said plurality of sub-state metrics is calculated by subtraction of a value of a neighboring sub-state metric of said plurality of sub-state metrics.

11. The method according to any of the preceding claims, wherein said robot joint condition parameter is a remaining use life, and wherein said remaining use life is calculated by analyzing a temporal evolution of said state metric.

12. The method according to claim 11, wherein said remaining use life is calculated on the basis of a selected sub-state metric of said plurality of sub-state metrics.

13. The method according to claim 11 or 12, wherein said analysis of said temporalevolution of said state metric comprises analyzing said state metric with respect to anincreasing number of program cycles of said robot control program.

14. The method according to any of the claims 11-13, wherein said analysis of saidtemporal evolution of said state metric involves projecting when said state metric reaches a critical value of said robot arm, wherein said critical value is determined on the basis of historic data.

15. The method according to any of the preceding claims, wherein operating said robot arm comprises actuating said at least one robot joint according to a programcycle of said robot control program, and wherein said remaining use life denotes anumber of remaining program cycles in respect of said at least one robot joint.

16. The method according to any of the preceding claims, wherein said at least one robot joint is a first robot joint, and wherein said method comprises calculating a remaining use life of a second robot joint of said plurality of robot joint.

17. The method according to any of the preceding claims, wherein said method comprises a further step of adjusting one or more control parameters of said robot control program in respect of said at least one robot joint after said step ofdetermining a robot joint condition parameter of said at least one robot joint.

18. The method according to any of the preceding claims, wherein said methodcomprises a step of providing said robot joint condition parameter to a user of saidrobot arm using an electronic display.

19. The method according to any of the preceding claims, wherein said methodcomprises a step of triggering an alarm on a condition of said calculated remaining uselife being within a critical remaining use life range.

20. The method according to any of the preceding claims, wherein said robot control program comprises a robot test program.

21. The method according to any of the preceding claims, wherein said step of deriving said robot joint condition parameter is performed using a machine learning model.

22. The method according to any of the preceding claims, wherein a logging of said operation of said robot arm is performed to provide log data, wherein said logging comprises event-based logging.

23. The method according to claim 22, wherein said log data is associated with one or more robot control program lines of said robot control program.

24. A method of generating a training data set for training of an artificial intelligencemodel, said method comprising the steps of:a) operating a robot arm according to one or more operating instructions of arobot control program executed by a robot controller of a robot system, saidrobot arm comprising at least one robot joint, said step of operating said robot arm comprising actuating at least one robot joint; b) sequentially monitoring a state variable relating to actuation of said at least one robot joint and comparing said monitored state variable with an associated target state variable of said robot control program to determine a sequence of discrepancies between said monitored state variable and said target state variable;c) deriving a state metric on the basis of said sequence of discrepancies, said state metric being indicative of an amount of wear of said at least one robotjoint; d) determining a robot joint condition parameter of said at least one robot joint on the basis of said state metric; e) performing steps a-d a plurality of times using a plurality of robot arms, thereby obtaining a training data set comprising a plurality of operating instructions with a respective plurality of robot joint condition parameters.

25. A robot system comprising: a robot arm comprising a plurality of robot joints, each robot joint of said plurality of robot joints comprising a joint motor and a joint gear, said joint motor being arranged to drive said joint gear; a robot controller configured to execute a robot control program and to control operation of said robot arm on the basis of said robot control program; andwherein said robot controller is arranged to determine a robot joint condition parameter by: sequentially monitoring a state variable relating to actuation of at least one robot joint of said plurality of robot joints and comparing said monitored state variable with an associated target state variable of said robot control program to determine a sequence of discrepancies between said monitored state variable and said target state variable; deriving a state metric on the basis of said sequence of discrepancies, said state metric being indicative of an amount of wear of said at least one robot joint; and determining a robot joint condition parameter of said at least one robot joint on the basis of said state metric.

26. The robot system according to claim 25, wherein said robot system is arranged tocarry out the method according to any of the claims 1-23.

27. A computer program product comprising instructions which when executed by arobot controller of a robot system causes the robot controller to carry out the methodaccording to any of the claims 1-23.

28. The computer program product according to claim 27, wherein said robot systemis a robot system according to claim 25 or 26.

Citation Information

Patent Citations

  • Method and a control system for monitoring the condition of an industrial robot

    US20080140321A1

  • Intelligent condition monitoring and fault diagnostic system for preventative maintenance

    US20230280740A1

  • Equipment component monitoring and replacement management system

    US7143007B2

Cited By

  • Fault diagnosis method, electronic equipment, storage medium and program product

    CN122185247A