Optimization-based robot programming
The method and system empower operators to select optimization modes for robot programming, addressing the limitations of existing tools by allowing variable categorization and multi-objective optimization, resulting in controlled and constrained robot program generation.
Patent Information
- Application Number
- PCT/EP2024/056367
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-11
- Publication Date
- 2025-09-18
AI Technical Summary
Existing robot programming tools lack the ability for operators to independently experiment with different optimization modes, requiring multiple tools or specialist assistance to modify existing tools, and do not provide precise control over high-dimensional optimization problems.
A method and system that allow operators to select optimization modes by categorizing production variables as objective, constrained, or free variables, using a model of the industrial robot to derive an optimization problem, and generate a robot program based on operator input, utilizing multi-objective optimization techniques.
Enables operators to conveniently explore different optimization modes without additional tools or specialists, providing precise control over the optimization process and generating robot programs that meet specified constraints.
Smart Images

Figure EP2024056367_18092025_PF_FP_ABST
Abstract
Description
OPTIMIZATION-BASED ROBOT PROGRAMMINGTECHNICAL FIELD
[0001] The present disclosure relates to the field of industrial robots and in particular to optimization-based techniques for generating a robot program.BACKGROUND
[0002] The problem of generating a robot program that completes a certain robot mission can be solved in a multitude of different ways, and each solution has a different time consumption, energy consumption, mechanical wear, collision risk, and so forth. Even if this problem is narrowed down to completing the robot mission while the robot’s tool center point (TPC) follows a robot path specified by the user, there are many free variables, such as speed, path accuracy, payload, temperature etc., to which a human operator or an automated program generation process must assign explicit or implicit values. The task of automatically finding the optimal robot program therefore includes solving an optimization problem in a high-dimensional search space, which is often computationally challenging.
[0003] There exist various heuristics for recasting the program generation problem as a computationally more tractable task. For example, tentative values or tentative constraints can be assigned to such variables which the operator identifies as relatively unimportant, while the expectedly more decisive variables are treated as free variables or objective variables. To the inventor’s knowledge, there are currently no programming tools for independent use by operators that support experimentation where a number of such heuristics are tried.SUMMARY
[0004] One objective of the present disclosure is to make available a method for generating a robot program for an industrial robot based on a model of the industrial robot, with the characteristic that the operator can freely select an optimization mode that will form the basis for generating the robot program. An optimization mode in this sense corresponds to a selection of which production variables in the model of the industrial robot shall be objective variables, which production variables shall be constrained variables and which production variables shall be free variables. A further objective is to propose a robot programming system with these characteristics.
[0005] At least some of these objectives are achieved by the invention defined by the independent claims. The dependent claims relate to advantageous embodiments.
[0006] In a first aspect of the present disclosure, there is provided a method of generating a robot program for an industrial robot. The method comprises the steps of: obtaining a model of the industrial robot (or, in alternative terminology, a digital twin of the industrial robot), which defines relationships at least between a plurality of production variables; based on operator input, defining numerical constraints on constrained variables among the production variables; based on operator input, defining a robot path; deriving an optimization problem from the model and the path, wherein the optimization problem has an objective function which inputs free variables and the constrained variables and which outputs at least one objective variable; solving the optimization problem and notifying the operator; and, if the operator approves the solution of the optimization problem (e.g., based on the extent to which the solution satisfies the numerical constraints), using the solution to generate a robot program which realizes the robot path. According to said first aspect of this disclosure, the method comprises the further step of identifying each production variable - based on operator input - as either (a) an objective variable, (b) a constrained variable, or (c) a free variable.
[0007] In a second aspect, there is provided a robot programming system for generating a robot program to be executed by an industrial robot. The robot programming system comprises: a memory storing a model of the industrial robot, which defines relationships between a plurality of production variables; an operator interface configured to receive operator input indicative of numerical constraints on constrained variables among the production variables and indicative of a robot path; processing circuitry configured to derive an optimization problem from the model and the path, wherein the optimization problem has an objective function which inputs free variables and the constrained variables and which outputs at least one objective variable, and configured to provide a solution to the optimization problem and notify the operator, and further configured - subject to operator approval - to use the solution to generate a robot program which realizes the robot path. According to the second aspect, the operator interface is further configured to receive operator input for each production variable indicating whether the production variable iseither (a) an objective variable, (b) a constrained variable, or (c) a free variable. The optimization problem is derived in accordance with said operator input.
[0008] Because the optimization problem is derived from the model in such manner that its objective variable(s), constrained variable(s) and free variable(s) are as selected by the operator, the operator has control over the optimization mode of the optimization problem whose output will form the basis of generating the robot program. Further, the above-specified programming method and programming system allow the operator to conveniently explore different optimization modes without having to request the assistance of a computer specialist. The operator can then assess the performance of the different programs resulting from these. It also saves the operator the trouble of having to (purchase, install, maintain and) use a plurality of different robot-programming tools corresponding to different optimization modes. According to the state of the art, robot-programming tools are dedicated to working in a single optimization mode at a time; to explore the usefulness of a different optimization mode with state-of-the-art technology, the operator either has to provide multiple tools or request specialist help to modify an existing tool (e.g., edit source code and recompile).
[0009] In some embodiments, the derived optimization problem is solved using multi-objective optimization, MOO (or, in alternative terminology, multi criteria optimization). The MOO technique may involve keeping different contributions to the objective function separate during the solving process, rather than summing the contributions into a common objective function. This may allow more precise control over the solving process, and it may also inform the operator more transparently which numerical constraints have been met and which not.
[0010] The present disclosure further relates to a computer program containing instructions for causing a computer, or the robot programming system in particular, to carry out the above programming method. In particular, there is provided a single computer program (a single executable) which embodies all of the functionalities of the method; this saves the operator the trouble of having to use a plurality of different programming tools corresponding to different optimization modes. 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 includevolatile 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.[oon] In the terminology of the present disclosure, a path (in particular, robot path) is distinguished from a trajectory. A path is a sequence of spatial positions, such as positions of the TCP, while a trajectory is a sequence of states of a system. A trajectory normally corresponds to a unique path, but the converse is not necessarily true; there maybe multiple trajectories which cause an industrial robot to realize a given path.
[0012] Generally, all terms used in the claims are to be interpreted according to their 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 steps of any method disclosed herein do not have to be performed in the exact order described, unless explicitly stated.BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Aspects and embodiments are now described, by way of example, with reference to the accompanying drawings, on which: figure 1 shows an industrial robot composed of a robot arm and a robot controller; figure 2 is a flowchart of a robot programming method; and figure 3 is a snapshot of a graphical user interface of a robot programming system according to embodiments herein.DETAILED DESCRIPTION
[0014] The aspects of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, on which certain embodiments of the invention are shown. These aspects may, however, be embodied in many different forms and should not be construed as limiting; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and to fully convey the scope of all aspects of the invention to those skilled 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 no and a robot controller 120 communicatively coupled to the robot arm no. 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 the workpieces 130 into or out of a container 132, both being located in a work area of the robot 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 its distal 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 workpieces 130. A reference point on the tool 118 defines the tool center point (TCP) of the robot arm no. 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 to control 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. The robot controller 120 is further configured to sense a condition of the robot arm no 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 of the robot arm 110 can have the form q = f(q, q,T, 0) (1) where q, q, q denote the actuator-position vector and its first and second time derivatives, that is, the (angular) speed and (angular) acceleration. Further, r denotes the torque applied by the actuators 114, and 0 is an environmental parameter which may represent, for example, the mass of a workpiece 130 that moves with the robotarm no or a temperature at a reference point of the robot arm no. The model (i) can be developed into a state-space model with statesand an observable y = x1;as follows:The applied torque r may be considered to be a control signal. The linear or nonlinear function f introduced in equation (i) can be derived in a per se known manner by applying conventional rigid-body mechanics to the robot arm no, such as dynamic equations of motion and forward kinematics. For example, the right-hand side can have the following nonlinear formulation:0) is the inertia matrix, C(x1;x2, 0) collects the Coriolis and centripetal terms, g , 0) represents gravity and ry (xx, x2, 0) is a model of friction. For full generality of this disclosure, the notation in (3) is chosen to accommodate a potential dependence on all of xltx2, 0, although in practical cases the terms may have a negligible variation with respect to these, which need not be reflected in the statespace model. For example, the friction can be modeled as a static force without any dependence on speed q. Similarly, not all terms in f must vary with 0.
[0018] On more general form, a model of the industrial robot may be expressed as a linear dynamical system in discrete time:where x k) is a vector of states of the system, y(fc) is a vector of observables and u(fc) is a vector of control signals, each with a dependence on the time index k. 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 A, B, C, D are constant and time-invariant. In a more developed model, some of the entries of the matrices A, B, C, D depend on environmental variables 0. 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 f, g have a dependence on the states x(t) and can further depend on the control signals u(t), the environmental variables 0(t) and time t. The time dependence of functions f, g is absent if the modeled nonlinear dynamical system is time-invariant.
[0020] Figure 1 further depicts the inner workings of the robot controller 120 which, 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 executable code (one or more robot programs) 127, a model 128 of the industrial robot, an operating system, a system configuration, a history of past tasks (for traceability, documentation and similar purposes), project-related data and the like. 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 maybe 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 robot arm no is equipped with an independent power source, so that all it needs from the robot 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 generating a robot program127 for an industrial robot. It is envisioned that the method 200 will be executed by the robot controller 120, which then maybe said to act as a robot programming 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 obtains a model128 of the industrial robot, which defines relationships between a plurality of production variables. The model 128 maybe obtained by retrieval from a local memory (e.g., memory 126) or a remote memory or repository. The model 128 maybe set up in accordance with input from the operator 150. A further option is to establish the model 128 by means of system identification applied to the industrial robot.
[0023] Production variables in this sense include any variables representing a controllable linear or angular position of a part of the robot arm no, a control action (e.g., torque applied by an actuator), a controllable (internal) condition of a drive system or a support system in or associated with the industrial robot, as well as any variables representing a consumption (energy, lifetime, wear), performance (time of completing a task, cycle time, productivity, range) or quality (path accuracy). In the state-space terminology, production variables can include a state of the system, a control signal to the system as well as an observable of the system.
[0024] Optionally, in some embodiments of the method 200, the model of the industrial robot may further define relationships between environmental variables, which are not influenceable by the industrial robot, and the production variables.
[0025] In a next step 202, in accordance with input from the operator 150, numerical constraints on constrained variables among the production variables are defined. Each numerical constraint can be an inequality constraint or an equality constraint. Each production variable for which the operator 150 inputs a numerical constraint is a constrained variable. A constraint can represent one or more of the following:- safety braking distance,- safety gravitational load (acceptable payload such that robot arm no does not collapse or break),- ambient temperature,- thermal stress (acceptable internal temperature),- mechanical stress of structural elements,- collision avoidance (e.g., minimum distance between parts with relative movement, 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 m1inequality constraints and m2equality constraints can be compactly written in matrix form asH qw< h (C<)H2q(b>= h2(C=) where H±is a m1xmatrix, H2is a m2xmatrix, q^ is a vector ofconstrained production variables, and hlth2are vectors of respective lengths m1and m2.
[0026] In a next step 203 of the method 200, a robot path P is defined based on input from the operator 150. For this purpose, the operator 150 can upload a geometric description of the path P, enter coordinates through the operator interface 121, or use lead-through teaching. The path P can for example be represented as a sequence of control points of the TCP, wherein each control point may be expressed in coordinates, particularly coordinates of a cartesian reference frame. The path P canas well be represented as a space curve. Step 203 is optional and can be omitted from some embodiments of the method 200.
[0027] In a step 204, each production variable is identified - based on operator input - as either (a) an objective variable, (b) a constrained variable, or (c) a free variable. The objective function of an optimization problem inputs free variables and constrained variables, and it outputs one or more objective variables. Based on this categorization, a vector of N production variables q can be split (after possible reordering of variables) intowhere the respective lengths N^,of vectors q(aq^b\ q^ are such that_|_ TV (*») _|_ TV <c) = IV. By way of summary, the variables in the model of the industrial robot fall into the following categories:1. Production variables(a) Objective variables(b) Constrained variables(b, <) Inequality-constrained variables(b, =) Equality-constrained variables(c) Free variables2. Environmental variables
[0028] Tables 1 and 2 show two example outcomes of the step 204 of identifying each of the production variables as an objective variable, a constrained variable or a free variable. Each outcome represents one optimization mode, in the sense explained above.
[0029] In the described example embodiment of the method 200, the step of identifying each of the production variables as an objective variable, a constrained variable or a free variable is performed just before step 205 (deriving an optimization problem, see below) but later than step 202 (defining numerical constraints), based on which some variables can be implicitly identified as constrained. In the example embodiment, therefore, it may suffice to indicate whether each of the remaining (i.e., non-constrained) variables is an objective variable or a free variable. In an alternative embodiment of the method 200, the step of identifying each of the production variables as an objective variable, a constrained variable or a free variable can be performed earlier, and even earlier than step 202 (defining numerical constraints). In further alternative embodiments, one or more of steps 202, 203, 204 can be combined into a common input operation.
[0030] The execution flow of the method 200 continues to a step 20 , where an optimization problem is derived from the model and the path. The optimization problem has an objective function J which inputs free variables and the constrained variables and which outputs one or more objective variables q^aq^, q^, such asor such aswhere each of q^\ q^ is a function of q^ and / or q^c\ Concretely, the optimization modes according to Tables 1 and 2 respectively correspond to
[0031] If the objective variable is an observable in the model of the industrial robot, it can be extracted directly from a model such as (D). If the objective variable is not an observable, an expression for the objective variable as a function of qw,can normally be determined analytically, e.g., by letting a symbolic computation software solve for the objective variable. Depending on the significance of the objective function J, the optimization problem is either a minimization problem or a maximization problem. When the objective function J represents a difference between positively signed benefit and negatively signed cost, the optimization problem is a maximization problem.
[0032] In some embodiments, the objective function J further has a dependence on the robot path P which is to be followed. For example, the objective function J may include a penalty on deviations from the robot path P, or a penalty on such deviations to the extent they exceed a preconfigured threshold. The objective function J may alternatively include a reward for adhering to the robot path P. Furthermore, the objective function J may include a reward for completing a utility task, such as a material-handling task, a manufacturing task, a picking or sorting task, or a reward for a subtask within the utility task.
[0033] The optimization problem may have the form of an optimal control problem (OCP) or a model-predictive control (MPC) problem. In an OCP, the objective function normally captures all cost and all benefit from a starting time t = 0 up to the completion of the path P or, as the case may be, up to the completion of a utility 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 [t, t + T] where t is the working point and T is a constant representing the distance to the horizon. The working point starts at t = 0 and advances gradually as the solving of the optimization problem goes on. In some formulations of the optimization problem, therefore, the objective function J maybe independent of events outside a sliding time window [t, t + T] .
[0034] The optimization problem may be stated as follows:with the linear or nonlinear system-dynamics model as above (notation to be adapted to theformalism), and with the inequality constraints and equality constraints as above. The time-dependence is implicit. It is understood thatand that each one of the constrained variables is a function of time or a vector of values for consecutive points in time, such aswhere At is a time step. The vector q^ of free variables has a corresponding structure. It is noted that step 205 may include simplifying the dynamic model of the industrial robot by replacing some variables by their values according to (C=).
[0035] Next, in step 206, the optimization problem is solved and the operator 150 is notified, preferably via the operator interface 121. Preferably, an optimization solver algorithm (e.g., ADMB, ALGLIB, COIN-OR, GNU Octave, HiGHS, OpenMDAO, Scilab, SciPy) is utilized for finding an approximate numerical solution. The solution is denoted qw, q^ , based on which one can evaluate the objective function for the solution, asThe notification to the operator 150 may include the approximate optimal value q^ of the objective function. Alternatively or additionally, the notification may indicate to what extent the solution qbq^ satisfies the numerical constraints (C<) and / or (C=); this is relevant primarily when an optimization solver is utilized that does not enforce the constraints strictly but allows deviations.
[0036] The notification allows the operator 150 an opportunity to evaluate the solution of the optimization problem and, if (s)he is satisfied, to approve the solution (Y branch from decision point 207). Alternatively (N branch from decision point 207), the operator 150 may choose to run steps 204-206 multiple times while providing different inputs in the step 204 of identifying each of the production variables as an objective variable, a constrained variable or a free variable.
[0037] If the operator 150 approves a solution of the optimization problem, the execution flow of the method 200 proceeds to a step 208 of using the solution to generate a robot program which realizes the robot path. The format of the robot program depends on the characteristics of the robot controller(s) which is to execute the program. For example, the robot program can be a routine in a robot script language, such as RAPID™ which can be used with a number of the applicant’s products at the time of filing. A robot script may take the form of a sequence of commands, possibly with specified timing. Further, the robot program may be a binary executable. Further still, the robot program maybe a specification of the trajectory in state space of the industrial robot.
[0038] The last option corresponds closely to the solutionq^cX Under the two first options, the generating of the robot program may include converting the solution qbq^ (state-space trajectory) 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 robot arm no 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 robot arm no to move between each pair of consecutive discrete points. The sampling used in the first substep maybe time-uniform sampling (constant step duration), spaceuniform sampling (constant step length), or a non-uniform sampling algorithm with controlled deviation, such as Ramer-Douglas-Peucker. In a RAPID™ environment, the second substep maybe performed so as to output instances of the command MoveL (cartesian linear motion) or Move J (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.
[0039] The execution of the method 200 according to the example embodiment may end after step 208.
[0040] In alternative embodiments of the method 200, step 206 may include solving the optimization problem using multi-objective optimization (MOO). In MOO, it is preferred to separate the components of the objective function and tofollow the structured MOO approach to optimizing each of these. For example, rather than considering the sum-like objective function introduced above j(qw,q^ = q? + q?’ it maybe beneficial to define a separate sub-objective for each term:7I(Q(Z,)> Q(C)) = q?’The optimization problem changes from (4) towhere the conventional MOO notation max( / 1, / 2, ■■■ ) has been used. From the well- developed theory of MOO, a number of tools for reconciling competing goals in the optimization are known. For example, a tentative solution to the MOO problem may be visualized relative to a Pareto frontier, and the operator’s 150 input on how to proceed may be requested.
[0041] Figure 3 is a snapshot of a graphical user interface (GUI) 300 of a robot programming system. The GUI 300, which may for example be displayed in the operator interface 121, is suitable for requesting from the operator’s 150 input concerning the numerical constraints and, for each production variable, each production variable, whether it shall be an objective variable, a constrained variable, or a free variable.
[0042] In the GUI 300, a number of production variables 331-338 are listed. For each production variable in a first group (variables 331-334), the operator 150 can input whether it shall be a constrained variable (first column 310) or an objective variable (second column 320). If the operator 150 selects it as a constrained variable, (s)he can further input a numerical constraint in the first column 310. The fifth production variable 335 can optionally be constrained. The sixth and seventh production variables 336, 337 can optionally be selected as objective variables. For the eighth production variable 338, the operator 150 can optionally enter a lower and / or an upper numerical constraint. If the lower and upper constraints are notequal, the optimization be configured to use the most difficult value in the case at hand, or run the optimization multiple times for random values between the lower and upper constraints. Preferably, the GUI 300 is configured with logic which requires the operator 150 to select at least one objective variable before (s)he can start the optimization.
[0043] The GUI 300 further includes a field 350 for displaying exceptions, an optimization start button 342 and a success indicator 341. Characteristics of a solution of the optimization is displayed in the second column 320 for those production variables which were selected as objective variables. The success indicator 341 shows to what extent the numerical constraints have been met. If the operator 150 is satisfied with the displayed results, (s)he can instruct the robot programming system to generate a robot program on the basis of the solution.
[0044] The aspects of the present disclosure have mainly been described above with 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 method (200) of generating a robot program (127) for an industrial robot (no, 120), comprising the steps of: obtaining (201) a model of the industrial robot which defines relationships at least between a plurality of production variables (331-338); based on operator input, defining (202) numerical constraints on constrained variables among the production variables; based on operator input, defining (203) a robot path (P); deriving (205) an optimization problem from the model and the path, wherein the optimization problem has an objective function which inputs free variables and the constrained variables and which outputs an objective variable; solving (206) the optimization problem and notifying the operator; and if an operator (150) approves the solution of the optimization problem, using (208) the solution to generate a robot program which realizes the robot path, characterized by the further step of identifying (204) each production variable, based on operator input, as either (a) an objective variable, (b) a constrained variable, or (c) a free variable.
2. The method (200) of claim 1, wherein the optimization problem is solved (206) using multi-objective optimization.
3. The method (200) of claim 1 or 2, wherein the model of the industrial robot further defines relationships between environmental variables, which are not influenceable by the industrial robot, and the production variables.
4. The method (200) of any of the preceding claims, wherein the numerical constraints represent one or more of the following: safety braking distance, safety gravitational load, ambient temperature, thermal stress, mechanical stress of structural elements, collision avoidance, speed, acceleration, path-following accuracy.
5. The method (200) of any of the preceding claims, wherein the operator is notified of a value of the objective function for the solution and / or to what extent the solution satisfies the numerical constraints.
6. A robot programming system for generating a robot program to be executed by an industrial robot, comprising: a memory storing (126) a model (128) of the industrial robot, which defines relationships between a plurality of production variables (331-338); an operator interface (121) configured to receive operator input indicative of- numerical constraints on constrained variables among the production variables, and- a robot path (P); processing circuitry (124) configured to- derive an optimization problem from the model, wherein the optimization problem has an objective function which inputs free variables and the constrained variables and which outputs an objective variable,- provide a solution to the optimization problem and notify the operator, and- subject to operator approval, use the solution to generate a robot program which realizes the robot path, characterized in that the operator interface is further configured to receive operator input for each production variable indicating whether the production variable is either (a) an objective variable, (b) a constrained variable, or (c) a free variable, wherein the optimization problem is derived in accordance with said operator input.
7. One computer program (127) comprising instructions to cause the system of claim 6 to execute the steps of the method (200) of any of claims 1 to 5.
Citation Information
Patent Citations
Method and apparatus for evaluating a proposed solution to a constraint problem
US20060149512A1
Object manipulation with collision avoidance using complementarity constraints
US20220379478A1
Method Of Setting Control Parameter Of Robot, Robot System, And Computer Program
US20230001578A1
Method for Controlling Displacement of a Robot
US20240017411A1
Method of Handling Manipulator, Control System and Industrial Robot
US20240149450A1