Method for accelerating a handling machine

Pre-calculated AI-driven movement paths for robots in packaging machines address inefficiencies by ensuring rapid and accurate robot operations with reduced computational demands, enhancing processing speed and system durability.

DE102022107392B4Active Publication Date: 2025-01-30GERHARD SCHUBERT GMBH
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
DE102022107392
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-03-29
Publication Date
2025-01-30
Estimated Expiration
2042-03-29

AI Technical Summary

Technical Problem

Existing robot control systems in packaging machines face challenges in determining optimal movements efficiently and quickly, leading to delays and inefficiencies in processing due to real-time data calculation requirements, which can affect accuracy and system lifespan.

Method used

A method involving pre-calculated optimized movement paths using artificial intelligence (AI) and machine learning to determine movement sections ahead of time, allowing for rapid data retrieval and decoupled processing outside the application environment, ensuring minimal delay in robot operations.

Benefits of technology

Enables fast and efficient robot movements with reduced computational overhead, improving processing speed and system longevity by providing precise movement data without real-time calculations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Method for controlling the movement of a real robot (1) used in a (real) application environment (100) such as a packaging machine (100) by controlling the drives of the relative movable parts of the robot (1), A) wherein, in a pre-calculation environment, exemplary pre-calculation movement sections (V-BA) are created from a large number of exemplary work orders and the order data describing them, for which optimized pre-calculation movement data in the form of pre-calculation section movement data (V-ABD) are determined in a pre-calculation process according to predefined optimization parameters, B) the exemplary section movement data (ABD) are entered as training data into an artificial intelligence (Kl), - the AI ​​is trained with it, C) in the application environment when a work order (AA) with one or more movement sections (BA) appears, - the order data are entered into the trained AI as query parameters, - the response variables received by the AI ​​as an answer are further used as segment movement data (ABD) or raw segment movement data (RABD) for at least one movement segment (BA), D) the section movement data (ABD) are stored in a data buffer with a time lead time, where the time required to calculate the segment motion data (ABD) of a subsequent motion segment is less than the time until the end of an active motion segment, and E) upon reaching the start criterion in the order data of an order, the robot performs the movement section (BA) by controlling its drives through control commands contained in the section movement data (ABD).
Need to check novelty before this filing date? Find Prior Art

Description

I. Area of ​​application

[0001] The invention relates to the control of the movement of one or more cooperating robots, in particular in packaging technology. II. Technical background

[0002] With the help of the tool attached to a robot, often in the form of a suction cup, an object is to be grasped at a pick-up point, moved to a deposit point and placed there in a defined manner.

[0003] The tool - in the following we will only refer to the suction cup, without limiting the invention to this - can have up to 6 degrees of freedom, i.e. it can generally be moved in the 3 spatial directions X, Y, Z and pivoted around the 3 spatial axes A, B, C.

[0004] The robot can be a serial robot with only one robot arm made up of several arm parts that are connected in series and are articulated to one another. The arm is attached to a robot base at its rear end and carries a tool carrier or the tool directly - hereinafter referred to as the tool unit - at its front end.

[0005] The robot can also be a robot with a parallel kinematics, such as a delta robot, in which several, usually three, robot arms are each attached with their rear end to a mostly common robot base and with their front end to a common tool unit, which usually includes a tool carrier that carries the tool.

[0006] It can also be a combination of serial and parallel robot kinematics (hybrid kinematics).

[0007] The arm parts arranged one after the other from the robot base to the tool unit, of which the robot arms of this robot type are also made, are articulated to one another with at least one degree of freedom and / or can be moved relative to one another, as can the first arm part on the robot base and the last arm part on the tool unit.

[0008] Each of these relative movements is controlled by a drive, with one possible goal being to complete the robot's desired task as quickly as possible so that the packaging system, for example - a transfer device for products from a product belt into containers on a container belt using several robots arranged one behind the other on the belts in the form of a robot line - operates as efficiently as possible, i.e., completes as many such transfer processes as possible per unit of time. Other target criteria can also be applied, such as the lowest possible energy consumption, the lowest possible vibration excitation, or the lowest possible mechanical stress to increase long-term durability and / or reduce maintenance intervals.

[0009] Since the work orders are known well in advance of their execution - in the case of a robot line for transferring products, this is because a scanner upstream of the transfer area detects the positions and, if applicable, rotational positions of the products on the usually continuously moving container belt and immediately afterwards the line controller can assign the work orders to the respective robots and, if applicable, their robot controllers - the movement data for the work orders do not have to be determined and available in real time when the work orders are assigned, but should generally be available no longer than 100 ms, preferably no longer than 50 ms, or even better, no longer than 30 ms after the work orders have been received, in order to avoid delays in the movement sequences of the robot line and the individual robots.

[0010] The parameters that limit the performance of a packaging machine, particularly the transfer performance of a robot line, include the load-bearing capacity of the bearings and linear guides, the drive power of the drives, the vibrations generated by the movements in the machine, the load-bearing capacity of the object, and the speed at which the control system—usually based on a known or scanner-determined pick-up and drop-off location—determines the ideal movement path and the movement data in the form of control commands for the drives of the individual moving parts involved, particularly the robot. The ideal movement path does not necessarily have to be a straight path from the starting point to the target point, e.g., of the tool.

[0011] Vibrations in the system can negatively affect the accuracy of the object pickup and placement as well as the service life of the system.

[0012] The older, but subsequently published DE 10 2021 103 126 A1 shows a method for controlling the movement of a real robot used in a real application environment such as a packaging machine by controlling the drives of the parts of the robot that are movable relative to one another, wherein - in a pre-calculation environment, exemplary pre-calculation movement sections are created from a large number of exemplary work orders and the order data describing them, for which - according to specified optimization parameters - optimized pre-calculation movement data are determined in the form of pre-calculation section movement data in a pre-calculation process, - the exemplary section movement data are entered as training data into an artificial intelligence, in particular a machine learning model that can be trained using machine learning methods and which in particular comprises an artificial neural network, - the AI ​​is trained with it, - in the application environment when a work order with one or more movement sections appears, in particular when a work order is specified by a user, - the order data is entered into the trained AI as request variables, - the response variables received by the AI ​​as a response are further used as section movement data or raw section movement data for this at least one movement section, - the section movement data are stored in a data buffer with a temporal and / or spatial or other start criterion, and - when the start criterion in the order data of an order is reached, in particular of the robot in question, the robot carries out the movement section by controlling its drives using control commands that are contained in the section movement data. III. Description of the inventiona) Technical problem

