Method for optimizing motion profiles, computer program product, control device and installation or robot

10719060 ยท 2020-07-21

Assignee

Inventors

Cpc classification

International classification

Abstract

A method for optimizing at least one motion profile, a computer program product for performing the method and a related control device for this purpose, wherein commencing from a master motion profile, at least one slave motion profile describes a motion of an actuator, the respective slave motion profile being connected via a cam disk function and/or a kinematic transformation, where the motion profiles are divided into areas, based constraints of slave motion profiles, the maximum speed of the master motion profile is computed for each area, a difference between the highest and the lowest maximum speed is selected, the area having the highest maximum speed is subsequently reduced, and the area having the lowest maximum speed is enlarged, until the difference between the two maximum speeds is less than a tolerance.

Claims

1. A method for optimizing a motion profile, at least one slave motion profile being respectively dependent on a master motion profile, a respective slave motion profile being subject to constraints, optimized motion profiles being provided, the master motion profile and the at least one slave motion profile having a definition area including a plurality of interpolation points which divide a respective definition area into areas, a tolerance being prescribed for the master motion profile, the method comprising: S1) defining the areas by the plurality of interpolation points; S2) defining the constraints of the respective slave motion profile; S3) distributing the plurality of interpolation points over the respective definition area of a master/slave motion profile; S4) determining a respective maximum speed of the master motion profile in an event of compliance with the constraints in the respective area; S5) determining an area having a highest maximum speed of the master motion profile; S6) determining an area having a lowest maximum speed of the master motion profile; S7) checking whether a difference between the highest maximum speed and the lowest maximum speed is greater or less than a tolerance; S8) shifting the plurality of interpolation points toward one another to reduce the area having the highest maximum speed if the difference is greater than the tolerance; and S9) shifting the plurality of interpolation points away from one another to enlarge the area having the lowest maximum speed if the difference is greater than the tolerance; S10) performing steps (S4), (S5), (S6) and (S7) with the reduced and enlarged areas; and S11) providing the respective master/slave motion profile as an optimized motion profile if the difference is less than or equal to the tolerance.

2. The method as claimed in claim 1, wherein the master motion profile has a constant speed.

3. The method as claimed in claim 2, wherein the method is performed repeatedly.

4. The method as claimed in claim 1, wherein the method is performed repeatedly.

5. The method as claimed in claim 4, wherein steps (S4) to (S10) are performed repeatedly.

6. The method as claimed in claim 1, wherein the at least one slave motion profile is linked to the master motion profile via a cam disk function.

7. The method as claimed in claim 1, wherein the areas or distances between respectively adjacent interpolation points of the plurality of interpolation points are respectively chosen to have equal magnitudes.

8. The method as claimed in claim 1, wherein a respective constraint is at least one of (i) a minimum/maximum speed, (ii) a minimum/maximum acceleration and (iii) a minimum/maximum jolt.

9. The method as claimed in claim 1, wherein the master motion profile and the at least one slave motion profile are linked via a kinematic transformation.

10. The method as claimed in claim 9, wherein the master motion profile is linked to virtual slave motion profiles and a respective virtual slave motion profile is linked to a respective real slave motion profile via the kinematic transformation.

11. The method as claimed in claim 10, wherein at least one of (i) the respective virtual motion profile and (ii) the respective real slave motion profile are respectively subject to at least one constraint.

12. The method as claimed in claim 9, wherein at least one of (i) a respective virtual motion profile and (ii) a respective real slave motion profile are respectively subject to at least one constraint.

13. A non-transitory computer program product encoded with a computer program which, when executed on a computation unit, causes optimization of a motion profile, the computer program comprising: S1) program code for defining the areas by a plurality of interpolation points; S2) program code for defining constraints of a respective slave motion profile; S3) program code for distributing the plurality of interpolation points over a respective definition area of a master/slave motion profile; S4) program code for determining a respective maximum speed of a master motion profile in an event of compliance with the constraints in the respective area; S5) program code for determining an area having a highest maximum speed of the master motion profile; S6) program code for determining an area having a lowest maximum speed of the master motion profile; S7) program code for checking whether a difference between the highest maximum speed and the lowest maximum speed is greater or less than a tolerance; S8) program code for shifting the plurality of interpolation points toward one another to reduce the area having the highest maximum speed if the difference is greater than the tolerance; and S9) program code for shifting the plurality of interpolation points away from one another to enlarge the area having the lowest maximum speed if the difference is greater than the tolerance; S10) program code for performing steps (S4), (S5), (S6) and (S7) with the reduced and enlarged areas; and S11) program code for providing the respective master/slave motion profile as an optimized motion profile if the difference is less than or equal to the tolerance.

