Method, apparatus and computer program product for determining time-optimized trajectories

The method optimizes industrial robot paths by combining CP and PTP paths with seven-phase trajectories and polynomial paths, addressing suboptimal travel times and calculation inefficiencies, ensuring compliance with dynamic limits and achieving efficient, fast travel.

JP7781255B2Active Publication Date: 2025-12-05シュティバ アーエムエス ゲゼルシャフト ミット ベシュレンクテル ハフツング
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024501163
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-07-09
Filing Date
2022-07-07
Publication Date
2025-12-05
Estimated Expiration
2042-07-07

AI Technical Summary

Technical Problem

Existing methods for path planning in industrial robots often result in suboptimal travel times due to separate calculation of CP and PTP paths, lack of consideration for jerk, and inefficient online calculation methods, leading to non-time-optimized trajectories.

Method used

A method for calculating time-optimized trajectories that combines CP and PTP paths using seven-phase trajectories, jerk-limited paths, and polynomial paths, considering joint-space constraints and motor dynamics, with offline calculation to ensure efficient and fast path determination.

Benefits of technology

Achieves the fastest possible travel times for industrial robots by optimizing joint angles and adhering to dynamic limits, ensuring compliance with velocity, acceleration, and jerk constraints, while reducing calculation time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007781255000026
    Figure 0007781255000026
  • Figure 0007781255000027
    Figure 0007781255000027
  • Figure 0007781255000028
    Figure 0007781255000028
Patent Text Reader

Abstract

The present invention relates to a method, an apparatus and a computer program product for determining a time-optimized trajectory for an industrial robot to perform a motion on a path specified by motion parameters before the motion is started. The method comprises the steps of dividing a trajectory into one or more partial paths, calculating a time-optimized trajectory for each partial path, combining the time-optimized trajectories for all partial paths, checking whether a certain limit is exceeded and whether the fastest motion has been found, and varying one or more motion parameters a certain number of times.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to determining time-optimized trajectories for industrial robots while adhering to certain constraints.

[0002] Industrial robots are classified as serial kinematic and parallel kinematic, with various numbers of actuated parts or joints, both rotary and linear. Such robots usually have a characteristic point in (Cartesian) space of the end effector, often called the tool center point (TCP). ) For example, the robot performs an operation so that the center of the tool moves along a specific path. Moreover, there are robots that perform various work procedures, for example, a robot that collects multiple parts from corresponding stocks, and a robot that always performs the same operation for machining tasks.

[0003] According to the usual VDI guidelines, an industrial robot is defined as "(...) a universally usable automated machine with several axes, the sequence and distance or angle of its movements being freely programmable (i.e. without mechanical intervention), possibly sensor-guided. It can be equipped with grippers, tools or other production means and can perform manipulation and / or production tasks."

[0004] In principle, it is desirable to travel the best possible, i.e., time-optimized, route, since the fastest possible processing is desirable from the standpoint of efficiency and economy.

[0005] There are two types of paths to be traveled: paths that are geometrically defined in space, and paths that are geometrically free in space. A path that is geometrically defined in space is generally a path such as a straight line or a circular arc that runs from a starting point to an end point. In this case, in addition to the boundary points, the geometric shape of the path in space is also predefined. Such a path is usually called a CP path (English: continuous path).

[0006] Another type of motion is the PTP path (English: point to point), which usually defines only a start point and a destination point in axis coordinates, but not a Cartesian path in the TCP space. The characteristic of this motion is to reach the destination point as quickly as possible. A PTP path may have lattice points that must be passed through in addition to boundary points.

[0007] Both path types, CP and PTP, are subject to certain limits and other basic conditions, which often serve to protect the robot and / or the payload or tooling. On the other hand, the robot may be required to move within certain limits, for example to avoid obstacles or the working range of other robots. Inside There are mechanical load limits for the robot that must not be exceeded and can only be operated within these limits. The process itself may also require limits, such as a certain speed when gluing or welding. There are also dynamic limits regarding the precision of the path that must be traveled (e.g. milling).

[0008] In the prior art, methods are known in which a path is calculated in a robot controller based on motion parameters such as speed data, acceleration data, etc. In this case, the speed of calculation is usually more important than achieving an optimal result according to a minimum travel time. On the other hand, methods are known in which the CP path and the PTP path are calculated separately.

[0009] Traditionally, in order to be able to accommodate changes in path points (e.g., grid points) (e.g., changing the grip position as the part being picked changes position), the path is not calculated completely at the start of the movement, in the sense of a complete list of all joint angles at each sampling point of the entire path to be traversed. This is also called an "online" calculation method. Typically, the concepts of a predecessor pointer and a program execution pointer are used. However, this has the major drawback that very fast methods (in terms of execution time) must be available for the calculation. As a result, one has to resort to suboptimal solutions to get a result within approximately the given calculation time.

[0010] Since when determining a CP path, usually only velocity and acceleration are optimized, and in special cases also the expected motor torque (which can be expressed via a robot dynamics model), the problem remains mathematically convex with respect to the optimization function and is therefore easy to compute. Optionally, various filtering of the displacement parameter σ (mean value filters, Bessel filters or similar) can be used to "smooth" the path, which allows to take into account and limit to some extent the jerk (time derivative of acceleration).

[0011] For complex PTP routes, and therefore routes with several grid points to traverse, or in general when combining CP and PTP routes, blending is traditionally used, where all sub-routes are calculated individually (with the boundary condition that the velocity is zero), and then intermediate sections (often other PTP routes) are inserted depending on the regions where these sub-routes can depart (for example, the radius of the blending sphere). This makes the route easier to calculate, but less optimal. This is also known as a fly-by-point.

[0012] A drawback of the known method is therefore that the results are not efficient and no time-optimized transfer in the sense of transfer times is carried out to determine such mixed paths. Summary of the Invention [Problem to be solved by the invention]

[0013] The object of the present invention is to overcome the drawbacks of the prior art and to provide an improved, or at least an alternative, method for path planning. [Means for solving the problem]

[0014] The above problems are solved by the methods and devices set forth in the claims.

[0015] For a better understanding of the invention, it will be explained in more detail with the aid of the following figures, each of which is shown in a highly simplified schematic representation: [Brief explanation of the drawings]

[0016] [Figure 1] FIG. 1 shows a diagram of a path with various path sections and grid points for a six-axis articulated arm robot. [Figure 2] FIG. 2 is a diagram showing a path with various path sections in a SCARA robot. [Figure 3] Figure 3 shows an example of a trajectory calculated using a seven-phase trajectory. [Figure 4] FIG. 4 illustrates the application of a moving average filter to a trajectory with a rectangular acceleration curve. [Figure 5A] FIG. 5A shows a comparison of the application of a seven-phase trajectory and a moving average filter. [Figure 5B] FIG. 5B shows a comparison of the seven-phase trajectory and the application of a moving average filter. [Figure 6] FIG. 6 is an exemplary graph of a path determined by a piecewise defined third-order polynomial. [Figure 7] FIG. 7 is a diagram showing the connection between the start point and the end point by a path defined by a fifth-order polynomial. [Figure 8] FIG. 8 is a flowchart for calculating a PTP path using a seven-phase orbit and a synchronous orbit. [Figure 9] FIG. 9 is an example of a PTP path with location restrictions. [Figure 10] FIG. 10 is a graph of the displacement parameters based on the composite path in terms of coordinates x and y. [Figure 11] FIG. 11 is a graph showing the determined velocity, acceleration, and jerk as a function of the displacement parameter. [Figure 12] FIG. 12 is a graph showing the relationship between the displacement parameter and time. [Figure 13] FIG. 13 is a graph of the optimization problem in phase space with parameterization using the displacement parameter σ. [Figure 14] FIG. 14 is a diagram showing a combination of a CP route and a PTP route having a lattice point. [Figure 15] FIG. 15 is a flow chart according to the present invention. [Figure 16] FIG. 16 is a flow chart according to the present invention. [Figure 17] FIG. 17 illustrates a method for adapting the geometry of a path. DETAILED DESCRIPTION OF THE INVENTION