[0013] It is therefore the object of the invention to determine the optimal robot movements with regard to the efficiency of the robot and / or in particular also other optimization goals such as the service life of the system as quickly and accurately as possible and to generate control commands for the individual drives of the at least one robot as quickly as possible. b) Solution to the task

[0014] This object is achieved by the features of claims 1 and 19. Advantageous embodiments emerge from the subclaims.

[0015] In a control method for controlling the movement of a robot that is used in a real application environment such as a packaging machine, typically a robot line, the robot is controlled in its entirety of its movements by controlling the drives of its parts that are movable relative to one another, such as the arm parts, in particular the movement of the tool attached to the free end of the robot arm, such as a gripper, in particular a suction cup.

[0016] To solve the existing task, according to step A), a large number of possible, particularly typical, movement segments of a robot's movements contained in these work orders, such as lowering, gripping, lifting, moving, or even entire work orders, are determined in a pre-calculation process from previously processed work orders and their job data. The optimized movement paths, in particular movement segments and section movement data, are calculated in advance. This does not occur in a temporal connection, in particular not in real time, with specific existing work orders for the robot in a pre-calculation process. The determination is usually carried out classically, in particular deterministically, for example, calculated using calculation algorithms using optimization methods.

[0017] Carrying out this for a large number of sample work orders, i.e. movement sections of robots, requires a high level of computing power and a lot of computing time, which is why it is carried out in advance, i.e. before the system, i.e. the real application environment, is started up, and usually with a more powerful IT system than the control computer of the application environment, such as the robot line.

[0018] Basically, the more (meaningful) parameters that can be made available for calculating the optimal movement data and that can be taken into account when calculating the optimal movement data, the greater the computational effort, but also the higher the degree of optimization of the movement data with regard to the existing target parameters, such as real machine behavior and / or environmental behavior and / or product behavior in the application environment, and thus the achievable performance of the packaging machine, measured for example in the number of transfer processes per unit of time for a transfer device such as a robot line.

[0019] As explained in the figures, this results in very fast movements of the robots, which, however, do not always have to take the assumed shortest route between the starting and destination points.

[0020] According to step B), a trained artificial intelligence (AI), in particular a machine learning model (MLM) trained with machine learning methods, which comprises, for example, an artificial neural network (ANN) and in particular a training unit, is trained using the exemplary training order data and the optimized training movement data calculated therefrom as training data.

[0021] According to step C), for the execution of a concrete work order present in the application environment in the form of one or more movement sections - the work order can therefore also comprise only a single movement section - for a robot, these order data are entered as request variables into the trained AI, which then outputs section movement data as response variables, which can be used at least as raw section movement data.

[0022] In terms of their structure, i.e. qualitatively, the section movement data can correspond to the pre-calculation section movement data of step A and contain the same information, but differ quantitatively.

[0023] The raw section movement data may be qualitatively different from the pre-calculation section movement data of step A and may not contain all of its information, but the missing information may be generated from this raw section movement data, for example the control commands.

[0024] This output of the response variables is usually much faster, approximately in 2 to 5 ms, than a calculation of such optimized movement data using classical calculation algorithms (e.g. optimization methods).

[0025] According to step D), however, the section movement data now available are only needed at a slightly later point in time, namely when a certain start criterion for processing this movement section is met - for example, when the vacuum cleaner of the corresponding robot has reached the corresponding starting point of this movement section - which is why they are stored and kept in a data buffer until then.

[0026] Only when the start criterion is reached (e.g. elapsed time or reaching the start position) for carrying out this movement section, the corresponding section movement data, which preferably already contain concrete control commands for controlling the individual drives of the robot, are read out from the data buffer according to step E) and the movement section is carried out using the section movement data, in particular the control commands, by the robot controller or application controller.

[0027] The advantage is that once a work order has been received by a robot, the necessary movement data is available so quickly that there is no delay in processing the work orders and that this delay has no significant impact on the actual processing.

[0028] A further advantage is that the pre-calculation process can be carried out outside the application environment and without any connection to it, i.e. on separate computers and away from the application environment and, above all, decoupled, especially long before the execution of the work order in the real application environment.

[0029] Usually, the pre-calculation process and the training of the AI ​​are carried out once before the first commissioning of the application environment, such as a packaging machine, as soon as all parameters from the application environment, at least the parameters of the robots, are known.

[0030] Accordingly, this usually only needs to be repeated if, for example, a tool is swapped for a different type of tool in the application environment, or a robot is swapped for another robot, and certainly if the robot is swapped for a robot of a different type or size. But even if the robots are essentially identical, the individual differences between two identical robots can be large enough to make a new execution of the pre-calculation process seem sensible.

[0031] The advantage of the pre-calculation process is that, despite high computing power and relatively long computing time, exact training movement data for a work order or movement section - an order can comprise several movement sections - can be calculated from the training order data, especially deterministically.

[0032] Nevertheless, it might be useful to create even these example training datasets, which are only intended as training data for an AI, using a powerful AI.

[0033] The movement data would then no longer be as accurate due to the AI ​​used, but a much larger amount of training data could be created in a short time, but this depends very much on, for example, the level of training and / or data quality for training the AI ​​used for this purpose and, above all, its accuracy.

[0034] Furthermore, the training movement sections determined in step A and / or the associated training section movement data can be changed, in particular optimized, in step A based on experiences gained in particular in the application environment when performing step E - for example in the form of physical parameters of the application environment determined in this process.

[0035] This may possibly be done during the execution of step E, for example by the control computer of the application environment, but more typically it will be done by a pre-computation computer that performs step A.

[0036] These modified training section movement data ABD can be used according to step B to further train the AI, which can be done in particular during the further execution of the work order.

[0037] From then on, the further trained AI is used in the application environment in step C.

[0038] Since the individual drives in a robot require specific control commands, the motion data should already contain such specific control commands.

[0039] The movement data may already contain control commands or these are either already generated in step C) or only in a step N) described below, i.e. at the latest before the movement data is stored in the data buffer or only afterwards by the control computer of the application environment, in particular of the robot or the packaging machine, in particular of the robot line.