14. A control device for controlling at least one master drive and at least one slave drive, comprising: a computation unit; and memory; wherein the control device being configured to control or regulate drives after provision of motion profiles; wherein the computation unit of the control device having a non-transitory computer program product encoded with a computer program which, when executed on the computation unit, causes optimization of a motion profile, the computer program comprising: S1) program code for defining the areas by a plurality of interpolation points; S2) program code for defining the constraints of the respective slave motion profile; S3) program code for distributing the plurality of interpolation points over the respective definition area of a master/slave motion profile; S4) program code for determining a respective maximum speed of the master motion profile in an event of compliance with the constraints in the respective area; S5) program code for determining an area having a highest maximum speed of the master motion profile; S6) program code for determining an area having a lowest maximum speed of the master motion profile; S7) program code for checking whether a difference between the highest maximum speed and the lowest maximum speed is greater or less than a tolerance; S8) program code for shifting the plurality of interpolation points toward one another to reduce the area having the highest maximum speed if the difference is greater than the tolerance; and S9) program code for shifting the plurality of interpolation points away from one another to enlarge the area having the lowest maximum speed if the difference is greater than the tolerance; S10) program code for performing steps (S4), (S5), (S6) and (S7) with the reduced and enlarged areas; and S11) program code for providing the respective master/slave motion profile as an optimized motion profile if the difference is less than or equal to the tolerance.

15. An installation having the control device as claimed in claim 14.

16. The installation of claim 15, wherein the installation comprises a robot.

17. The installation of claim 16, wherein the installation comprises one of (i) a packaging machine, (ii) a handling system (iii) a production machine and (iv) a machine tool.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) The invention is described and explained in more detail below with reference to figures. The features shown in the figures can naturally also be combined individually according to the invention to form new exemplary embodiments without departing from the scope of the invention, in which:

(2) FIG. 1 shows a relationship between motion profiles in accordance with the invention;

(3) FIG. 2 shows multiple motion profiles in accordance with the invention;

(4) FIG. 3 shows a flowchart of the method in accordance with the invention;

(5) FIG. 4 shows the use of a kinematic transformation in accordance with the invention; and

(6) FIG. 5 shows a control device with a computation unit in accordance with the invention.

DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENTS

(7) FIG. 1 shows a relationship between motion profiles Xm, Xs1, Xs2, Xsn. Starting from a master motion profile Xm, the respective slave motion profile Xs1, Xs2, Xsn is linked via a cam disk function KS1, KS2, KSn. The respective cam disk function KS1, KS2, KSn stipulates the respective slave motion profile Xs1, Xs2, Xsn starting from the master motion profile Xm. The master motion profile starts from a real master axis MA or a virtual master axis MA, for example. A virtual master axis MA is also referred to as a virtual vertical axis (e.g., in the case of printing machines) or as a guide axis in the prior art.

(8) FIG. 2 shows multiple motion profiles Xs1, Xs2, Xs3, Xsn, Xm. The top four motion profiles Xs1, Xs2, Xs3, Xsn are slave motion profiles Xs1, Xs2, Xs3, Xsn. At the bottom, the master motion profile Xm is shown. Here, the master motion profile Xm has a constant speed v. In the depiction of the motion profiles Xm, Xs1, Xs2, Xs3, Xsn that is shown, the depiction is provided as the function of the location based on time or based on an orientation. The depiction shown can also be understood as the function of speed v based on time or the orientation. The respective motion profile Xs1, Xs2, Xs3, Xsn, Xm has a respective definition area D. The definition area D may be a time range, at least one revolution, or a length. The definition area D is divided into areas B by the interpolation points IP. In this case, the interpolation points IP are shown to be approximately equidistant. The interpolation points IP may alternatively be arranged such that they are closer together in areas B in which a slave motion profile Xs1, Xs2, Xs3, Xsn has a fast motion than in areas B in which the slave motion profile Xs1, Xs2, Xs3, Xsn does not have a fast motion.

(9) The respective motion profile Xs1, Xs2, Xs3, Xsn, Xm is divided into areas B. The areas B are bounded by interpolation points IP. The interpolation points IP of the respective motion profile Xs1, Xs2, Xs3, Xsn, Xm indicate at what position x the respective motion profile Xs1, Xs2, Xs3, Xsn, Xm trends at what speed v and/or at what acceleration a. Here, the interpolation points IP for each motion profile Xs1, Xs2, Xs3, Xsn, Xm are arranged at the same point. The interpolation points IP define the respective definition area D.

(10) The respective constraint RB of a slave motion profile Xs1, Xs2, Xs3, Xsn may be a maximum change in the motion of a slave motion profile Xs1, Xs2, Xs3, Xsn. This corresponds to a maximum speed v for a location depiction of the respective motion profile Xs1, Xs2, Xs3, Xsn, Xm.