[0017] First, it should be noted that the same elements in the different embodiments described are designated by the same reference numerals or names. In this case, the disclosure contained in the entire description can be applied to the same elements having the same reference numerals or names. Positional terms selected in the description, such as upper, lower, and side, are also based on the displayed figures directly described, and these positional terms will be applied mutatis mutandis to the new positions if the positions are changed.

[0018] 1 shows a path with various path sections and grid points for a six-axis articulated arm robot 100. Here, the robot 100 is to move along a TCP 110 from a start point 121 to an end point 122, passing through grid points 131, 132, and 133. The start and end points can always be considered or treated as grid points.

[0019] The path can be divided into partial paths 141, 142, 143, and 144 by the lattice points 131, 132, and 133.

[0020] The partial paths obtained by the division can be predefined by the user, for example. That is, the path between each two grid points should be treated as a unique partial path. This is usually handled as follows: if PTP sections are consecutive, a partial path is always set between the two grid points. In the case of CP sections, the partial path is defined by the grid points that are directly consecutive and declared as CP type (i.e. "without PTP interruption").

[0021] However, the partitioning can also be determined automatically by simply specifying the start and destination points and other conditions such as environmental boundaries, etc. Thus, grid points can be considered as additional separations between subpaths, as in the case of PTP paths, or can be ignored in the partitioning, as in the case of intermediate points on CP subpaths.

[0022] Figure 1 shows an example in which a grid point is split into four subpaths. The subpaths can be classified as CP or PTP type in advance, or the path can be automatically analyzed to assign a CP or PTP type to the corresponding subpaths. Subpaths 141 and 144 are CP type subpaths, specifically straight lines, while subpaths 142 and 143 are PTP type subpaths.

[0023] It should be noted that the path shown in FIG. 1 and, to some extent, in other figures, represents the result of the method according to the present invention, specifically the Cartesian geometry of the PTP path. Therefore, the trajectory the robot will travel is predefined by path parameters. These path parameters can include information related to the grid points, i.e., the start point, the end point, and other grid points. Note that the start and end points can function as grid points or can be interpreted as grid points. In addition, the path type of the subpath can also be included. Furthermore, the path parameters can include the maximum speed for traveling one or more subpaths. In addition to the path parameters, other known parameters, such as allowable dynamics limits, are also known, as described below.

[0024] FIG. 2 shows a path with various path sections for a SCARA robot 200. A SCARA robot (SCARA is an abbreviation for Selective Compliance Assembly Robot Arm) is a type of industrial robot whose structure resembles a human arm. The TCP 210 of the robot 200 travels on a path that can be decomposed into subpaths 241, 242, and 243 at lattice points 231 and 232, which are shown here only schematically. Here, subpaths 241 and 243 are of the PTP type, and subpath 242 is of the CP type. The PTP paths 241 and 243 are shown in FIG. 2 only schematically in terms of their expected geometry in space.

[0025] Furthermore, it should be noted that the six-axis articulated arm robot and SCARA robot shown in Figures 1 and 2 are only examples of all possible industrial robots. The method of the present invention can be used with any industrial robot that is subject to path planning, as described herein. Other examples include delta robots and gantry drive mechanisms.

[0026] The task of the method is to make available a time-optimized motion path for the industrial robot 100, 200. This is mathematically expressed as an optimization method using a quality function J.

number

[0027] where t is time, T E is the time interval or the achieved finish time.

[0028] During optimization, boundary conditions (also called limits in dynamics, declared as min or max) or additional conditions for each axis i must be observed.

number

[0029] where q is the axis angle, joint angle, robot coordinate or robot axis position (both rotation and translation are possible),

number

number

number

