Method and system for assisting allocation of an industrial robot to solve a robot task

The method and system allow industrial robots to safely and economically exceed operational limits by simulating and optimizing task trajectories, enabling broader applicability and efficient use of existing robots.

WO2025242283A1PCT designated stage Publication Date: 2025-11-27ABB (SCHWEIZ) AG
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2024/063936
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-21
Publication Date
2025-11-27

AI Technical Summary

Technical Problem

Existing industrial robots have operational limits that are set conservatively and based on worst-case scenarios, limiting their applicability and requiring oversized robots for various tasks, with no flexibility to safely exceed these limits.

Method used

A method and system that assist in allocating an industrial robot by defining a robot task, selecting a candidate robot, generating a trajectory, and simulating operational parameters to ensure they meet pre-specified limits, allowing safe and economical exceeding of individual operational limits.

Benefits of technology

Enables the use of existing robots for a broader range of tasks by safely and economically exceeding operational limits, avoiding oversizing and enhancing operational flexibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024063936_27112025_PF_FP_ABST
    Figure EP2024063936_27112025_PF_FP_ABST
Patent Text Reader

Abstract

A method comprising: defining a robot task including a first payload to be handled; selecting a robot candidate, which is associated with a plurality of operational limits to be respected individually, wherein the operational limits refer to payload and to further operational parameters, such that the first payload exceeds the robot candidate's pre-specified operational limit on payload; defining at least one trajectory rule indicating a technical preference or a constraint on an aspect of a robot trajectory; generating a robot trajectory for solving the robot task based on the trajectory rule; simulating, using a computational model of the robot candidate, values of the further operational parameters during an execution of the generated robot trajectory; and based on whether the simulated values of the further operational parameters satisfy the operational limits, approving or disapproving the robot candidate for allocation to solve the robot task.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD AND SYSTEM FOR ASSISTING ALLOCATION OF AN INDUSTRIAL ROBOT TO SOLVE A ROBOT TASK TECHNICAL FIELD

[0001] The present disclosure relates to the field of industrial robots and inparticular to a decision support system and decision support process for assisting theallocation of an industrial robot which is to solve a prespecified robot task. BACKGROUND

[0002] Commercial industrial robots are available in a multitude of types, models,makes, marks and brands, which may further be released in a time succession ofdifferent product versions. For each industrial robot, the manufacturer or a certification institute may specify operational limits to be respected individually during operation of the industrial robot. The operational limits relate to operationalparameters, such as payload (weight of a workpiece handled by the industrial robot,notably by a manipulator of the industrial robot), ambient temperature, internal temperature, intensity or frequency spectrum of an ambient electromagnetic field, mechanical stresses on structural elements, torques on structural elements, linear or angular speed, linear or angular acceleration, motor output torque, motor speed, avoidance of certain joint configurations (e.g., singularities and neighborhoods of singularities), and so forth.

[0003] The significance of the operational limits is that, if one or more of theoperational limits is exceeded, the industrial robot may suffer faster physicochemicaldegradation (including mechanical wear) than foreseen by the manufacturer, themanufacturer’s warranty ceases to apply, the end user becomes legally liable fordamages caused by the industrial robot, and / or the industrial robot may become unsafe for its operator or people in its physical surroundings, e.g., due to dropping workpieces, excessive noise, overheating etc. Direct empirical evidence that suchtechnical consequences will arise if an operational limit is not respected does notnecessarily exist. Rather, a commonly followed methodology is to test an industrialrobot for a number of operational parameter values which lie within the tentativeoperational limits; if it is confirmed that the outcome is satisfactory, the tentative operational limits can be made final (e.g., communicated to regulatory authorities or customers) without having to prove that the outcome is unsatisfactory outside theoperational limits. In other words, an operational limit for an industrial robot is not necessarily a proven sharp inequality in the mathematical sense.

[0004] When a plurality of operational limits is specified, each operational limit isto be respected individually. This is to say, the option of compensating one (relativelydemanding) parameter value by another (relatively lenient) parameter value is notavailable to the end user of the industrial robot, e.g., by purposefully operating therobot at reduced speed in such periods when it handles very heavy workpieces. Itwould be desirable to render this possible, so that the range of applicability of a given industrial robot can be extended in a manner that is neither unsafe, harmful, uneconomical etc. SUMMARY

[0005] One objective of the present disclosure is to make available a method and asystem for assisting the allocation of an industrial robot to solve a robot task. A further objective is to allow a safe and economical exceeding of one or more operational limits of the type which are specified to be respected individually. Aparticular objective is to allow a safe and economical exceeding of a payload limit.