(11) For the sake of better clarity, the motion profiles Xs1, Xs2, Xs3, Xsn, Xm are not shown over the whole definition area D, but rather only the first areas B and the last area B.

(12) The abscissa shows a rotation angle, by way of example, and the ordinate indicates an associated position x for the respective motion profile Xs1, Xs2, Xs3, Xsn, Xm.

(13) The speed v of the respective motion profile Xs1, Xs2, Xs3, Xsn, Xm is then the derivative of the respective motion profile Xs1, Xs2, Xs3, Xsn, namely v=dx/dt. Accordingly, the acceleration a is the second derivative a=dv/dt=d(dx/dt)/dt.

(14) FIG. 3 shows a flowchart of the method in accordance with the invention. The flowchart shows the sequence of the individual method steps for optimizing motion profiles Xs1, Xs2, Xs3, Xsn, Xm. Subsequently, method steps S1 to S11 are presented and explained.

(15) In the first method step (S1), the respective slave motion profile Xs1, Xs2, Xs3, Xsn is prescribed. To this end, particularly the slave motion profile Xs1, Xs2, Xs3, Xsn is defined using the interpolation points IP. As such, a motion profile may be prescribed using a plurality of interpolation points IP by position x, speed v and/or acceleration a. If motion profiles Xs1, Xs2, Xs3, Xsn, Xm are already prescribed, interpolation points IP in the definition area D can be chosen. Normally, the interpolation points IP are respectively prescribed at the same point in the respective motion profile Xs1, Xs2, Xs3, Xsn, Xm.

(16) In the second method step (S2), constraints RB are stipulated. A constraint may be a maximum speed of a motion profile Xs1, Xs2, Xs3, Xsn in at least one area B. A constraint RB may also be a maximum acceleration for a motion profile Xs1, Xs2, Xs3, Xsn. Constraints are preferably prescribed as maximum derivatives of the respective motion profile Xs1, Xs2, Xs3, Xsn, Xm based on time.

(17) In the third method step (S3), the interpolation points IP are distributed in the definition area D of the respective motion profile Xs1, Xs2, Xs3, Xsn, Xm. The distribution is preferably chosen such that the areas B are respectively of the same magnitude. If the interpolation points are already prescribed, then they can also be shifted.

(18) In the fourth method step (S4), the respective possible maximum speed v_max of the master motion profile Xm is computed for the respective area. The maximum speed v_max is computed, by way of example, using the relationship:

(19) v_max _v = dx / dt df ( x ) / dx Eq . 5

(20) Here, v_max_v means the maximum speed for a speed-oriented constraint RB.

(21) When a prescribed maximum speed is the constraint RB of a slave motion profile Xs1, Xs2, Xs3, Xsn, the maximum speed v_max is taken into consideration as the constraint RB. Here, f(x) is the location function of the respective motion profile Xs1, Xs2, Xs3, Xsn. In other words, it holds that f(x)=Xs1 or f(x)=Xs2 or . . . .

(22) For a prescribed maximum acceleration of a slave motion profile Xs1, Xs2, Xs3, Xsn, the maximum speed v_max is computable:

(23) v_max _a = d 2 x / dt 2 d 2 f / dx 2 Eq . 6

(24) When there are multiple constraints RB in an area B, for example a limited speed v of a first slave motion profile Xs1, Xs2, Xs3, Xsn and a limited acceleration of a further slave motion profile Xs1, Xs2, Xs3, Xsn, the respective minimum of the maximum speeds v_max=min{v_max_v, v_max_a} applies. The respective maximum speed v_max is computed for each area B.

(25) In the fifth method step (S5), the highest maximum speed v_max_max=max{v_max} is determined, or the area B having the highest maximum speed v_max_max is selected.

(26) In the sixth method step (S6), the lowest maximum speed v_max_min=min{v_max} is determined, or the area B having the lowest maximum speed v_max_min is selected.

(27) In the seventh method step (S7), the difference Diff between the highest maximum speed v_max_max and the lowest maximum speed v_max_min is computed. The difference is compared with a tolerance T. There are two possibilities in this case (i) the difference Diff is less than or equal to the tolerance T or (ii) the difference Diff is greater than the tolerance T. If the difference Diff is greater than the tolerance T (Y case), the eighth method step (S8) is performed next. If the difference Diff is less than or equal to the tolerance T (N case), on the other hand, the method skips to the eleventh method step (S11).

(28) In the eighth method step (S8), the area Bmax having the highest maximum speed v_max_max is reduced. The reduction of this area Bmax likewise reduces the applicable area B of the respective slave motion profile Xs1, Xs2, Xs3, Xsn. The applicable speed v or the applicable acceleration a in the respective area Bmax is preferably increased and moved closer to the respectively existing constraint.