[0030] This means that the method satisfies the joint-space constraints for each robot axis on the position level (but only for PTP routes; for CP routes, the operator's input or resulting geometry applies), velocity (time derivative of position), acceleration (time derivative of velocity), and also jerk (time derivative of acceleration).

[0031] On CP routes, route speed is adjusted as necessary.

number

[0032] In practice, the calculation time (i.e. the time it takes the process to produce a result) is also very important. Advantageously, at start-up the calculation should not exceed a few milliseconds to a few seconds.

[0033] The method calculates the trajectory of a fully defined path, which is provided at the start of the motion. This is also called an "offline" method. For this purpose, information about the end points and grid points, the path type, the axis limits, the trajectory limits, the motion or kinematic parameters, and the sampling time can be used as inputs. In this case, the output is the joint angle q for each time interval (sampling time). i (t) can be.

[0034] The results can be expressed in the form of a matrix (or table or list) of joint angles (of the joints or axes, respectively) of the industrial robot 100, 200, specified for each time interval. This information is provided to the robot controller, which processes this table as a motor-based periodic target value specification in the context of motion control.

[0035] The movement from the start point to the end point is thus defined by a matrix in which the relevant joint angles and the corresponding time points are stored. The periodic target value assignment of this table therefore achieves the running of a trajectory that respects the given conditions.

[0036] The motion or kinematic parameters may also include data such as the arm length, mass, inertia, transmission information of the robot 100, 200, and tool parameters such as distance, mass, and inertia.

[0037] The calculation methods presented above can use forward transformations, also called direct kinematics, or inverse transformations, also called inverse kinematics.

[0038] The forward transformation p = T(q) describes the calculation of a pose p as a function of joint angles q (in robot coordinates). This transformation is mathematically unambiguous for serial kinematics. For parallel kinematics, this cannot be generally true.

[0039] Inverse transformation q=T -1(p) describes the calculation of joint angles q as a function of world coordinates (i.e., pose p). This transformation is not unique in the mathematical sense for serial kinematics, and additional parameters are generally required to determine a valid solution from various solutions. Parallel kinematics often leads to a simpler problem to solve. Joint coordinates can be determined using trigonometric functions via vector chains.

[0040] For more complex industrial robots, motor torque limitations (due to inertial feedback: Coriolis force, centrifugal force, friction force, etc.) cannot be adequately expressed by acceleration or deceleration limits. To meet this requirement, the axis position q, velocity

number

number

number

[0041] This model depends on many parameters (kinematic and mechanical), not all of which are identifiable. Here it is necessary to convert the model into a so-called base parameter representation, which can then be decomposed into identifiable and non-identifiable parameters. Further identification runs must be performed to determine the actual parameters. The base parameter representation is as follows (where θ is the information matrix and p is the parameter vector):

number

[0042] This is traditionally used as the predicted motor torque in load-bearing or feasibility calculations.

[0043] In a point-to-point path (PTP path), the start and end positions are connected via a trajectory (path) axis-by-axis at the joint level (i.e., robot axis positions). This means, conversely, that the geometric path in space (in TCP) has no relevance in the calculation, and therefore the geometry in TCP 110, 210 arises implicitly due to the axis dynamics (velocity, acceleration and jerk limits).

[0044] The calculation uses different individual trajectories (per axis) and can be optimally synchronized to the slowest travel time.

[0045] The 7-phase trajectories, which can be used as individual trajectories in PTP trajectories or as trajectories for displacement parameters in CP trajectories, assume a rectangular jerk. The relationship with other descriptive trajectory parameters (acceleration, velocity, position, etc.) is given by integrals. Therefore, such trajectories also belong to the family of so-called "Bang-Bang" trajectories, because the jerk in this family of trajectories can only take three values: 0, maximum, and minimum. When the jerk value is 0, the acceleration or velocity is correspondingly maximum. This means that if boundary conditions are taken into account when determining the jerk, all other trajectory parameters (e.g., section duration) can be calculated.

[0046] A seven-phase trajectory consists of seven possible phases or sections in the time vector to constrain velocity limits, acceleration limits, and jerk. This triply differentiable trajectory is constrained by these constraints to a travel time T E This will be the fastest possible trajectory.

[0047] Figure 3 shows an example of a trajectory calculated using a seven-phase trajectory. Based on the choice of jerk and boundary conditions, integration yields acceleration, velocity, and position. In Figure 3, the axes are labeled s for distance or position, v for velocity, a for acceleration, j for jerk, and t for time. These notations also apply to other figures unless otherwise noted.

[0048] The progression of position is shown in the upper left. The progression of velocity is shown in the lower left. The acceleration curve is shown in the upper right. The progression of jerk is shown in the lower right. In all parts, time is plotted on the horizontal axis and divided into segments. In the illustration, these segments are of equal size, i.e. equidistant, but this is for clarity and is not generally the case. Sometimes segments are even invisible because they have the same start and end times.

[0049] It can be seen that in each section, one of the limit values ​​(i.e., velocity, acceleration, and jerk) reaches the maximum allowable value. This maximum allowable value is shown in each figure as v max , a max (positive and negative values ​​are plotted on the vertical axis), and j max (positive and negative values ​​are plotted on the vertical axis).

[0050] In this case, in addition to the start and end points, the velocity boundary condition (v S , v E ) and acceleration boundary condition (a S , a E ) are also considered, where index S represents the condition at the start point and index E represents the condition at the end point.

[0051] In particular, the boundary conditions (v S , v E , a S , a E is non-zero) and route T sync =k T E When stretching k>1, there is no mathematical guarantee that a solution exists. There are various methods for calculating such stretches.

[0052] Alternatively, assume a rectangular path in acceleration, followed by a filter width t (based on time). filt A moving average filter with ∑ i = 1 ⁢ ⁢ ⁢ ⁢ ⁢ ⁢ ⁢ ⁢ ⁢ ⁢ ⁢ ( ...

[0053] Alternatively, the trajectory may consist of a sinoid profile. Further alternatives are also possible.

[0054] Figure 4 shows the application of a filter to a rectangular acceleration. Reference numeral 410 denotes the impulse response of the filter, the shape of which crucially affects the acceleration. In this case, it is represented as the response of a simple mean filter. In Figure 4, the time t and the acceleration a are shown on the respective axes.

[0055] Comparing the 7-phase trajectory and the rectangular waveform with a moving average filter, they are identical in many regions, as can be seen in Figures 5A and 5B.

[0056] Figures 5A and 5B show a comparison of the seven-phase trajectory and the application of a filter, respectively. In Figure 5A, the rate limit is in effect, while in Figure 5B, the limit is not reached. Note further that in Figure 5B, the rate limit is not reached, causing the seven-phase trajectory to degrade to a "five-phase" trajectory.

[0057] Here, the position transition is shown in the upper left. upper right The velocity curves are shown in Fig. lower left The acceleration curves are shown in the graphs. The jerk transitions are shown in the bottom right.

[0058] In each graph, we can see the original trajectory with the rectangles in the acceleration. The original trajectory is shown as a solid line (-). Additionally, the filtered trajectory is shown as a line with alternating lines and dots (---). The last trajectory shown is the 7-phase trajectory. This trajectory is shown as a dotted line (......). In particular, in the position and velocity graphs, the lines of the filtered trajectory and the 7-phase trajectory coincide. The same is true for the acceleration and jerk graph shown in Figure 5A. Only in the acceleration and jerk graph shown in Figure 5B do these two lines exhibit at least partially different progressions from each other.

[0059] The advantage of filtered paths is that they are much easier to compute and are suitable for given boundary conditions (v S , v E , a S , a E ) to extend the path to the desired time, always giving guaranteed results. The drawback is that certain combinations of limit values In The problem is that the jerk is not sufficiently limited (as shown in Figure 5B, bottom right) (if the speed limit is not reached), i.e., the jerk is twice as large as required.

[0060] Alternatively, the velocity profile (eg, implemented as a rectangular profile) can be mean filtered twice with similar results.

[0061] Spline paths can be used especially for synchronization, for example, when seven phases cannot be calculated or when the filtered acceleration rectangular profile does not meet the dynamics limits. The spline or polynomial sequence path is based on a cubic spline and consists of four subsections with cubic polynomials as shown in Figure 6, which shows an example representation of a cubic polynomial at the position level. The position is divided into four parts in time, with the starting point s S and the end point s E It has.

[0062] The simplest possible trajectory that dynamically connects two points can be obtained by generating a polynomial trajectory. In this invention, in addition to the angle, velocity, and acceleration, jerk is also considered, so a i A fifth-order polynomial with the polynomial coefficients is used.

number

[0063] Figure 7 shows a fifth-order polynomial connecting the start and end points. The corresponding velocity is obtained by first differentiation. In this representation, time t is plotted to the right, and position s or velocity v is plotted upward.

[0064] In this case, no limits can be considered in advance, but this trajectory is dynamically the smoothest, i.e., the jerk is minimized. Therefore, this trajectory is used especially for synchronization. It is also known as the "minimum jerk trajectory."

[0065] The method for calculating a PTP path with given boundary conditions and limit values ​​is shown in Figure 8. Here, the boundary conditions at the start and end points of the path for each axis must be considered, especially the respective velocities and accelerations.

[0066] 8, step 801 starts with inputting data such as the route from the start point to the end point, and boundary conditions at the start and end points. 802 represents limit values ​​such as maximum acceleration, maximum velocity, maximum jerk, etc. for each axis.

[0067] Both are processed in 803 to determine a 7-phase trajectory for each axis. Instead of 7-phase trajectories, other techniques for calculating trajectories can be used, usually bang-bang trajectories, and mean-filtered rectangular trajectories, especially in acceleration.

[0068] In 804, the slowest axis is determined, or the provisional PTP travel time T sync is determined.

[0069] Next, in step 805, all remaining axes are sync The signal is stretched via another 7-phase orbit in the sense of being synchronized (stretched) to the signal. Again, one of the other orbits can be used as above.

[0070] Step 806 checks whether the synchronization was successfully calculated. If successful, proceed to step 808; if not, a spline path is calculated in step 807 before proceeding to step 808. Again, it should be noted that any synchronization trajectory can be used.

[0071] In step 808, it is checked whether the limits are met, specifically whether the axis position limits are within predetermined ranges on the PTP path, and whether the acceleration, velocity, and jerk for each axis are within limits.

[0072] If, in step 808, it is determined that the calculated path does not remain within the limits during operation, then in step 809 the calculation of this path using the corresponding operating parameters is discontinued.

[0073] The method illustrated in FIG. 8 can be restarted with new values ​​for the operating parameters.

[0074] Once it is determined in step 808 that the limits are met, dynamics reduction can be performed in step 810. Dynamics reduction is achieved by individual motion permutations (e.g., mean filtered rectangles on accelerations, splines, polynomial paths, etc., and rechecking that position, velocity, acceleration, and jerk limits are met for each axis).

[0075] Next, in step 811, it is checked whether the motor torque limit values ​​of each motor of the industrial robot 100, 200 are observed. If not, the limit values ​​are temporarily reduced in step 812. That is, the limit values ​​(v) that must be reduced based on the dynamics model are max and / or a max) is determined and the method jumps back to step 803 with the new limit value, and the reduced limit value is used instead of the originally established limit value 802.

[0076] If it is determined in step 811 that the motor torque limits are met, then in step 813 the calculation of the PTP path, which may be a partial path of the overall path within the framework of the present invention, is completed.

[0077] It should be noted that the position limits of each axis or joint are only indirectly taken into account here through the reduction of dynamics. In this way, the TCP can also be constrained within a certain working range (through extensive checks of spatial coordinates not shown in Figure 8).

[0078] 9 shows an example of portal operation (movable in x, y, and z directions) of a PTP path 910 with a position limit 920 in z. The position limit value is the velocity and acceleration at the start or end point, i.e., v S , a S , v E , a E Compliance can only be achieved if the

[0079] The procedure shown is particularly advantageous because the order of the calculation steps is in this way optimal based on the calculation times of the substeps.

[0080] If there are no boundary conditions, i.e., the velocity and acceleration at the start or end point are zero (v S , v E , a S , a E =0), it should be noted that there is always at least one solution and the abort step is not active (i.e., sub-step 809 is not active).

[0081] The following details a method that can be used to determine a time-optimized trajectory for a path that consists of at least one subpath, where the subpath is either a CP path, a PTP path, or a combination thereof.

[0082] In these methods, the stopping criterion is determined by the number of iterations specified. In the following, we will describe the velocity iteration method, also called v iteration. In this method, the velocity array v iter is n speed transitions v iter It is specified (e.g., v iter =[v max,1 ,...,v max,n ] / Maxlter). Possible speeds are tested and the entry that produces the shortest travel time for the entire route is used as the "best" speed.

[0083] For example, if there is at least one transition in v iterations, the following pseudocode can be used: [Table 1]

[0084] Here, it is entirely possible that only a suboptimal solution can be found, since essentially each speed transition must be combined with all other transitions (i.e., all possible solutions or combinations thereof must be calculated and solved), but it has nevertheless been shown that by gradually increasing the speed, the optimal solution can be determined quite well.

[0085] A geometrically defined path in space (e.g., world coordinates), i.e., a CP path, can be a straight line, a circular path, a spline path, or other mathematical function (e.g., a spiral), or a combination of these. The first step in computing the optimal motion to follow a CP path is parameterization by displacement parameters, i.e., the entire dynamics of the path and joint angles are formulated as a function of the displacement parameters.

[0086] Figure 10 shows the representation of the displacement parameters based on a path in world coordinates x and y, which consists of two lines and one spline curve. The position on the path is uniquely defined by the displacement parameter σ. 1010 is the start point and 1040 is the end point.

[0087] The displacement parameter σ is essentially calculated from the path distance. On the lines 1020, 1030, this displacement parameter corresponds exactly to the path distance. For simplicity, the last stop 1040 (target) can be defined as 1. On a circle or part of a circle, the displacement parameter is the angle, and on a spline 1050, it is the root section at the straight line connection 1051, 1052 of the grid points.

[0088] Once the displacement parameters have been defined, the entire geometry of the route to be traversed can be parameterized in terms of position and orientation, as can be seen in Figure 11, which shows the x and y position in world coordinates plotted against the displacement parameters in the upper left. The complete parameterization of the trajectory is obtained by iterative differentiation according to the displacement parameters: in the upper right, the velocity is shown as the first derivative of the displacement parameters, in the lower left, the acceleration is shown as the second derivative of the displacement parameters, and in the lower right, the jerk is shown as the third derivative of the displacement parameters. In this case,

number

[0089] This relationship can be furthered using transformations (direct and indirect kinematics), where the dependency of the pose p = p(σ(t)) is already used as well as the dependency of the joint angles q = q(σ(t)).

number

[0090] Here, the Jacobian matrix J is used, which describes the relationship between joint velocities and pose derivatives.

number

[0091] This relationship is linear, which is important because linear dependencies are common in robotics.

[0092] Now, the joint angles can be formulated via displacement parameters and therefore via time vectors.

number

[0093] In the case of CP paths, on the one hand, a time domain method can be used, which is again an iterative method, and a valid starting solution or initial path σ Start From (t), we gradually increase the speed while respecting the dynamics constraints until no further time improvement is possible. This speed increase occurs by shortening the time interval T(i) by a certain time delta.

[0094] This can be seen in Figure 12, which shows the displacement parameter σ(t) versus time t. The goal of the optimal path is to change the displacement parameter from σ(0) = 0 to σ(t end ) = 1, that is, from the start point to the end point in the shortest time. Here, 1210 is grid points , where path 1220 is the initially assumed trajectory and path 1230 symbolically represents the path at the j-th iteration of the calculation. Additionally, the right half of FIG. 12 shows the path parameters

number

[0095] This calculation procedure can be expressed in pseudocode as follows: [Table 2]

[0096] Here, the outer loop (lines 1-10) executes variable j at a frequency specified by the variable Maxlter, i.e., Maxlter determines the maximum number of iterations of the procedure.

[0097] The inner loop (lines 2-9) is executed at a frequency specified by the number of lattice points on the path (variable NumOfKnots).

[0098] In line 3, the time interval T(i) depending on the current i, i.e., grid point, and its immediate neighbors T(i-1) and T(i+1) are shortened by a certain delta. Delta can be defined, for example, as a fraction of the sampling time. Next, in line 4, a test checks whether all constraints are respected. If so, in line 5, the previous time interval shortening is adopted. If the constraints are exceeded or not, the shortening is cancelled in line 7, and the inner loop is terminated in line 9, thereby proceeding to the next iteration via the next grid point.

[0099] When checking for compliance with limits on line 4, all limits can be checked: velocity limits, acceleration limits and jerk limits at joint level, motor torques per axis, as well as the path velocity itself, which is calculated as follows:

number

[0100] Another method for calculating the CP path is in phase space, which requires yet another transformation.

number

[0101] This transformation eliminates the explicit time dependency, resulting in a very efficient method: the discretization is performed over a constant σ instead of non-equidistant time vectors. iNow that the parameterization is based on steps, all the parameterizations can be determined in advance. This is also shown in Figure 13, where it can be seen that by choosing the transformation appropriately, the problem has been reduced to a one-dimensional optimization problem with a new variable z(σ). Here we see the grid points 1310 and the evolution of z(σ) through two iterations of the rate parameter 1330 and 1340. 1350 shows the limit curve of z, i.e. the evolution of the limit value.

[0102] This calculation procedure can be expressed in pseudocode as follows: [Table 3]

[0103] Here, the outer loop (lines 11-20) again executes variable j at a frequency specified by the variable Maxlter, i.e., Maxlter determines the maximum number of iterations of the procedure.

[0104] The inner loop (lines 12-19) is executed at a frequency specified by the number of lattice points (variable NumOfKnots).

[0105] On line 13, σ i z at a point i and its immediate neighbors are increased in speed, preferably by a predetermined fraction of the speed limit. Next, the test at line 14 checks again whether all limits are respected. If so, the z increase is adopted at line 15. If the limits are exceeded or not, the z increase is cancelled at line 17, and the inner loop ends at line 19, proceeding to the next iteration via the next grid point.

[0106] When checking for compliance with limits on line 14, all limits can be checked: velocity limits, acceleration limits and jerk limits at joint level, motor torques per axis, as well as the path velocity itself.

[0107] In this case, the path velocity in phase space is formulated as follows:

number

[0108] The motor torque is formulated in a known manner.

number

[0109] This is done via the following relationship:

number

[0110] The difficulty with this method is the inverse transformation to a time range, because at the beginning and end, i.e. the start and end points, the velocity can have a value of zero, hence division by zero occurs. The inverse transformation can be calculated according to this rule:

number

[0111] However, this problem can be eliminated by various approximations at the boundaries.

[0112] In contrast, traditional methods do not take jerk into account because, when considered without jerk, the method is linear in z and z', and therefore traditional optimization methods, such as Bellman's method or similar, can be applied.

[0113] The method for determining the CP path described here is for illustrative purposes only. Other methods can be used, such as determining a seven-phase trajectory or a polynomial trajectory with displacement parameters in the time range, where the trajectory parameters are increased until all constraints are met, e.g., the end time of the polynomial trajectory.

[0114] Preferably, the two methods mentioned above are always calculated in pure CP trajectories, as they have different strengths and weaknesses. For very long trajectories, calculations in phase space are advantageous, i.e., more resource-efficient in terms of the required computation time. For relatively short trajectories, calculations are rather performed in the time domain, as approximations by division by zero always have a negative effect.

[0115] In the method for determining the best path for a CP path presented here, the stopping criterion is defined as the fact that, when going through the entire CP path, a single speed increase (for CP in phase space) or time interval reduction (for CP in time range) is no longer feasible at the grid point, because it violates the dynamics constraint and therefore the trajectory has not changed compared to the last iteration. This determines the optimum and allows the iteration to end.

[0116] Nevertheless, at some lattice point σ i Since the dynamic limit is exceeded at σ, the speed increase or time interval reduction may be canceled. k If the change can be implemented in the entire CP path, the travel time can be further reduced compared to the last valid iteration through the CP path.

[0117] In the method according to the invention, the above-mentioned PTP method is combined with the CP method in the time domain and other methods in the time domain (characterizing the time profile of the displacement parameters as seven-phase, polynomial path, etc.) to find the best possible velocity v and acceleration a (in the sense of travel time) at the transition point.

[0118] An example to explain how it works is shown in Figure 14. The simple path shown is a combination of a CP path, a CP subpath 1410, and a PTP subpath 1420. Figure 14 shows a path expressed in world coordinates x, y, z. Points represented by P1, P2, and P3 are lattice points. P1 is the start point and P3 is the end point. P2 is the point where the CP path 1410 transitions to the PTP path 1420. The transition speed v j and acceleration a jis determined at point P2.

[0119] The method according to the invention shown in FIGS. 15 and 16 can be performed twice, the first time 1500 with the transition speed v j Only a j is assumed to be zero. The calculated transition velocity v j can then be used as a starting value in the second run 1600, and the acceleration can also be varied, although the second run 1600 can also make minimal changes to the transition speed previously determined.

[0120] The two-stage process optimizes the computation time and produces faster results than a nested loop that includes both computations. This is because the speed at the transition points is the determining factor for a fast overall path travel time. Therefore, the first run of the method, the v iteration described below, is the decisive one. The second run, hereafter referred to as the va iteration, provides subsequent fine tuning.

[0121] The v iteration is shown in FIG. 15 and represents a computer-implemented method for determining a time-optimized trajectory before the start of an operation for an industrial robot 100, 200 to perform an operation specified by operation parameters on a path defined by path parameters including at least one starting point 121, 1010, one ending point 122, 1040, and at least one path type, while adhering to predetermined constraints.

[0122] where the iteration is v iter =v min ...v max This is done with n as the number of steps (v min = 0 when transitioning from CP to PTP). This means that the velocity increases with each step. When a transition is made from a PTP subpath to another PTP subpath, the velocity increases to the allowable v on all axes. max At that time, the acceleration changes to a j =0 and remains constant.

[0123] For details, see step 1510.j and a j is initialized as zero, i.e., for j=0, v j and a j is equal to 0. Then, in step 1520, v j (i)=j*v iter (i). Next, in step 1530, the best movement result for each CP sub-path 141, 144, 242, 1020, 1030, 1050, 1410 is determined based on the above method. The above method already includes a check for exceeding or falling below the limit value. If a method is to be used that does not already include this check, this check can be performed here subsequently. If the check determines that the limit value cannot be respected under the operating parameters applied in the respective iteration, the speed is changed, i.e., increased, and a new iteration is started.

[0124] In other words, in step 1530, if the path type of at least one of the partial paths is a partial path 141, 144, 242, 1020, 1030, 1050, 1410 geometrically defined in space, calculate a time-optimized trajectory for each partial path geometrically defined in space according to one or more methods for calculating partial paths geometrically defined in space, taking into account predetermined constraints and relevant path parameters and motion parameters, and select the best movement result for each partial path.

[0125] Next, in step 1540, the best travel result for each PTP partial path 142, 143, 241, 243, 910, 1420 is determined based on the above method. The above method already includes a check for exceeding or falling below the limit value. If a method that does not yet include this check is to be used, teeth , this check can now be continued. If the check determines that the limits cannot be respected under the operating parameters applied in each iteration, the speed is changed, i.e. increased, and a new iteration is started.

[0126] In other words, in step 1540, if the path type of at least one of the partial paths is a partial path 142, 143, 241, 243, 910, 1420 that is geometrically free in space, calculate a time-optimized trajectory for each partial path that is geometrically free in space, taking into account predetermined constraints and relevant path parameters and motion parameters, according to one or more methods for calculating partial paths that are geometrically free in space, and select the best movement result for each partial path.

[0127] Next, in step 1550, it is checked whether the travel time of the entire path, which is composed of the travel times of the partial paths determined in steps 1530 and 1540, is the fastest travel time so far. If the current travel time is the fastest travel time so far, this time is stored or otherwise recorded in step 1560 together with the motion parameters required for traveling the path and the resulting control commands for the industrial robot 100, 200. Furthermore, it is checked whether all limit values ​​are observed for the entire path. Depending on the result, the next iteration starts with an increased speed.

[0128] The slow travel time is discarded and then the speed is immediately increased to start a new iteration.

[0129] In other words, the time-optimized trajectories for all partial paths determined in step 1550 are combined into an overall trajectory and checked to see if the overall trajectory allows the fastest movement along the path so far without exceeding certain limits. One of the movement parameters is then changed and a new iteration is started.

[0130] The final velocity v determined earlier in any step maxis reached, no new iteration is started thereafter. The time determined as the last fastest travel time, together with the motion parameters required for traversing the path and the resulting control commands for the industrial robot 100, 200, are passed as a result to the second execution 1600 as described above. Alternatively, the results can be output or transferred to the control unit of the industrial robot 100, 200.

[0131] In other words, after a predetermined number of iterations are completed, the fastest overall trajectory is output as the time-optimized trajectory for moving along the path.

[0132] The second run 1600, i.e., the va iteration, is shown in FIG. 16 as previously described and represents a computer-implemented method for determining a time-optimized trajectory for an industrial robot 100, 200 prior to initiation of operation on a path defined by path parameters including at least one start point 121, 1010, one end point 122, 1040, and at least one path type, while adhering to predetermined constraints.

[0133] Based on the results of the first run (1500), the acceleration a iter =a min ...a max Then, the velocity v j can also be adapted, i.e., increased or decreased. Again, this is repeated over n steps. This means that the acceleration a j This means that the amount of is increased alternately in the sense of positive and negative signs.

[0134] In detail, in step 1610, v j is initialized to the best result of the first run (1500), and a j is initialized as zero. Next, in step 1620, the acceleration is j =a iter (j). If necessary, increase v jis increased or decreased by a particular delta dv(i). For example, the velocity determined for the best travel time in the first run can be increased or decreased by a value between 15 and 30 percent. Next, in step 1630, the best travel result for each CP subpath 141, 144, 242, 1020, 1030, 1050, and 1410 is determined based on the method described above. The method already includes a check for exceeding or falling below a limit value. If a method is used that does not already include this check, this check can be performed subsequently here. If the check determines that the limit value cannot be met under the operating parameters applied in each iteration, the acceleration is changed, i.e., increased, and the velocity is modified if necessary, and a new iteration is started.

[0135] In other words, in step 1630, if the path type of at least one of the partial paths is a partial path 141, 144, 242, 1020, 1030, 1050, 1410 geometrically defined in space, calculate a time-optimized trajectory for each partial path geometrically defined in space according to one or more methods for calculating partial paths geometrically defined in space, taking into account predetermined constraints and relevant path parameters and motion parameters, and select the best movement result for each partial path.

[0136] Next, in step 1640, the best movement result for each PTP partial path 142, 143, 241, 243, 910, 1420 is determined based on the above method. The above method already includes a check for exceeding or falling below the limit value. If a method that does not already include this check is to be used, this check can be performed subsequently here. If the check determines that the limit value cannot be met under the operating parameters applied in each iteration, the acceleration is changed, i.e., increased, and the speed is corrected if necessary, and a new iteration is started.

[0137] In other words, in step 1640, if the path type of at least one of the partial paths is a partial path 142, 143, 241, 243, 910, 1420 that is geometrically free in space, calculate a time-optimized trajectory for each partial path that is geometrically free in space, taking into account predetermined constraints and relevant path parameters and motion parameters, according to one or more methods for calculating partial paths that are geometrically free in space, and select the best movement result for each partial path.

[0138] Next, in step 1650, it is checked whether the travel time of the entire path, which is composed of the travel times of the partial paths determined in steps 1630 and 1640, is the fastest travel time so far. If the current travel time is the fastest travel time so far, this time is stored or otherwise recorded in step 1660 together with the motion parameters required for traveling the path and the resulting control commands for the industrial robot 100, 200. Furthermore, it is checked whether all limit values ​​are observed for the entire path. Depending on the result, the next iteration starts with increased acceleration and, if necessary, a change in speed.

[0139] Slow travel times are discarded and then immediately acceleration , modifying the speed if necessary and starting a new iteration.

[0140] In other words, the time-optimized trajectories for all partial paths determined in step 1650 are combined into an overall trajectory and checked to see if the overall trajectory allows the fastest movement along the path so far without exceeding predetermined limits. One or more movement parameters are then modified and a new iteration is started.

[0141] The final acceleration a determined earlier in any step maxis reached, no new iteration is started thereafter. The time determined as the last fastest travel time is output as a result together with the motion parameters required for traveling the path and the resulting control commands for the industrial robot 100, 200 or is transferred to the control unit of the industrial robot 100, 200.

[0142] In other words, after a predetermined number of iterations are completed, the fastest overall trajectory is output as the time-optimized trajectory for moving along the path.

[0143] For each of the aforementioned execution types, i.e., v and va iterations, the method for calculating the geometrically defined partial paths 141, 144, 242, 1020, 1030, 1050, 1410 in space can come from the group of methods for optimizing displacement parameters in the time domain and methods for optimizing displacement parameters in the velocity domain.

[0144] Similarly, methods for calculating geometrically free partial paths 142, 143, 241, 243, 910, 1420 in space can be derived from the family of bang-bang trajectories, especially 7-phase trajectories in acceleration and mean-value filtered rectangular trajectories, synchronous trajectories, especially spline paths and polynomial trajectories.

[0145] As already mentioned, the method according to the invention can be applied to any overall path, where it is immaterial whether the overall path comprises at least one partial path 141, 144, 242, 1020, 1030, 1050, 1410 that is geometrically defined in space, at least one partial path 142, 143, 241, 243, 910, 1420 that is geometrically free in space, and / or at least one partial path 141, 144, 242, 1020, 1030, 1050, 1410 that is geometrically defined in space and one partial path 142, 143, 241, 243, 910, 1420 that is geometrically free in space.

[0146] In this case, the path parameters defining the overall path are the grid points 131, 132, 133, which represent the connection points of two partial paths or points within one or more paths. 231 , 232, 1210, 1310.

[0147] Here, the motion parameters that specify the motion of the robot 100, 200 on the path can include velocity values ​​and / or acceleration values. 231 , 232, 1210, 1310, and may also include values ​​applied at the start point 121, 1010 and / or end point 122, 1040.

[0148] The path parameters are further calculated at other grid points 131, 132, 133, 231 , 232, 1210, 1310, may include sub-paths of different path types and / or maximum speeds for the sub-paths.

[0149] As noted above, embodiments in accordance with the present invention may include performing two predetermined iterations of the method steps, where the one or more operating parameters may be varied in a first iteration by varying only the velocity operating parameter, and the one or more operating parameters may be varied in a second iteration by varying both the acceleration and velocity operating parameters.

[0150] The limit values ​​may, for example, describe physical limits that must not be exceeded or fallen below in one or more joints and / or drive axes of the industrial robot 100, 200.

[0151] Additionally, the limits may include position limits, i.e., areas within which the TCP 110, 210 and / or other parts of the robot 100, 200 are allowed to remain during operation. The limits may also include acceleration values, jerk values, axis velocity values, and / or motor torque values ​​for one or more axes of the robot 100, 200. Path velocities along the entire path or one or more partial paths may also be specified as limits.

[0152] FIG. 17 illustrates how an initial path 1710 is processed, with its geometry adapted for target changes. In so-called pick-and-place paths, it is common for the target position 1730 to change with each system cycle based on the part location. This means that the robot 100, 200 must place each part in a slightly different location 1730. Similarly, the starting position for picking up a part, for example, may change accordingly. To accommodate the position change, one or more initial paths 1710 are stored in memory. The geometry is then modified to produce an adapted path 1720, again using the time information from the initial path. Two adapted paths 1720 are shown in FIG. 17: one path requiring an x-value increase and one requiring an x-value decrease.

[0153] Another embodiment according to the invention is a device, preferably a computer, for determining a time-optimized trajectory before the start of an operation for an industrial robot 100, 200 to perform a movement set by movement parameters on a path defined by path parameters comprising at least one start point 121, 1010, one end point 122, 1040 and at least one path type, while observing predetermined limit values. The device is designed to implement the method according to any one of claims 1 to 8 and to perform a method according to one of the preceding claims.

[0154] For this purpose, the device comprises a calculation unit designed to divide the path into one or more partial paths.

[0155] Furthermore, the calculation unit is designed to calculate a time-optimized trajectory for each partial path, taking into account predetermined constraints and relevant path and motion parameters, using a method for calculating geometrically defined partial paths and / or free partial paths in space, and to select the best result for each partial path.

[0156] The computation unit is further designed to combine the time-optimized trajectories for all the partial paths into an overall trajectory.

[0157] The calculation unit is further designed to check whether the overall trajectory or the trajectory of the partial path exceeds predetermined limits and to verify whether the determined overall trajectory allows the fastest possible movement.

[0158] The computing unit is further designed to vary one or more operating parameters.

[0159] The computation unit is further designed to output the fastest overall trajectory as a time-optimized trajectory for operating along the path.

[0160] Another embodiment is a computer program product having a program for a data processing apparatus, the program comprising software code sections for performing the steps of the above method when the program is run on the data processing apparatus, the computer program product comprising a computer readable medium having the software code sections stored thereon, the program being directly loadable into the internal memory of the data processing apparatus.

[0161] The examples show possible embodiments, and it should be noted here that the invention is not limited to the embodiments described above, but that the individual embodiments can also be combined with one another in various ways, and this possibility of modification based on the teachings of the technical operations of the present invention is within the capabilities of a person skilled in the art.

[0162] The scope of protection is determined by the claims, which, however, are to be interpreted by reference to the specification and drawings.

[0163] Individual features and combinations of features of the various embodiments shown and described may constitute in themselves independent inventive solutions, the problems underlying these independent inventive solutions being readable from this description. In describing the present invention, all references to ranges of values ​​should be understood to include any and all subranges within that range. For example, a reference to 1 to 10 should be understood to include all subranges beginning at a lower limit of 1 and ending at an upper limit of 10. That is, all subranges begin at a lower limit of 1 or more and end at an upper limit of 10 or less, such as, for example, 1 to 1.7, or 3.2 to 8.1, or 5.5 to 10.

[0164] Finally, as a matter of formality, in order to make the structure easier to understand, some of the elements have been represented not to scale and / or enlarged and / or reduced. The inventions disclosed herein include the following: [Aspect 1] A computer-implemented method (1500, 1600) for an industrial robot (100, 200) to determine a time-optimized trajectory before starting an operation, while observing predetermined constraints, for performing an operation specified by operation parameters on a path defined by path parameters including at least one start point (121, 1010), one end point (122, 1040), and at least one path type, the method comprising: Dividing the path into one or more sub-paths (141, 144, 242, 1020, 1030, 1050, 1410; 142, 143, 241, 243, 910, 1420); if the path type of at least one of the partial paths is a partial path (141, 144, 242, 1020, 1030, 1050, 1410) geometrically defined in space, calculating (1530, 1630) a time-optimized trajectory for each of the partial paths (141, 144, 242, 1020, 1030, 1050, 1410) geometrically defined in space, taking into account predetermined constraints and relevant path and motion parameters, according to one or more methods for calculating the partial paths (141, 141, 144, 242, 1020, 1030, 1050, 1410), and selecting the best movement result for each of the partial paths (141, 144, 242, 1020, 1030, 1050, 1410); if the path type of at least one of the partial paths is a geometrically free partial path in space (142, 143, 241, 243, 910, 1420), calculating (1540, 1640) a time-optimized trajectory for each of the geometrically free partial paths in space (142, 143, 241, 243, 910, 1420) according to one or more methods for calculating geometrically free partial paths in space, taking into account predetermined constraints and relevant path and motion parameters, and selecting the best movement result for each of the partial paths (142, 143, 241, 243, 910, 1420); combining (1550, 1650) the time-optimized trajectories for all the subpaths into an overall trajectory; checking (1550, 1650) whether the overall trajectory does not exceed predetermined limits and allows the fastest possible movement along the path; and varying (1520, 1620) one or more operating parameters a predetermined number of times; outputting the fastest overall trajectory as a time-optimized trajectory for operating along the path once a predetermined number of iterations are completed; A method for providing the above. [Aspect 2] the method for calculating (1530, 1630) the geometrically defined partial path (141, 144, 242, 1020, 1030, 1050, 1410) in space is selected from the group consisting of a method for optimizing displacement parameters (1051, 1052) in a time range and a method for optimizing displacement parameters (1051, 1052) in a velocity range; and / or The method according to aspect 1, wherein the method for calculating (1540, 1640) geometrically free partial paths (142, 143, 241, 243, 910, 1420) in space is selected from the group consisting of bang-bang trajectories, particularly 7-phase trajectories in acceleration and mean-value filtered rectangular trajectories, and synchronous trajectories, particularly spline paths and polynomial trajectories. [Aspect 3] The partial path (141, 144, 242, 1020, 1030, 1050, 1410; 142, 143, 241, 243, 910, 1420) is at least one subpath (141, 144, 242, 1020, 1030, 1050, 1410) geometrically defined in space; at least one partial path (142, 143, 241, 243, 910, 1420) that is geometrically free in space, and / or 3. The method of claim 1 or 2, comprising at least one partial path (141, 144, 242, 1020, 1030, 1050, 1410) that is geometrically defined in space and at least one partial path (142, 143, 241, 243, 910, 1420) that is geometrically free in space. [Aspect 4] The path parameters are grid points (131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 231 4. The method of any one of aspects 1 to 3, further comprising: [Aspect 5] The motion parameters include velocity and / or acceleration values, and / or the motion parameters are calculated by dividing the grid points (131, 132, 133, 231 , 232, 1210, 1310), including values ​​applied at the start point (121, 1010) and / or at the end point (122, 1040); and / or The path parameters are calculated by dividing one or more grid points (131, 132, 133, 231 , 232, 1210, 1310), a different route type of the partial route and a maximum speed on the partial route. [Aspect 6] Repeating the steps of the method a predetermined number of times twice; In the first run, when one or more motion parameters are varied (1520), only the motion parameter of speed is varied; Aspect 6. The method of any one of aspects 1 to 5, wherein in the second run, varying 1620 the one or more motion parameters includes varying acceleration and velocity motion parameters. [Aspect 7] 7. The method according to any one of aspects 1 to 6, wherein the limit values ​​describe physical limits that must not be exceeded or fallen below in one or more joints and / or drive axes of the industrial robot (100, 200). [Aspect 8] Aspect 8. The method of any one of aspects 1 to 7, wherein the limit values ​​include one or more of the following values: position, acceleration, jerk, axis velocity per axis, motor torque per axis, and path velocity. [Aspect 9] An apparatus, preferably a computer, for determining a time-optimized trajectory before the start of an operation, for an industrial robot (100, 200) to perform an operation specified by operation parameters on a path defined by path parameters including at least one start point (121, 1010), one end point (122, 1040) and at least one path type, while observing predetermined limit values, the apparatus being designed to implement the method according to any one of aspects 1 to 8, the apparatus having a calculation unit, the calculation unit comprising: Dividing the path into one or more partial paths (141, 144, 242, 1020, 1030, 1050, 1410; 142, 143, 241, 243, 910, 1420); calculating a time-optimized trajectory for each of the geometrically defined sub-paths (141, 144, 242, 1020, 1030, 1050, 1410) and / or geometrically free sub-paths (142, 143, 241, 243, 910, 1420) in space, taking into account predetermined constraints and relevant path and motion parameters; selecting the best result for each of said partial paths; combining the time-optimized trajectories for all said partial paths into an overall trajectory; Checking whether the overall trajectory or the partial path trajectory exceeds a predetermined limit; Verify that the resulting overall trajectory allows for the fastest possible movement along the path, Varying one or more operating parameters, An apparatus designed to output the fastest overall trajectory as a time-optimized trajectory for operating along the path. [Aspect 10] A computer program product having a program for a data processing apparatus, the program being, when executed on the data processing apparatus, method a computer program product comprising software code sections for executing [Aspect 11] 11. The computer program product of aspect 10, wherein the computer program product includes a computer-readable medium having the software code sections stored thereon, the program being directly loadable into an internal memory of the data processing device. [Explanation of symbols]

[0165] 100, 200 robots 110, 210 Tool Center Point 121, 1010 starting point 122, 1040 End 131, 132, 133, 231 , 232, 1210, 1310 grid points 141, 144, 242, 1020, 1030, 1050, 1410 CP type partial paths 142, 143, 241, 243, 910, 1420 PTP type partial paths 410 Impulse Response 801 Data Entry 802 Limit value specification 803 Determination of 7-phase orbits for each axis 804 Determining the slowest axis 805 Paths with 7-phase orbitals 806 Check 807 Spline Path Calculation Check if 808 limits are met 809 Cancelled 810 Dynamics Reduction 811 Check whether the motor torque limit value is met 812 Reduce the limit 813 End of calculation 920 Position Restrictions 1051, 1052 Displacement parameters 1220, 1230 Positional parameter iterations 1250, 1260 Speed ​​parameter iterations 1330, 1340 Speed ​​parameter iteration 1350 Speed ​​parameter limit curve 1500, 1600 The method according to the invention in the first or second run 1510, 1610 Initialize start value 1520, 1620 Varying operating parameters 1530, 1540, 1630, 1640 Compute time-optimized trajectories for CP or PTP subpaths 1550, 1650 Check the limit by connecting the orbits 1560, 1660 Check the fastest time and optionally save the fastest result 1710 Initial Route 1720 Adapted Path 1730 Changed target position

Claims

1. A computer-implemented method (1500, 1600) for an industrial robot (100, 200) to determine a time-optimized trajectory before starting an operation, while observing predetermined constraints, for performing an operation specified by operation parameters on a path defined by path parameters including at least one start point (121, 1010), one end point (122, 1040), and at least one path type, the method comprising: Dividing the path into one or more partial paths (141, 144, 242, 1020, 1030, 1050, 1410; 142, 143, 241, 243, 910, 1420); if at least one path type of the partial paths is a partial path (141, 144, 242, 1020, 1030, 1050, 1410) geometrically defined in space, calculating (1530, 1630) a time-optimized trajectory for each partial path (141, 144, 242, 1020, 1030, 1050, 1410) geometrically defined in space, taking into account predetermined constraints and relevant path and operation parameters, according to one or more methods for calculating partial paths (141, 141, 144, 242, 1020, 1030, 1050, 1410), and selecting the best movement result for each partial path (141, 144, 242, 1020, 1030, 1050, 1410); if the path type of at least one of the partial paths is a geometrically free partial path in space (142, 143, 241, 243, 910, 1420), calculating (1540, 1640) a time-optimized trajectory for each of the geometrically free partial paths in space (142, 143, 241, 243, 910, 1420) according to one or more methods for calculating geometrically free partial paths in space, taking into account predetermined constraints and relevant path and motion parameters, and selecting the best movement result for each of the partial paths (142, 143, 241, 243, 910, 1420); Combining (1550, 1650) the time-optimized trajectories for all the partial paths into an overall trajectory; - checking (1550, 1650) whether the overall trajectory does not exceed predetermined limits and allows the fastest possible movement along the path; and performing a predetermined number of repetitions of varying (1520, 1620) one or more operating parameters; outputting the fastest overall trajectory as a time-optimized trajectory for operating along the path once a predetermined number of iterations are completed; A method for providing the above.

2. the method for calculating (1530, 1630) the partial path (141, 144, 242, 1020, 1030, 1050, 1410) geometrically defined in space is selected from the group consisting of a method for optimizing displacement parameters (1051, 1052) in a time range and a method for optimizing displacement parameters (1051, 1052) in a velocity range; and / or 2. The method of claim 1, wherein the method for calculating (1540, 1640) a geometrically free partial path (142, 143, 241, 243, 910, 1420) in space is selected from the group consisting of bang-bang trajectories, in particular 7-phase trajectories in acceleration and mean-value filtered rectangular trajectories, and synchronous trajectories, in particular spline paths and polynomial trajectories.

3. The partial path (141, 144, 242, 1020, 1030, 1050, 1410; 142, 143, 241, 243, 910, 1420) is at least one partial path (141, 144, 242, 1020, 1030, 1050, 1410) geometrically defined in space; at least one partial path (142, 143, 241, 243, 910, 1420) that is geometrically free in space, and / or The method of claim 1 , comprising at least one partial path (141, 144, 242, 1020, 1030, 1050, 1410) that is geometrically defined in space and at least one partial path (142, 143, 241, 243, 910, 1420) that is geometrically free in space.

4. The method of claim 1 , wherein the path parameters further comprise grid points (131, 132, 133, 231, 232, 1210, 1310) representing connection points of two partial paths or points within one or more paths.

5. the motion parameters include velocity and / or acceleration values, and / or the motion parameters include values ​​applied at grid points (131, 132, 133, 231, 232, 1210, 1310), start points (121, 1010) and / or end points (122, 1040), and / or The method of claim 1 , wherein the path parameters include one or more grid points (131, 132, 133, 231, 232, 1210, 1310), a different path type of a partial path, and a maximum speed on a partial path.

6. twice performing the steps of the method a predetermined number of times; In the first run, when varying 1520 one or more operating parameters, only the operating parameter of speed is varied; The method of claim 1 , wherein, in the second run, varying (1620) one or more motion parameters includes varying acceleration and velocity motion parameters.

7. The method of claim 1 , wherein the limit values ​​describe physical limits that must not be exceeded or fallen below in one or more joints and / or drive axes of the industrial robot (100, 200).

8. The method of claim 1 , wherein the limit values ​​include one or more of the following values: position, acceleration, jerk, axis velocity per axis, motor torque per axis, and path velocity.

9. A device, preferably a computer, for determining a time-optimized trajectory before the start of an operation for an industrial robot (100, 200) to perform an operation specified by operation parameters on a path defined by path parameters including at least one start point (121, 1010), one end point (122, 1040) and at least one path type, while observing predetermined limit values, the device being designed to implement the method according to any one of claims 1 to 8, the device having a calculation unit, the calculation unit comprising: Dividing the path into one or more partial paths (141, 144, 242, 1020, 1030, 1050, 1410; 142, 143, 241, 243, 910, 1420), calculating a time-optimized trajectory for each partial path using a method for calculating geometrically defined partial paths (141, 144, 242, 1020, 1030, 1050, 1410) in space and / or geometrically free partial paths (142, 143, 241, 243, 910, 1420) in space, taking into account predetermined constraints and relevant path and motion parameters; selecting the best result for each of said partial paths; combining the time-optimized trajectories for all said partial paths into an overall trajectory; Checking whether the overall trajectory or the partial path trajectory exceeds a predetermined limit; Verify that the resulting overall trajectory allows for the fastest possible movement along the path, Varying one or more operating parameters; An apparatus designed to output the fastest overall trajectory as a time-optimized trajectory for operating along the path.

10. A computer program product having a program for a data processing apparatus, the computer program product comprising software code sections for carrying out the method of any one of claims 1 to 8 when said program is run on said data processing apparatus.

11. 11. A computer program product according to claim 10, wherein the computer program product comprises a computer readable medium having the software code sections stored thereon, the program being directly loadable into an internal memory of the data processing device.

Citation Information

Patent Citations

  • Device for generating time-optimum arm operation

    JP2012232410A