[0006] At least some of these objectives are achieved by the invention, which isdefined by the independent claims. The dependent claims are directed to advantageous embodiments of the invention.

[0007] In a first aspect, there is provided a computer-implemented methodsuitable for assisting an allocation of an industrial robot to solve a robot task. Themethod comprises: defining a robot task including at least a first payload to behandled; selecting a robot candidate, which is associated with a plurality of pre-specified operational limits to be respected individually, wherein the operational limits refer to payload and one or more further operational parameters, such that the first payload exceeds the robot candidate’s pre-specified operational limit on payload; defining at least one trajectory rule indicating a technical preference or a constrainton an aspect of a robot trajectory; generating a robot trajectory suitable for solvingthe robot task on the basis of said at least one trajectory rule; simulating, using acomputational model of the robot candidate, values of said one or more further oper- ational parameters during an execution of the generated robot trajectory by the robotcandidate; and based on whether the simulated values of said one or more furtheroperational parameters satisfy the corresponding pre-specified operational limits, approving or disapproving the robot candidate for allocation to solve the robot task.

[0008] In a second aspect, there is provided device for assisting an allocation of anindustrial robot to solve a robot task. The device comprises a robot candidate database which, for at least one robot candidate, stores (i) a plurality of pre-specified operational limits to be respected individually, wherein the operational limits refer to payload and one or more further operational parameters of the robot candidate, and(ii) a computational model of the robot candidate. The device further comprises aninterface configured to receive data relating to a robot task including at least a firstpayload to be handled; and processing circuitry configured to perform the followingoperations: define a robot task based on the received data; select a robot candidate,which is associated with a plurality of pre-specified operational limits to be respected individually, wherein the operational limits refer to payload and one or more further operational parameters, such that the first payload exceeds the robot candidate’s pre-specified operational limit on payload; define at least one trajectory rule indicating atechnical preference or a constraint on an aspect of a robot trajectory; generate arobot trajectory suitable for solving the robot task on the basis of said at least onetrajectory rule; simulate, using a computational model of the robot candidate, valuesof said one or more further operational parameters during an execution of thegenerated robot trajectory by the robot candidate; and approve or disapprove therobot candidate, based on whether the simulated values of said one or more further operational parameters satisfy the corresponding pre-specified operational limits, for allocation to solve the robot task.

[0009] In the present disclosure, the term “operational limit” shall have one of themeanings discussed in the preceding section. A “path” (in particular, robot path) is distinguished from a “trajectory”. A path is a sequence of spatial positions, such aspositions of the tool center point (TCP) of the robot, while a trajectory is a sequenceof states of a system representing the robot. A trajectory normally corresponds to a unique path, but the converse is not necessarily true; there may be multiple trajectories which cause an industrial robot to realize a given path. A “robot task” is understood as a process to be performed or a result to be achieved by the industrial robot (e.g., operations on a workpiece, or a position to which the workpiece is to be moved), while leaving the choice of a trajectory undefined; in other words, the robottask leaves it up to the industrial robot or robot controller how to complete theprocess or achieve the result, i.e., by what movements and by what motioncommands. In the present disclosure, furthermore, the term “industrial robot” is usedin a broad sense, to particularly include service robots, collaborative robots, hygienerobots, industrial robot tracks, and industrial robot positioners.

[0010] The first and second aspects outlined above may represent animprovement over the state of the art. This implies more precisely that the operational limits on the payload and other operational parameters are set in a conservative manner, and usually based on a worst-case scenario, where a workpiece is accelerated maximally, held in awkward orientations, etc. Therefore, an advantage made available by the first and second aspects is that oversizing of each individualrobot can be avoided. Another advantage is that an existing industrial robot – orindustrial robot product line – can be utilized for a broader set of use cases.

[0011] The present disclosure further relates to a computer program containinginstructions for causing a computer to carry out the above method. The computer program may be stored or distributed on a data carrier. As used herein, a “data carrier” may be a transitory data carrier, such as modulated electromagnetic or optical waves, or a non-transitory data carrier. Non-transitory data carriers include volatile and non-volatile memories, such as permanent and non-permanent storage media of magnetic, optical or solid-state type. Still within the scope of “data carrier”, such memories may be fixedly mounted or portable.

[0012] Generally, all terms used in the claims are to be interpreted according totheir ordinary meaning in the technical field, unless explicitly defined otherwise herein. All references to “a / an / the element, apparatus, component, means, step, etc.” are to be interpreted openly as referring to at least one instance of the element,apparatus, component, means, step, etc., unless explicitly stated otherwise. The stepsof any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Aspects and embodiments are now described, by way of example, withreference to the accompanying drawings, on which:figure 1 shows an industrial robot composed of a robot arm and a robot controller; andfigure 2 is a flowchart of a method of assisting an allocation of an industrial robotwhich is to solve a robot task. DETAILED DESCRIPTION

