EP3965999A1 - Verfahren und system zur bestimmung von optimierten programmparametern für ein roboterprogramm - Google Patents
Verfahren und system zur bestimmung von optimierten programmparametern für ein roboterprogrammInfo
- Publication number
- EP3965999A1 EP3965999A1 EP21739967.4A EP21739967A EP3965999A1 EP 3965999 A1 EP3965999 A1 EP 3965999A1 EP 21739967 A EP21739967 A EP 21739967A EP 3965999 A1 EP3965999 A1 EP 3965999A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- program
- robot
- parameters
- critical
- optimized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 230000006870 function Effects 0.000 claims abstract description 115
- 238000005457 optimization Methods 0.000 claims abstract description 68
- 238000012549 training Methods 0.000 claims abstract description 51
- 238000013528 artificial neural network Methods 0.000 claims description 35
- 238000005070 sampling Methods 0.000 claims description 16
- 230000000306 recurrent effect Effects 0.000 claims description 13
- 238000011144 upstream manufacturing Methods 0.000 claims description 5
- 230000001427 coherent effect Effects 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 3
- 230000033001 locomotion Effects 0.000 description 53
- 239000013598 vector Substances 0.000 description 31
- 230000008569 process Effects 0.000 description 21
- 238000004519 manufacturing process Methods 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 13
- 230000001133 acceleration Effects 0.000 description 12
- 230000006399 behavior Effects 0.000 description 9
- 238000009826 distribution Methods 0.000 description 9
- 238000012423 maintenance Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 241000288105 Grus Species 0.000 description 3
- 241000282412 Homo Species 0.000 description 3
- 238000005452 bending Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000012636 effector Substances 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000007620 mathematical function Methods 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 230000000704 physical effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 241001463014 Chazara briseis Species 0.000 description 2
- 238000000342 Monte Carlo simulation Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008094 contradictory effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000000418 atomic force spectrum Methods 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000013386 optimize process Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000010972 statistical evaluation Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000004381 surface treatment Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39298—Trajectory learning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40392—Programming, visual robot programming language
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40395—Compose movement with primitive movement segments from database
Definitions
- the invention relates to a method and system for determining optimized program parameters for a robot program, the robot program being used to control a robot with a manipulator, preferably in a robot cell.
- industrial robots are used in particular for solving complex manipulation and assembly tasks and for surface treatment when the workpieces to be machined or the application tasks to be performed show a degree of variability.
- the ability of industrial robot arms to approach almost any tool or workpiece position and orientation within their workspace, in combination with suitable end effectors, enables the solution of different application tasks or the processing of different workpiece variants within a robot cell.
- Manufacturing cells with industrial robots are traditionally programmed using text, with poses or partial movements being taught in for the initial parameterization using a teach-in process using so-called teach pendants.
- Numerous manufacturer-specific and manufacturer-independent commercial products facilitate the offline programming of robot cells through the automatic generation of robot code and semi-automatic path generation using CAD models of the robot cell and the workpieces to be machined (“CAD to Path”).
- Block-based programming systems or programming software such as the ArtiMinds Robot Programming Suite (RPS), RoboDK or drag&bot simplify robot programming by encapsulating atomic motion primitives in abstract program blocks that can be combined to form complex manipulation sequences.
- Symbolic, parameterizable program representations are an established practice in service and industrial robotics.
- Task models usually consist of atomic, parameterizable action primitives, which can be combined into complex action sequences by control flow and logic primitives and translated into sequences of specific robot movements.
- Generalized manipulation strategies and their implementation such as the ArtiMinds Task Model, represent action primitives as groups of possibly learned constraints (conditions) in joint angle or Cartesian space, from which movements are generated that meet these constraints. For example, reference is made to DE 10 2015 204 641 A1.
- DSLs Domain-Specific Languages
- Some platforms such as MindSphere or Nexeed enable the optimization and adjustment of certain process control parameters in order to optimize parameters such as throughput or cycle time, but operate at the macro level, so that fine-tuning of program parts of a robot program, for example, is not possible. Since the behavior of a robot is specified in software, the development and maintenance effort of robot cells is shifted away from the hardware to the software.
- a robust solution to complex manipulation tasks with industrial robots depends heavily on task-specific program parameters such as speed, acceleration, force specifications or target points, which must be precisely matched to the task to be solved, the geometry and physical properties of the robot cell and the workpieces to be machined . Especially when commissioning new robot cells, fine-tuning the program parameters is very time-consuming, requires highly specialized expert knowledge and delays the productive operation of the robot cell.
- the present invention is therefore based on the object of designing and developing a method and a system for determining optimized program parameters for a robot program of the type mentioned at the outset in such a way that finding optimized program parameters for the robot program is simplified or improved.
- a method for determining optimized program parameters for a robot program is specified, with the robot program being used to control a robot with a manipulator, preferably in a robot cell, with the method comprising the following steps:
- the robot program being formed from program modules that can be configured via program parameters, and initial program parameters being generated for the program modules of the robot program;
- a system for determining optimized program parameters for a robot program is specified, the robot program being used to control a robot with a manipulator, preferably in a robot cell.
- This system comprises: a component-based graphical programming system for creating a robot program based on user input, the robot program being formed from program components that can be configured via program parameters, and initial program parameters for the program components of the robot program being able to be generated; an interface for selecting one or more critical program modules, it being possible to define program parameters that can be optimized for the critical program modules; an exploration module for exploring a parameter space in relation to the program parameters that can be optimized, the robot program being executed multiple times, the parameter space being scanned for the critical program modules and trajectories of the robot being recorded, so that training data are available for the critical program modules ; a learning module for generating building block representatives for the critical program building blocks of the robot program based on the training data collected in the exploration phase, with a building block representative representing a system model that, in
- a robot program is first generated using a component-based graphic programming system based on user inputs.
- the robot program is formed from program modules, with the program modules being parameterizable via program parameters.
- the robot program therefore represents a semi-symbolic robot program. Furthermore, initial and thus preliminary program parameters for the program modules of the robot program are generated or specified.
- one or more critical program modules can then be selected using an interface that is provided, it being possible to define program parameters that can be optimized for the critical program modules.
- an automatic and stochastic exploration of a parameter space takes place in relation to the program parameters that can be optimized.
- the robot program is executed several times or repeatedly, with an automatic see scanning of the parameter space for the critical program modules is carried out and the resulting trajectories of the robot are recorded. Training data can thus be collected for each execution of the robot program for the critical program modules.
- a component representative here is a system model that, in the form of a differentiable function, maps a specified state of the robot measured or determined in the exploration phase and specified program parameters to a predicted - i.e. an expected - trajectory.
- optimized program parameters for the critical program modules of the robot program are determined in an inference phase.
- optimizable program parameters of the building block representatives are iteratively optimized with regard to a predetermined target function by means of a gradient-based optimization method using the previously generated building block representatives.
- an optimal parameter vector is obtained for each critical building block.
- the optimized program parameters can be automatically transferred to the robot program. In this way, a robot program can be achieved with program parameters that are optimal with regard to a specified target function.
- a "block-based graphical programming system” can - in particular within the scope of the claims and preferably within the scope of the description - be understood as a programming system or programming software that allows encapsulation of atomic motion primitives in abstract program blocks, the program blocks to complex manipulation sequences zen can be combined.
- the ArtiMinds Robot Programming Suite (RPS), RoboDK or drag&bot are just examples of possible building block-based programming systems.
- a "semi-symbolic robot program” can - in particular within the scope of the claims and preferably within the scope of the description - be understood as a robot program that has a symbolic structure (composed of individual program modules), whose components (the program modules ) are variable in their behavior, since the exact behavior of the blocks still depends on the parameterization).
- Discrete program blocks which can each be parameterized, have both properties and can therefore be viewed as semi-symbolic.
- a block-based graphical programming system can generate a semi-symbolic robot program.
- a “program module” can be understood as the smallest user-configurable unit of a symbolic or semi-symbolic robot program.
- the program module represents a predefined action of the robot.
- Program blocks can be sequentially combined to form complex robot programs.
- Program blocks can be parameterized, i.e. they accept a vector of parameters whose values can be specified by the robot programmer when creating the robot program.
- Each program block has exactly one type, which determines the action that the program block represents. Examples of program blocks are “gripping”, “point-to-point movement”, “contact travel (relative)”, “arc travel”, “spiral search (relative)”, “torque-controlled joining”, “force-controlled pressing”, “palletizing” etc.
- a “critical program module” can be understood—particularly within the scope of the claims and preferably within the scope of the description—as a program module for which optimized parameters are to be determined.
- a "block representative" can - in particular within the scope of the claims and preferably within the scope of the description - a system model for a Program block to be understood, which models the behavior of the program block during its execution.
- a block representative in the sense of the definition of a system model can map a vector of input parameters and the system state at the time of execution to the trajectory to be expected during execution, with the system in the sense of the definition of a system model including the robot arm and possibly the Environment of the robot and possibly the objects manipulated during the execution of the program module.
- a “system mode” can be understood—particularly in the context of the claims and preferably in the context of the description—as a mathematical model that approximates the behavior of a system in a simplified manner.
- a "system modeN” can be defined as a mathematical function / that, given the input parameters x and the system state p, returns the expected trajectory ⁇ . / thus implicitly contains the program logic (the translation of x into control commands for the robot by the robot program), the kinematics and dynamics of the robot, and the physical properties of the environment.
- trajectory can be understood as a sequence of vectors sampled at a fixed sampling interval, which can contain information about the state of the robot and optionally also about its surroundings.
- trajectories for each magazine can contain one or more of the following information:
- a status code ( per foi g ) between 0 and 1, which indicates whether an error occurred during the execution of the movement, eg whether the force specification was violated in a force-controlled movement.
- Parameter domains can advantageously be specified for the program parameters that can be optimized for the critical program modules, with the program parameters that can be optimized being optimized via the parameter domains.
- a parameter domain represents a permissible range of values for the program parameter that can be optimized.
- a permissible range of values or a parameter domain is expediently provided for each program parameter that can be optimized.
- the parameter domains for the program parameters of the critical program modules that can be optimized can be specified and/or can be specified or set. Accordingly, a domain can also be preset. This means that the parameter domain for a program parameter could already be specified by the underlying system. Furthermore, it is conceivable that a robot programmer/user selects a parameter domain for the program parameters of the critical program modules to be optimized, via which optimization is to be carried out. This parameter domain is application-specific and should be selected to be sufficiently narrow so that safety requirements for the manufacturing process and minimum requirements for quality and cycle times are met.
- the program parameters that can be optimized can be sampled from their respective parameter domains in the exploration phase for scanning the parameter space. That means the optimal program parameters that can be measured are randomly selected as a random sample from the parameter domain. It is conceivable that the program parameters that can be optimized are sampled in a uniformly distributed manner, ie a uniformly distributed sampling is carried out. This provides the advantage that any sampling errors are widely distributed over the sampling space. Uniform sampling provides enough randomness to avoid systematic undersampling while ensuring uniform coverage of the parameter space. Furthermore, it is conceivable that the program parameters that can be optimized are sampled adaptively. Adaptive sampling can therefore be carried out and samples expediently there or in the areas where information is still required.
- the robot program can advantageously be stored in a serialized format, preferably in a database, in such a way that the format enables the robot program or its program modules to be reconstructed and parameterized.
- the format can include a sequential execution order of the program modules, types of the program modules, IDs of the program modules, constant program parameters and/or program parameters that can be optimized.
- the format and the stored data thus allow particularly efficient field handling and implementation to be achieved. Further advantages of these features include the possibility of using the stored program structure, building block types and parameters to generate the overall system models, consisting of sequences of building block representatives for the building blocks contained in the program structure, fully automatically.
- Another advantage is the possibility of reusing data from earlier explorations (possibly for other robot programs) in parts for training new block representatives (e.g. for execution in changed environments, etc.) for blocks of the same block type at any later point in time , since the specified format enables block types and parameters to be read out later.
- a resulting, scanned trajectory can be stored in such a way that each data point of the trajectory can be clearly assigned an associated program module and a parameterization of the associated program module at the time of the respective execution .
- This makes possible particularly efficient handling and implementation of the data stored with the trajectory.
- One advantage of this format is the possibility of using the stored data again later at any later point in time for training new block representatives of the same type, since the partial trajectories for program blocks of specific types can be assigned directly and extracted from the overall trajectory.
- the robot program can be executed automatically, with at least 100 executions, preferably at least 1000 executions, of the robot program being carried out to obtain the training data.
- the automated execution of the robot program has the advantage that no human resources are tied up during the exploration phase and enables the time- and resource-efficient collection of real training data.
- the number of executions of the robot program during the exploration phase has an advantageous effect on the quality of the program parameters optimized in the inference phase, since a higher number of training data means a finer sampling of the parameter space and the system behavior, whereby the neuronal Networks can learn to approximate the system behavior with different parameters more robustly and precisely. Since the block representatives form the basis for the system for optimizing the program parameters, generally optimized parameter sets that come closer to the globally optimal parameterization can be expected with larger amounts of training data.
- the training data collected in the exploration phase for each execution of the robot program can include a parameterization, in particular constant and/or optimizable program parameters, of the critical program modules and a respectively resulting, sampled trajectory of the critical program modules.
- the block representatives can thus be generated in the learning phase.
- the program parameters that are randomly sampled in the exploration phase, ie, randomly generated, can be optimized and stored as part of the training data and associated with the execution of the robot program.
- the joint storage of program parameters and trajectories simplifies the implementation significantly, since only one database or one storage format needs to be connected.
- the training data collected in the exploration phase can also include an ID (that is, an identifier or identifier) and/or a status code for each executed program module.
- the ID can be used to assign a building block and a parameter to the building block and a trajectory to the building block.
- the status code can be used to store success/failure of execution and can therefore be an important part of the program block semantics for the block representatives to learn.
- the error rate can be minimized as a target function for the optimization. Consequently, the spectrum of possible, usable target functions is expanded.
- learnable block representatives can first be generated in the learning phase for the critical program blocks, with the learnable block representatives being trained with the training data from the exploration phase, and then as learned block representatives system models for the associated critical program blocks - display an encapsulated sub-process.
- This enables the simple software implementation of block representatives as object-oriented classes (there is a (software) class for each type of program block, which implements the trajectory generator for this type of block, the architecture of the neural network and the necessary for the training logic included).
- These classes only have to be developed once (e.g. as part of a software product for graphical robot programming) and can then be repeatedly instantiated to concrete building block representatives whose neural network is then trained.
- the building block representatives can advantageously include a recurrent neural network.
- This provides universal applicability. Since the recurrent neural network uses a deep neural network as a system model, the procedure described when creating the model does not make any assumptions about the nature (e.g. parametric distribution, normal distribution, linearity) of the input and output data and is therefore applicable in all manufacturing domains and in principle for all building block types can be used. Since no further requirements are placed on the target function apart from differentiability, any target functions are conceivable. The procedure is can therefore be used in any application domains such as assembly, surface processing or handling and enables the optimization of robot programs with regard to any process key figures or quality criteria.
- an analytical trajectory generator which is expediently implemented in a differentiable manner, can be connected upstream of the recurrent neural network.
- the analytical trajectory generator is designed to generate a prior trajectory. Since long, finely sampled trajectories in particular contain a lot of redundant information and large sequence lengths can make the learning problem significantly more difficult when predicting with neural networks, this is counteracted by an analytical trajectory generator is connected upstream of the neural network. This generates a prior trajectory.
- the trajectory generator can consist of a differentiable implementation of an offline robot simulator.
- Orocos KDL https://www.orocos.org/kdl
- Movelt https://moveit.ros.org/
- the algorithms implemented there for motion planning can be converted into differentiable calculation graphs.
- this transfer can be carried out by re-implementing the planning algorithms using the software library PyTorch (https://pytorch.org/), which guarantees the ability to differentiate.
- the prior trajectory can correspond to a generic execution of the program block without considering the environment, ie in an artificial space with zero forces and under idealized robot kinematics and dynamics, starting from a given initial state.
- This strong prior can be combined with the block parameters to form an augmented input sequence for the neural network.
- the network can then be trained to predict the residual between the prior and posterior (ie actually measured) trajectory and the probability of success of the module execution result in block parameters.
- Simplifying the learning problem in neural network training by introducing strong priors is established practice. By using strong priors, the need for training data can be significantly reduced by an order of magnitude will. This effect is particularly striking for long trajectories or trajectories with strong determinism.
- the use of a differentiably implemented analytical generator as strong priors is therefore particularly advantageous.
- the target function can advantageously be defined in such a way that the target function maps a trajectory onto a rational number and that the target function can be differentiated according to the trajectory.
- the use of a uniform function signature for the objective function allows the easy exchange of objective functions without having to adapt the optimization algorithm.
- the proposed signature is sufficiently simple (objective function as an evaluation of a trajectory with a numerical value) to ensure simple implementation, but at the same time allows the implementation of almost any objective function.
- the differentiability of the target function according to the trajectory enables the use of gradient-based optimization methods for the parameter inference, which converge in a targeted manner in the direction of at least local optima by considering the gradient information and therefore converge significantly faster for many classes of target functions than non- gradient-based optimizers.
- the target function can advantageously include a predefined function, a parametric function and/or a neural network.
- a predefined function can relate to classic process parameters such as cycle time or path length, which output a variable that is to be minimized.
- Parametric functions can include predefined functions that have additional parameters that can be set by the user, if necessary. Examples are distance functions to default values such as contact forces, tightening torques or Euclidean target poses. Neural networks can also be used as differentiable function approxators for complex target functions.
- Examples of simple target functions that map process parameters are cycle time, path length and/or error rate.
- Other more complex types of target functions can, for example, relate to compliance with force limits, force minimization with simultaneous cycle time minimization, increase in precision (e.g. in the case of stochastic position deviations of workpieces), minimization of moments, specification of certain force or moment curves, etc.
- the target function can advantageously include a function based on force measurement.
- the predicted trajectory is evaluated at least in part on the basis of the predicted forces and moments. This is particularly advantageous since the optimization of program parameters with regard to optimality criteria defined via forces is very difficult for human programmers, since the relationships between program parameters and the resulting forces during program execution are difficult to calculate or to understand by humans are.
- a critical subsequence of the robot program can advantageously be selected with the interface for selecting one or more critical program modules, with the critical subsequence comprising several critical program modules.
- the block representatives of the several critical program blocks can be combined to form a differentiable overall system model.
- the overall system model maps the program parameters of the critical sub-sequence to a combined trajectory, so that for a coherent sub-sequence of critical program modules the optimizable program parameters are optimized with regard to the target function.
- This enables holistic parameter optimization.
- the program parameters of related program block sequences can be optimized together. This offers added value compared to local optimization at the building block level, since interactions with the environment across building block boundaries are considered during optimization. In particular, contradictory parameter configurations between program parts can be automatically balanced against one another.
- input data, procedure and output data can be specified as follows:
- the result is a robot program with optimal or optimized parameters with regard to a specified target function.
- Advantageous embodiments of the invention can provide a method and a corresponding system for the fully automatic inference of optimized program parameters for industrial robots, which during the programming, commissioning and maintenance phases of robot cells, robot programmers or factory workers allow the parameters of complex robot programs in the presence of To optimize process and workpiece variances data-driven and automatically to cycle time and quality specifications.
- This includes a method or a system according to an exemplary embodiment of the invention, components or modules or units that are used for automated exploration of the parameter space, modeling, specification of target functions and inference of optimal/optimized parameters.
- a robot program with optimized parameters can be achieved and thus a robot cell with higher throughput, higher production quality or lower rejects.
- an exemplary embodiment of the invention enables a form of process optimization based on real measured data.
- exemplary embodiments can enable process optimization with regard to target forces or moments and the dynamic properties of the movements, since the learned system models can predict the force curves of the interaction of the specific robot in the specific environment with the specific workpieces present.
- Known methods for process optimization from the state of the art do not or only to a limited extent consider the actually occurring forces and moments and require well-founded expert knowledge or manual trial and error.
- - Holistic parameter optimization The parameters of related program block sequences can be optimized together. This offers added value compared to local optimization at the building block level, since interactions with the environment across building block boundaries are considered during optimization.
- contradictory parameter configurations between program parts of the robot program can be automatically balanced against one another. This is the case, for example, when increasing the speed of a movement reduces the probability of success of a subsequent movement, for example by generating vibrations or bending pins during contact runs.
- This holistic approach to the optimization of program parameters is of considerable advantage in industrial robotics.
- the method according to the embodiment does not make any assumptions about the nature (eg parametric distribution, normal distribution, linearity) of the input and output data when creating the model and can therefore be used in all production domains and, in principle, for all types of components. Since no further requirements are placed on the target function apart from differentiability, any target functions are conceivable.
- the method according to the embodiment of the Finding can thus be used in any application domains such as assembly, surface processing or handling and enables the optimization of robot programs with regard to any process key figures or quality criteria.
- FIG. 1 shows an activity diagram for a method for determining optimized program parameters for a robot program according to an exemplary embodiment of the invention
- FIG. 2 shows an additional activity diagram for the exemplary embodiment according to FIG. 1, the exploration phase indicated in FIG. 1 being illustrated,
- FIG. 3 shows an exemplary robot program for a force-controlled spiral search, with the critical part program being solidly framed,
- 5 shows a schematic view of an exemplary system architecture for a system for determining optimized program parameters for a robot program according to an exemplary embodiment of the invention
- 6 shows a schematic representation of the database schema implemented in an exemplary reference implementation for a system or a method according to an exemplary embodiment of the invention
- FIG. 8 shows a schematic representation of a differentiable program module according to an embodiment of the invention
- FIG. 10 shows a recurrent network architecture for an embodiment of the invention.
- FIG. 1 and FIG. 2 show an activity diagram for a method for determining optimized program parameters for a robot program according to an exemplary embodiment of the invention.
- the method according to an exemplary embodiment of the invention has different characteristics or possible applications in the programming, commissioning and maintenance phases of production systems or robot cells.
- 1 and FIG. 2 show an overview of the procedural steps of the exemplary embodiment, including optional procedural steps that can be skipped depending on the form.
- the method according to the exemplary embodiment for the programming, commissioning and maintenance phases is described below.
- the robot programmer creates a robot program from parameterizable program modules (motion templates), which depict the atomic movements of the robot.
- the robot program consists of a sequence of any force- or position-controlled program modules.
- the sequence of program blocks maps the steps necessary to solve the application task.
- FIG. 3 shows a schematic representation of an exemplary semi-symbolic robot program 1 for force-controlled spiral search.
- the critical subprogram 2 or the critical program modules 3 and 4 of the robot program 1 are solidly framed in FIG.
- FIG. 4 shows a schematic representation of an exemplary semi-symbolic robot program 5 for force-controlled contact travel.
- the critical subprogram 6 or the critical program modules 7 and 8 of the robot program 5 are solidly framed in FIG.
- the execution semantics of a block of the "Linear movement" type 3 or 7 can be described as follows: given a target pose and a speed v and acceleration a, move the robot in such a way that the tool Center point (tool coordinate system of the robot) describes a linear path in Cartesian space from the current tool pose to the target pose with the specified speed and acceleration.
- the execution semantics of "Contact travel (relative)" 8 can be described as follows: given a movement specification relative to the current position of the tool coordinate system of the robot (e.g. "1 centimeter translation in z-direction and 3° Rotation around the X-axis"), a force specification, which specifies the contact force along the Z-axis of the tool coordinate system, as well as a speed v and acceleration a, move the robot on a linear path in Cartesian space according to the motion specification and with the specified acceleration and speed until the specified force is reached would. The execution of the movement is considered successful if the force target is reached (contact made), otherwise it is considered to have failed.
- a movement specification relative to the current position of the tool coordinate system of the robot e.g. "1 centimeter translation in z-direction and 3° Rotation around the X-axis”
- a force specification which specifies the contact force along the Z-axis of the tool coordinate system, as well as a speed v and acceleration a
- a robot programmer can determine the initial parameters of the program blocks manually using common methods (teach-in, CAD to path, ...) in order to approximate the application task (possibly violating the specified cycle times and quality requirements).
- the robot programmer uses a method according to an exemplary embodiment of the invention for the automatic optimization of program parameters in order to meet cycle time specifications and quality requirements.
- the critical part program 2 consists of the sequence ["Linear movement", “Spiral search (relative)"], since the parameters of the linear movement (in particular its target pose) fundamentally influence the position and orientation of the spiral search ( see Fig. 3).
- the critical subprogram 6 consists of the sequence ["Linear movement", “Contact run (relative)"], since the Z coordinate of the target pose of the linear movement in particular fundamentally influences the expected length of the contact run ( see Fig. 4).
- Program parameters of a program module can either be input (target poses, target forces, etc.) or intrinsic parameters (velocity, acceleration). Both types of parameters can be optimized.
- the expected scatter of the hole positions is typically in the millimeter range, so the limits for the expansion and the coil spacing of the spiral are defined accordingly.
- the domain of the Tait-Bryan z-component of the target pose of the linear motion is [0, 180°] due to the approximate point symmetry of the spiral (see Fig. 3).
- the status code identifies whether the executed action was completed successfully. Force-controlled travel to contact, for example, ends successfully when contact has been made and the contact force is within a set tolerance range.
- the randomly generated program parameters are stored in the database and associated with the program execution.
- the sampling interval At is application-specific and can be specified by the programmer. Large sampling intervals reduce the amount of data to be processed and stored and simplify the learning problem, so that fewer program executions (N) are necessary, but lead to aliasing and undersampling in high-frequency or oscillating processes.
- the number of program executions N is also application-specific and depends on the complexity and length of the robot movements, the (non-)linearity of the force and moment curves when the robot interacts with the environment, and the stochasticity of the process. If workpiece variances are expected, workpieces from different batches should be used during the exploration phase in order to teach in the workpiece variances.
- the system models are trained automatically. For each program block of the critical subprograms, a system model is learned based on the previously collected parameter sets and trajectories, which maps the block parameters to the expected positions and orientations of the TCP, the expected forces and moments, and the expected status code. No user interaction is necessary for the training.
- the training duration depends on the number and complexity of the program modules as well as on the number, length and sampling characteristics of the trajectories in the training data set.
- a “system modeN” can be defined as a mathematical function / that, given the input parameters x and the system state p, returns the expected trajectory ⁇ . / thus implicitly contains the program logic (the translation of x into control commands for the robot by the robot program), the kinematics and dynamics of the robot, and the physical properties of the environment.
- the specification of the target function is application-specific and may have to be carried out by an expert in the respective manufacturing domain.
- a gradient-based optimization method is used for the optimization and the objective function is expressed as a loss function for the equivalent minimization problem.
- Examples of simple loss functions are the cycle time, the path length in Cartesian or configuration space, or the error probability.
- Complex loss functions are the distance to one or more reference trajectories, for example from human demonstrations, or the deviation from specified contact forces at the end of a trajectory or during the execution of a program module.
- An initial target function can be generated automatically by inference using a knowledge base from the semantics of the building blocks of the critical program parts and adapted by the programmer using a graphical user interface.
- Force-controlled contact travel can be optimized in terms of its dynamic properties by specifying a loss function proportional to the distance of the predicted force along the Z-axis from a specified target force so that the target force is achieved as precisely as possible on average.
- III. G. Inference phase The program parameters are automatically optimized. For each critical subprogram, the learned system models of the associated program blocks are automatically combined to form an overall model, which maps the parameters of the part program to the combined part trajectory. A gradient-based optimization algorithm iteratively optimizes the program parameters with regard to the given target function. The optimized parameters are automatically transferred to the robot program.
- Steps A.lll.a to A.lll.c can be skipped since the hyperparameters of the method set there are robust to stochastic changes in the system or the environment.
- the amount of required training data (cf. A.III.d) is 10-20 times less than in the programming phase, since the existing system models can be post-conditioned to the changed environment using transfer learning methods.
- Step A.lll.f can also be skipped in many cases if the cycle time and quality specifications have not changed compared to the programming phase. Here, however, there is the possibility of also adapting the target function to the changed conditions in the plant.
- the integrator determines that components from a different manufacturer are installed in production than those for which the robot cell was fine-tuned during programming. For example, the average orientation of the pins of electronic components has a stochastic offset of up to 2° compared to the programming phase, which means that a large number of search movements fail and the cycle time specifications can no longer be met. By retraining the system model and parameter inference, the distribution of the offset can be implicitly estimated and compensated by the new program parameters.
- Adaptation to new targets If, for example, cycle time specifications or quality requirements change due to reconfigurations at other points on the production line, the worker can carry out steps A.lll.f and A.lll.g by specifying a corresponding Target function adapt the parameters of the robot program to the new specifications.
- the existing system models remain valid and can be reused without retraining.
- Example of contact travel Due to a change of supplier, the pins of the installed electronic components are less resilient than before and bend with the currently planned contact force. By reducing the force specification of the corresponding target function and renewed parameter inference without retraining, a new parameterization can be found that ensures the new, lower contact force.
- FIG. 5 shows a schematic view of an exemplary system architecture with individual system components for a system for determining optimized program parameters for a robot program according to an exemplary embodiment of the invention.
- Robot cell 9 with six-axis industrial manipulator It is assumed that forces and moments can be measured at the TCP. An external force-torque sensor may be necessary for this.
- Block-based graphic programming system 10 for programming and executing robot programs A software system with a graphic user interface is required to create the initial robot program, parameterize it and run it on the robot controller can run on the robot controller.
- Database 11 for robot programs and trajectories Robot programs are stored serialized in the database 11 in a format that enables the reconstruction of the program structure and parameterization (execution order, type and unique IDs of the program modules, constant and optimizable parameters of the program modules).
- the database For each execution of the robot program, the database contains a sampled trajectory consisting of the position and orientation of the TCP, forces and moments at the TCP, and the status code of the program module belonging to the data point.
- the storage format is in such a way that each data point of a trajectory can be clearly assigned to the associated program module and the parameterization of the program module at the time of execution.
- FIG. 6 shows a schematic representation of the database scheme implemented in an exemplary reference implementation.
- Learning system 12 for differentiable building block representatives The learning system 12 transforms a serialized representation of the program structure of the critical subprograms into a set of differentiable (parameter-optimizable) motion primitives. Each differentiable movement primitive is a functionally equivalent analogue (“Representative”, “SystemmodeN”) to a block instance from the part program, which maps the parameters of the block instance to a trajectory expected during execution.
- SystemmodeN Functionally equivalent analogue
- a block representative is defined as a system model at block level or a model of the execution of the corresponding program block.
- a block representative for program block B is therefore a mathematical function f B which, given the input parameters x B of the program block and the system state p, outputs the expected trajectory Y B that will result when the program block is executed on the robot.
- block representatives are mathematical models of the execution of program blocks. These models can be learned from training data and are differentiable, ie they allow the calculation of the derivative of Y B with respect to x B . This allows the optimization of x B with gradient-based optimization methods. Since all block representatives are derivable models of the execution of program blocks, a program composed of block representatives according to FIG.
- the objective function for the parameter optimization contains sub-goals that are directly results from the execution semantics of the block types.
- a force-controlled contact run for example, has an implicit contact target in a specified force range.
- These implicit sub-goals are stored in a knowledge base in the form of an ontology.
- an initial objective function is created from the given program structure by reasoning over the ontology, which maps these implicit sub-goals. This can be adapted by the user and supplemented with additional, application-specific sub-goals.
- the use of ontologies or knowledge bases for automatic bootstrapping of target functions represents a significant advantage.
- An ontology is a structured form of representation for information with logical relations (a knowledge database), which makes it possible to draw logical conclusions from the information contained in the ontology using suitable processing algorithms (reasoning).
- the developed ontology forms a “database for predefined target functions”, on which target functions can be automatically derived by reasoning from a given semi-symbolic robot program, which due to the fixed semantics of the program modules always must apply, e.g. that a "Contact travel (relative)" block should produce a contact force along the Z axis of the tool coordinate system or that the target point should be reached as precisely as possible with a "Linear movement” block.
- Differentiable target functions are first precalculated by software by reasoning about the knowledge base of the component-specific sub-goals and can then be processed by the user using an interface if necessary. The resulting internal representation of the combined objective function is then translated into a differentiable computational graph of the loss function for the equivalent minimization problem.
- Predefined functions that have additional parameters that can be set by the user. Examples are distance functions to default values such as contact forces, tightening torques or Euclidean target poses. The default values can be set by the user via an interface.
- Inference system 15 for optimal robot parameters The inference system 15 forms a calculation graph that can be optimized end-to-end for each critical subprogram, taking into account the specified target function and the trained component representatives. The inference algorithm uses this graph to calculate the optimal program parameters for the specified target function. This system is new in its design and application in industrial robotics.
- Graphical user interface for creating, editing and executing robot programs A graphical user interface for the initial Creation and manual processing of program structure and parameterization is planned.
- the ArtiMinds Robot Programming Suite (RPS) is used as an interface to create and parameterize robot programs in the semi-symbolic ArtiMinds Robot Task Model (ARTM) representation.
- the user interface also provides infrastructure for executing loaded robot programs on the robot controller.
- a machine interface for reading, writing and saving of robot program structure and parameterization as well as versioning:
- the parameter space is randomly sampled and the parameterized robot programs are stored in a database with versioning (cf. system component a.).
- a machine interface is provided in order to import parameter sets generated by the learning framework into the robot program and to persist the parameterized robot program in a versioned version in a database after execution in order to compare the resulting trajectory with the program structure at the time of training and to associate parameterization.
- the ArtiMinds RPS control plugin fulfills this function.
- the example reference implementation includes a console based dialogue system, via which the user can interactively adapt the sub-goals precalculated from the knowledge base and add further sub-goals.
- the core of a system is a representation of program building blocks, which allows the gradient-based optimization of the parameters with regard to a target function.
- the inference problem of optimal parameters is divided into a learning phase and an inference phase, with a model of the system (robot and environment during the execution of a building block) being learned in the learning phase and a gradient-based optimization algorithm using the learned system model in the inference phase the input parameters of the block representative have been optimized.
- Block representatives map the block parameters to an expected trajectory and guarantee that the output trajectory can be differentiated according to the block parameters.
- This mapping is realized using a recurrent neural network. Since long, finely sampled trajectories in particular contain a lot of redundant information and large sequence lengths make the learning problem significantly more difficult in the case of prediction with neural networks, the neural network becomes analytical trajectory generator connected upstream, which generates a prior trajectory (cf. Fig. 8).
- the trajectory generator consists of a differentiable implementation of an offline robot simulator.
- the prior trajectory corresponds to a generic execution of the program block without considering the environment, ie in an artificial space with zero forces and under idealized robot kinematics and dynamics, starting from a given initial state.
- This strong prior is combined with the building block parameters to form an augmented input sequence for the neural network.
- the network is trained to predict the residue between the prior and posterior (ie actually measured) trajectory and the probability of success of the block execution (cf. FIG. 8 and the simplified calculation graphs in FIG. 9).
- the parameter vectors x t of each block representative i depend on the block and are the result of the concatenation of the respective parameters.
- Pose-valued parameters can be represented as vectors of length 7, where the first 3 entries can represent the position in Cartesian space and the last 4 entries can represent the orientation as a quaternion.
- the representation as a quaternion has the advantage that they can be interpolated without singularities and the individual components assume smooth curves over time, which significantly simplifies the learning problem.
- Forces and moments can be represented as vectors of length 6, which designate the forces along the 3 Cartesian spatial directions and the moments about the 3 Cartesian spatial axes.
- the parameter vectors x t contain both optimizable and constant parameters.
- the x t of the block representatives can contain fewer or different parameters than the corresponding program blocks, as long as there is a bijection between the parameter vectors and the behavior is the same with the same parameterization.
- spiral search (relative) The ARTM module accepts four poses for the calculation of the search region, which lie in one plane and describe the four corners of a parallelogram relative to the start pose.
- this representation is converted into two real numbers that describe the extension of the parallelogram in the x and y directions. This representation is much more compact, but mathematically equivalent. Long x t significantly complicate the learning and inference problem, which is why representations of the parameters that are as compact as possible are advantageous.
- s t consists of the TCP pose of the last data point of the predicted trajectory, using the convention for poses described above.
- Characteristics of the method can consist of forces and moments, the joint angle position of the robot or the poses of manipulated objects or objects in the environment detected by external sensors.
- trajectories are represented as two-dimensional tensors, with the first dimension of variable length representing the time axis. The second dimension is of fixed length.
- trajectories in the second dimension have 14 entries, with the first 7 entries describing the pose of the TCP in world coordinates according to the above convention and the following 6 entries describing the forces and moments according to the above convention. The last entry is the success probability of a successful movement, with Success ⁇ [0, 1].
- the space of the trajectories in particular within the scope of the exemplary embodiments, can be denoted by y and a trajectory from this space by ⁇ .
- the trajectory resulting from the execution of the i-th building block of a robot program can be denoted by ⁇ ⁇ and the n-th vector in the trajectory y i by (y i ) n .
- Training of the learnable representatives as system models for the sub-process encapsulated in the associated building block - Training algorithm for differentiable building block representatives: By realizing differentiable building block representatives as neural networks, these become trainable. In the exemplary reference implementation according to one embodiment, these are trained on triples (x train , S train , y train ) x train .
- Y train is a sequence of vectors, each of which contains the absolute position and orientation of the TCP relative to the robot's base coordinate system, forces and moments at the TCP in all Cartesian spatial directions, and the status code, which encodes whether the block was successfully executed .
- S train is the measured system state at the start of the block's execution.
- the trajectory generator forms (X train , S train ) on the prior trajectory away.
- the recurrent neural network maps (X train , ⁇ ⁇ ) to Y res .
- the prediction of the position, orientation, force and moment components is considered as a common learning problem and a common loss value is calculated using a special loss function. This regression loss is the weighted sum of the mean square error of the position, force and moment components and the angle difference of the orientation component encoded in quaternions.
- the prediction of the status code is regarded as a binary classification problem and evaluated using binary cross-entropy.
- Regression and classification loss are combined by weighted addition and the neural network weights are learned using a gradient-based optimization algorithm.
- the selected representation of trajectories and the regression loss function for trajectories are particularly advantageous.
- - Implementation For the implementation of the block representatives, a differentiable generator can be implemented in an exemplary reference implementation according to an exemplary embodiment for each supported block type. Since the representatives of different building block types differ structurally only with regard to the length of the parameter vector ⁇ ⁇ , building block representatives can be constructed generically from the associated generator and an untrained neural network. In the reference implementation, the Adam optimization algorithm is used to train the neural networks (see DP Kingma and J.
- a boolean flag P padding is added in the last dimension of the trajectory tensor, which indicates whether the data point belongs to the padding sequence or not.
- the training algorithm is extended by another classification problem analogous to the prediction of per f oig .
- a Python class hierarchy is instantiated, which maps the program structure and whose leaves contain the differentiable building block representatives trained in step 3.
- the root object (the program abstraction) holds an ordered list of all representatives.
- the calculation of the overall trajectory is thereby reduced to the evaluation of the calculation graph.
- the state vectors s t are calculated using only differentiable operations from the predicted partial trajectories of the preceding building blocks (I - L ). In the reference implementation, the calculation corresponds to the extraction of the last pose from Y i-1
- L error calculates the average probability that the execution of the robot program will fail over all points of the trajectory.
- the program parameters are optimized using a variant of Neural Network Iterative Inversion (NNII) or gradient descent in the input space (cf. DA Hoskins, JN Hwang, and J. Vagners, “Iterative Inversion of neural networks and its application to adaptive control", IEEE Trans. Neural Netw., Vol. 3, No. 2, pp. 292-301, March 1992, doi: 10.1109/72.125870):
- NNII Neural Network Iterative Inversion
- gradient descent in the input space
- the parameter vectors x t in the calculation graph with an initial parameterization and the start state s 0 is initialized with the current state of the robot cell.
- the expected overall trajectory is predicted by evaluating the calculation graph and the target function is evaluated.
- the parameter vectors are incrementally adjusted in the direction of the gradient of the loss function, namely according to the following formula:
- NNII neural network iterative inversion
- l denotes the learning rate.
- the gradients of constantly marked parameters are masked out in each optimization step. After a finite number of iterations (100 ⁇ N ⁇ 1000) the parameters converge in a local minimum.
- NNII is asymptotically optimal for convex loss functions, ie it converges to a global minimum in any number of iteration steps and with any small learning rate.
- the global convergence of NNII depends on the initial parameterization due to local minima of the loss function.
- NNII Neural Network Iterative Inversion
- the step size (lr or l) is a globally adjustable hyperparameter of the optimization algorithm, the choice of which depends on the application domain, limitations in the computing time for the optimization and the desired convergence properties of the optimization method.
- Adam converges faster for large values of l, but can oscillate for unfavorable combinations of objective functions.
- the Adam optimization algorithm can include mechanisms such as weight decay or learning rate Scheduling can be added to dynamically balance convergence and runtime.
- the PyTorch autograd library is used to calculate the gradients (backpropagate). Apart from the input parameters of the building blocks that can be optimized (optimizable_params), all other parameters (constant building block parameters, but also the weights of the neural networks within the building block representatives) remain constant.
- the length s of the status vector and the length x of the parameter vector can be set or are block-dependent.
- the sequence length is set to 500 here.
- the batch dimension has been omitted for simplicity.
- the mesh maps inputs (left) to outputs (right).
- the current state a vector of length p, depending on how the state is encoded as a vector.
- the length of the status vector depends on the building block; some building blocks may require additional information such as the current gripper opening, etc., which other building blocks do not need.
- the residual trajectory a tensor of dimension (500, 13).
- Fig. 8 the This residual is added to the prior trajectory to give the posterior trajectory - P padding : A tensor of dimension (500, 1) that indicates for each time step of the trajectory whether it belongs to the padding or not (contains values between 0 and 1).
- - Success A tensor of dimension (500, 1) which, for each time step of the trajectory, specifies the success probability of the building block at this point in time (contains values between 0 and 1).
- the function is as follows: - First, the state and the input vector are converted into tensors of the dimensions (500, p) and (500, x) by repetition.
- the GRUs are "residual" (this has nothing to do with the residual trajectory , ie the outputs of a GRU are not only inputs for the following GRU, but also for the one after that. This is indicated in FIG. 10 by the thin arrows and the dashed tensors. - The output of the last GRU is transformed into the residual trajectory, P padding and PerfoIg by a last fully connected layer. Each layer is followed by a subsequent activation function, which is not shown in FIG. 10 for the sake of simplicity.
- SELU Scaled Exponential Linear Units
- the training becomes particularly efficient when the network is trained on batches of training data in parallel on a graphics card (GPU).
- the batch dimension has been omitted from Figure 10 for simplicity.
- batches of size 64 can be used.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
- Feedback Control In General (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102020209511.6A DE102020209511B3 (de) | 2020-07-28 | 2020-07-28 | Verfahren und System zur Bestimmung von optimierten Programmparametern für ein Roboterprogramm |
PCT/DE2021/200076 WO2022022784A1 (de) | 2020-07-28 | 2021-06-04 | Verfahren und system zur bestimmung von optimierten programmparametern für ein roboterprogramm |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3965999A1 true EP3965999A1 (de) | 2022-03-16 |
Family
ID=76859381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP21739967.4A Pending EP3965999A1 (de) | 2020-07-28 | 2021-06-04 | Verfahren und system zur bestimmung von optimierten programmparametern für ein roboterprogramm |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230311309A1 (de) |
EP (1) | EP3965999A1 (de) |
DE (1) | DE102020209511B3 (de) |
WO (1) | WO2022022784A1 (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022065759A (ja) * | 2020-10-16 | 2022-04-28 | セイコーエプソン株式会社 | ロボットのパラメーターセットを調整する方法、プログラム、および情報処理装置 |
DE102022107392A1 (de) | 2022-03-29 | 2023-10-05 | Gerhard Schubert Gesellschaft mit beschränkter Haftung | Verfahren zum Beschleunigen einer Handhabungs-Maschine |
CN118656984A (zh) * | 2024-08-15 | 2024-09-17 | 河北工业大学 | 一种工业机器人动力学参数集的确定方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102010012598A1 (de) | 2010-02-26 | 2011-09-01 | Kuka Laboratories Gmbh | Prozessmodulbibliothek und Programmierumgebung zur Programmierung eines Manipulatorprozesses |
US20150127154A1 (en) | 2011-06-02 | 2015-05-07 | Brain Corporation | Reduced degree of freedom robotic controller apparatus and methods |
WO2015078992A1 (en) | 2013-11-27 | 2015-06-04 | Engino.Net Ltd. | System and method for teaching programming of devices |
DE102015204641B4 (de) | 2014-06-03 | 2021-03-25 | ArtiMinds Robotics GmbH | Verfahren und System zur Programmierung eines Roboters |
KR102645817B1 (ko) | 2016-12-06 | 2024-03-08 | 한화로보틱스 주식회사 | 로봇의 비헤이비어 관리 방법 및 장치 |
JP6933167B2 (ja) * | 2018-03-14 | 2021-09-08 | オムロン株式会社 | ロボットの制御装置 |
US20200156241A1 (en) | 2018-11-21 | 2020-05-21 | Ford Global Technologies, Llc | Automation safety and performance robustness through uncertainty driven learning and control |
DE102019207017B3 (de) | 2019-05-15 | 2020-10-29 | Festo Se & Co. Kg | Eingabeeinrichtung, Verfahren zur Bereitstellung von Bewegungsbefehlen an einen Aktor und Aktorsystem |
-
2020
- 2020-07-28 DE DE102020209511.6A patent/DE102020209511B3/de active Active
-
2021
- 2021-06-04 EP EP21739967.4A patent/EP3965999A1/de active Pending
- 2021-06-04 WO PCT/DE2021/200076 patent/WO2022022784A1/de unknown
- 2021-06-04 US US18/018,859 patent/US20230311309A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102020209511B3 (de) | 2021-08-19 |
WO2022022784A1 (de) | 2022-02-03 |
US20230311309A1 (en) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102020209511B3 (de) | Verfahren und System zur Bestimmung von optimierten Programmparametern für ein Roboterprogramm | |
EP3013537B1 (de) | Verfahren und system zur programmierung eines roboters | |
DE112010000775B4 (de) | Industrierobotersystem | |
DE102012218297B4 (de) | Verfahren zur dynamischen Optimierung einer Robotersteuerschnittstelle | |
DE69635162T2 (de) | Hybride steuerungsarchitektur mit mehreren agenten | |
DE102015010124B4 (de) | Roboterprogramm-Erzeugungsvorrichtung, die Roboterprogramm zum Reduzieren von Stössen der Gelenke des Roboters erzeugt | |
DE102015106227B3 (de) | Steuern und/oder Regeln von Motoren eines Roboters | |
DE102019205651B3 (de) | Verfahren und System zum Ausführen von Roboterapplikationen | |
EP3623116A1 (de) | Verfahren und vorrichtung zur kollisionsfreien bewegungsplanung eines manipulators | |
DE102020120116B4 (de) | Verfahren zur impedanzbasierten Multi-Tasking Tracking-Regelung, impedanzbasierter Multi-Tasking Tracking-Regler und kraft- und/oder drehmomentgeregelter Roboter | |
DE102019006725A1 (de) | Steuereinrichtung und Steuersystem | |
DE102016000754A1 (de) | Verfahren und System zur Bahnplanung eines redundanten Roboters | |
WO2019029870A1 (de) | Handhabungseinrichtung mit einem roboter sowie verfahren und computerprogramm | |
DE102020212658A1 (de) | Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung | |
DE102020201398B3 (de) | Betreiben einer Applikation eines Robotersystems | |
DE102021201918A1 (de) | Vorrichtung und Verfahren zum Steuern ein oder mehrerer Roboter | |
EP3328595A2 (de) | Verfahren und system zum steuern eines roboters | |
EP3356894B1 (de) | Verfahren zur automatischen konfiguration eines externen steuerungssystems zur steuerung und/oder regelung eines robotersystems | |
DE102017007909A1 (de) | Produktionssteuerung, ausgestattet mit einer Funktion zur Identifizierung der Ursache nach einem Betriebsstop einer Produktionseinrichtung, die Fertigungseinrichtungen umfasst | |
DE102020200165B4 (de) | Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters | |
EP4121825A1 (de) | Computerimplementiertes verfahren zum erstellen von steuerungsdatensätzen, cad-cam-system und fertigungsanlage | |
DE102020210823A1 (de) | Maschinen-Steueranordnung | |
DE102020127532B3 (de) | Regelungsverfahren zum Regeln des Drehmoments und/oder der Position mindestens eines elastizitätsbehafteten Gelenks einer Handhabungsvorrichtung, Drehmomentregler, Positionsregler und Verwendung des Verfahrens zur Regelung der Position und/oder des Drehmoments mindestens eines elastizitätsbehafteten Gelenks einer Handhabungsvorrichtung | |
DE102020103854B4 (de) | Maschinelles Lernen einer erfolgreich abgeschlossenen Roboteranwendung | |
EP3884347B1 (de) | Kollisionsprüfung auf basis höherwertiger geometrie |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20211025 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20240208 |