Static code analysis for robot script
The method employs a trained AI model to evaluate robot control programs, assessing potential wear on robot joints before deployment, thus optimizing programming to extend the service life of robot arms.
Patent Information
- Application Number
- PCT/DK2024/050317
- 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
Existing methods for evaluating robot control programs do not effectively assess the potential wear on robot joints before deployment, leading to reduced service life and increased maintenance costs.
A computer-implemented method that uses a trained artificial intelligence model to evaluate robot control programs by inputting operating instructions and outputting robot joint condition parameters, allowing for pre-deployment assessment of joint wear and optimization of programming to extend robot arm longevity.
Enables developers to identify and improve sub-optimal operating instructions before deployment, reducing unnecessary wear on robot joints, minimizing post-deployment optimizations, and scheduling maintenance in advance, thereby prolonging the service life of robot arms.
Smart Images

Figure DK2024050317_26062025_PF_FP_ABST
Abstract
Description
STATIC CODE ANALYSIS FOR ROBOT SCRIPT Field of the invention
[0001] The present invention relates to a computer-implemented method ofevaluating a robot control program for a robot arm, a computer program, a computerprocessing arrangement, a method of training an artificial intelligence model, and useof a trained artificial intelligence model for evaluating a robot control program. Background of the invention
[0002] Robot arms, also referred to as robot manipulators, comprising a plurality ofrobot 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 therobot arm to carry out a number of working instructions. The robot joints may berotational robot joints configured to rotate parts of the robot arm in relation to eachother, prismatic or revolute joints configured to translate parts of the robot arm inrelation 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 basedon 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 tomove 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 whichdefines 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 flangeor other parts of the robot arm, such as grippers, vacuum grippers, magnetic grippers, screwing machines, welding equipment, dispensing systems, visual systems etc.
[0006] In industrial contexts, robot arm applications are primarily optimized tominimize 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 this indicator encompass speed loss from prolonged operations, such as extended wait times, protective stops, or faults, along with reduced cycles due to unplanned downtime, breakdowns, and program inefficiency.
[0007] It is well known that robot arms are subject to wear over time which may leadto the issues of prolonged operations as stated above. Typically, the wear of robot arm joints are first assessed during inspection of the robot arm, and sometimes suchinspection necessitates maintenance of robot joints due to wear. Accordingly, there isa need in the art of assessing the wear of robot arms prior to deployment of robot control programs, in order to prolong the service life of robot arms. Summary of the invention
[0008] The inventors have identified the above-mentioned problems and challengesrelated to pre-deployment assessment of the potential wear of robot control programs, and subsequently made the below-described invention which may increase awarenessof the impact of the programming of robot control programs on the longevity of a robotarm executing a robot control program.
[0009] The invention relates to a computer-implemented method of evaluating arobot 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 following 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 jointcondition parameters of one or more robot joints of said plurality of robot joints.
[0010] Thereby is provided an advantageous computer-implemented method ofevaluating a robot control program. The method according to the present disclosure enables developers of robot control programs to better understand the impact of their programming on robots executing the robot control programs being developed. Typically, in the art, the quality of a robot control program, may first be evaluated after the program has been executed a number of times by an actual robot. Such a post- deployment evaluation may reveal that the execution of the robot control program has resulted in unnecessary amounts of stress on robot joints of the robot arm, evident by e.g., excess wear on gear wheels in the robot joints. Based on the post-deployment evaluation, it may be needed to improve the quality of the robot control program to avoid further unnecessary wear and to improve the life expectancy of the robot arm.
[0011] However, by the method according to the present disclosure, developers ofrobot control programs may already gain insight to the impact of their programming on a robot’s expected life, both prior to and following the compile-time stage, i.e., where the robot control program reaches a robot controller and expected resource usages are computed. The advantages of gaining such insight at a pre-deployment stage (i.e., prior to execution of the robot control program on a robot controller), cannot be overemphasized. First and foremost, robot control programs of high quality, i.e., programs which when executed does not put unnecessary stresses on robot joints of a robot arm. Secondly, the risk of having to optimize the robot control program after deployment on a robot controller may be minimized, leading to fewer programming iterations. Moreover, gaining insight to a robot joint condition parameter at a pre- deployment stage is advantageous in that it may become possible to schedule maintenance in advance of the deployment.
[0012] Not only is the present method advantageous in that it can be used prior todeployment, but it may also be used to evaluate robot control programs which have already been executed (or programs that are being executed), as from a developer’s point of view the method only requires inputting of one or more operating instructions in a programming environment in order to be carried out.
[0013] The automatically inputting of said one or more operating instructions intosaid trained artificial intelligence model may be carried out automatically as the operating instructions are provided in said programming environment, for example automatically following a user typing in an operating instruction. However, the automatically inputting of said one or more operating instructions in said trained artificial intelligence model may also be carried out following a user selecting one or more operating instructions to be evaluated according to the present method.
[0014] By computer-implemented may be understood that the steps of the methodmay be carried out using a computer processing arrangement comprising any numberof computer processors and memories for storing digital data.
[0015] In the present method, the impact of the programming on a robot’s expectedlife may be ascertained using robot joint condition parameters. 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. It should be noted that the robot joint condition parameter obtained by the method of the present disclosure is a modelled parameter, i.e., it is obtained by use of a computer- implemented model, however, the robot joint condition parameter is also a parameter which may be obtained on the basis of actual run-time data of a robot executing a robot control program. As will be made clear in the following disclosure, actual robot joint condition parameters obtained by execution of robot control programs in actualphysical robot arm systems may be used as training data for the artificial intelligencemodel presented in the present disclosure.
[0016] In the context of the present disclosure, an “operating instruction” may beunderstood as instructions designating particular 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. Anoperating instruction may be provided to the programming environment in variousformats, such as script lines, list of positions, list of objects including metadata describing object dimensions, and Open X-Embodiment datasets.
[0017] In the context of the present disclosure, a “robot control program” may beunderstood 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 operating instructions which when executed by a robot controller ensures that the robot arm moves according to target motions defined by the operating instructions.
[0018] In the context of the present disclosure, a “programming environment” is asoftware-implemented environment in which a developer is able to develop robotcontrol programs. The programming environment may be accessible to the user / developer through a user interface, such as a graphical user interface (GUI). Theprogramming 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.
[0019] In the context of the present disclosure, a “trained artificial intelligencemodel” (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 artificialintelligence models suitable for carrying out the computer-implemented method ofevaluating 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.
[0020] 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 a robot joint of the robot arm. The robot joint condition parameter may be derived from a state metric, or the robot joint condition parameter may be a representation of a state metric. State metrics will be described in details in the following. A purpose of the robot joint condition parameter may be to reflect a snapshot of the health of the joint, such as joint stresses, or the robot joint condition parameter may reflect the longevity of the robot joint, such as a remaining use life of the joint. By considering a plurality of robot joint condition parameters, such as one robot joint condition parameter for every robot joint of a robot arm, it may be possible to assess the overall state of health of the robot arm. For example, if the robot joint condition parameters reflect remaining use lives of robot joints (e.g., the duration until the next protective stop or failure occurs), it is possible to determine a remaining use life of a robot arm, as this is determined by the robot joint having the lowest remaining use life.
[0021] The robot joint condition parameter may be expressed in different ways, forexample by a state metric, or by parameters that may be derived based on the state metric. An example of a derived parameter may be a remaining use life of a robot joint. The remaining use life may for example indicate a number of program cycles left before maintenance of the robot joint is expected to be necessary, or a number of production days left until the maintenance is expected (based on e.g., knowledge of the number of program cycles that are typically executed per day). Another example of a robot joint condition parameter derived from a state metric is robustness.
[0022] In the context of the present disclosure, a “state metric” may be understoodas a variable or measure which may represent a state of a robot joint by indicating anamount 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.
[0023] In the following is presented ways of establishing a state metric based on datasourced from an operational robot arm. It should be noted that this is merely an illustrative example of how to establish a state metric, and that the state metric may also be derived using other variants of this example.
[0024] The state metric may be established, or derived, on the basis of a plurality ofsub-state metrics, wherein the plurality of sub-state metrics are obtained based on aplurality of discrepancies of a sequence of discrepancies. By sequentially monitoringa state variable relating to actuation of at least one robot joint of a robot arm, and by comparing the monitored state variable with an associated target state variable of a robot control program, the sequence of discrepancies, between the monitored state variable and the target state variable, may be obtained.
[0025] In the context of the present disclosure, a “state variable” may be understoodas 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., joint rotation in radians), joint velocity (e.g., in radians per second), joint acceleration (e.g., in radians per second squared), or joint moment (e.g., in newtons). As stated above, the state variable may be derivable from measured parameters. For example, the motor torque may be derived based on measured motor currents. It should be noted that other examples of state variables may be used, 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 designate the required robot state variables, i.e., target values, which may realize the desired trajectory. 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.
[0026] In the context of the present disclosure, “sequentially monitoring” may beunderstood as monitoring a state variable at multiple instances over time, for exampleas a time series, such as a time series across a preset frequency. For example, the statevariable may be monitored at multiple sampling points throughout a program cycle of the robot control program, such as monitored at fixed time intervals throughout theprogram cycle. For every sampling point of the state variable, a measured state variableis 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 statevariable ^^ and the target state variable ^^ (the subscript ^ representing a sampling pointnumber) using equation 1 here below. ^^ = |^^ − ^^| (1)
[0027] The above function (1) directly compares the monitored state variable withthe target state variable by subtracting the value of the target state variable in asampling point ^ from the value of the measured state variable in the same samplingpoint, whereby a discrepancy is provided for every sampling points.
[0028] Thus, by sequentially monitoring the state variable and comparing themonitored state variable with the associated target state variable for every point of measurement 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 be possible to gain insights into the wear pattern of the at least one robot joint throughout 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 suchoccurrences of discrepancies which are significant for the determination of the state ofhealth of a robot joint.
[0029] The sequence of discrepancies, obtained from sequentially monitoring thestate variable and comparing the monitored state variable with an associated target state variable, may contain a sequence of values (one value for every sampling point, e.g., for every sampling point throughout a program cycle of a robot control program). 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 a robot control program, the robot may be operated in accordance with a program cycle of the robot control 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 may be derivedderived – one sub-state metric for every sampling point in the program cycle. Derivinga 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 slow movementsof the robot joint which does not stress the robot joint, however, the actuation may alsocomprise 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, a subset of the derived state metrics may be used in the assessment of a robot joint condition parameter, for example a subset of state metrics, e.g., a single state metric, representative of such decisive events, such as the greatest alpha-value of a sequence.
[0030] Each sub-state metric of said plurality of sub-state metrics may be derivedusing 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 neighbouring sub-state metric of said plurality of sub-state metrics. By a neighbouring sub-state metric is understood a sub-state metric associated with a neighbouring 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).
[0031] 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.
[0032] To evaluate the severity of epsilon (see equation 1 above) relative to the robotjoint composition, the result is scaled according to the weighting function(omega) in equation 2 here below. Please note that the subscript of omega indicatesthat omega is velocity- and temperature dependent.
[0033] This equation is a combination of two terms, where the left-hand termdepends on the absolute velocity, ^ (radians per second), and a constant defining theabsolute maximal 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 tothis weighting function, epsilon is penalized such that high-velocity rotations of the atleast 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 intemperature, 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. Alpha, as value, denotes the instantaneous quantified stress exerted in a single entire joint composition. With a reference to an initial alpha value, alpha can be used as a composite health metric.
[0034] In accordance with the type of the robot joint for which alpha is calculated,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 byincorporating the maximum torque ^^^^, the gear ratio ^ (e.g., number of teeth), anda torque constant ^^ which describes the correlation between electric input in the jointmotor and torque, ^, provided by the joint motor of the at least one robot joint (see equation 4 below). ^= ^ ∗ ^^ ∗ ^ (4)
[0035] It should be noted that equation 3 has been derived in respect of the statevariable 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 from equation 3, the sub- state metrics are calculated recursively, meaning that for every sub-state metric ^^the neighboring sub-state metric ^(^^^)is subtracted.
[0036] As indicated above, other examples of robot joint condition parameters arederivable from the state metric, such as remaining use life and robustness.
[0037] Attributing health related significance to the state metric may includeestablishing a reference point for the state metric. Such a reference point may beachieved through acquisition of empirical data derived from a series of accelerated lifetests 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 the baselineand α[^^^]is contingent on the particular robot joint and robot control programcalculated with outset in equation 3 above. For ^̅ is used a mean value from a data setof healthy robot joints, before the supremum Ω(^), assuming an average outset 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.
[0038] The general equation 5, and the more specific equation 6) above may bereferred 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.
[0039] 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. 100 (7)where ^10 = ^^ ^^ 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 robot controller.^10 is divided by ^^ and multiplied with 100 to obtain the fraction of life spent as apercentage. ^^ denotes the percentical representation. To estimate the end of lifeexpected for the baseline, alpha value at ^^ = 100% may be extrapolated, and thus bycomparing the temporal evolution of alpha with the alpha value at ^^ = 100%, it maybe found at what program cycle number, ^, that value is reached, and this may serve to define the remaining use life.
[0040] Another example of a robot joint condition parameter is 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 that thispercentage of robot arms are not experiencing protective stops or otherwisebreakdowns, alpha is the state metric, lambda is the lambda value also shown in respectof equation 5 above, and fc denotes the distribution of alpha values of faulty robots.
[0041] As illustrated by the above, a robot joint condition parameter, such as a statemetric, 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. This realization may be used for the purpose of methods according to the present disclosure. As an example, the robot joint condition parameter, such as state metric, may be used as a ground truth for the training of the artificial intelligence model employed by the method of evaluating a robot control program according to the present disclosure.
[0042] According to an embodiment, said method is carried out prior to a runtime ofsaid robot control program. In other words, the method may be carried out before therobot control program is being executed on a robot controller for controlling a robotarm. Carrying out the present computer-implemented method of evaluating a robotcontrol program for a robot arm at a pre-runtime stage is advantageous in that the robot control program may be evaluated such that sub-optimal operating instructions of the robot control program may be identified and improved upon by a user carrying out the programming before the robot control program is executed on a robot controller.
[0043] According to an embodiment, the robot joint condition parameter may berepresented as a discretized value of a state metric. The robot joint parameter may for example be discretized value of a state metric. For example, a calculated state metricmay be discretized into the integers 0, 1 and 2, however other values may also be used according to other examples. Discretizing the alpha values in this way may be advantageous in that the trained artificial intelligence model of the present disclosuremay tackle the task of outputting robot joint condition parameters as a classificationproblem. That is, the data used for training the artificial intelligence model may be used to calculate alpha values, and these alpha values may be discretized to the nearest integer number. These integers may then be used as ground truth for the training of the artificial intelligence model, whereby the trained artificial intelligence model may output robot joint condition parameters as integer values associated with specific health state definitions (e,g., integer “0” indicating a robot joint exceeding its expected longevity, integer “1” indicating a robot joint being on par with its expected longevity, and integer “2” indicating a robot joint which is projected to fall short of its expected longevity).
[0044] According to an embodiment, said method comprises a step of representingsaid one or more robot joint condition parameters in said programming environment.
[0045] The method may comprise a step of representing the one or more robot jointcondition parameters, provided by the artificial intelligence model, in the programming environment. Representing one or more robot joint condition parameters may for example be understood that the one or more robot joint condition parameters may be displayed directly in the programming environment such that the parameters appear on an equal footing to the operating instructions of the robot control program. As an example, a robot joint condition parameter may be shown directly in the programming environment next to an operating instruction (e.g., a script line), thereby associating the robot joint condition parameter with that operating instruction. For example, the robot joint condition parameter may be represented directly by a value of the parameter itself, however other representations of the parameter may also be employed according to the present invention. Alternatively, to displaying the value itself, the parameter may also be represented by indicators, such as colour indicators, depending on the severity (or value) of the parameter. As an example, if the robot joint condition parameter reflects robot joint stress (with greater values of the parameterindicating higher joint stresses), then a red-coloured indicator may be shown next to the script line of the robot control program in the programming environment, indicating that this specific script line poses significant joint wear to any given joint(s) when executed by a robot. Likewise, an orange-coloured indicator may indicate a less severe value of the robot joint condition parameter. The above example of using colour indicators is merely one alternative way of representing robot joint condition parameters and that other ways of representing the parameters are also feasible including use of other types of visual indicators or audial indicators in the programming environment.
[0046] Representing the one or more robot joint condition parameters in theprogramming environment is advantageous in that a robot program developer may become aware of the implications of the operating instructions (e.g., script lines) in the environment where the development of the robot control program takes place.
[0047] According to an embodiment, said one or more robot joint conditionparameters comprises one or more remaining use lives.
[0048] The one or more robot joint condition parameters comprises one or moreremaining use lives. The one or more remaining use lives may be provided on the basis of equation 7 of the present disclosure. The one or more remaining use lives may represent the remaining use life of individual robot joints of a robot arm, such as one remaining use life for every single robot joint of the robot arm, however, the one or more remaining use lives may advantageously also represent an overall remaining use life of the entire robot arm, which is based on the robot joint having the shortest remaining use life. The remaining use life may be expressed in a number of remaining program cycles or even an estimate of a number of days until service / maintenance is required (which may be estimated using knowledge of the number of daily program cycles typically executed by the robot arm).
[0049] According to an embodiment, said automatically inputting of said one or moreoperating instructions comprises extracting one or more features from said one or moreoperating instructions, and wherein said one or more features are used as input in said trained artificial intelligence model.
[0050] The operating instructions may be facilitated in numerous ways using variousrobot 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 (or encoded) in the operating instructions, however, the feature extraction (or scoping) may also include calculation of kinematic features. As an example, the operating instructions may comprise a move function which is a function instructing a robot armto move from one set of coordinates to another set of coordinates at any given speedor acceleration. The move function may be represented by the following exemplary function: MoveTo(^^^^^^^^ = ^̇, ^^^^^^^^^^^^ = ^̈)where ^^^ represents a starting position of the joint i, and ^^^represents an endingposition of the joint i (i denoting a joint index).
[0051] Calculations may be performed to obtain kinematic information withpositional input configurations, such as joint rotations in radians, and parameters like payload, velocity and acceleration. Such calculations may for example be made using the above move function as input. The kinematic information obtained may for example be the robot arm configuration at the start and end of its task.
[0052] Below is shown table (Table 1) featuring a non-exhaustive list of featureswhich 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 endposition, 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].
[0053] The features may apply to individual robot joints of the robot arm.
[0054] 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.
[0055] According to an embodiment, said one or more features, such as a pluralityof features, are selected from the list of velocity, acceleration, start position of one ormore robot joints, end position of one or more robot joints, tool center point travel distance, tool center point distance to robot base at start of trajectory, tool center point distance to robot base at end of trajectory.
[0056] 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).
[0057] According to an embodiment, said method comprises providing said one ormore operating instructions to a path planning module, said path planning modulebeing 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.
[0058] The input provided to the artificial intelligence model may not only befeatures extracted from operating instructions, as the input may also encompass datawhich is generated by simulating the behaviour of a robot arm executing the operatinginstructions. Furthermore, other types of state data which has relevance to health mayadditionally 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 alinear 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 suchmovements 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 more robot 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. A more comprehensive list of target state variables which may be output by the path planning module includes at least the following values: windowsize (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).
[0059] Below is show a list of various target state variables along with methods ofcalculating these target 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 of individual joints. Accordingly, each joint specific row in the table corresponds to a
[0060] The target state variables may apply to individual robot joints of the robotarm.
[0061] Using target state variables as additional input to the AI model is particularlyadvantageous 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 conditionparameter(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.
[0062] Accordingly, both the one or more operating instructions and one or moretarget 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.
[0063] According to an embodiment, said one or more target state variables areselected from the list of current, torque, momentum, rate of change of momentum, velocity, acceleration, trajectory distance, payload mass, trajectory shape, executiontime, tool center point coordinates, or distance between robot joint and robot base. Theone or more target state variables may be selected from the list of current, 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.
[0064] According to an embodiment, said method comprises providing a plurality oftarget state variables as input to said trained artificial intelligence model.
[0065] A plurality of target state variables may be provided as input to the trainedartificial 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 leasttwenty 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.
[0066] According to an embodiment, said one or more target state variablescomprises current.
[0067] According to an embodiment, said one or more target state variablescomprises torque and / or momentum.
[0068] The one or more target state variables may advantageously comprise any ofcurrent, 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.
[0069] According to an embodiment, said step of providing one or more operatinginstructions comprises providing a plurality of operating instructions, and wherein said step of automatically inputting said one or more operating instructions into said trained artificial intelligence model comprises automatically inputting a plurality of operating instructions into said trained artificial intelligence model. The plurality of operating instructions inputted to the trained artificial intelligence model may correspond to the plurality of provided operating instructions, or at least a subset of the providedoperating instructions. The plurality of operating instructions may form part of asequence of operating instructions. Inputting a plurality of operating instructions intothe trained artificial intelligence model is advantageous in that the outputted one ormore robot joint condition parameters may become more relevant and accurate, inparticular because the plurality of operating instructions as a combination may providecontextual information to the trained artificial intelligence model and also since use ofadditional data input may typically provide better results with such models. The plurality of operating instructions, such as a sequence of operating instructions, in combination may provide a better picture of the robot control program to the trained artificial intelligence program, and in particular the relationship between one operatinginstruction and other operating instructions of the robot control program may beconveyed to the trained artificial intelligence model thereby providing the contextualinformation. It should be noted that although a plurality of operating instructions, such as a plurality of script lines of the robot control program, is inputted to the trained artificial intelligence model, this does not exclude the possibility that the output of the trained artificial intelligence model, i.e., the one or more robot joint condition parameters only relates to one of the provided operating instructions. In such a situation, it may be that an evaluation is only performed for the purpose of determining robot joint condition parameter(s) for one operating instruction but that other operating instructions are also taken into account as contextual information for the trained artificial intelligence model. However, it should also be understood that the one or more robot joint condition parameters may also relate to a sequence of operating instructions taken as a whole.
[0070] According to an embodiment, said step of automatically inputting said one ormore operating instructions comprises extracting a plurality of features from said one or more operating instructions and providing said extracted features to said trainedartificial intelligence model in a vector-based format. The features extracted from theone or more operating instructions may be provided to the artificial intelligence model in a vector-based format. One operating instruction may be represented by one corresponding vector of extracted features relating to that operating instruction. In the case of inputting a plurality of operating instructions, each operating instruction of the plurality of operating instructions may be represented by its own corresponding vector of extracted features. Thus, there may be a multiple vector input to the trained artificial intelligence model, with each vector representing a corresponding operating instruction of the robot control program. The length of the vector depends on the number of features being extracted from the associated operating instruction.
[0071] 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.
[0072] The trained artificial intelligence model may comprise an embedding layerbeing 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 theconstants associated with the approximation function(s) may be re-calibrated. Forexample, 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.
[0073] According to an embodiment, said trained artificial intelligence comprises anattention 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 condition parameter, e.g., joint stress ^, are assigned lower weights, while those that align more 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 theapproximation functions coherence with increasing alpha values. Below is presenteda non-exhaustive list of embedding functions and weights for various features and target state variables (referred to simply as features) according to an example. Thebelow functions are of the type Pass-Through functions meaning that they pass on theinput as the output. Feature Embedding functionAttention ^^^^^ ^^^^^^^^(^)^^^^(^) ^^^^ ^ ^^^^^^ ^^^^^^^^ (^) = ^^^^^ ^ ^^^^^^^ (^) = ^ ^^^^^^^^^^^ ^ ^^^^^^^ (^) = ^ ^^^^^^^^ ^[^]^ (^) = ^ 0.5027Table 3: List of “pass-through” embedding functions and their associated weights (attention). Please note that
[0074] Below is presented another non-exhaustive list of embedding functions andweights 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).
[0075] 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.
[0076] Below is presented another 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 exponential functions. Feature Embedding functionAttention ^^^^^ ^^^^^^^^(^)^^^^(^) ^^^^ ^[^^^^] ^∗^^.^^^^ (^) = 0.000186 ∗ ^ ^^ 0.4931^ ^[^]^ (^) = 0.0144406 ∗ ^^∗^.^^^^^^ 0.2727^ ^[^]^ (^) = 0.007659 ∗ ^^∗^.^^^^^^ 0.4663^ ^[^] ^∗^.^^^^^^^ (^) = 0.017037 ∗ ^ 0.2626^(^,^)^ ^^(^,^)^(^) = 0.00 ^∗^.^^^^^^ 0.4545^ 6781 ∗ ^^^̇^ ^[^^̇^] ^∗^.^^^^^^^ (^) = 0.007607 ∗ ^ 0.4162Table 5: List of exponential embedding functions and their associated weights (attention).
[0077] Below is presented another non-exhaustive list of embedding functions andassociated 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).
[0078] Below is presented yet 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 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).
[0079] It should be noted that the embedding functions and scalar values throughouttables 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 functionsshown in tables 3-7 are normalized and clamped, meaning that they convert feature values to a scale between 0 and 1.
[0080] According to an embodiment, said trained artificial intelligence modelcomprises a machine learning model.
[0081] Examples of suitable machine learning models may include stochasticgradient descent (SGD), logistic regression, decision trees such as eXtreme Gradient Boosting (XGBoost), RandomForests, and Extremely Randomized Trees, 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).
[0082] According to an embodiment, said trained artificial intelligence modelcomprises a deep learning model.
[0083] The trained artificial intelligence model may be a deep learning model. By adeep 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).
[0084] According to an embodiment, said deep learning model comprises afeedforward multi-layered perceptron model.
[0085] 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 thatencapsulates 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 corrective behaviour to the architecture, where the final model may be trained to discern which of 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.
[0086] It should be noted, that according to embodiments of the invention, the trainedartificial 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.
[0087] XGBoost and MLP have distinct underlying structures and learningmechanisms. XGBoost, a gradient-boosting model, constructs decision trees, whileMLP is a neural network. This diversity may result in a more robust model capable of capturing various data aspects.
[0088] According to an embodiment, said trained artificial intelligence model isimplemented on a server network.
[0089] The trained artificial intelligence model may be implemented (or hosted) ona server network comprising one or more servers, for example on an HTTP server or on a TCP server. The trained artificial intelligence model may be hosted as a service. Hosting the model on a server network is advantageous in that a server network may provide computational power, scalability, and flexibility needed to train and deploy such models efficiently. Thereby, fewer computational resources may be required bythe system at which a developer is evaluating robot control programs according to the present disclosure, and the method according to the present disclosure may be implemented on a greater number of computing systems.
[0090] According to an embodiment, said method comprises a further step ofupdating said one or more operating instructions to provide one or more updated operating instructions.
[0091] The method may comprise an additional step of updating the operatinginstructions in response to the representing of the robot joint condition parameters. Updating the one or more operating instructions following the evaluation scheme provided by the present method is advantageous in that the evaluation may revealweaknesses in the one or more operating instructions which may be improved byupdating the one or more operating instructions. Thereby maintenance needs may be postponed, and costs saved. For example, the one or more robot joint condition parameters provided by the trained artificial intelligence model may reveal that execution of the one or more operating instructions by a robot arm may impose unnecessary stress or wear on the robot joints. A robot program developer may then, based on own insight or based on recommendations provided in the programming environment, fine tune the operating instructions, such as reducing joint acceleration or joint rotational speed, such that the updated operating instructions, when executed on a robot controller, causes less wear or stress on the particular robot joints. Updating the one or more operating instructions at this step, i.e., after the evaluation is performed according to the present method, is advantageous in the updates may be made prior to execution of the robot control program on a robot controller controlling a robot arm. This may have the profound effect that robot arms do not have to execute robot cycles imposing unnecessary wear or stresses on robot joints before any adjustments are made, which would otherwise be the case if the adjustments are made following an inspection of the robot health where the wear has may already be evident. Accordingly, the need of maintenance may be reduced.
[0092] According to an embodiment, said method comprises automatically inputtingsaid one or more updated operating instructions into said trained artificial intelligencemodel such that one or more updated robot joint condition parameters are provided by said trained artificial intelligence model, and wherein said updated robot joint condition parameters are represented in said programming environment.
[0093] The one or more updated operating instructions may be provided to thetrained artificial intelligence model to obtain updated robot joint condition parameters. Doing so is advantageous in that it may be possible to assess whether the changes made to the operating instructions have improved the quality of the robot control program with respect to the robot joint condition parameters of the previous iteration. Thereby, a developer of the robot control program may obtain confirmation that the updates to the operating instructions have successfully remedied deficiencies of the operating instructions and may thereby become more aware of the impact of the programming on the robot.
[0094] According to an embodiment, said one or more robot joint conditionparameters comprises a state metric.
[0095] The one or more robot joint condition parameters may comprise a statemetric as defined throughout any of the preceding paragraphs. If a plurality of robotjoint condition parameters are outputted, the plurality of robot joint condition parameters may comprise a plurality of state metrics.
[0096] According to an embodiment, said one or more robot joint conditionparameters comprises a parameter derivable from a state metric.
[0097] The one or more robot joint condition parameters may comprise one or moreparameters derivable from a state metric as defined throughout any of the preceding paragraphs. Examples of such derivable parameters may include remaining use life and robustness. If a plurality of robot joint condition parameters are outputted, the plurality of robot joint condition parameters may comprise a plurality of parameters derivable from state metrics.
[0098] According to an embodiment, said trained artificial intelligence model istrained on the basis of runtime data obtained from a plurality of robot arms.
[0099] The trained artificial intelligence model may be trained on the basis ofruntime data, which in the context of the present disclosure may include operatinginstructions which have already previously been executed in respect of actual robotarms. Runtime data may also state variables including target state variables and measured state variables. On the basis of such runtime data, a dataset for the training of the artificial intelligence model may effectively be provided. The dataset may include training data in respect of a plurality of robot arms, such as in the hundreds of robot arms, for example in the thousands of robot arms. Preferably, the plurality of robot arms also includes different types / models of robot arms. For any given robot arm reflected in the dataset any number of operating instructions may have been executed on that robot arm whereby the dataset may include hundreds or thousands of operating instructions.
[0100] An exemplary dataset which has yielded satisfying training results of theartificial intelligence model includes data sourced from 2336 operational robots, including 101 robots of a first model, 854 robots of a second model, 707 robots of a third model, and 674 robots of a fourth model. The data of this dataset was sourced from relatively new robots that had been tested to verify their health condition, placing them in the category of optimally functioning and healthy robots. Considering that the data set is structured such that each row corresponds to a robot joint indexwhere^ ∈ [0, … ,5], and each column represents a feature associated with that joint during theexecution of a single program line (or script line), this results in a dataset having 56405 unique rows representing 9800 distinct movement commands or program lines. These features (features and target state variables) are presented in tables 1 and 2 above, and are normalized against model-specific calibration constants, facilitating the comparison of values across different joint sizes.
[0101] According to an embodiment, said plurality of robot arms represent healthyrobot arms.
[0102] In the context of the present disclosure, a “healthy robot arm” may beunderstood as a robot arm exhibiting substantially no indications of deterioration orwear and functions within prescribed parameters established through calibration.These parameters may comply with anticipated resource consumption and expected performance characteristics, including, but not limited to, precision and repeatability.A robot arm may be deemed healthy if it adheres to these established boundaries andmaintains its expected performance.
[0103] According to an embodiment, said trained artificial intelligence model istrained based on calculated robot joint condition parameters as ground truth.
[0104] The trained artificial intelligence model may be trained using runtime dataobtained from a plurality of robot arms. The runtime data, including e.g., measured state variables and target state variables, may be used to calculate one or more robot joint condition parameters, such as one or more state metrics. The one or more calculated robot joint condition parameters may be used as a ground truth for the trained artificial intelligence model. Ground truth may be considered the true value ofa learning goal or characteristic.
[0105] According to an embodiment, said robot program development software isarranged to provide alerts based on said one or more robot joint condition parameters.
[0106] The robot program development software may be arranged to provide alertsbased on the one or more robot joint condition parameters. Providing such alerts isadvantageous in that it may improve awareness of robot arm limitations directly in the process of developing control programs, as a developer may receive a direct warning that the robot control program is instructing a robot arm to perform movements resulting in unnecessary wear of robot joint(s). The alerts / warnings may be issued by the robot program development software, such as in the programming environment,when at least one robot joint condition parameter reflects a value which is within acritical range of values. For example, if the robot joint condition parameter is a state metric (i.e., a value), an alert may be issued once the state metric is above a certain threshold value.
[0107] According to an embodiment, said robot program development software isarranged to provide one or more recommendations based on said one or more robot joint condition parameters and at least one optimization criterion.
[0108] The robot program development software may be arranged to provide one ormore recommendations based on the one or more robot joint condition parameters. The one or more recommendations may span between recommendations relating to an entire robot arm and recommendations relating to a single robot joint of a robot arm. Examples of recommendation may be to slow down overall movements of the robot arm, changing a rotational speed of a single robot joint, utilizing softer trajectoryshapes such as blends (blending movements of different move functions), changingthe payload, changing the joint acceleration, changing the movement distance, changing waypoint locations, or changing the break time. The recommendations may be provided directly in the programming environment, thereby facilitating live feedback to a robot control program developer.
[0109] The recommendations may be based on at least one optimization criterion,such as longevity of a robot joint, longevity of a robot arm, robot arm speed, robot arm trajectory waypoints, time, or manufacturing KPI’s such as throughput, scheduling and product quality. The recommendations may also be based on two or more of the above- stated criterium. Alternatively, recommendations may be based on configurable criteria or KPI’s (Key Performance Indicators), such as energy efficiency, cycle time, throughput, or footprint.
[0110] According to an embodiment, said one or more robot joint conditionparameters are referring to one or more operating instructions in said programming environment.
[0111] The one or more robot joint condition parameters may be referring to one ormore operating instructions in the programming environment. The referring may be achieved through e.g., visual cues in the programming environment or audial cues. For example, an operating instruction in the programming environment may be accompanied by a visual warning or other type of visual cue that the operating instruction, if executed on a robot controller, may result in a robot joint condition parameter which is too high, thereby causing unnecessary stress / strain on joints of the robot arm.
[0112] According to one embodiment, said one or more robot joint conditionparameters refers to one operating instruction of said one or more operating instructions.
[0113] The one or more robot joint condition parameters may refer to one operatinginstruction of said one or more operating instructions. Obviously, if only a single operating instruction of a robot control program is provided in the first place, then the one or more robot joint condition parameters may only refer to that operating instruction. However, if more operating instructions are provided, then the one or more robot joint condition parameters may still only refer to one of these operating instructions. This may be due to a user only being interested in evaluation of that one operating instruction and / or it may be because the other operating instructions are used as contextual information to the trained artificial intelligence model.
[0114] According to another embodiment, said step of providing one or moreoperating instructions comprises providing a plurality of operating instructions, andwherein said one or more robot joint condition parameters refers to a plurality ofoperating instructions.
[0115] The one or more robot joint condition parameters may refer to a plurality ofoperating instructions considered as a whole. In such a situation, a plurality of operating instructions have been used as input to the trained artificial intelligence model, and in that case the operating instructions may together provide improved contextual information to the trained artificial intelligence model with respect to the situation where only a single operating instruction is provided to the model. Having the one or more robot joint condition parameters referring to a plurality of operating instructions may be advantageous with respect to user presentment, if for instance a user performing the programming prefer receive programming feedback on a more general level.
[0116] According to an embodiment, said one or more operating instructionscomprises one or more script lines.
[0117] By a script line is understood lines of code written in a programminglanguage, i.e., program codes. Being able to input operating instructions in the trained artificial intelligence model in the form of script lines is advantageous in that the method may be employed directly on the level of source code of the robot control program, whereby the method may be carried out before any compilation steps are carried out. Moreover, implemented the method at source-code-level is advantageous in that this is also the level where developers are directly working when developing robot control programs whereby transparency of
[0118] According to an embodiment, said robot control program is executable on arobot controller, and wherein said robot program development software is executed on a computer processing arrangement, wherein said robot controller is different from said computer processing arrangement.
[0119] The robot control program may be executable on a robot controller, and therobot program development software may be executed on a computer processing arrangement different from said robot controller. Thereby may be achieved that the development of the robot control program may be performed distant from the robot controller, i.e., distant from the robot arm system on which the robot control program is intended to be executed. For example, the computer processing arrangement may becloud-based. A robot controller may be understood as any kind of data processingarrangement capable of executing a robot control program. The robot controller may be a discrete data processor, or the robot controller may be a distributed data processing system. 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 is controlled according to a robot control program executed by the robot controller.
[0120] According to an embodiment, said method comprises a step of executing saidone or more updated operating instructions by a robot controller controlling said robotarm.
[0121] Accordingly, thereby is also provided a method of controlling a robot arm,which is based on an updated robot control program, i.e., based on an optimized robot control program. Thereby it may be ensured that less strain is applied to the robot arm.
[0122] Another aspect relates to a method of operating a robot arm, comprising:- providing an evaluated robot control program, wherein said evaluated robot controlprogram is a robot control program which has been evaluated using the method according to any of the preceding paragraphs; and- executing said evaluated robot control program using a robot controller controllingsaid robot arm, thereby operating said robot arm in accordance with operating instructions of said evaluated robot control program.
[0123] In the present context, an “evaluated robot control program” may beunderstood as a robot control program which has undergone evaluation using the computer-implemented method of evaluating a robot control program for a robot arm according to any of the preceding paragraphs of the present disclosure. The evaluated robot control program may represent a robot control program in a more finalizedversion, for example in an updated version following an evaluation of a previousversion. As an example, operating instructions of a robot control program may be provided in the programming environment as discussed above. At this stage the robot control program may be regarded as being in a first version. Thereafter the robot control program has been evaluated according to the computer-implemented method of the present disclosure. Based upon this evaluation, a user / programmer may realize that one or more operating instructions, such as script lines, of the robot control program needs updating to provide one or more improved robot joint condition parameters. After performing these updates (i.e., changes), the robot control program is in a second version. Both the first version (as evaluated) or the second version (as updated based on the evaluation) may be referred to as an evaluated robot control program.
[0124] Executing the evaluated robot control program on a robot controller of a robotarm system controlling a robot arm it may be ensured that the robot is operated in sucha way that unnecessary stress is not imposed on robot joints of the robot arm. This may be ensured by way of e.g., the evaluation of the robot control program revealing that there are no longevity issues with the robot control program or by way of the robotcontrol program being updated with respect to longevity following an evaluation.
[0125] Another aspect of the invention relates to a computer program comprisinginstructions which, when executed by a computer, cause the computer to carry out the method of any of the preceding paragraphs.
[0126] A computer program (or computer program product) may compriseexecutable instruction which when executed by a computer processing arrangement, e.g., a computer, cause the computer to carry out methods of evaluating a robot control program according to the present disclosure. The computer may be a dedicated computer or a distributed computer system. For example, the entire method may be carried out on a computer system where a developer develops robot control programs,or the method may be executed using a plurality of computer processing arrangements.For example, the trained artificial intelligence model may be hosted on one or more server computers, whereas development of the robot control program may be carried out on another computer processing arrangement communicatively coupled to the one or more server computers. The computer program is advantageous for at least the same reasons provided in respect of the method of evaluating a robot control program according to the present disclosure
[0127] Another aspect of the invention relates to a computer processing arrangementconfigured to carry out the method according to any of the preceding paragraphs.
[0128] By a computer processing arrangement may be understood a dedicatedcomputing system or a distributed computing system. The computer processing arrangement may comprise any of one or more computer processing units (CPUs), one or more graphical processing units (GPUs), one or more random access memories (RAMs), read-only memories (ROMs), storage controller(s), network interface controller(s), input / output controllers, networks, mass storage devices, and operating system(s), or other computer hardware commonly used in computer systems.
[0129] The computer processing arrangement may comprise a graphical userinterface (GUI). The graphical user interface may be facilitated by use of one or more display devices communicatively coupled to the computer processing arrangement.
[0130] According to an embodiment of the invention, the computer processingarrangement may form part of a robot system.
[0131] According to an embodiment, said computer processing arrangement isarranged to carry out the method according to any of the preceding paragraphs.
[0132] The computer processing arrangement may be arranged to carry out themethod of evaluating a robot control program according to the present disclosure. The computer processing arrangement may be arranged to carry out such methods by storing a computer program according to the present disclosure using at least one data storage device.
[0133] Another aspect of the invention relates to a method of training an artificialintelligence model for evaluating a robot control program, the method comprising: providing a plurality of operating instructions and a plurality of associated robot joint condition parameters, wherein said operating instructions have been executed on robot arm systems and wherein said robot joint condition parameters have been calculated on the basis of said execution, wherein said operating instructions and associated robot joint condition parameters form part of a training data set; providing an artificial intelligence model; training said artificial intelligence model based on said training data set to obtain said trained artificial intelligence model, wherein said robot joint condition parameters are used as ground truth for said training.
[0134] Provided is a method of training an artificial intelligence model to provide atrained artificial intelligence model for evaluating a robot control program. Training an artificial intelligence model in this way is advantageous in that a trained artificialintelligence model may be provided, which model may be able to evaluate a robot control program which is advantageous for the reasons described in relation to themethod of evaluating a robot control program.
[0135] The method of training the artificial intelligence model includes providing atraining data set comprising a plurality of operating instructions of robot control programs which have already been executed on robot arm systems (e.g., executed by robot controllers controlling respective robot arms). The execution of the robot control programs not only generates features / target state variables but also measured state variables (variables reflecting the actual movements made by the robots). Using target state variables and measured state variables, it may be possible to calculate a robot joint condition parameter such as the state metric explained in the above, or other parameters derivable from such a state metric. Thus, the training data set comprises a plurality of operating instructions, and for each operating instruction in the set, an associated robot joint condition parameter. In that sense, the operating instructions themselves (or features extracted therefrom) may be used as input data to the training of the artificial intelligence model, and the associated robot joint condition parameters used as ground truth (e.g., the true value of a learning goal or characteristic).
[0136] One training data set which have been used to train an artificial intelligencemodel comprises thousands of script lines (or operating instructions), of various types,such as of the types MoveJ, MoveL, MoveC, and MoveP. Examples of such script linesmay be: MoveJ(point=point_0, acc=10.47, vel=0.95) MoveJ(point=point_0, acc=9.54, vel=0.30, blend=0.20) The first of these exemplary script lines is associated with a maximum alpha value of 4.11, whereas the second exemplary script line is associated with a maximum alpha value of 0.06. The alpha values for these two examples have been retrieved from a base joint of an UR5e robot. Clearly, other alpha values may also be generated in respect of other robot joints. Other examples of script lines in the data set may be:MoveL(pickup_pos, acc=1.20, vel=0.25) MoveJ(point_1, acc=1.39, vel=1.04)
[0137] The above two other examples of script lines have associated robot jointcondition parameters of 0 and 2 respectively (in this example, the values are discretized).
[0138] It should be noted that the full training data set may comprise hundreds orthousands more script lines of the kind illustrated above, and that a skilled person may also be able to generate other similar training data sets using various command lines having various parameter values (for example differing in velocity and accelerations). Indeed, any training data set in which operating instructions for a robot arm are associated with robot joint condition parameters may be usable for training an artificial intelligence model for the purpose of evaluating a robot control program.
[0139] According to an embodiment, said method of training an artificial intelligencemodel comprises extracting features of said plurality of operating instructions to provide input features, and wherein the method comprises correlating said input features with said calculated robot joint condition parameters to establish one or more feature approximation functions, and wherein said provided artificial intelligence model comprises said one or more feature approximation functions.
[0140] The extraction of the features of the operating instructions, and calculation ofrobot joint condition parameters make it possible to correlate a feature with a robot joint condition parameter, and thereby generate a feature approximation functionmapping values of a feature with a robot joint condition parameter. Advantageously,the artificial intelligence model provided comprises the one or more feature approximation functions (i.e., the model takes into account the approximation functions). By using such approximation functions, the artificial intelligence model may be trained to better comprehend the significance of input features to the robot joint condition parameters, thereby yielding higher accuracy in predictions provided by the model.
[0141] According to an embodiment, said robot joint condition parameters arediscretized values.
[0142] The robot joint condition parameters are advantageously provided asdiscretized values, whereby the artificial intelligence model may be considered as a classification model. Discretizing the robot joint condition parameters of the data set is advantageous in that the robot joint condition parameters which may be provided by the trained artificial intelligence model are also discretized values which are easier to comprehend as the output of the model may be one of a few values only. For example, the robot joint condition parameter may be discretized in one of the integers of “0”, “1”, and “2”.
[0143] According to a preferred embodiment, the artificial intelligence model is astacked corrective feedforward model comprising three feedforward Multi-Layer Perceptrons (MLPs). Also, according to a preferred embodiment, the artificial intelligence model comprises an embedding layer and an attention layer. The first MLP may be trained on data processed by the embedding layer and attention layer to discern the correlation with the robot joint condition parameter. The second MLP may be trained on the same data set, augmented with the output of the first MLP, to comprehend the correlation of the data and the first output with the robot joint condition parameter. The third MLP may be trained on the outputs of the first two MLPs to understand the correlation of these outputs with the ground truth.
[0144] However, it should be noted that other types of artificial intelligence modelmay be used instead of the stacked corrective feedforward model, and that these models may be trained on identical data, but without the initial processing through the embedding and attention layers. Such models may be trained specifically on the raw state variables of the robot.
[0145] Yet another aspect of the invention relates to a use of a trained artificialintelligence model for evaluating a robot control program, said artificial intelligence model being trained according to the method of any of the preceding paragraphs.
[0146] A trained artificial intelligence model which have been trained accordingto the method of training according to the present disclosure may be usable in evaluating robot control programs, and accordingly, the use of such a trained artificial intelligence model is advantageous for at least the same reasons provided in respect of the method of evaluating a robot control program according to the present disclosure. The drawings
[0147] For a more complete understanding of this disclosure, reference is now madeto the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts. The drawings illustrate embodiment of the invention and elements of different drawings can be combined within the scope of the invention: fig.1 illustrates a illustrates a robot system 100 as known in the prior art, fig.2 illustrates a schematic cross-sectional view of a robot joint;fig. 3 illustrates a structural diagram of a robot arm;figs. 4-5 illustrate a programming environment of a robot program developmentsoftware according to an embodiment of the invention; figs. 6-9 illustrate ways of providing robot joint condition parameters useful for the understanding of the present invention; fig.10 illustrates an input data model according to an embodiment of the invention; fig.11 illustrates a target data model according to an embodiment of the invention; figs. 12a-b illustrates a stacked corrective feedforward model employed in embodiments of the present invention; fig. 13 illustrates a stacked corrective feedforward model employed in embodiments of the present invention;figs. 14a-d illustrates correlations of input features with robot joint conditionparameters, which correlations are utilized in embodiments of the present invention;fig. 15 represents a dataset underlying the feature approximations seen in figs. 14a-d;figs. 16a-h illustrates the performance of trained artificial intelligence models used invarious embodiments of the invention; andfig. 17 illustrates steps of a computer-implemented method of evaluating a robotcontrol program according to an embodiment of the invention. Detailed description
[0148] The present invention is described in view of exemplary embodiments onlyintended to illustrate the principles and implementation of the present invention. The skilled person will be able to provide several embodiments within the scope of the claims which may not be directly illustrated in the figures or directly described below.
[0149] Fig. 1 illustrates a robot system 100 as known in the prior art. The robotsystem comprises at least one robotic arm 101 and at least one robot controller 106 configured to control the robotic arm. The robotic arm 101 comprises a plurality of robot joints 102a, 102b, 102c, 102d, 102e, 102f connecting a robot base 103 and a robot tool flange 104. A base joint 102a is configured to rotate the robotic arm around a base axis 105a (illustrated by a dashed dotted line); a shoulder joint 102b is configured to rotate the robotic arm around a shoulder axis 105b (illustrated by a dashed dotted line); an elbow joint 102c is configured to rotate the robotic arm around an elbow axis 105c (illustrated by a dashed dotted line); a first wrist joint 102d is configured to rotate the robotic arm around a first wrist axis 105d (illustrated by a dashed dotted line) and a second wrist joint 102e is configured to rotate the robotic arm around a second wrist axis 105e (illustrated by a dashed dotted line). Robot joint 102f is a robot tool joint comprising the robot tool flange 104, which is rotatable around a tool axis 105f (illustrated by a dashed dotted line). The illustrated robotic arm is thus a six-axis robotic arm with six degrees of freedom with six rotational robot joints, however it is noticed that the present invention can be utilized in robotic armscomprising less or more robot joints and that some of the robot joints may be provided as prismatic robot joint translating two or more robot parts in relation to each other.
[0150] The robot joints comprise a robot joint housing and an output flange rotatableor translatable in relation to the robot joint housing and the output flange is connected to a neighbour robot joint either directly or via an arm section as known in the art. The robot joint comprises a joint motor configured to rotate or translate the output flange in relation to the robot joint housing, for instance via a gearing or directly connected to the motor shaft. The robot joint housing can for instance be formed as a joint housing and the joint motor can be arranged inside the joint housing and the output flange can extend out of the joint housing. Additionally, the robot joints can comprise at least one joint sensor providing a sensor signal for instance indicative of at least one of the following parameters: an angular and / or linear position of the output flange, an angularand / or linear position of the motor shaft of the joint motor, a motor current of the jointmotor or an external force and / or torque trying to rotate the output flange or motor shaft. For instance, the angular position of the output flange can be indicated by an output encoder such as optical encoders, magnetic encoders which can indicate the angular position of the output flange in relation to the robot joint. Similarly, the angular position of the joint motor shaft can be provided by an input encoder such as optical encoders, magnetic encoders which can indicate the angular position of the motor shaft in relation to the robot joint. It is noted that both output encoders indicating the angular position of the output flange and input encoders indicating the angular position of the motor shaft can be provided, which in embodiments where a gearing have been provided makes it possible to determine a relationship between the input and output side of the gearing.
[0151] The robot system may also comprise an end effector. That is, the pivot of therobot arm, on which a robot tool may be attached (not illustrated). It is to be understoodthat the robot tool can be any kind of end effectors such as grippers, vacuum grippers,magnetic grippers, screwing machines, welding equipment, gluing equipment, dispensing systems, painting equipment, visual systems, cameras etc.
[0152] The robot system comprises at least one robot controller 106 configured tocontrol the robotic arm 101. The robot controller is configured to control the motions of the parts of the robotic arm and the robot joints for instance by controlling the motor torque or current provided to the joint motors based on a dynamic model of the robotic arm, the direction of gravity acting and the joint sensor signals. The controller can be provided as an external device as illustrated in fig.1 or as a device integrated into the robotic arm or as a combination thereof. External devices may also include conveyer systems, welding systems, safety systems, etc. having individual controllers and sensors that may communicate with the robot controller.
[0153] The robot system can be controlled by a robot controller according to a robotprogram, where the robot program specifies a number of robot tasks and an order of execution of the robot tasks where the robot tasks define a number of actions that the robot system shall perform.
[0154] The robot controller can comprise an interface device 107 enabling a user tocontrol and program the robot system. The interface device can for instance be provided as a teach pendant as known from the field of industrial robots which cancommunicate with the controller via wired or wireless communication protocols. Theinterface device can for instanced comprise a display 108 and a number of input devices 109 such as buttons, sliders, touchpads, joysticks, track balls, gesture recognition devices, keyboards, microphones etc. The display may be provided as a touch screen acting both as display and input device. The interface device can also be provided as an external device configured to communicate with the robot controller, for instance in form of smart phones, tablets, PCs, laptops etc.
[0155] Fig. 2 illustrates a schematic cross-sectional view of a robot joint 203. Theschematic robot joint 203 can reflect any of the robot joints 102a-102f of the robot arm 101 of fig.1. The robot joint 203 comprises a joint motor 209 having a motor 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 joint203 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 or an arm section of the robot arm. However, the output axle can be directly connected to the neighbor part of the robot or by any other way enabling rotation of the neighbor part of the robot by the output axle.
[0156] The joint motor is configured to rotate the motor axle by applying a motortorque 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.
[0157] The robot joint gear 229 forms a transmission system configured to transmitthe 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.
[0158] The robot joint comprises at least one joint sensor providing a sensor signalindicative of at least the angular position, q, of the output axle and an angular position, Θ, of the motor axle. For instance, the angular position of the output axle can be indicated by an 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 an encoder wheel 239 arranged on the respective axle. Theencoder wheels can for instance be optical or magnetic encoder wheels as known inthe 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 axlemakes it possible to determine a relationship between the input side (motor axle) and the output side (output axle) of the robot joint gear.
[0159] The robot joints may optionally comprise one or more motor torque sensors241 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.
[0160] Fig. 3 illustrates a simplified structural diagram of a robot arm comprising aplurality 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. 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 robot 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 robot 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.
[0161] The robot 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 motorcontrol 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 currentresulting 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.
[0162] The robot joints comprise an output encoder providing output encoder signals336i, 336i+1…336n indicating the angular position q,i, q,i+1…q,n of 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 respective robot 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.
[0163] Fig. 4 illustrates a programming environment 401 of a robot programdevelopment software according to an embodiment of the invention. The programmingenvironment 401 is facilitated as an integrated development environment (IDE) providing comprehensive facilities for development of robot control programs forcontrolling a robot arm. In fig. 4, a user has developed a robot control program 402 (orsimply referred to as robot program in the following). The robot control program 402 is arranged to be executed on a robot controller controlling a robot arm. The robot program 402 comprises four script lines 403, including a first script line 403 (see mostupper script line in the figure) designating a wait command (“Wait pickup = True”),a second script line 403, below the first script line, designating a move command (“MoveL(pickup_pos, acc=1.20, vel=0.25”), a third script line 403, below the second script line, designating another move command (“MoveJ(point_1, acc=1.39, vel=1.04”), and a fourth script line 403, below the third script line, invoking a conveyor script. It should be noted that the robot control program 402 is merelyexemplary and a user can develop other robot programs (including other command functions and having any number of script lines) using the programming environment 401. The script lines 403 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.
[0164] Next to each script line 403 in the robot control program 402 a longevityrating 404 is indicated. The longevity rating 404 indicates how each script line 403 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 efficient robot control programs. In the example shown in fig. 4, the first and second script lines 403 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 developer looking at the programming environment 401 in fig. 4 will therefore immediately be aware of issues concerning the third script line 403, as it is associated with the highest rating in the longevity rating 404. In trying to improve the longevity rating of the third script line 403, and thereby improve the quality of the robot control program 402, the developer will modify features of the script line 403 in question, and in this particular case, the developer modifies the maximum allowed joint acceleration and the maximum allowed joint velocity.
[0165] Fig. 5 shows the results of such a modification, where the maximum allowedjoint 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 scriptline 403 has resulted in the associated longevity rating changing from “2” to “1”, and the quality of the robot control program 402 has been improved.
[0166] In the present embodiment, the longevity ratings are provided on the basis ofan evaluation of the robot control program 402 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 402) 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 conditionparameters in the programming environment are possible according to embodimentsof the present disclosure, for example, a developer could click on each script line 403 in the programming environment 401 to reveal robot joint condition parameters, the robot joint condition parameters may be directly visible in the programming environment 401, or the individual script lines 403 may be colour coded to reveal the impact of the script line on the longevity.
[0167] To better understand the present invention, and for example, how suchlongevity ratings as seen in figs. 4 and 5 can be provided, it is useful to understandhow robot joint condition parameters may be provided in the first place. The figs. 6-9illustrate a way of determining robot joint condition parameters analytically and are therefore useful for understanding embodiments of the present invention. Analytically determined robot joint condition parameters may be used as ground truth in the training of artificial intelligence models to provide trained artificial intelligence modelsemployed in methods according to embodiments of the present invention.
[0168] Fig. 6 illustrates data relating to control of a single robot joint of a robot arm.The data is represented for the purpose of determining a robot joint conditionparameter analytically. The data illustrated by the graph in fig. 6 represents movementof a robot joint of a robot arm in a program cycle of a robot control program. The robot control program may be executed by the robot controller 115, 315. The program cycle is 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. The robot controller sets a target value for the current provided to the joint motor of the robot joint. This target value isreferred to as a target state variable 602. The graph in fig.6 also shows the actual valueof the current provided to the joint motor which is measured for every sampling point. This measured current is referred to as a measured state variable 601. As seen in the graph of fig.6, the measured state variable 601 and the target state variable 602 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 601 and the target state variable 602. Upon sudden incrementation of the robot joint’s rotational speed and direction, theactual current fluctuates. Such a fluctuation is clearly represented in fig. 6 by the jointoscillations 604, where at around sampling point i=60, there is a great discrepancy 603 (or overshoot) between the measured state variable 601 and the target state variable 602. This discrepancy 603 may also be referred to as epsilon according to the present disclosure. In the present example, the state variable, i.e., current, has been monitored 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 601 and the target state variable 602. The sequence of discrepancies thus contains a discrepancy, i.e., a value of epsilon, for every sampling point. Having established the sequence of discrepancies between the monitored state variable 601 and the target state variable 602, it is possible to derive a state metric indicative of an amount of wear of the robot joint.
[0169] In fig. 7 is shown a graph of a plurality of sub-state metrics 705 – one sub-state metric 705 for each sampling point (represented by the letter “I” on the horizontal axis in the graph). Each sub-state metric 705 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.7 As seen slightly after the i=60 sampling point, there is a sudden spike in the sub-state metrics 705, with the greatest value coinciding in sampling number with the greatest discrepancy 603, or overshoot, in fig.6. The sub-state metric 705 having thegreatest value in fig. 7 is referred to simply as the state metric 706 in the presentexample, however a state metric 706 may be derived in numerous ways. The state metric 706 thus represents a selected sub-state metric among the plurality of sub-state metrics. The state metric 706 may be selected among the plurality of sub-state metrics 705 in numerous ways. For example, the state metric 706 may represent the infimum value of the sub-state metrics 705, i.e., the greatest value accounting for erroneousoutliers, or the state metric 706 may be selected using a maximum searching algorithm,or alternatively, the state metric 706 may be derived based on the sequence of discrepancies using a trained neural network, trained on other data of sequences of discrepancies.
[0170] The state metric 706 serves as a snapshot of the state of health of the robotjoint, 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.
[0171] The above methodology of extracting a state metric 706 from a program cyclemay naturally be done for a plurality of program cycles, and this is utilized in the following.
[0172] Attributing health related significance to alpha may involve establishment ofa reference point / baseline. This may be achieved through acquisition of 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.8, 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 statevariable and the associated target state variable (also current in this example), ands for every sequence, a state metric 706 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.8).
[0173] Fig. 8 shows a graph over distributions of alpha values. The distributions ofalpha 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 robot joint and the model in the robot controller. Notably, the nature of alpha implies that the infimum may beimpeded by velocity, load, and environmental factors, enabling influence, i.e., thepotential to simulate a healthy robot joint by employing slow and cautious rotations, thus avoiding the generation of significant oscillations.
[0174] Thus, from the above has been shown a methodology of deriving a statemetric (alpha), and from fig.8, it can be seen that the value of alpha increases with an 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).
[0175] Other robot joint condition parameters than alpha may be determinedaccording to embodiments of the present invention, such as robot joint conditionparameters derivable from alpha. An example of a robot joint condition parameter isremaining use life, which is a parameter indicating at which robot program cycle a robot joint is expected to malfunction.
[0176] Fig. 9 shows a graph illustrating alpha values as a function of the number ofprogram cycles (delta) in units of millions of program cycles. As seen in the figure,the distribution of alpha values of fig. 8 have been incorporated into the graph. Thedistribution of alpha values has been fitted to an exponential function 901 (see exponential function according to equations 5 and 6 of the present disclosure). Thefitted exponential function 901 indicating the temporal evolution of the state metric706 – temporal evolution with respect to an increasing number of program cycles.Using equation 7 of the present disclosure, a critical value 902 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 901, representing the baseline of the robot joint, intersects the critical value 902 at intersection 903. Intersection 903 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.
[0177] It should be noted that, figures. 8 and 9 are merely exemplary, and that thedata represented by the figures are subject to change. For example, the distributions offig. 8 may be obtained at other program cycles, the robot control program beingexecuted 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 arm 101, and of course robot arms 101 may be different. Thus, for any robot arm 101 performing a particular robot control program (including a program cycle), the baseline model (fitted exponential function 901) and the critical value 902 may be different, and the above methodology of determining a state metric and e.g., a remaining use life, may be performed in respect of any kind of robot arm 101 employing a plurality of robot joints 103a-103f.
[0178] The above methodology shows how a robot joint condition parameter, suchas 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 robotcontrol 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 to longevity of the robot arm on an informed basis and thereby avoid executing a robot control program which is unnecessarily strenuous on a robot.
[0179] In the following are described two model architectures which are capable ofperforming 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 joint condition parameter is useful with respect to the model architectures.
[0180] Fig.10 illustrates a model architecture usable for evaluation of a robot controlprogram according to an embodiment of the invention. The architecture shown in fig.10 is fully computer-implemented. The model architecture shown in fig. 10 employsan input data model in which input data, in the form of an operating instruction 1001is processed by a trained artificial intelligence model 1003 to provide a robot joint condition parameter 1009. The operating instruction 1001 comprises a move function defining both starting positions and ending positions of a robot arm 101, however, in other embodiments the operating instruction may be of any other type designating a movement of a robot arm. The move function takes the following form (however otherrepresentations of the move function are also conceivable as the form / representationmay depend on the programming language utilized for developing a robot controlprogram – there are various programming languages for robots, such as 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(^^^^^^^^ = ^̇, ^^^^^^^^^^^^ = ^̈)
[0181] The individual terms in the brackets ([ ])of the above move functionrepresents positions of respective individual robot joints of a robot arm. With reference to the robot arm 100 shown in fig.1, the first positions ^^^ and ^ ^^ represent positions(i.e., rotational positions) of robot joint 102a at the beginning and ending of the movement respectively, positions ^^^ and ^ ^^ represent positions (i.e., rotationalpositions) of robot joint 102b at the beginning and ending of the movement respectively, positions ^^^ and ^ ^^ represent positions (i.e., rotational positions) ofrobot joint 102c at the beginning and ending of the movement respectively, positions ^^^ and ^ ^^ represent positions (i.e., rotational positions) of robot joint 102d at thebeginning and ending of the movement respectively, positions^ ^^ and ^ ^^ representpositions (i.e., rotational positions) of robot joint 102e at the beginning and ending of the movement respectively, and positions ^^^ and ^ ^^ represent positions (i.e.,rotational positions) of robot joint 102f 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 themovement). The operating instruction 1001 represents a part of a robot controlprogram, however, in other embodiments, the operating instruction may represent an entire robot control program.
[0182] The operating instruction 1001 is forwarded to a feature extraction module1002 which takes the operating instruction 1001 as input and extracts a number offeatures. 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.
[0183] Next, the extracted features are used as input in a trained artificial intelligencemodel 1003 (or simply referred to as model 1003 in the following). The training of the trained artificial intelligence model 1003 will be described later, but first is given a general introduction to the structure of the model. The model 1003 comprises a number of layers including an embedding layer 1004 and an attention layer 1005. The embedding layer carries out computations for each feature using a predefined approximation function ^^(^), i.e., the embedding layer embeds features intofunctions. Tables 3-7 presents suitable embedding (approximation) functions ^^(^) forgiven features, including the features extracted using the methods shown in table 1.Figures 13a-d illustrate such approximation functions.
[0184] The model 1003 comprises three Multi-Layer Perceptrons (MLP’s), includinga first MLP 1006, a second MLP 1007, and a third MLP 1008. The three MLP’s,denoted as ^^^, ^^^, and ^^^respectively, are all implemented with adaptive learning rateand uses a Nesterov-Adam Optimizer. The first MLP 1006, ^^^, 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. ^^^ ([^^(^)^^(^)]) → [^^ ^ ^^, ^^, ^^] (eq. A)where ^ denotes a logarithmic probability scalar.
[0185] The second MLP 1007, ^ ^^ , with shape (13, 19, 13, 9, 6, 3), maps the featuresand 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 1007 leverages the output of the first MLP 1006 in conjunction with the processed input features, as outlined in equation B. This synergy enhances the quality of the predictions made by the trained artificial intelligence model 1003. ^^^ ([^^(^)^^(^), ^^^, ^^^, ^^^]) → [^^ ^ ^^, ^^, ^^] (eq. B)
[0186] The third MLP 1008, ^^^, with shape (6, 7, 6, 3), maps the output of the first MLP ^^^, and of the second MLP, ^^^ , to a final vector, as described in equation C.^^^([^^^, ^^^, ^^^, ^^^, ^^^, ^^^]) → [^^^, ^^^, ^^^] (eq. C)
[0187] The output of the third MLP, ^ ^^ , is passed through a softmax function, whichis 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 therobot will live longer than its expected life (above 23 million cycles), “1” indicatingthat the robot will live according to its expected life (between 17 million and 23 millioncycles), and “2” indicating that the robot will live shorter than its expected life (lessthan 17 million cycles). The softmax function assigns the label ”0”, “1”, or “2”, basedon the class having the highest probability. Accordingly, the output of the trainedartificial intelligence model 1003 is a robot joint condition parameter 1009 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 1009 derived in this way may be represented in a programming environment 401 as seen in fig.4.
[0188] Fig. 11 illustrates another model architecture for evaluation of a robot controlprogram according to an embodiment of the invention. The architecture shown in fig.11 is similar to the architecture seen in fig.10 but differs in two ways. The architecture shown in fig.11 is also fully computer implemented. The model architecture in fig.11 takes additional input to the operating instructions 1001, namely a target state variable input 1010. The target state variable input 1010 is based on the operating instructions 1001 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.
[0189] Similar to the model architecture of fig. 10, a number of Multi-LayerPerceptrons (MLPs) are used, including a first MLP 1006, a second MLP 1007, and a third MLP 1008, however these MLPs differ in their shape.
[0190] 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 is depicted in fig.12b.
[0191] The second MLP 1007, ^^^, 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 stacked architecture,where the second MLP 1007 leverages the output of the first MLP 1006 in conjunction with the processed input features, as outlined in equation B.
[0192] The third MLP 1008, ^^^, with shape (6, 7, 6, 3), maps the output of the first MLP ^^^, and of the second MLP, ^^^ , to a final vector, as described in equation C.
[0193] As seen when comparing the first MLP 1006 of the input data model in fig.10 and the target data model in fig. 11, it is seen that the first layer of the first MLP 1006 of the target data model has more neurons (18 neurons) compared to the number of neurons (10 neurons) of the first layer of the first MLP 1006 of the input data model. Thereby, more accurate predictions may be made by the trained artificial intelligencemodel. The three MLPs of both the input data model and the target data model areimplemented with adaptive learning rate and uses a Nesterov-Adam optimizer.
[0194] According to preferred embodiments of the invention, the trained artificialintelligence model is implemented by a stacked-corrective feed-forward model.
[0195] Fig. 12a 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 afirst MLP 1006, a second MLP 1007, and a third MLP 1008, as seen in fig. 12a. Thefirst MLP 1006 is explained in greater detail in fig.12b. As seen in fig.12a. the first MLP 1006 takes input data in its input layer and an output is provided and used as input in both the second MLP 1007 and the third MLP 1008. In this way is provided a stacked architecture where the second MLP takes as input the raw input (also provided to the first MLP 1006) as well as the output of the first MLP 1006, and the third MLP 1008 takes as input the output of both the first MLP and the second MLP. In this example the first MLP 1006 has shape (18, 24, 18, 9, 6, 3), the second MLP 1007 has shape (21, 27, 21, 12, 9, 6, 3), and the third MLP 1008 has the shape (6, 7, 6, 3). It should be noted that according to other embodiments, the shape of the individual perceptron layers may be different, and the trained artificial intelligence model may also differ in the number of perceptrons used.
[0196] Fig. 12b illustrates in greater details the first MLP 1006 as seen in fig. 12a.The MLP seen in fig. 12b 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 1201 are fully connected. The second MLP 1007 and the third MLP 1008 referenced in fig. 12a adopts structures which are similar in type to the first MLP 1006 seen in fig.12b but naturally differs in the number of neurons in each neuron layer and in the number of neuron layers.
[0197] Fig. 13 illustrate another model architecture for evaluation of a robot controlprogram according to a preferred embodiment of the invention. The architecture shown in fig. 13 is similar to the architecture seen in fig. 11 but differs in the choice of artificial intelligence models employed. The architecture shown in fig.13 is also fully computer implemented. The model architecture in fig. 13 utilizes a combination of machine learning models, specifically a combination of two MLP’s and an ExtremeGradient Boosting model (XGBoost). As seen in fig. 13, in addition to an embeddinglayer 1004 and attention layer 1005, the trained artificial intelligence model 1003 comprises two MLP’s 1006 and 1008, and an Extreme Gradient Boosting model 1301. 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 MLPis depicted in fig. 12b. The XGBoost model 1301, 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)
[0198] The XGBoost model 1301 maps 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 model, i.e., the XGBoost model 1301, leverages the output of the initial MLP 1006 in conjunction with theprocessed input features, as outlined in equation D. This synergy enhances the quality of the predictions made by the model.
[0199] The final MLP 1008, ^^^, 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 equation C. The trained artificial intelligence model as depicted in fig.13 is likewise also referred to as a target data model owing to the model taking target state variable input 1010 as input data, however it should be noted that according to other embodiments of the invention, the trained artificial intelligence model as depicted in fig. 13 may also be utilized in another variant (input data model) where only operating instructions 1001 are used as input (similar to the model architecture as seen in fig.10).
[0200] It should be noted that the trained artificial intelligence models 1003described in relation to figs. 10-13 are merely exemplary of trained artificialintelligence models suitable for carrying out the claimed invention, and that other specific trained artificial intelligence models 1003 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 1001 as input, whereas other models are of the ‘target data model’ type meaning that in addition to operating instructions 1001 also take target state variable input 1010 as input). The other models may also differ in their choice of artificial intelligence model being utilized.
[0201] Each of the trained artificial intelligence models 1003 as described in relationto the embodiments of figs. 10, 11, and 13 comprises an embedding layer 1004 and anattention layer 1005 used for correlation of input features (operating instructions 1001 and target state variable input 1010) with robot joint condition parameters.
[0202] Figures 14a-d illustrate correlation of various input features with robot jointcondition parameters. The correlations shown in the figures are used in embedding layers and attention layers of trained artificial intelligence models used according toembodiments of the present invention.Fig.14a shows three graphs which, from left to right, represents the input parameters torque, momentum and rate of change of momentum respectively. In each of the threegraphs, the corresponding feature is sorted in ascending order and mirrored to theascending normalized alpha value (note that alpha is a state metric which is an example of a robot joint condition parameter). The feature value is shown 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 14a in the graphs). The data are approximated using a best-fit approach. This involves an approximation function^^(^) represented by a long-dashed line (see curve 14b in the graphs). Themathematical expressions of these approximations are shown in table 5 of the presentdisclosure (where ^ denotes torque, ^ denotes momentum, and Δ^ denoted rate ofchange of momentum). A Fréchet distance is calculated for each of the features (seedashed curve 14c in the graphs). A scalar value ^^(^) is calculated on the basis of theFréchet distance as outlined in the following equation E. This distance is defined asthe infimum over all reparameterizations ^ and ^ of [0,1] of the maximum over all ^ ∈[0, ^] of the distance S betweenwhere d is the Euclidian distance function of S, n the particular feature index, and t theindex of each value by ascending order.
[0203] The Fréchet correlation is seen in the graphs as the solid and dashed curve14d.
[0204] The scalar values ^^(^) is used in the attention layer of the trained artificialintelligence model and are also seen in table 5 of the present disclosure.
[0205] Fig. 14b shows similar data as in fig. 14a, however it shows, from left graphto right graph, date in respect of velocity, acceleration and current. The correspondingapproximation functions ^^(^) and scalar values ^^(^) for velocity and accelerationare shown in table 7 of the present disclosure (where velocity is denoted ^̇, andacceleration is denoted ^̈), and the approximation function ^^(^) and scalar value^^(^) for current are shown in table 5 of the present disclosure (where current isdenoted I).
[0206] Fig. 14c shows similar data as in figs. 14a-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 ^^(^)and scalar values ^^(^) for joint distance and Tool Centre Point travel distance areshown in table 5 of the present disclosure (where joint distance is denotedand Tool Centre Point travel distance is denoted ^^^^).
[0207] Fig. 14d shows similar data as in figs. 14a-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 ToolCentre Point distance to base at start of movement and Tool Centre Point distance tobase at end of movement, and window size are shown in table 3 of the presentdisclosure (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 ^^^^ , andwindow size is denoted s).
[0208] The feature values (horizontal axis) of the graphs seen throughout figs. 14a-d have units as expressed in tables 1 and 2 of the present disclosure.
[0209] The data set underlying the feature approximations as seen in figs. 14a-d isseen in fig. 15 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. 15, the dataset exhibits an overrepresentation of instances belonging to class 0. Accordingly, a balancing strategy is implemented according toembodiments 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.
[0210] To provide a comprehensive and quantitative evaluation of the performanceof the stacked corrective feed-forward model employed in embodiments of the present disclosure (including embodiments seen in figs.10-13), 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 assessmentof the predictive capabilities of the models, the performance of all models wereevaluated 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 datasetcomprising 10938 instances for each class (classes “0”, “1”, and “2”) resulting in atotal of 32814 entries. This balancing strategy accounts for over-representation ofinstances belonging to class “0”, previously depicted in fig. 15. For each iteration inthe 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 16a-d illustrate these distributions for the balanced dataset, and figs. 16e-h illustrate these distributions for the unbalanced dataset.
[0211] Fig. 16a illustrates two columns comprising distributions (accuracy and F1score) 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 thesecond column depicts the associated F1-score 1607 of the standardized input data models. The distributions in the first row are in respect of a Stochastic GradientDescent model 1601, the distributions in the second row are in respect of a Logistic Regression model 1602, the distributions in the third row are in respect of a Decision Trees model 1603, the distributions in the fourth row are in respect of a single Feed-Forward model 1604, the distributions in the fifth row are in respect of an ExtremeGradient Booster (XGBoost) model 1301, and the distributions in the sixth row are in respect of a Stacked-Corrective Feed-Forward model 1605 according to a preferred embodiment (the model depicted in fig.13 of the present disclosure). For each of the models shown in fig.16a is shown a worst-case accuracy and a worst case F1-score. For example, the Stochastic gradient Descent model has a worst-case accuracy of42.64% and a worst-case F1-score of 38.34%, whereas the Stacked-Corrective Feed-Forward model 1605 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 1602, 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.
[0212] The accuracy and F1-score are performance metrics, where accuracy is ameasure of how many of the predictions made was true, and the F1-score is a measurefor assessing how much predictions are right or wrong – both measures are commonlyused for assessing the performance of artificial intelligence models.
[0213] Fig. 16b illustrates two columns comprising distributions (accuracy and F1score) 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. 16a, the models contain embedding- and attention layers. The first columndepicts accuracy 1608 of the input data models (comprising embedding and attention layers), and the second column depicts the associated F1-score 1609 of these models.The distributions in the first row are in respect of a Stochastic Gradient Descent model1601, the distributions in the second row are in respect of a Logistic Regression model 1602, the distributions in the third row are in respect of a Decision Trees model 1603, the distributions in the fourth row are in respect of a single Feed-Forward model 1604, the distributions in the fifth row are in respect of an Extreme Gradient Booster(XGBoost) model 1301, and the distributions in the sixth row are in respect of a Stacked-Corrective Feed-Forward model 1605 according to a preferred embodiment (the model depicted in fig.13 of the present disclosure). For each of the models shown in fig. 16b 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 60.43% and aworst-case F1-score of 60.49%, whereas the Stacked-Corrective Feed-Forward model 1605 has a worst-case accuracy of 98.87% and a worst-case F1-score of 98.86%. Theworst-case accuracies of the logistic regression model 1602, decision trees model1603, single feed-forward MLP model 1604, 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.
[0214] Fig. 16c illustrates two columns comprising distributions (accuracy and F1score) 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 1610 of thestandardized target data models, and the second column depicts the associated F1-score 1611 of the standardized target data models. The distributions in the first row arein respect of a Stochastic Gradient Descent model 1601, the distributions in the second row are in respect of a Logistic Regression model 1602, the distributions in the third row are in respect of a Decision Trees model 1603, the distributions in the fourth row are in respect of a single Feed-Forward model 1604, the distributions in the fifth row are in respect of an Extreme Gradient Booster (XGBoost) model 1301, and thedistributions in the sixth row are in respect of a Stacked-Corrective Feed-Forwardmodel 1605 according to a preferred embodiment (the model depicted in fig.13 of the present disclosure). For each of the models shown in fig. 16c 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 1605 has a worst-case accuracy of 99.47% and a worst-case F1-score of 99.47%. The worst-case accuracies of the logistic regression model 1602, decision trees model 1603, single feed-forward MLPmodel 1604, 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.
[0215] Fig. 16d illustrates two columns comprising distributions (accuracy and F1score) 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. 16c, the models contain embedding- and attention layers. The first columndepicts accuracy 1612 of the target data models (comprising embedding and attention layers), and the second column depicts the associated F1-score 1613 of these models. The distributions in the first row are in respect of a Stochastic Gradient Descent model 1601, the distributions in the second row are in respect of a Logistic Regression model 1602, the distributions in the third row are in respect of a Decision Trees model 1603, the distributions in the fourth row are in respect of a single Feed-Forward model 1604, the distributions in the fifth row are in respect of an Extreme Gradient Booster (XGBoost) model 1301, and the distributions in the sixth row are in respect of a Stacked-Corrective Feed-Forward model 1605 according to a preferred embodiment (the model depicted in fig.13 of the present disclosure). For each of the models shown in fig. 16d 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 1605 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 1602, decision trees model 1603, single feed-forward MLP model 1604, 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.
[0216] Fig. 16e illustrates similar distributions as in fig. 16a, however the datasetused is the unbalanced dataset. Fig.16f illustrates similar distributions as in fig.16b, however the dataset used is the unbalanced dataset. Fig. 16g illustrates similar distributions as in fig. 16c, however the dataset used is the unbalanced dataset. Fig.16h illustrates similar distributions as in fig. 16d, however the dataset used is the unbalanced dataset.
[0217] In the case of the single MLP model 1604 applied to the balanced dataset (seefigs. 16a-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 1603 on the unbalanced dataset(see figs. 16e-h); however, for the balanced dataset, the decision trees model 1603 exhibits an inverse behaviour.
[0218] As seen from the distributions (see accuracies and F1-scores) of figs. 16a-h,an enhancement is clearly provided by use of an embedding layer and an attentionlayer, which transforms the raw input data into a format that aligns with the stress metric (denoted alpha in the present disclosure), thereby facilitating more effectiveinterpretation by the artificial intelligence models. Ultimately, the stacked correctivefeedforward model 1605 consistently outperforms in terms of worst-case accuraciesacross both input data model and target data model. With embedding and attention layers included, the stacked-corrective feedforward model 1605 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 balanceddataset. XGBoost and MLP have distinct underlying structures and learningmechanisms. 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. 13)capable of 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 as demonstrated in fig.13 of the present disclosure.
[0219] Fig. 17 illustrates steps S1-S3 of a computer-implemented of evaluating arobot 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.
[0220] In a first step S1 of the method, one or more operating instructions 1001 of arobot control program 402 is provided in a programming environment 401 of a robot program development software. The one or more operating instructions 1001 represents one or more robot tasks to be carried out by a robot arm. In the present embodiment, the programming environment is a programming environment 402 as seen in fig.4, however the programming environment may be manifested in other ways according to other embodiments.
[0221] In a second step S2 of the method, the one or more operating instructions areprovided 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 intelligence model is a target data model as explained in relation to fig.11 of the present disclosure, 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.
[0222] In a third step S3 of the method, one or more robot joint condition parametersare 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.4, however the robot joint condition parameter may be represented / outputted in other ways according to other embodiments of the invention.
[0223] List of reference signs:100 Robot system101 Robot arm102a-f Robot joint103 Robot base104 Robot tool flange105a-f Robot axis106, 315 Robot controller107 Interface device108, 119 Display109, 121 Input devices203 Robot joint209 Robot joint motor211 Axis of rotation213 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 Torque sensor242 Motor torque signal303i-n Robot joints333i-n Motor control signals336i-n Output encoder signals338i-n Input encoder signals342i-n Motor torque signals343 Processor of robot controller345 Memory of robot controller401 Programming environment of a robot program development software402 Robot control program403 Script lines of robot control program404 Longevity rating601 Measured state variable602 Target state variable603 Overshoot (epsilon)604 Joint oscillations705 Sub-state metric706 State metric (alpha)901 Fitted exponential function902 Critical value903 Intersection1001 Operating instruction1002 Feature extraction module1003 Trained artificial intelligence model1004 Embedding layer1005 Attention layer1006 First Multi-Layer Perceptron (MLP)1007 Second Multi-Layer Perceptron (MLP)1008 Third Multi-Layer Perceptron (MLP)1009 Robot joint condition parameter1010 Target state variable input1201 Neuron1301 Extreme Gradient Booster (XGBooster) model1601 Stochastic Gradient Descent model1602 Logistic Regression model1603 Decision Trees model1604 Single Feed-Forward MLP model1605 Stacked-Corrective Feed-Forward model1606 Accuracy of standardized input data models1607 F1-score of standardized input data models1608 Accuracy of input data models utilizing embedding and attention1609 F1-score of input data models utilizing embedding and attention1610 Accuracy of standardized target data models1611 F1-score of standardized target data models1612 Accuracy of target data models utilizing embedding and attention1613 F1-score of target data models utilizing embedding and attentionN1-N6 Layers of a Multi-Layer PerceptronS1-S3 Steps of a method of evaluating a robot control program
Claims
Claims1. A computer-implemented method of evaluating a robot control program for a robotarm, wherein said robot arm comprises a plurality of robot joints connecting a robotbase and a robot tool flange, wherein said method comprises the following steps of:providing one or more operating instructions of a robot control program in aprogramming environment of a robot program development software, said oneor more operating instructions representing one or more robot tasks;automatically inputting said one or more operating instructions into a trainedartificial intelligence model, said trained artificial intelligence model beingadapted to take one or more operating instructions as input and adapted to outputone or more robot joint condition parameters on the basis of said one or moreoperating instructions; andoutputting, by said trained artificial intelligence model, one or more robot jointcondition parameters of one or more robot joints of said plurality of robot joints.
2. The method according to claim 1, wherein said method is carried out prior to aruntime of said robot control program.
3. The method according to claim 1 or 2, wherein said method comprises a step ofrepresenting said one or more robot joint condition parameters in said programming environment.
4. The method according to any of the preceding claims, wherein said one or morerobot joint condition parameters comprises one or more remaining use lives.
5. The method according to any of the preceding claims, wherein said automaticallyinputting of said one or more operating instructions comprises extracting one or morefeatures from said one or more operating instructions, and wherein said one or morefeatures are used as input in said trained artificial intelligence model.
6. The method according to claim 5, wherein said one or more features are selectedfrom the list of velocity, acceleration, start position of one or more robot joints, end position of one or more robot joints, tool center point travel distance, tool center point distance to robot base at start of trajectory, tool center point distance to robot base at end of trajectory.
7. The method according to any of the preceding claims, wherein said step of providing one or more operating instructions comprises providing a plurality of operating instructions, and wherein said step of automatically inputting said one or more operating instructions into said trained artificial intelligence model comprises automatically inputting a plurality of operating instructions into said trained artificial intelligence model.
8. The method according to any of the preceding claims, wherein said automatically inputting of said one or more operating instructions comprises extracting a plurality of features from said one or more operating instructions and providing said extracted features to said trained artificial intelligence model in a vector-based format.
9. The method according to any of the preceding claims, wherein said trained artificialintelligence model comprises an embedding layer, said embedding layer being arranged to embed input to said trained artificial intelligence model into functions.
10. The method according to any of the preceding claims, wherein said trainedartificial intelligence comprises an attention layer.
11. The method according to any of the preceding claims, wherein said trainedartificial intelligence model comprises a machine learning model.
12. The method according to any of the preceding claims, wherein said trainedartificial intelligence model comprises a deep learning model.
13. The method according to claim 12, wherein said deep learning model comprises afeedforward multi-layered perceptron model.
14. The method according to any of the preceding claims, wherein said trainedartificial intelligence model is implemented on a server network.
15. The method according to any of the preceding claims, wherein said methodcomprises a further step of updating said one or more operating instructions to provide one or more updated operating instructions.
16. The method according to claim 15, wherein said method comprises automaticallyinputting said one or more updated operating instructions into said trained artificial intelligence model such that one or more updated robot joint condition parameters are provided by said trained artificial intelligence model, and wherein said updated robotjoint condition parameters are represented in said programming environment.
17. The method according to any of the preceding claims, wherein said one or morerobot joint condition parameters comprises a state metric.
18. The method according to any of the preceding claims, wherein said one or morerobot joint condition parameters comprises a parameter derivable from a state metric.
19. The method according to any of the preceding claims, wherein said trainedartificial intelligence model is trained on the basis of runtime data obtained from aplurality of robot arms.
20. The method according to claim 19, wherein said plurality of robot arms representhealthy robot arms.
21. The method according to any of the preceding claims, wherein said trained artificial intelligence model is trained based on calculated robot joint condition parameters as ground truth.
22. The method according to any of the preceding claims, wherein said robot programdevelopment software is arranged to provide alerts based on said one or more robotjoint condition parameters.
23. The method according to any of the preceding claims, wherein said robot programdevelopment software is arranged to provide one or more recommendations based onsaid one or more robot joint condition parameters and at least one optimizationcriterion.
24. The method according to any of the preceding claims, wherein said one or more robot joint condition parameters are referring to one or more operating instructions in said programming environment.
25. The method according to any of the preceding claims, wherein said one or more robot joint condition parameters refers to one operating instruction of said one or more operating instructions.
26. The method according to any of the claims 1-24, wherein said step of providingone or more operating instructions comprises providing a plurality of operating instructions, and wherein said one or more robot joint condition parameters refers to a plurality of operating instructions.
27. The method according to any of the preceding claims, wherein said one or moreoperating instructions comprises one or more script lines.
28. The method according to any of the preceding claims, wherein said robot controlprogram is executable on a robot controller, and wherein said robot programdevelopment software is executed on a computer processing arrangement, whereinsaid robot controller is different from said computer processing arrangement.
29. The method according to claim 15 or 16, wherein said method comprises a step ofexecuting said one or more updated operating instructions by a robot controllercontrolling said robot arm.
30. A computer program comprising instructions which, when executed by a computer,cause the computer to carry out the method of any of the claims 1-29.
31. A computer processing arrangement configured to carry out the method according to any of the claims 1-29.
32. A method of training an artificial intelligence model for evaluating a robot controlprogram, the method comprising: providing a plurality of operating instructions and a plurality of associated robotjoint condition parameters, wherein said operating instructions have been executed on robot arm systems and wherein said robot joint condition parameters have been calculated on the basis of said execution, wherein said operatinginstructions and associated robot joint condition parameters form part of a training data set; providing an artificial intelligence model; training said artificial intelligence model based on said training data set to obtain said trained artificial intelligence model, wherein said robot joint condition parameters are used as ground truth for said training.
33. The method of training an artificial intelligence model according to claim 32, wherein said method of training an artificial intelligence model comprises extracting features of said plurality of operating instructions to provide input features, and wherein the method comprises correlating said input features with said calculated robot joint condition parameters to establish one or more feature approximation functions, and wherein said provided artificial intelligence model comprises said one or more feature approximation functions.
34. The method of training an artificial intelligence model according to claim 32 or 33,wherein said robot joint condition parameters are discretized values.
35. Use of a trained artificial intelligence model for evaluating a robot control program, said artificial intelligence model being trained according to the method of any of the claims 32-34.
Citation Information
Patent Citations
Method and system for facilitating predictive maintainance of testing machine
US20230280737A1
Method and system for determining optimized program parameters for a robot program
US20230311309A1
Enhancement of human-machine interface (HMI) for controlling a robot
WO2022043179A1