[0014] The aspects of the present disclosure will now be described more fullyhereinafter with reference to the accompanying drawings, on which certainembodiments of the invention are shown. These aspects may, however, be embodiedin many different forms and should not be construed as limiting; rather, theseembodiments are provided by way of example so that this disclosure will be thoroughand complete, and to fully convey the scope of all aspects of the invention to thoseskilled in the art. Like numbers refer to like elements throughout the description. System overview

[0015] Figure 1 is a simplified block diagram generally showing a robot arm 110and a robot controller 120 communicatively coupled to the robot arm 110. The robot arm 110 and robot controller 120 can be said to constitute an industrial robot. The robot arm 110 is suitable for handling workpieces 130, in particular, for moving theworkpieces 130 into or out of a container 132, both being located in a work area of therobot arm 110. Figure 1 further shows a camera 140 suspended above the work area which can be used, for example, for estimating a position of a workpiece 130.

[0016] The robot arm 110 extends from a base 111 and carries a tool 118 at itsdistal end. The tool 118 may for example be a gripper tool (as illustrated in figure 1), a suction cup, a fork, a magnet or a similar tool suitable for moving various workpieces130. A reference point on the tool 118 defines the tool center point (TCP) of the robotarm 110. The robot arm 110 has a plurality of linear or rotary joints 116, each joint being equipped with at least one actuator 114 (e.g., brake, motor). The robot arm 110 is further provided with sensors 112, such as a position sensor (e.g., encoder, angular encoder, resolver), mechanical sensor (e.g., strain sensor, torque sensor), current sensor, thermometer, humidity sensor. The robot controller 120 is configured tocontrol the actuators 114 in the robot arm 110, over a wireless interface (e.g., cellular,noncellular) or via a communication line 113 and associated wired interface 122. Therobot controller 120 is further configured to sense a condition of the robot arm 110 based on signals from the sensors 112.

[0017] The robot arm 110 can be modeled in terms of a column matrixcontaining the positions of one or more actuators 114. A dynamical model (specialcase of a computational model) of the robot arm 110 can have the form^̈ = ^(^, ^̇, ^, ^) (1)where ^, ^̇, ^̈ denote the actuator-position vector and its first and second timederivatives, that is, the (angular) speed and (angular) acceleration. Further, ^ denotesthe torque applied by the actuators 114, and ^ is an environmental parameter whichmay represent, for example, the mass of a workpiece 130 that moves with the robot arm 110 or a temperature at a reference point of the robot arm 110. The model (1) can be developed into a state-space model with statesand an observable ^ = ^^, as follows:^̇ = ^^^^(^^, ^^, ^, ^)^ (2) ^= ^^The applied torque ^ may be considered to be a control signal. The linear or nonlinearfunction ^ introduced in equation (1) can be derived in a per se known manner byapplying conventional rigid-body mechanics to the robot arm 110, such as dynamic equations of motion and forward kinematics. For example, the right-hand side can have the following nonlinear formulation:where ^(^^, ^) is the inertia matrix, ^(^^, ^^, ^) collects the Coriolis and centripetalterms, ^(^^, ^) represents gravity and ^^(^^, ^^, ^) is a model of friction. For fullgenerality of this disclosure, the notation in (3) is chosen to accommodate a potentialdependence on all of ^^, ^^, ^, although in practical cases the terms may have anegligible variation with respect to these, which need not be reflected in the state-space model. For example, the friction can be modeled as a static force without anydependence on speed ^̇. Similarly, not all terms in ^ must vary with ^.

[0018] On more general form, a model of the industrial robot may be expressed asa linear dynamical system in discrete time:where ^(^) is a vector of states of the system, ^(^) is a vector of observables and ^(^)is a vector of control signals (e.g., torque applied by an actuator, a controllableinternal condition of a drive system or a support system in or associated with the industrial robot), each with a dependence on the time index ^. The model captures manifestations of laws of nature, like in equation (3), but it may as well include man- made contributions, such as the action of local control loops, protective subsystems which prevent movement outside the intended worksite or the like. The model could as well include uncertainties or expected errors.

[0019] In a simple model, the matrices ^, ^, ^, ^ are constant and time-invariant.In a more developed model, some of the entries of the matrices ^, ^, ^, ^ depend onenvironmental variables ^ which are generally not directly influenceable by theindustrial robot. The environmental variables represent primarily such quantities which are not directly influenceable by the industrial robot. The industrial robot can furthermore be modeled as a nonlinear dynamical system, which can be written as follows in continuous time:The functions ^, ^ have a dependence on the states ^(^) and can further depend onthe control signals ^(^), the environmental variables ^(^) and time ^. The timedependence of functions ^, ^ is absent if the modeled nonlinear dynamical system istime-invariant.