[0040] Since the response values ​​received by the AI ​​in the application environment in response to the query values ​​are not precisely calculated response values, but are determined by the AI, for example, by means of interpolation and extrapolation, the response values ​​are less precise than the previously calculated training movement data, and may therefore contain movement data that is not optimally feasible or not feasible at all in practice in the application environment.

[0041] Depending on the extent of the deviations from the feasible range, a post-processing step N may be useful between steps C) and D): There, the response variables, which may not yet be sufficiently precise, are reprocessed and converted into more precise, feasible section movement data, and / or preferably the control commands for the drives in the robots are also generated directly.

[0042] Such post-processing can, for example, take into account existing inconsistencies / discrepancies between the response variables of the AI ​​on the one hand and the real conditions in the application environment - such as limit values ​​​​given by the mechanical and electrical structure of the robot or the entire machine in the application environment - or the work order to be completed or the state of the robot or the application environment on the other hand.

[0043] When bridging the inconsistencies / discrepancies, it may be that the conditions in the application environment cannot be changed and then the response variables have to be adjusted accordingly, or both the response variables and the conditions in the application environment could be changed, the latter by, for example, influencing the system behavior of the application environment in a positive way.

[0044] In the latter case, prioritization or weighting between the two is necessary to determine the direction in which the post-processing should take place.

[0045] The implementation of the individual steps A) to E) can be further improved by the following optional measures: For step A):

[0046] To determine optimal movement data, at least one optimization parameter must of course be specified, which is usually the movement time required to complete the movement section from its starting point to its destination point, and which should be as short as possible.

[0047] Other special optimization parameters could be minimizing the loads on drive motors, bearings, guides or other parts of the application environment.

[0048] If several optimization parameters are specified simultaneously, a weighting between the optimization parameters must also be specified and / or a prioritization, in particular a prioritization order, among the several optimization parameters.

[0049] In the latter case, optimization is carried out first according to the optimization parameters with the first priority, and if different possibilities arise with regard to the other optimization parameters that change the other optimization parameters differently, the optimization is decided in this order according to the parameter with the second prioritization and then according to the parameter with the third prioritization, and so on.

[0050] Another possibility is to simultaneously track a sum of prioritized subtotal criteria.

[0051] A weighting can be represented in different ways, for example by at least a certain relative value, i.e. percentage, or absolute value of a first optimization parameter of its maximum achievable value in the current situation being achieved, but a further increase is to be made in favor of the optimization of the next lower weighted parameter.

[0052] To determine the section movement data, at least the start parameters in the form of start position and, if applicable, start rotational position - if, for example, the products are non-circular when viewed from above, the rotational position around a vertical axis - as well as the target parameters in the form of the target position and, if applicable, the target rotational position of the tool, usually a suction cup, are specified.

[0053] Position and rotational orientation together result in the spatial position of a component or product, also called pose.

[0054] To enable better optimization, additional accompanying parameters are preferably provided that describe the accompanying circumstances of the work order, for example, the arrival speed with which the tool will arrive at the starting position—i.e., the target position of the previous movement section—based on the movement data of the previous movement section, and / or the arrival direction from which it will arrive. The departure speed and / or departure direction of the tool from the target position of the movement section are also of interest, especially for the tool to move through multiple movement sections as quickly as possible.

[0055] The accompanying parameters can also be environmental properties around the tool, possibly also of the tool itself, which should also be made available for optimizing the motion data, for example the elasticity of the robot's drives, system parameters and / or system states or derived variables of the application environment, in particular its vibration behavior and / or damping behavior and / or temperature-strain behavior.

[0056] If the load, especially static load, for certain components, such as bearing points or linear guides, is to be optimized as one of the optimization parameters, load limit values ​​should be specified for these components and points.

[0057] If the dynamic load, especially in the form of vibrations, for the robot and / or the application environment, i.e. the system or machine, is to be kept as low as possible, the vibration behavior of the corresponding part, especially the robot or the entire system, should be known.

[0058] For this purpose, a corresponding model for the application environment, particularly for the static load and the vibration behavior, can either be made available for the pre-calculation process, i.e. stored, or can be created in the pre-calculation process itself for the application environment or its parts on the basis of predetermined, particularly constructive, data of the application environment, which of course further increases the computational effort for the creation of exemplary training movement data.

[0059] Furthermore, the accompanying parameters used in step A for determining the training section movement data can be changed, in particular optimized, based on experiences gained in particular in the application environment when performing step E.

[0060] The experience may be in the form of physical parameters determined during step E.

[0061] Then, according to step B, newly determined, modified training section movement data can be used to further train the AI ​​using the modified accompanying parameters, in particular during the further execution of the work order.

[0062] From then on, in step C, the further trained AI is used in the application environment. For step B):

[0063] In order to decide when the AI ​​is considered sufficiently well trained and the training is terminated, a tolerance range can be specified around the training section movement data generated from the training data, which was calculated in step A), for example, from the training order data.

[0064] The AI ​​can be considered sufficiently trained if, upon input of training task data from the training data of step A), the AI ​​itself - without resorting to this training data, but using its own artificial intelligence - provides section movement data as response variables that lie within this tolerance range. To step C):

[0065] The AI ​​can be trained in such a way that it can provide not only movement data in the form of a single value as response variables, but also range data, which thus represent a certain degree of uncertainty in the response variable. For step D):

[0066] Preferably, the section movement data determined in the application environment are stored in a data buffer that can have a temporal or spatial reference

[0067] Preferably, the section movement data determined in the application environment is stored in the data buffer with a temporal and / or spatial lead. The minimum value of this temporal and / or spatial lead can be specified, as can a maximum value if necessary.

[0068] A time lead is calculated in such a way that the time for calculating the section movement data of the subsequent movement section is less than the time until the end of the active movement section.

[0069] Typically, calculation times are between 2 and 50 ms. The data buffer can manage one or more motion segments.

[0070] The data buffer should be filled in such a way that before the end of a movement section that is actively being processed is reached, the section movement data of the subsequent movement section is present in the buffer.

[0071] This ensures that at any time and for each of the robots when reaching the target point of one of its movement sections, the movement data for the next movement section is not only available, but can also be read out from the data memory in a timely manner and made available to the system control.

