Method of controlling manipulator of industrial robot, control system and industrial robot
12472626 · 2025-11-18
Assignee
Inventors
- Markus Enberg (Västerås, SE)
- Hans Andersson (Västerås, SE)
- Mikael Norrlöf (Norrköping, SE)
- Jakob Weström (Västerås, SE)
Cpc classification
B25J9/1664
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/39247
PHYSICS
International classification
Abstract
A method of controlling a manipulator of an industrial robot having a plurality of joints, the method including providing a candidate trajectory for the manipulator; determining at least one position dependent load value representative of at least one position dependent load acting on the manipulator for the candidate trajectory; modifying the candidate trajectory based on the at least one position dependent load value to provide a modified trajectory; and executing the modified trajectory by the manipulator. A control system for controlling a manipulator of an industrial robot having a plurality of joints, and an industrial robot including a manipulator and a control system, are also provided.
Claims
1. A method of controlling a manipulator of an industrial robot having a plurality of joints the method comprising: providing a candidate trajectory for the manipulator; determining at least one position dependent load value representative of at least one position dependent load acting on the manipulator for the candidate trajectory; modifying the candidate trajectory based on the at least one position dependent load value to provide a modified trajectory; and executing the modified trajectory by the manipulator, wherein the method further includes: providing a model describing static and dynamic properties of the manipulator, the model having a position dependent load term; determining the at least one position dependent load value for the candidate trajectory based on the position dependent load term; determining a load constraint of a load parameter for a mechanical component of the manipulator based on the at least one position dependent load value; and determining the modified trajectory for the manipulator by solving an optimization problem having an objective function and the load constraint; and wherein the load constraint is determined as a relatively low load constraint value when a position dependent load value of the position dependent load term is below a position dependent load threshold, and determined as a relatively high load constraint value when the position dependent load value is above the position dependent load threshold.
2. The method according to claim 1, wherein the at least one position dependent load comprises a gravity load.
3. The method according to claim 2, wherein the modification of the candidate trajectory to provide the modified trajectory includes modifying one or more of a speed of one or more joints, an acceleration of one or more joints and/or a path of the candidate trajectory.
4. The method according to claim 2, wherein the model comprises: one or more inertia dependent terms defining an inertia of the manipulator; one or more centripetal terms defining a centripetal load of the manipulator; one or more gravity dependent terms defining a gravity load of the manipulator; and/or one or more friction dependent terms defining a friction load of each joint.
5. The method according to claim 2, wherein the at least one position dependent load value is determined for the manipulator when carrying a payload.
6. The method according to claim 1, wherein the modification of the candidate trajectory to provide the modified trajectory includes modifying one or more of a speed of one or more joints, an acceleration of one or more joints and/or a path of the candidate trajectory.
7. The method according to claim 1, wherein the model comprises: one or more inertia dependent terms defining an inertia of the manipulator; one or more centripetal terms defining a centripetal load of the manipulator; one or more gravity dependent terms defining a gravity load of the manipulator; and/or one or more friction dependent terms defining a friction load of each joint.
8. The method according to claim 1, wherein the at least one position dependent load value is determined for the manipulator when carrying a payload.
9. A control system for controlling a manipulator of an industrial robot having a plurality of joints, the control system comprising at least one data processing device and at least one memory having a computer program stored thereon, the computer program including program code which, when executed by the at least one data processing device, causes the at least one data processing device to perform the steps of: providing a candidate trajectory for the manipulator; determining at least one position dependent load value representative of at least one position dependent load acting on the manipulator for the candidate trajectory; modifying the candidate trajectory based on the at least one position dependent load value to provide a modified trajectory; and commanding the manipulator to execute the modified trajectory, wherein the computer program, when executed by the at least one data processing device, causes the at least one data processing device to further perform the steps of: providing a model describing static and dynamic properties of the manipulator, the model having a position dependent load term; determining the at least one position dependent load value for the candidate trajectory based on the position dependent load term; determining a load constraint of a load parameter for a mechanical component of the manipulator based on the at least one position dependent load value; and determining the modified trajectory for the manipulator by solving an optimization problem having an objective function and the load constraint; and wherein the load constraint is determined as a relatively low load constraint value when a position dependent load value of the position dependent load term is below a position dependent load threshold, and determined as a relatively high load constraint value when the position dependent load value is above the position dependent load threshold.
10. The control system according to claim 9, wherein the at least one position dependent load comprises a gravity load.
11. The control system according to claim 10, wherein the modification of the candidate trajectory to provide the modified trajectory comprises modifying one or more of a speed of one or more joints, an acceleration of one or more joints and/or a path of the candidate trajectory.
12. The control system according to claim 10, wherein the model comprises: one or more inertia dependent terms defining an inertia of the manipulator; one or more centripetal terms defining a centripetal load of the manipulator; one or more gravity dependent terms defining a gravity load of the manipulator; and/or one or more friction dependent terms defining a friction load of each joint.
13. The control system according to claim 10, wherein the at least one position dependent load value is determined for the manipulator when carrying a payload.
14. The control system according to claim 9, wherein the modification of the candidate trajectory to provide the modified trajectory comprises modifying one or more of a speed of one or more joints, an acceleration of one or more joints and/or a path of the candidate trajectory.
15. The control system according to claim 9, wherein the model comprises: one or more inertia dependent terms defining an inertia of the manipulator; one or more centripetal terms defining a centripetal load of the manipulator; one or more gravity dependent terms defining a gravity load of the manipulator; and/or one or more friction dependent terms defining a friction load of each joint.
16. The control system according to claim 9, wherein the at least one position dependent load value is determined for the manipulator when carrying a payload.
17. An industrial robot comprising a manipulator and a control system for controlling the manipulator of the industrial robot having a plurality of joints, the control system comprising at least one data processing device and at least one memory having a computer program stored thereon, the computer program including program code which, when executed by the at least one data processing device, causes the at least one data processing device to perform the steps of: providing a candidate trajectory for the manipulator; determining at least one position dependent load value representative of at least one position dependent load acting on the manipulator for the candidate trajectory; modifying the candidate trajectory based on the at least one position dependent load value to provide a modified trajectory; and commanding the manipulator to execute the modified trajectory, wherein the computer program, when executed by the at least one data processing device, causes the at least one data processing device to further perform the steps of: providing a model describing static and dynamic properties of the manipulator, the model having a position dependent load term; determining the at least one position dependent load value for the candidate trajectory based on the position dependent load term; determining a load constraint of a load parameter for a mechanical component of the manipulator based on the at least one position dependent load value; and determining the modified trajectory for the manipulator by solving an optimization problem having an objective function and the load constraint; and wherein the load constraint is determined as a relatively low load constraint value when a position dependent load value of the position dependent load term is below a position dependent load threshold, and determined as a relatively high load constraint value when the position dependent load value is above the position dependent load threshold.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Further details, advantages and aspects of the present disclosure will become apparent from the following description taken in conjunction with the drawings, wherein:
(2)
(3)
(4)
(5)
DETAILED DESCRIPTION
(6) In the following, a method of controlling a manipulator of an industrial robot having a plurality of joints, a control system for controlling a manipulator of an industrial robot having a plurality of joints, and an industrial robot comprising a manipulator and a control system, will be described. The same or similar reference numerals will be used to denote the same or similar structural features.
(7)
(8) The manipulator 12 of this specific example comprises seven axes. The manipulator 12 comprises a first link 18a rotatable relative to the base 16 at a first joint 20a, a second link 18b rotatable relative to the first link 18a at a second joint 20b, a third link 18c rotatable relative to the second link 18b at a third joint 20c, a fourth link 18d rotatable relative to the third link 18c at a fourth joint 20d, a fifth link 18e rotatable relative to the fourth link 18d at a fifth joint 20e, a sixth link 18f translationally movable relative to the fifth link 18e at a sixth joint 20f, and a seventh link 18g rotatable relative to the sixth link 18f at a seventh joint 20g. One, several or all of the links 18a-18g may alternatively be referred to with reference numeral 18. One, several or all of the joints 20a-20g may alternatively be referred to with reference numeral 20.
(9) The manipulator 12 further comprises an end effector or tool, here exemplified as a gripper 22. As shown in
(10)
(11) The control system 14 is in signal communication with the manipulator 12 for controlling operations thereof. The control system 14 may for example be a robot controller. The control system 14 comprises a data processing device 28 and a memory 30. The memory 30 has a robot program stored thereon. The robot program comprises program code which, when executed by the data processing device 28, causes the data processing device 28 to perform, and/or command performance of, various steps as described herein.
(12) The industrial robot 10 of this example further comprises a display 32 for displaying various information related to the operation of the industrial robot 10. The display 32 may for example be provided in a teach pendant unit, TPU. The display 32 is in signal communication with the control system 14.
(13) In
(14) The robot program comprises software for generating candidate trajectories 34a and for optimizing the candidate trajectories 34a with a dynamic optimization to provide modified trajectories 34b. One or more candidate trajectories 34a may alternatively be input by a user. At each time instant, the candidate trajectory 34a is evaluated, e.g. by means of a look-ahead function implemented in the robot program. As schematically shown in
(15)
(16) In order to meet structural integrity specifications on the mechanical components of the manipulator 12, both static loads and dynamic loads need to be considered when executing a trajectory by the manipulator 12. The dynamic loads are typically reduced to levels substantially below the static load capacities to avoid fatigue of the mechanical components. Moreover, maximum dynamic loads may be specified for mechanical components for several different dynamic load cases. For example, the bearing 26 at the first joint 20a may have a unique specified limit on bending moment at each of a low speed 38 and a high speed 38. When the gripper 22 is close to the base 16, the position dependent bending moment at the first joint 20a is low. A relatively large part of the bending moment limit of the bearing 26 at the first joint 20a can thereby be used for speed dependent terms or to accelerate the manipulator 12. When the manipulator 12 is stretched out and the payload 24 is heavy, the position dependent bending moments are very high at the first joint 20a. To prevent overload in this case, the speed dependent forces 42 and torques 44 at the first joint 20a, and the acceleration dependent forces 42 and torques 44 at the first joint 20a must be kept low.
(17) Given a proposed candidate trajectory 34a, a vector .sub.k comprising one or more load parameters 46 can be calculated in every timestep along the associated path 36a by means of a model of the manipulator 12 as:
.sub.k=.sub.k,{umlaut over (q)}+.sub.k,{dot over (q)}.sub.k,q(1)
where .sub.k is a vector of forces 42 and torques 44 when considering the complete dynamics of the manipulator 12 or a vector of three forces 42 and three torques 44, also referred to as a wrench, when expressing the dynamics with respect to one cross section, a joint 20 or some other coordinate system in the structure of the manipulator 12.
(18) The vector q and its derivatives represent the positions of the joints 20, the speeds 38 of the joints 20 and the accelerations 40 of the joints 20.
(19) .sub.k,{umlaut over (q)} is a n acceleration term of the model that may alternatively be written as M.sub.k(q){umlaut over (q)}.
(20) M.sub.k(q) is the inertia matrix which depends on the positions of the joints 20. The inertia matrix is one example of an inertia dependent term defining an inertia of the manipulator 12.
(21) .sub.k,{dot over (q)} is a speed term of the model that may alternatively be written as C.sub.k(q,{dot over (q)}){dot over (q)}.
(22) C.sub.k(q,{dot over (q)}) represents the centripetal effect and is one example of a centripetal term defining a centripetal load of the manipulator 12.
(23) .sub.k,q is a position term of the model that may alternatively be written as g.sub.k(q).
(24) g.sub.k(q) represents a position dependent load term of the manipulator 12, here exemplified as a gravity dependent load term. The model thus describes both static and dynamic properties of the manipulator 12.
(25) Equation (1) can thus alternatively be written as:
.sub.k=M.sub.k(q){umlaut over (q)}+C.sub.k(q,{dot over (q)}){dot over (q)}+g.sub.k(q)
(26) In addition, a friction term can also be added to the model. Such friction term typically depends on the speeds 38 of the joints 20 but could also depend on the positions of the joints 20.
(27) By means of the model, load parameters 46 can be calculated at arbitrary points in the manipulator 12 for any candidate trajectory 34a.
(28) By considering the model in equation (1), it is clear that T.sub.k can be reduced by reducing the influence from the speeds 38 and accelerations 40. However, since each of M.sub.k, C.sub.k and g.sub.k is a function of the positions of the joints 20, the speeds 38 and accelerations 40 need to be very conservative to provide a guaranteed limit of T.sub.k. In addition, the payload 24 also has a large effect on M.sub.k, C.sub.k and g.sub.k. The method according to the present disclosure enables a simpler, but still not conservative, way to modify the speeds 38 and accelerations 40 of the manipulator 12 based on the model (1) in view of lifetime of specific mechanical components.
(29) The optimization of the candidate trajectories 34a to provide modified trajectories 34b is here performed with a number of constraints that need to be satisfied in the optimal solution. Equation (1) is included in the optimization as a load parameter, where:
a.sub.k,min.sub.ka.sub.k,max(2)
(30) where the vector inequality is interpreted as a component wise inequality, where a.sub.k, min is the lower limit of the respective load parameter 46 and a.sub.k,max is the upper limit of the respective load parameter 46. The limits of the load constraint are determined as a function of one or more position dependent load terms, here the gravity term g.sub.k.
(31) It is also possible to add norm constraints to the optimization, according to:
.sub.kb.sub.k,max(3)
(32) where b.sub.k,max is the upper level of the norm of the force 42 or the torque 44. The upper limit can in general be a constant, but here the upper limit is determined in dependence of the gravity component g.sub.k(q).
(33) The optimization process then calculates feasible solutions to {dot over (q)} and {umlaut over (q)} where the load constraints a.sub.k,min and a.sub.k,max and the norm constraints b.sub.k,max are fulfilled. In the optimization, T.sub.k is replaced by equation (1).
(34) The number of constraints can be arbitrary since the coordinate systems k can be arbitrarily many and in each coordinate system, it is possible to have constraints for each component and for the norm of force 42 and torque 44. It is also possible to introduce norm constraints for only the components in one plane, for example the forces 42 acting in the XY-plane.
(35) Since the optimization is solved in discrete time over a finite horizon, the value of T.sub.k is evaluated in a finite number of time instances which will depend on the sample time in the optimization problem and the choice of optimization method. The time distance may for example be 1 ms to 50 ms.
(36) Since the path is given for the candidate trajectory 34a, when the calculated position dependent load values g.sub.k(q) in a timestep results in a value that is near to a.sub.k,max, .sub.k,{umlaut over (q)}+.sub.k,{dot over (q)} must be small, zero or negative for the inequality a.sub.k,min.sub.ka.sub.k,max to be fulfilled. If in this case, a.sub.k,max can be increased, there are more solution space for {dot over (q)} and {umlaut over (q)}.
(37)
(38) In case the gravity component g.sub.k(q) is relatively high or relatively close to the load constraint, the limits of the load constraint a.sub.k,min and a.sub.k,max are extended by the robot program. That is, the lower load constraint a.sub.k,min is reduced and the upper load constraint a.sub.k,max is increased. By modifying the load constraint in this way, the method allows the load parameters 46 to increase while still meeting the dynamic load limits of the mechanical components regarding lifetime and without having to define specific limits on speeds 38 and/or accelerations 40. If for example speeds 38 of the joints 20 are limited to fixed values, the speeds 38 are likely reduced more than necessary, which in turn reduces cycle time and performance of the manipulator 12.
(39) The extension of the load constraint enables performance parameters to be increased. For example, the manipulator 12 is enabled to move from a normal workspace 48 and into the extended workspace 50, but with reduced performance, such as with limited speed 38 and/or acceleration 40. The reason for allowing this extension of the load constraint is that the maximum load values of the load parameters 46 are not static, but depend on to what extent position dependent loads contribute to the load parameters 46. Exactly how the load constraint is modified based on the gravity component g.sub.k(q) is part of the design and tuning of the manipulator 12. This is done in the product development process. Various parameters for adjusting this dependency could be part of an open configuration. In this case, an advanced user of the control system 14 can adjust the dependency and be able to further extend the workspace of the manipulator 12.
(40) Without the method, the rating of many mechanical components of the manipulator 12, such as the bearings 26, would have to be increased in order for the manipulator 12 to reach and move in the extended workspace 50. Not only would this increase costs, but this would also lead to a poor utilization of the maximum performance level of the manipulator 12 in the normal workspace 48.
(41) As an alternative to extending the workspace, the method enables the manipulator 12 to carry a heavier payload 24. The speeds 38 and accelerations 40 of the manipulator 12 then have to be reduced at extended positions, but not necessarily at positions closer to the base 16. The payload 24 may for example be increased from 500 kg to 750 kg.
(42) As an alternative to determining the load constraint for the optimization problem based on at least one position dependent load, position dependent load values may be determined for the candidate trajectory 34a. In case the position dependent load value for one or more joints 20 is above a position dependent load threshold, the speed 38 and the acceleration 40 may be limited for that joint 20 in the modified trajectory 34b.
(43)
(44)
(45) While the present disclosure has been described with reference to exemplary embodiments, it will be appreciated that the present invention is not limited to what has been described above. For example, it will be appreciated that the dimensions of the parts may be varied as needed. Accordingly, it is intended that the present invention may be limited only by the scope of the claims appended hereto.