[0020] Figure 1 further depicts the inner workings of the robot controller 120which, from a functional perspective, comprises an operator interface 121, the above- mentioned communication interface 122, processing circuitry 124 and a memory 126. The operator interface 121 may for example run the applicant’s software RobotStudio™. The memory 126 is suitable for storing data, such as a robot database127, executable code (one or more robot programs) 128, an operating system, a system configuration, a history of past tasks (for traceability, documentation and similar purposes), project-related data and the like. The robot database 127 may store, for each robot in the database, -a plurality of pre-specified operational limits to be respected individually,wherein the operational limits refer to payload and one or more further operational parameters of the robot, and -a computational model of the robot, which for example be expressed in aform similar to one or more of equations (1), (2), (3), (^) or (^’).The interfaces 121, 122, processing circuitry 124 and memory 126 are interconnected, e.g., by a data bus, ethernet or the like. The robot controller 120 can be implemented locally or in a distributed way, including one or more remote or networked (‘cloud’) resources. The robot controller 120 may be configured to generate (e.g., by means of power electronics) drive signals suitable for powering the actuators 114 as well as control signals. Alternatively, the drive and control signals can be unified into drive currents to be applied directly to the actuators 114. As a further alternative, the robotarm 110 is equipped with an independent power source, so that all it needs from therobot controller 120 in order to operate are information-carrying control signals that contain sensibly less electric power than is needed to power the robot arm 110. Robot programming method

[0021] There will now be described a method 200 of assisting an allocation of anindustrial robot 110 to solve a robot task. The method 200 may be characterized as adecision-support process, or it may be implemented in a decision support system. Itis envisioned that the method 200 will be executed by the robot controller 120, which then may be said to act as a decision support system, while the robot controller 120 is used by an operator 150. The method 200 could as well be executed by a processor that is independent of or spatially separate from the robot controller 120. A flowchart 200 in figure 2 depicts an example sequence of the steps to be described below, as well as their logical (causal) relations.

[0022] In a first step 201, the entity executing the method 200 defines a robot taskby retrieving it from the memory, by processing textual, graphic or other input fromthe operator 150, receiving a script or another definition format from a remote pro-cessor or remote entity. As already explained, the robot task is understood as aprocess to be performed or a result to be achieved by the industrial robot. It may forexample be a utility task, such as material-handling task, a manufacturing task, apicking or sorting task. The definition of the robot task includes at least a firstpayload to be handled. The first point X1 may for example be expressed in cartesian coordinates with respect to a local reference frame having its origin at (or in a fixedrelationship with) the robot base 111. The robot path P is normally not specified bythe robot task, but significance of the first point X1 is that it shall lie on whatever robot path P is used to carry out the robot task. In other words, although the robot task generally leaves it undefined by what path the robot task is to be solved, the point X1 constitutes a constraint in the sense that the robot task must be solved by moving the industrial robot along a path P that visits point X1 at least once.

[0023] Optionally, the defined robot task further includes a maximum cycle time.

[0024] Further optionally, the defined robot task includes a first point X1 and / or asecond point X2, which shall lie on the robot path P that will be used to carry out therobot task. An operator may use the option of specifying the points X1, X2 as a way offorcing a collision-free path, e.g., for helping the robot move safely past a spatially constrained location.

[0025] In a next step 202, a robot candidate is selected for evaluation. The robotcandidate is associated with a plurality of pre-specified operational limits, from whicheach operational limit is to be respected individually, i.e., each operational limit mustbe observed regardless of whether the other operational parameters saturate their respective operational limits or are well inside the permissible operational range. Among the operational limits, there is an operational limit on payload and there areone or more further operational limits on respective further operational parameters.The operational limits relate to operational parameters, such as payload, ambient temperature, internal temperature, intensity or frequency spectrum of an ambient electromagnetic field, mechanical stresses on structural elements, torques on structural elements, linear or angular speed, linear or angular acceleration, motor output torque, motor speed, avoidance of certain joint configurations (e.g., singularities and neighborhoods of singularities), and so forth. The operational parameters may in particular include one or more of: output torque of an axis actuator of a multi-axis industrial robot, predicted lifetime, stopping distance,mechanical stress on a structural element, thermal stress, operating temperature. The present method 200 addresses a situation where the robot candidate is selected 202 such that the first payload (according to the robot task) exceeds the robot candidate’s pre-specified operational limit on payload.