[0072] If the follow-up data is not available and the movement section being actively processed does not end in standstill, either a deceleration can be initiated on this movement section or, when this missing section movement data is detected in the data buffer, a

[0073] Braking sequence, in particular a stop sequence, is automatically calculated, which specifies how quickly and, if applicable, in which direction the tool is braked towards the end of the movement section, in particular until it comes to a standstill, in the target position.

[0074] The braking sequence or stop sequence allows the tool to move beyond the specified last position of the active movement section. For step E):

[0075] If at the end of the movement section being executed there is no section movement data for the immediately following movement section, the robot is preferably stopped according to the included stop sequence at the end of the movement section in order to avoid collisions. Generally:

[0076] In order to facilitate the determination of the training movement data in step A) and / or the real movement data generated in step D) for a real work order, one or more basic movement types can be defined for each robot depending on its task in the corresponding application environment, whereby the defined movement sections, i.e. their section movement data, preferably of all movement sections, should be subsumable under these or one of these basic movement types, be it in step A) and / or in step D).

[0077] This reduces the computational effort in the corresponding step, i.e. in step A) for defining the exemplary movement data and in step D) for defining the actual movement data for a movement section of a work order.

[0078] Furthermore, the speed and / or acceleration and / or direction of movement of the pick-up area and / or deposit area - in a robot line for transferring products, usually the product belt and / or the container belt - plays an important role in determining the robot's movement data, as this is essential for the robot to access a product at the correct pick-up point and / or deposit the product at the correct deposit point.

[0079] According to the invention, this transport speed is not limited to a specific spatial direction.

[0080] This transport speed and / or acceleration – in the example of belts that always run in the same direction, such as a container belt or a product belt, the direction is known and does not change – can be taken into account at different points and steps of the process: a)

[0081] Either the transport speed and / or acceleration is already specified as an environmental parameter when determining the movement data in step A).

[0082] Or the training movement data used to train the AI ​​does not take transport speeds and / or accelerations into account, and then the transport speed is not included in the AI's response variables for a real work order.

[0083] Then, at the latest when determining the control commands for the drives, i.e. at the latest in step E), the transport speed and / or acceleration must be taken into account from the response variables of the AI.

[0084] If a subsequent calculation takes place in accordance with step D), this can also be done in this step. In a preferred variant, both are done:

[0085] First, according to a), the transport speed / acceleration - which at this point can only be assumed, for example extrapolated - is already taken into account for the determination of the example movement data and is then already included in the response variables of the AI ​​in the real application environment.

[0086] In addition, in the real application environment, the previously only assumed transport speed and / or acceleration can be compared with the previously known or now better assumed transport speed and / or acceleration of a belt or conveyor and, if there is a difference that exceeds a tolerance limit, the movement data, in particular control commands, created on the basis of the originally assumed transport speed and / or acceleration can be recalculated taking this difference into account.

[0087] A robot application system comprises, on the one hand, an application environment such as a packaging machine with at least one robot and, on the other hand, an application controller for controlling the parts of the application environment that are movable relative to one another, in particular the drives of the parts that are movably connected to one another, in particular of the at least one robot.

[0088] According to the invention, the existing problem for such a robot application system is solved in that the robot application system comprises a pre-calculation computer which is able to determine at least one movement section of the robot from exemplary training order data and to determine, i.e. to calculate, optimized training section movement data for this purpose.

[0089] Such a robot application system also comprises an artificial intelligence (AI), in particular a machine learning model (MLM) trainable using machine learning methods, in particular with at least one artificial neural network (ANN) and in particular a training unit which is capable of training the AI ​​with the aid of the exemplary movement section data for the exemplary movement sections of the example orders.

[0090] According to the invention, the application control preferably comprises - a work order generator module (example generator module), which is able to create exemplary training work orders for each individual robot, e.g. based on user input or randomly, and to enter them as a request size into the AI ​​to be trained and / or - a real work order generator module (real generator module) - which can be structured the same as the example generator module in the pre-calculation computer, i.e. can be an identical generator module - which, based on user inputs, such as switching on the robot application system 100 with work orders AA stored there, generates a real work order and its movement sections BA and enters them as request variables into the trained AI. and / or - a motion data module (data module) which is able to receive response variables from the AI ​​and generate motion data from them, in particular with or in the form of control commands for the robot's drives and / or - a 1st post-processing module (1st post-module) to post-process the movement data generated by the movement data module if necessary, for example to eliminate inconsistencies with the real application environment, particularly in the relevant movement section, and / or - a buffer reference value generator module (Ref module), which is capable of manipulating the section movement data in such a way that, for example, deceleration and acceleration are possible within the precalculated movement sections or across multiple movement sections. The manipulation can again take various target criteria into account.

[0091] The reference value generator itself can in turn consist of a trained AI that takes into account the pre-calculated movement sections and, if necessary, more detailed variables of the application environment as input. and / or - a stop sequence generator module (stop module) which is able to generate a stop sequence for a movement section data set and / or - a buffer management module (manage module) which is able to organize the insertion, storage and, if necessary, sorting and removal of section movement data, in particular data records, in the buffer and / or - a buffer readout module (readout module) which is capable of reading section movement data, in particular data records, from the buffer and, if necessary, manipulating them and / or - a conveyor belt control module (F-control module), which controls the corresponding conveyors for products and / or containers, its conveyor belts or other types of conveyors and / or - Conveyor speed / acceleration estimation module (F-estimation module), which is able to estimate the speed / acceleration of the conveyor at defined points in time or functional states of the application environment in the future and / or - a second post-processing module (2nd post-module) to process the movement data output from the data buffer or read from it, especially in the case of a difference between the speed assumed when creating this movement data and a currently measured or now better estimated conveyor speed / acceleration.

[0092] This means that the benefits that can be achieved are - precisely calculated optimal movement paths as training data for AI - lower computing effort and data volume in the application environment - quick determination of the real movement data for the individual work orders