(29) In the ninth method step (S9), the area Bmin having the lowest maximum speed v_max_min is enlarged. The enlargement of this area Bmin also enlarges the applicable area of the respective slave motion profile Xs1, Xs2, Xs3, Xsn. The applicable speed v or the applicable acceleration a in the respective area Bmin is reduced thereby. Particularly in the ninth method step, the speed of the master motion profile Xm is preferably increased.

(30) In the tenth method step (S10), the respectively changed motion profiles Xs1, Xs2, Xs3, Xsn with the adapted areas are re-supplied to method step (S4) and the loop of method steps (S4) to (S9) is performed until the difference Diff is less than the tolerance T.

(31) After a few passes, the difference Diff is normally less than or at least equal to the tolerance T. In this case (N case), the eleventh method step (S11) is performed.

(32) In the eleventh method step (S11), the optimized motion profiles Xopt are provided to a control device. Based on the optimized motion profiles that now exist, it is possible for an installation, such as a production machine, to control or regulate its respective drives.

(33) Normally, the tolerance is prescribed by the user in this case. The smaller the tolerance chosen, the better optimized are the motion profiles.

(34) The aim in this case is particularly to increase the speed of the master motion profile Xm given unaltered constraints of the slave motion profiles Xs1, Xs2, Xs3, Xsn.

(35) FIG. 4 shows the use of a kinematic transformation Kin_T. Starting from a master motion profile Xm, virtual slave motion profiles virt-Xs1, virt-Xs2, virt-Xsn are generated via cam disk functions KS1, KS2, KS3, KSn. The respective virtual slave motion profile virt-Xs1, virt-Xs2, virt-Xsn is, for example, motions of an end effector of a robot. By way of example, the respective virtual slave motion profile virt-Xs1, virt-Xs2, virt-Xsn is a motion of the end effector in a spatial direction or a direction of rotation. In line with the design of the robot, a virtual slave motion profile virt-Xs1, virt-Xs2, virt-Xsn can be regarded as a new master motion profile virt-Xm (also symbolized by MA). The virtual master motion profile MA is linked to two real slave motion profiles re-Xs3, re-Xs4 using the kinematic transformation Kin-T. Here, a master motion profile Xm is accordingly associated with at least one slave motion profile (Xs1), (Xs2). The linking of the motion profiles Xm, Xs1, Xs2, . . . , as shown in FIG. 1, is now no longer effected via the cam disk function KS1, KS2 but rather via the kinematic transformation Kin-T.

(36) FIG. 5 shows a control device SE with a computation unit RE. The control device SE is used, possibly with support from a converter U (frequency converter), to actuate electric motors M. In this case, the electric motors M are used for moving a robot arm RA of a robot. The computation device RE comprises a memory HD, particularly a hard disk or a removable storage medium such as a CD-ROM. The memory stores a computer program product. The computer program product is executed using the computation unit RE and is used for performing the method depicted, e.g., in FIG. 3.

(37) In summary, the invention relates to a method for optimizing at least one motion profile Xm, Xs1, Xs2, Xs3, Xsn, a computer program product for performing the method and a control device for this purpose. Starting from a master motion profile Xm, at least one slave motion profile Xs1, Xs2, Xs3, Xsn describes a motion of an actuator. The respective slave motion profile Xs1, Xs2, Xs3 is connected to the master motion profile Xm, MA via a cam disk function KS1, KS2, KS3, KSn and/or a kinematic transformation Kin-T. The method for optimizing involves the motion profiles Xm, Xs1, Xs2, Xs3, Xsn being divided into areas B. Based on respective constraints RB of the slave motion profiles Xs1, Xs2, Xs3, the maximum speed v_max of the master motion profile Xm is computed for each area B. In addition, a difference Diff between the highest and the lowest maximum speed v_max_max, v_max_min is selected. The area Bmax having the highest maximum speed v_max_max is subsequently reduced, and the area Bmin having the lowest maximum speed v_max_min is enlarged, until the difference Diff between the two maximum speeds v_max_min, v_max_max is less than a tolerance T.

(38) Thus, while there have been shown, described and pointed out fundamental novel features of the invention as applied to a preferred embodiment thereof, it will be understood that various omissions and substitutions and changes in the form and details of the devices illustrated, and in their operation, may be made by those skilled in the art without departing from the spirit of the invention. For example, it is expressly intended that all combinations of those elements and/or method steps which perform substantially the same function in substantially the same way to achieve the same results are within the scope of the invention. Moreover, it should be recognized that structures and/or elements and/or method steps shown and/or described in connection with any disclosed form or embodiment of the invention may be incorporated in any other disclosed or described or suggested form or embodiment as a general matter of design choice. It is the intention, therefore, to be limited only as indicated by the scope of the claims appended hereto.