[0026] Optionally, the robot candidate is selected 202 from a collection of robotcandidates. In the collection, each robot candidate – also that or those which are notselected 202 initially – is associated with a plurality of pre-specified operationallimits to be respected individually, wherein the operational limits refer to payload and one or more further operational parameters.

[0027] In a third step 203, at least one trajectory rule indicating a technicalpreference or a constraint on an aspect of a robot trajectory is defined. As with the robot task, the entity executing the method 200 need not create a novel trajectory rule, but it may adopt a preexisting trajectory-rule definition or it may adopt a trajectory rule specified by an operator.

[0028] The role of the trajectory rule may be realized based on an understandingthat the robot trajectory will be generated (see description of step 204, below) by anautomated or partially automated process – particularly by an optimization process –having as its primary goal the completion of the defined robot task. In such a context,a purpose of the trajectory rule may be to shape the trajectory in accordance with oneor more desirable aims of the operator or system owner. Shaping the trajectory may refer, on the one hand, to the geometry of the path generated by executing thetrajectory, but it could as well refer to other, non-geometric aspects of the trajectory.The trajectory rule may represent a reward which is given in dependence of the trajectory’s degree of fulfilment of these desirable aims, or it may represent a penaltywhich is awarded for failure to fulfil such aims. Trajectory rules constituting desirableaims in this sense are secondary to the overreaching primary goal of completing therobot task. Further, the trajectory rules may be of an obligatory character, e.g., in thatthey mandate a certain behavior of the trajectory, or in that they prohibit somebehaviors (e.g., singular configuration of a multi-joint arm).

[0029] In some embodiments, the trajectory rule relates to at least one of thefollowing quantities: preferred length of a lever arm between the payload’s gravityforce and at least one robot axis (unit: 1 m), preferred distribution of load over robot’sjoints (unit: percentages), preferred orientation of a gripped payload object (unit:yaw-pitch angles, yaw-pitch-roll angles), maximum linear acceleration (unit: 1 m / s2),maximum angular acceleration (unit: 1 rad / s2). The trajectory rule may also representa binary quantity, such as whether a singular joint configuration is visited (typically: false).

[0030] In some embodiments, additionally or alternatively, the trajectory rulemay be specific to the selected robot candidate, in the sense that a different trajectory rule (or a different number of trajectory rules) may be specified for a different robot candidate.

[0031] Additionally or alternatively, the trajectory rule may be dependent on aratio of the first payload to the pre-specified operational limit on payload. To illustrate, the ratio has a value of 1.2 if the first payload exceeds the pre-specified operational payload limit by 20%.

[0032] Additionally or alternatively, the trajectory rule includes a cost functionrepresenting operational expense (e.g., cost of energy, consumables, usage-dependent maintenance) and / or wear on the robot candidate incurred by the execution of arobot trajectory. For example, the cost function could be inversely related to therobot’s lifetime estimated as an L10 / L10h lifetime. Some authors define the L10 valueas the number of hours at a constant speed that a technical system (e.g., a group of bearings) will reach before 10% of the bearings fail. In other sources, L10 is intro- duced as a calculation aiming to determine, with 90% reliability, how many hours abearing will last under a given load and speed. The published patent applicationDE102012112019A1 discloses a model for predicting the lifetime of a multi-axis robot under an assumption that the robot is engaged in continuous execution of a robotprogram. To this end, the program execution is simulated, the angular speed and load(or torque specifically) of each actuator is sampled at discrete points in time, and thelifetime is then predicted based on the average angular speed and average load in accordance with an empirical model disclosed in said published patent application.

[0033] In a next step 204, a robot trajectory which is suitable for solving the robottask is generated, wherein the trajectory rule(s) and any point X1, X2 on the robotpath P are taken into account. The robot trajectory may be a combination of one ormore sub-trajectories. To generate a robot trajectory for performing such a robottask, the processing circuitry 124 may execute a corresponding software routine in the memory 126. The software routine may for example be an optimization programconfigured to generate the trajectory subject to various operator-defined constraints and / or predefined constraints and to optimize a property of the trajectory. The trajectory rule(s) can be entered as one of these constraints. The software routinemay refer to a computational model of the robot candidate, as exemplified byequations (1), (2), (3), (^) and (^’). The property to be optimized may for example bethe largest payload for which it is acceptable to execute the trajectory (maximization).Further, the property to be optimized may be the amount of wear experienced by therobot candidate when it executes the trajectory (minimization). Further, the propertyto be optimized may be cycle time / execution time (minimization), throughput perunit time (maximization) or energy consumption (minimization).