[0093] Definitions of terms used in this application: Work order means: Description of a movement and / or activity for a robot Order data means: data set that represents this description in the form of digital data Optimization parameter means: the parameter to be optimized in a work order, for example the time required to complete the work order Accompanying parameters means: parameters that describe the accompanying circumstances of the work order and influence the work order itself Environmental parameters means: parameters that describe the environment, in particular properties of the environment in which the work order is carried out, for example the load capacity or the vibration behavior of parts involved in the work order, be it the robot or the application environment Movement means: (intended) movement of a robot, in particular its tool in all spatial directions and rotation around all spatial directions Movement data means: data set that represents this description in the form of digital data Control command means: concrete control commands for the individual drives in a robot Raw motion data means: motion data that in this form is not yet suitable for defining exact control commands for the robot drives Movement section means: Part of an overall movement, for example part of a robot's work cycle, which is necessary for a specific work step - here also called work order - in the application environment Section movement data means: data set that represents this movement in the form of digital data Start criterion for movement section means: a criterion, usually given in time or place, from which a movement section is to be carried out Artificial Intelligence (AI) means: a machine learning model (MLM) that can be trained using machine learning methods Machine learning means: Automated training method for an artificial intelligence, in particular its artificial neural network, using training data Inconsistency means: contradiction between the situation in the application environment at the time of execution of an intended movement or a movement section and the response values ​​provided by the AI ​​for this purpose Prioritization means: order in which certain parameters are used, especially optimized Weighting means: ratio in which different existing optimization parameters are to be optimized relative to each other Position means: the place where an object, such as a product or a tool, is located in space Rotational position means: the rotational position in which an object, such as a product or a tool, is located in space, especially relative to fixed spatial axes Spatial position means: sum of position and spatial position Arrival direction means: the direction from which a tool is expected to approach the starting point for a planned movement of the tool, i.e. a movement section, if the planned movement does not require a different arrival direction Arrival speed means: the speed with which a tool is expected to approach the starting point for a planned movement of the tool, i.e. a movement section, if the subsequent movement does not require a different speed Departure direction means: the direction in which a tool is expected to move away from the target point of a planned movement of the tool, i.e. a movement section, if the subsequent movement does not require another departure Approach speed means: the speed with which a tool is expected to move away from the target point of an intended movement of the tool, i.e. a movement section, if the subsequent movement does not require a different speed Vibration model means: mathematical model for calculating the vibration behavior of a component Load model means: mathematical model for calculating loads occurring on a component Time lead means: lead time specified in time units, for example the start of a planned movement section from the current time Local lead time means: lead time specified in units of length, such as the start of a planned movement section from the current position of the component in question, for example the tool of a robot, from Stop sequence means: Partial data set that describes the deceleration of a component, in particular the robot's tool, to a standstill from the speed and direction that the tool normally has at the end of this movement section; the stop sequence is usually part of the section movement data Basic movement type means: a movement that is always composed of the same movement sections in the same sequence, in particular a form of section movement data that can be applied by the user and combined with other section movement data of other basic movement types to enable an overall movement, for example, the entire transfer movement with the basic movement types: "Approach - Grab - Lift - Cross movement - Lower - Release" c) Examples of implementation

[0094] Embodiments of the invention are described in more detail below by way of example. They show: Fig. 1a: an application system with robots in supervision, Fig. 1b: the application system of Fig. 1a in the transport direction of the product belt, Fig. 2a-d: Principle representations of movement sections and associated movement section data sets Fig. 3: a flow chart for the pre-calculation process, Fig. 4: a flow chart for real work orders, Fig. 5: a flow chart for real work orders with input points of the conveyor speed.

[0095] The Fig. 1a, b show a robot application system with a robot road 100 as application environment 100, in which several robots 1 are arranged one behind the other in the transport direction X along the product belt 101 which can be moved in the transport direction X and the carriages 102 which can be moved parallel thereto, for example along a travel rail 105 and which can carry outer packaging such as a carton K.

[0096] The robots 1 are each intended to grasp a product P on the container belt 101, lift it from the container belt 101, move it to the nest and place it in a predetermined nest of a container such as a carton K on a carriage 102 next to it and are controlled for this purpose using the control method according to the invention.

[0097] In addition to this application environment 100 in the form of a robot line 100, the robot application system comprises an application controller 100*, which in this case controls both the individual robots 1 and the other moving parts of the robot line 100, in particular the container belt 101 and the carriages 102, and is also in data communication with the scanner 103 mounted at a fixed position, e.g. above the container belt 101, under which the products P pass on the container belt 101 and which determines their position on the container belt 101 upstream of the transfer area - i.e. the area in the transport direction X in which the transfer robots 1 work - and reports this to the application controller 100*.

[0098] Serial robots 1 are depicted here as robots 1 - which is essential for implementing the invention - which are suspended centrally above the container belt 101 and are each fastened with their robot base 6 to a crossbeam 104 extending transversely in the transverse direction Y across the container belt 101. The upper arm 2 of the robot 1 is pivotable about an upright, in particular vertical, axis 2' relative to the robot base 6, and a lower arm 3 of the robot 1 is pivotably attached to the free end of the upper arm 2 about an upright, in particular vertical pivot axis 3'.

[0099] At the free end of the lower arm 3 there is a lifting column 4 which is movable in height relative to the lower arm 3 and which acts as a robot hand 4. At the lower free end of the lifting column 4 there is a suction cup 5 which acts as a tool 5.

[0100] The lifting column 4 is movable in height relative to the lower arm 3 and can be pivoted about an upright, in particular vertical, pivot axis 4'.

[0101] The robot 1 is dimensioned such that it can reach positions on carriages 102 located in its working area as well as all transverse positions on the container belt 101 in the transverse direction Y.

[0102] Furthermore, the robot application system comprises a pre-calculation computer (pre-PC) for pre-calculating optimized training section movement data, as data sets from given exemplary training work orders, in this case transfer processes or movement sections BA from such transfer processes.

[0103] For example, in the Fig. 2, the lifting movement and / or the lowering movement and / or the approximately horizontal displacement movement are each treated as such a separate movement section BA1 to BA3.

[0104] The robot application system further comprises an artificial intelligence (AI) that is trained with the training work orders determined by the pre-calculation computer (pre-PC), i.e. training movement sections, and calculates the optimized training movement data for this purpose, for one robot 1 or all robots 1 of the robot application system 100.

[0105] As in Fig. 1b, for a transfer process, a product P must be lifted from the container belt 101 after being gripped thereon, moved via the container belt 101 with the aid of the robot 1 and deposited there by lowering into a nest predetermined by the application controller 100*, for example in a carton K on a carriage 102 moved in the working area of ​​this robot 1.

[0106] The Fig. 2a to d show in simplified principle representations such a transfer movement in several variants of the movement path used, whereby the transfer movement is divided into several movement sections BA, in the Fig. 2a to 2c is divided into three movement sections BA1 to BA3 (lifting, moving, lowering), of which the middle movement section BA2 is an approximately horizontal movement section, which in practice, see in particular Fig. 1b, is usually significantly longer compared to raising and lowering.

[0107] In addition, the arrival of the tool 5 is shown at the starting point S and at the destination point Z of the entire transfer movement, whereby the direction of the arrow corresponds to the direction of arrival and the length of the arrow corresponds to the arrival speed - and likewise the departure of the suction device 5 is shown at the destination point Z of the transfer movement.

[0108] In Fig. 2a it is assumed that at the starting point S as well as at the destination point Z of the transfer movement the suction cup 5 is at rest, and the lifting and lowering movements are each vertical and the travel movement is approximately horizontal.

[0109] Above the Fig. 2a, the corresponding section movement data ABD1 to ABD3 are symbolically shown in their state stored in the data buffer in such a chronological order that the respective subsequent data record, e.g. ABD2, begins at the time of the regular end of the previous data record, e.g. ABD1.

[0110] A stop sequence is appended to the regular end of each data record ABD1 to ABD3, which is executed if there is no new data record in the data buffer following the end of the regular data record.

[0111] Out of Fig. 2a it is immediately clear that this is not the optimal movement path, simply because of, for example, the braking at the end of the lifting movement and only then acceleration in the horizontal direction for the travel movement in BA2.

[0112] When moving according to Fig. 2b this is partially remedied by the fact that the lifting movement transitions into the horizontal travel movement in an arc, so that from the beginning of BA1 a horizontal acceleration towards the target point Z also takes place.

[0113] Fig. 2b further shows that at the starting point S, the suction cup 5 approaches from the top left, so - depending, for example, on the suction force of the suction cup 5 - the horizontal movement component of the approaching suction cup 5 at the starting point S for grasping the product P does not necessarily have to be reduced to zero if the suction cup 5 continues to move to the right from the starting point S.

[0114] The same applies at destination point Z.

[0115] Fig. 2c shows a situation similar Fig. 2b, which differs in that the vacuum cleaner 5 approaches the starting point S from the top right before the beginning of the transfer movement. In order to avoid having to completely decelerate the horizontal movement component of the vacuum cleaner 5 at the starting point S to zero, the vacuum cleaner 5 leaves the starting point S to the left, i.e., in the direction opposite to the target point Z. This may seem nonsensical at first glance, but due to the retained horizontal speed component at the starting point S, it can provide a time advantage and result in an overall optimized transfer movement.

[0116] Fig. 2d shows a movement with arrival and departure similar to the Fig. 2b, however, the transition from the lifting movement BA1 to the lowering movement BA3 takes place directly and without an intermediate horizontal movement section, which is different from the movement path according to Fig. 2a and Fig. 2b can also bring time advantages.

[0117] In the flow chart of the Fig. Figure 3 shows the pre-calculation process by which optimized training movement data is calculated: The pre-calculation computer (pre-PC) requires as input variables exemplary training work orders AA, which include, among other things, a movement section BA to be covered, which are preferably generated by a work order generator module (example generator module) and made available to the pre-PC.

[0118] From this, the latter determines optimized section movement data ABD for such a movement section BA according to deterministic principles, i.e. usually by classical calculation using specific calculation algorithms.

[0119] Both the description of the movement section BA and the section movement data ABD are entered into the artificial intelligence (AI) as training data and thus the AI ​​is trained, in particular by means of the AI ​​training unit, until the AI ​​is in a fully trained state.

[0120] Fig. 4 shows a flowchart in the concrete application environment 100, in which the trained AI is then part of the robot application system in addition to the robot application environment 100.

[0121] After the application controller 100* is started, its real work order generator module (real generator module) - which can be structured the same as the example generator module in the pre-calculation process, i.e., can be an identical generator module - generates a real work order based on user inputs, such as switching on the robot application system 100 with work orders AA stored there, and inputs its movement sections BA as request variables into the trained AI.

[0122] This very quickly outputs supposedly optimized raw section movement data RABD as response variables, which flow into a movement data module (data module) which is able, on the one hand, to receive these response variables from the AI ​​and, above all, to generate the desired movement data, in particular section movement data, from them, in particular with control commands contained therein or in the form of control commands for the drives of the robot with which the movement section can be realized.

[0123] The data module can forward this raw section movement data RABD to a stop sequence generator module (stop module) to generate a stop sequence for the end of the section movement data record.

[0124] From the data module, the raw section movement data RABD can be transferred directly to a data buffer - if they are of good enough quality to be used directly as section movement data ABD - or in between, they can pass through a first post-processing module (1st post-module) in which the movement data from the AI ​​is subjected to post-processing, in particular a plausibility check and, in particular, any inconsistencies identified with the robot application environment 100 are eliminated or inaccuracies are rectified, and only from there are they transferred to the data buffer in which the buffer management module (manage module) stores this section movement data set ABD in the correct order and, if necessary, sorts the data sets.

[0125] By means of a buffer readout module (readout module), which is preferably also a component of the data buffer, the corresponding movement data record ABD is read out from the data buffer upon retrieval by the application controller 100* and transferred to the application controller 100* for implementation in the application environment 100.

[0126] In the practical application of the section movement data ABD to an application environment 100 such as a robot line 100, in which the starting point S and / or the destination point Z of a movement section BA or a larger movement is not at rest but is constantly moving, such as the product P lying on a permanently running, in particular constantly running, container belt 101 and to be transferred in a robot line 100, the transport speed of this, for example, receiving area must also be taken into account.

[0127] How this is done is shown in the flow chart according to Fig. 5, in which the right branch of the flow chart according to Fig. 4 is added: The conveyor belt control module (F-control module) sends the previous and current transport speed to a conveyor speed estimation module (F-estimation module), which is able to estimate the conveyor speed, i.e. the transport speed, also for future points in time.

[0128] The F-estimation module passes these estimates for one or more future points in time on to the Real Generator module, which can already take the estimated transport speed into account when formulating its work orders AA.