[0034] A constraint can represent one or more of the following:- safety braking distance,- safety gravitational load (acceptable payload such that robot arm 110 doesnot collapse or break), -ambient temperature,- thermal stress (acceptable internal temperature),- mechanical stress of structural elements,- collision avoidance (e.g., minimum distance between parts with relativemovement, including workpieces 130), -maximum speed,- maximum acceleration,- path-following accuracy (e.g., allowable deviation from the path P),- maximum torque on each joint,- maximum actuator drive current,- maximum motor speed,- maximum motor torque,- a movement limitation that prohibits certain joint configurations (e.g.,singularities and neighborhoods thereof).A set of ^^inequality constraints and ^^equality constraints can be compactly written in matrix form as^(^)^^= ℎ^ (^^)where ^^ is a ^^ ×matrix, ^^ is a ^^ ×matrix, ^(^)is a vector ofcon-strained state variables, and ℎ^, ℎ^ are vectors of respective lengths ^^ and ^^.

[0035] The optimization problem has an objective functionwhichinputs free variables ^(^) and theconstrained variables ^(^), and whichoutputs one or more objective variables. If the objective variable is an observable inthe model of the robot candidate, it can be extracted directly from that model, such as(D). If the objective variable is not an observable, an expression for the objectivevariable as a function of ^(^), ^(^) can normally be determined analytically, e.g., bysolving for the objective variable. Depending on the significance of the objective function ^, the optimization problem is either a minimization problem or amaximization problem. When the objective function ^ represents a differencebetween positively signed benefit and negatively signed cost, the optimization problem is a maximization problem.

[0036] In some embodiments, the objective function ^ further has a dependenceon the first point X1 (and any second point X2) that shall lie on the robot path P,which is to be visited. For example, the objective function ^ may include a penalty ondeviations from the first point X1, or a penalty on such deviations to the extent theyexceed a preconfigured threshold. The objective function ^ may alternatively include areward for visiting the first point X1. Furthermore, the objective function ^ mayinclude a reward for completing the robot task or one or more subtasks thereof.

[0037] The optimization problem may have the form of an optimal control pro-blem (OCP) or a model-predictive control (MPC) problem. In an OCP, the objectivefunction normally captures all cost and all benefit from a starting time ^ = 0 up to thecompletion of the trajectory or, as the case may be, up to the completion of the robot task. An MPC problem is typically formulated with a so-called receding horizon, which means the objective function captures all cost and all benefit in a time window[^, ^ + ^] where ^ is the working point and ^ is a constant representing the distance tothe horizon. The working point starts at ^ = 0 and advances gradually as the solvingof the optimization problem goes on. In some formulations of the optimizationproblem, therefore, the objective function ^ may be independent of events outside asliding time window [^, ^ + ^].

[0038] The optimization problem may be stated as follows:with the linear (^) or nonlinear (^′) system-dynamics model as above, and with theinequality constraints (^^) and equality constraints (^^) as above. The vectorcan be written explicitly asIt is understood that each one of the constrained variables is a function of time or a vector of values for consecutive points in time, such aswhere Δ^ is a time step. The vector ^(^) of free variables has a correspondingstructure. In implementations, the optimization problem (4) can be simplified beforesolving by replacing some variables by their values according to (^^). Theoptimization problem can be solved using an optimization solver algorithm (e.g., ADMB, ALGLIB, COIN-OR, GNU Octave, HiGHS, OpenMDAO, Scilab, SciPy), which is designed to output an approximate numerical solution, which here represents the robot trajectory.

[0039] In a step after the robot trajectory has been generated, values of saidone or more further parameters during an execution of the generated robot trajectory by the robot candidate are simulated using a computational model of the robot candidate. The computational model may be identical to the one which formed part of the optimization problem (e.g., a model retrieved from the robot database 127, see examples in equations (1), (2), (3), (^) and (^’)). The simulation instep 205 is expected to provide additional information since the further operationalparameters were not considered in the optimization problem, whether as free / constrained decision variables or as objective variable. For example, if the optimization is configured to minimize the cycle time, the further operationalparameter may be internal temperature or a local mechanical stress.

[0040] In a next step 206, it is assessed whether the simulated values of said oneor more further operational parameters satisfy the corresponding pre-specified operational limits. In the case of a positive outcome, the robot candidate is approved (step 207) for allocation to solve the robot task.

[0041] In the case of a negative outcome of the assessment, the robot candidate isdisapproved (step 208). In such a case, preferably, an operator is informed whichoperational parameter violates its operational limit. Based on this information, theoperator may take voluntary action to influence the remainder of the execution of the method 200, e.g., by selecting a next robot candidate to be evaluated.

[0042] In some embodiments of the method 200, the robot candidate shall beapproved only if all the simulated values of said one or more further operational parameters satisfy the corresponding pre-specified operational limits. It is recalled that the present method 200 is envisioned for use primarily when the robot candidate is selected such that the first payload exceeds its pre-specified operational limit on payload (cf. step 202); the payload is anyway not a simulated value.

[0043] In other embodiments of the method 200, the robot candidate shall beapproved only if a majority of the simulated values of said one or more furtheroperational parameters satisfy the corresponding pre-specified operational limits. A“majority” in this sense may correspond to at least 70% of the total number, such as 80% of the total number, such as 90% of the total number; if a weighting of different operational parameters is used, the “majority” criterion might be that a set ofoperational parameters representing 70%, 80% or 90% of the total weights shallsatisfy the corresponding pre-specified operational limits.

[0044] Optionally, it is then decided, in a step 209, whether some foregoing stepsof the method 200 are to be repeated for one or more further robot candidates.Steps 205 and 206 are to be repeated for each further robot candidate. It is optionalto also repeat step 203 (i.e., if different trajectory rules are applied in respect ofdifferent robot candidates) and / or step 204. In particular, if the robot candidate wasselected 202 from a collection robot candidates, a positive decision in step 209implies that a further robot candidate is selected from said collection. The method 200 may be repeated until all robot candidates in the collection have been evaluated.

[0045] In step 209, further optionally, the repetition of the foregoing steps 205,206 etc. is conditional on whether any robot candidate has been approved yet, in thesense that the repetition takes place only if no robot candidate has been approved so far. If this conditionality option is applied, the method 200 runs as long as necessaryuntil a first approvable robot candidate is found. Alternatively, there is no suchconditionality, but instead multiple robot candidates are approved for allocation andwill then be compared or evaluated relative to each other.

[0046] In a further optional step 210, the entity executing the method 200receives input indicating an allocation of one of the robot candidates to solve therobot task. The input may be received from a (human) operator or some automatedmeans, such as a decision-making software or artificial intelligence robot.

[0047] Optionally, step 210 includes a step of generating a robot program whichcauses the robot to execute the trajectory and which is suitable for the allocated robot. The format of the robot program may depend on the characteristics of the robot controller which is to execute the program. For example, the robot program canbe a routine in a robot script language, such as RAPID™ which can be used with anumber of the applicant’s products at the time of filing. A robot script may take theform of a sequence of commands, possibly with a specified timing for some or all ofthe commands. Further, the robot program may be a binary executable.

[0048] Assuming that the robot program is a specification of the trajectory in statespace of the allocated industrial robot, the generating of the robot program mayinclude converting a solution, ^(^) of an optimization problem (state-spacetrajectory) into a sequence of robot commands which are selected from a predefined set of robot commands executable by the robot controller and which cause the allocated robot industrial 110 to realize the trajectory. A conversion may include a first substep of sampling the trajectory into a sequence of discrete points in state space, and a second substep of selecting robot commands that cause the allocated industrial robot 110 to move between each pair of consecutive discrete points. The sampling used in the first substep may be time-uniform sampling (constant stepduration), space-uniform sampling (constant step length), or a non-uniform sampling algorithm with controlled deviation, such as Ramer–Douglas–Peucker. In aRAPID™ environment, the second substep may be performed so as to outputinstances of the command MoveL (cartesian linear motion) or MoveJ (joint-space linear motion) or a combination of these. Optionally, the conversion may include a postprocessing substep applied to the sequence of generated robot commands, such as formatting the sequence into a predefined script format by appending a header, performing a consistency check, or the like. Further optionally, the operator 150 may be offered an opportunity to review and edit a text representation of the resulting robot program.

[0049] In a further optional step 211, the allocated industrial robot 110 is causedto execute the generated robot program, normally by the intermediary of a robotcontroller, whereby the robot task can be solved. During said execution, the industrialrobot’s compliance with the generated robot trajectory may optionally be monitored(substep 211.1) by internal or external sensors. In the case of a deviation, a safety- oriented action may be taken. Supervising the compliance with the trajectoryconstitutes an additional safety precaution, which a system owner may consider to bejustified considering that the allocated robot’s pre-specified operational limit onpayload is knowingly exceeded due to the selection 202.

[0050] The aspects of the present disclosure have mainly been described abovewith reference to a few embodiments. However, as is readily appreciated by a person skilled in the art, other embodiments than the ones disclosed above are equally possible within the scope of the invention, as defined by the appended patent claims.

Claims