[0129] The F-estimation module also passes its estimate to the data buffer, in particular its management module and / or its readout module, which outputs the section movement data ABD, in particular including or in the form of control commands.

[0130] If these are passed to a 2nd post-processing module (2nd post-module), the 2nd post-module also receives from the F-estimation module an estimate of the future transport speed for the planned time of execution of these control commands, which is now much less distant in time from the estimation time than in the 1st estimation

[0131] In particular, the 2nd post-module can request a 2nd estimate of the transport speed from the F-estimation module for the now relatively precisely known execution time of the control command.

[0132] If this second estimate differs by more than a specified tolerance value from the first estimate of the transport speed originally received from the real generator module, the second downstream module is able to take this difference into account by appropriately amending the control commands, which the second downstream module then forwards to the application controller 100*. LIST OF REFERENCE SYMBOLS 1 robot 2 upper arm 2' swivel axis 3 Forearm 3' swivel axis 4 hand, lifting column 4' swivel axis 5 tools, vacuum cleaner 6 Robot Base 7 8 9 10 Transport direction 11 Transverse direction 12 vertical 100 Application environment, packaging machine, robot line 100* Control, Application Control 101 Product Band 102 sleds 103 scanners 104 Crossbeam 105 Running rail K Carton, outer packaging P Product AA work assignment Readout module Buffer readout module BA Movement Section ABD section movement data Data module Movement data module F-control module conveyor belt control module F-estimation module Conveyor speed estimation module Generator module Work order generator module AI artificial intelligence KNN artificial neural network Post-Module Post-processing module Ref module Buffer reference value generator module Stop module Stop sequence generator module Manage Module Buffer Management Module Pre-PC pre-calculation calculator S starting point Z Target point

Claims