CLAIMS1. A computer-implemented method (200) of assisting an allocation of anindustrial robot (110) to solve a robot task, the method comprising: defining (201) a robot task including at least a first payload to be handled; selecting (202) a robot candidate, which is associated with a plurality of pre-specified operational limits to be respected individually, wherein the operational limits refer topayload and one or more further operational parameters, such that the first payloadexceeds the robot candidate’s pre-specified operational limit on payload;defining (203) at least one trajectory rule indicating a technical preference or a constraint on an aspect of a robot trajectory; generating (204) a robot trajectory suitable for solving the robot task on the basis of said at least one trajectory rule; simulating (205), using a computational model of the robot candidate, values of saidone or more further operational parameters during an execution of the generatedrobot trajectory by the robot candidate; and based on whether the simulated values of said one or more further operational parameters satisfy the corresponding pre-specified operational limits, approving (207) or disapproving (208) the robot candidate for allocation to solve the robot task.

2. The method (200) of claim 1, wherein said one or more further operationalparameters include one or more of: output torque of an axis actuator of a multi-axisindustrial robot, predicted lifetime, stopping distance, mechanical stress on a structural element, thermal stress, operating temperature.

3. The method (200) of claim 1 or 2, wherein the trajectory rule relates to at leastone of the following: preferred length of a lever arm between the payload’s gravity force and at least one robot axis, preferred distribution of load over robot’s joints, preferred orientation of a gripped payload object, maximum linear acceleration, maximum angular acceleration.

4. The method (200) of any of the preceding claims, wherein the trajectory rule isspecific to the selected robot candidate.

5. The method (200) of any of the preceding claims, wherein the trajectory rule isdependent on a ratio of the first payload to the robot candidate’s pre-specifiedoperational limit on payload.

6. The method (200) of any of the preceding claims, wherein the trajectory ruleincludes a cost function representing operational expense and / or wear on the robotcandidate incurred by the execution of a robot trajectory.

7. The method (200) of any of the preceding claims, wherein the defined robottask further includes a maximum cycle time.

8. The method (200) of any of the preceding claims, wherein the defined robottask further includes a first point (X1) and optionally a second point (X2) on the robotpath (P).

9. The method (200) of any of the preceding claims, wherein the robot task isdefined (201) in accordance with operator input.

10. The method (200) of any of the preceding claims, wherein the robot candidateshall be approved only if all the simulated values of said one or more furtheroperational parameters satisfy the corresponding pre-specified operational limits.

11. The method (200) of any of the preceding claims, wherein the robot candidateshall be approved only if a majority of the simulated values of said one or more further operational parameters satisfy the corresponding pre-specified operational limits.

12. The method (200) of any of the preceding claims, further comprising:during execution (211) of the robot task by an allocated industrial robot, monitoring (211.1) the industrial robot’s compliance with the generated robot trajectory.

13. The method (200) of any of the preceding claims,wherein the industrial robot is selected (202) from a collection of robot candidates, each robot candidate associated with a plurality of pre-specified operational limits to be respected individually, wherein the operational limits refer to payload and one or more further operational parameters, the method further comprising selecting (202) a further robot candidate from the collection and performing the simulation (205) for the selected further robot candidate.

14. A device (120) for assisting an allocation of an industrial robot (110) to solve arobot task, the device comprising:a robot candidate database (127) storing, for at least one robot candidate,- a plurality of pre-specified operational limits to be respected individually,wherein the operational limits refer to payload and one or more further operational parameters of the robot candidate, and -a computational model of the robot candidate;an interface (121) configured to receive data relating to a robot task including at least a first payload to be handled; and processing circuitry (124) configured todefine a robot task including at least a first payload to be handled based on datareceived through the interface;select a robot candidate, which is associated with a plurality of pre-specified operational limits to be respected individually, wherein the operational limits refer to payload and one or more further operational parameters, such that the first payload exceeds the robot candidate’s pre-specified operational limit on payload; define at least one trajectory rule indicating a technical preference or a constraint on an aspect of a robot trajectory;generate a robot trajectory suitable for solving the robot task on the basis of said atleast one trajectory rule; simulate, using a computational model of the robot candidate, values of said one or more further operational parameters during an execution of the generated robot trajectory by the robot candidate; and approve or disapprove the robot candidate, based on whether the simulated values of said one or more further operational parameters satisfy the corresponding pre- specified operational limits, for allocation to solve the robot task.

15. A computer program (128) comprising instructions which, when the program isexecuted by a computer, cause the computer to carry out the method of claim 1.

Citation Information

Patent Citations

  • Simulation device for estimating the service life of a robot reduction gear

    DE102012112019A1

  • Stress state processing method, device and equipment and readable storage medium

    CN117921649A

  • Planning and adapting projects based on a buildability analysis

    EP3586207B1

  • Systems and Methods for Allocating Tasks to a Plurality of Robotic Devices

    US20150185729A1