[1] Method for controlling the movement of a real robot (1) used in a (real) application environment (100) such as a packaging machine (100) by controlling the drives of the parts of the robot (1) that are movable relative to one another, A) in a pre-calculation environment, exemplary pre-calculation movement sections (V-BA) are created from a plurality of exemplary work orders and the order data describing them, for which - according to specified optimization parameters - optimized pre-calculation movement data in the form of pre-calculation section movement data (V-ABD) are determined in a pre-calculation process, B) the exemplary section movement data (ABD) are entered as training data into an artificial intelligence (Kl), - the AI ​​is trained with it, C) in the application environment when a work order (AA) with one or more movement sections (BA) appears, - the order data is entered into the trained AI as request variables, - the response variables received from the AI ​​as a response are further used as section movement data (ABD) or raw section movement data (RABD) for this at least one movement section (BA), D) the section movement data (ABD) are stored in a data buffer with a time lead, where the time for calculating the section movement data (ABD) of a subsequent movement section is less than the time until the end of an active movement section, and E) when the start criterion in the order data of an order is reached, the robot executes the movement section (BA) by controlling its drives using control commands contained in the section movement data (ABD). [2] Method according to claim 1, characterized by , that - the exemplary section movement data (ABD) are entered as training data into a machine learning model (MLM) that can be trained using machine learning methods, which in particular comprises an artificial neural network (ANN), and / or - the pre-calculation process is carried out outside the application environment in a separate pre-calculation environment, - in particular before the first commissioning of the application environment or a new tool or a new robot with changed properties in the application environment, - in particular, the pre-calculation process is carried out by artificial intelligence (AI). [3] Method according to one of the preceding claims, characterized by that the determination of control commands for the drives from the section movement data takes place in step A, C or E. [4] Method according to one of the preceding claims, characterized by that between step C) and step D) in a post-processing step N) - the possibly not yet sufficiently accurate response variables are reprocessed into exact section movement data (ABD) and / or - the control commands for the drives are determined from the section movement data (ABD) or raw section movement data (RABD). [5] Method according to one of the preceding claims, characterized by that the post-processing is carried out taking into account - existing inconsistencies between the response values ​​of the AI ​​and the conditions in the application environment and / or the work order to be fulfilled. - Limit values ​​given by the mechanical and electrical structure of the application environment, in particular the robot - the system behavior of the application environment, for example its vibration behavior or damping behavior or temperature-strain behavior, its related state variables or variables derived therefrom, in particular in order to influence these favorably. (To A:) [6] Method according to one of the preceding claims, characterized by that in step A) - at least one optimization parameter is specified, in particular the minimization of the movement time required to complete the movement section (BA). - if several optimization parameters are specified, a weighting or prioritization is specified among the several optimization parameters. [7] Method according to one of the preceding claims, characterized by , that - the training movement sections (BA) determined in step A and / or the associated training section movement data (ABD) are modified, in particular optimized, based on experience, in particular in the form of physical parameters determined in the application environment when performing step E, - in particular during the implementation of step E, - the modified section movement data (ABD) according to step B are used to further train the AI, in particular during the further execution of the work order, - from then on, the further trained AI is used in step C in the application environment. [8] Method according to one of the preceding claims, characterized by , that in step A) for the determination of section movement data (ABD) - except the start parameters in the form of the start position and start rotation position - as well as the target parameters in the form of the target position and target rotational position of the tool as many as possible - accompanying parameters that describe the accompanying circumstances of the tool of the work order are provided, such as - Speed ​​and / or acceleration and / or direction upon arrival of the tool (5) at the start position (S) and / or - Speed ​​and / or acceleration and / or direction when the tool (5) departs from the target position (Z). (Taking environmental characteristics into account:) [9] Method according to one of the preceding claims, characterized by , that As accompanying parameters, environmental properties of the application environment are provided, such as - Elasticity and / or flexibility of the drives and / or - Interactions between robots and / or - load limit values, in particular for bearings and linear guides, of the application environment, in particular of the robot (1), - Temperature-strain behavior of the application environment, especially of the robot (1). (Consideration of vibrations:) [10] Method according to one of the preceding claims, characterized by , that As accompanying parameters, information on the vibration behavior and / or damping behavior of the application environment is provided by - Storing a vibration model for the application environment, or - Creating a vibration model for the application environment based on input, particularly constructive, data of the application environment or on the basis of models derived from machine data, e.g. machine learning models (Taking loads into account:) [11] Method according to one of the preceding claims, characterized by that exposure limit values ​​are provided as accompanying parameters by - Defining a load model for the application environment, or - Creating a load model for the application environment based on input, particularly constructive, data of the loaded parts of the application environment or on the basis of models derived from machine data, e.g. machine learning models [12] Method according to one of the preceding claims, characterized by , that - the accompanying parameters used in step A for determining the training section movement data (ABD) are changed, in particular optimized, based on experience, in particular in the form of physical parameters determined in the application environment when performing step E, - In particular during the implementation of step E, - the newly determined, modified training section movement data (ABD) according to step B using the modified accompanying parameters are used to further train the AI, in particular during the further execution of the work order, - from then on, the further trained AI is used in step C in the application environment. (To B:) [13] Method according to one of the preceding claims, characterized by , that especially in step B) the AI ​​is considered sufficiently trained and the training is terminated when - when entering order data from the training of step A) as request variables to the AI, - the response values ​​obtained by the AI ​​lie within a specified tolerance range around the section movement data (ABD) calculated in step A) from these training order data. (To C / D:) [14] Method according to one of the preceding claims, characterized by , that - in step C) the response variables can also contain range information as movement data (ABD). [15] Method according to one of the preceding claims, characterized by , that in step D) - the section movement data (ABD) for a movement section (BA) in the data buffer at the - temporal or spatial - end comprises an optional braking sequence, in particular a stop sequence for braking, in particular stopping the tool (5) or - such a deceleration sequence, in particular a stop sequence, is only generated during processing, for example in a reference generator module. (To E:) [16] Method according to one of the preceding claims, characterized by , that in step E) in the event that no movement data for a subsequent movement section (BA) are available at the end of a movement section (BA) in execution and this does not end in standstill, the robot (1) is stopped according to the stop sequence contained in the movement data of the movement section (BA) in execution. (Generally:) [17] Method according to one of the preceding claims, characterized by , that - at least one basic movement type is defined for the robot in the application environment as a movement section, - in particular, all movement sections (BA) in step A) can be subsumed into one of these basic movement types, - and / or - in particular, all movement sections (BA) described by the movement data generated in step D) can be subsumed under one of these basic movement types. [18] Method according to one of the preceding claims, characterized by that the assumed transport speed and / or acceleration of the belts serving as pick-up point and / or as deposit point or of the products themselves with spatial position and rotational position a) either is already taken into account as one of the environmental parameters when determining the training movement data in step A), b) or only after the output variables from the AI ​​have been output in step C), at the latest when determining the control commands for the drives in step E), - in particular according to (a) the presumed transport speed and / or -Acceleration is taken into account and at the beginning of the real movement section (BA) with the real transport speed and / or -Acceleration is compared and if the difference exceeds a tolerance limit, the control commands are recalculated taking the difference into account. [19] Robot application system with - an application environment (100), such as a packaging machine (100) / in the form of a robot line (100), comprising - at least one robot (1), - an application controller (100*) for controlling the drives of the movably connected parts of the at least one robot (1) relative to each other, characterized by A) a pre-calculation computer in which exemplary pre-calculation movement sections (V-BA) are created from a large number of exemplary work orders and the order data describing them, for which - according to specified optimization parameters - optimized pre-calculation movement data in the form of pre-calculation section movement data (V-ABD) are determined in a pre-calculation process, B) the exemplary section movement data (ABD) are entered as training data into an artificial intelligence (Kl), - the AI ​​is trained with it, C) in the application control (100*) when a work order (AA) with one or more movement sections (BA) appears - the order data is entered into the trained AI as request variables, - the response variables received from the AI ​​as a response are further used as section movement data (ABD) or raw section movement data (RABD) for this at least one movement section (BA), D) the section movement data (ABD) are stored in a data buffer with a time lead, whereby the time for calculating the section movement data (ABD) of a subsequent movement section is less than the time until the end of an active movement section, E) when the start criterion in the order data of an order is reached, the robot executes the movement section (BA) by controlling its drives using control commands contained in the section movement data (ABD). [20] Robot application system according to claim 19, characterized by , that the application control (100*) includes - a work order generator module (generator module) which is capable of creating exemplary, concrete work orders (AA) for each individual robot (1) based on user input or randomly, for example, and of entering them as a request size into the trained AI, and / or - a movement data module (data module) which is capable of receiving response variables from the AI ​​and generating section movement data (ABD) therefrom, in particular with or in the form of control commands for the drives of the at least one robot, and / or - a 1st post-processing module (1st post-module) to post-process the movement data (ABD) generated by the data module if necessary, for example to eliminate inconsistencies with the real application environment, particularly in the relevant movement section (BA), and / or - A buffer reference value generator module (Ref module), which is capable of manipulating the pre-calculated movements or providing information for them in such a way that, for example, deceleration and acceleration within the pre-calculated movement segments (or beyond several movement segments) is possible. The manipulation can again take various target criteria into account, such as low torques or vibration avoidance. Furthermore, the reference value generator itself can consist of a trained AI that takes the pre-calculated movement segments and, if necessary, more detailed parameters of the application environment as input. and / or - a stop / brake sequence generator module (stop module) capable of generating a brake sequence, in particular a stop sequence for a movement section data record (ABD), and / or - a buffer management module (manage module) which is able to organize the insertion, storage and, if necessary, sorting and output of section movement data (ABD), in particular data records (ABD), in the buffer, and / or - a buffer readout module (readout module) which is capable of reading section movement data (ABD), in particular data records (ABD), from the buffer and in particular of manipulating them according to input variables, if necessary, and / or - a conveyor belt control module (F-control module), which controls the corresponding conveyors for products and / or containers, its conveyor belts or other types of conveyors, and / or - Conveyor speed / acceleration estimation module (F-estimation module), which is able to estimate the speed of the conveyor at defined points in time or functional states of the application environment in the future, and / or - a second post-processing module (2nd post-module) to post-process the movement data (ABD) output or read from the data buffer, particularly in the case of a difference between the speed assumed when creating this movement data (ABD) and a currently measured or now better estimable conveyor speed / acceleration.

Citation Information

Patent Citations

  • Robot control system

    DE102019122790A1

  • Optimization modes for control programs of a robot manipulator

    DE102019128583B4

  • Method and system for determining optimized program parameters for a robot program

    DE102020209511B3

  • Computer-aided control of the movement of a device

    DE102020210779B3

  • Method for accelerating a handling machine

    DE102021103126A1