Method for control of an industrial robot

A method for control of an industrial robot, which has a plurality of movement axes with a position sensor for each of said axes which is adapted to deliver an output signal which defines the current position of the axis, and a control system for control of the axes of the robot. Continuously during operation of the robot for at least one mechanically critical point (i) of the robot, the relevant load (.tau..sub.i) during a predetermined period of time (.DELTA.t) is calculated on the basis of the output signals (.phi..sub.1,.phi..sub.2 . . . .phi..sub.6) from the position sensors and a mathematical model of the robot. Further, the rate of fatigue ##EQU1## of the point is calculated on the basis of the calculated load and with knowledge of the fatigue strength (N.sub.ij) of the material at the critical point. The performance (.phi..sub.axis,max, .tau..sub.axis,max) of the robot is adjusted in dependence on the rate of fatigue and the desired service life (t.sub.life) of the robot.

TECHNICAL FIELD
 The invention relates to a method for control of an industrial robot, which
 has a plurality of movement axes with a position sensor for each one of
 the axes which is adapted to deliver a signal which defines the current
 position of the robot, and a control system for controlling the axes of
 the robot, the output signals from the position sensors being supplied to
 the control system.
 BACKGROUND ART
 The service life of an industrial robot is determined by how its mechanical
 structure and its components are loaded during the movements carried out
 by the robot during its service life. The mechanics of robots of today is
 dimensioned such that the robot is to be able to carry out the severest
 movement pattern conceivable during the whole of its specified service
 life. Only a small number of robots are run with such movement programs,
 which are unfavorable for the mechanical structure, and therefore almost
 all robots of today are mechanically oversized in relation to their
 specified service life.
 A typical industrial robot comprises a number of robot arms, which are
 rotatable in relation to each other, and a hand provided with a tool
 attachment. The robot hand is rotatable in two or three degrees of freedom
 relative to the arm supporting the hand. The robot is provided with a
 control system which controls the position and the orientation of the
 robot hand. For each one of the movement axes of the robot, servo
 equipment comprising a driving motor and a position sensor is provided.
 The position sensor delivers a signal which is a measure of the angle of
 rotation of the axis in question. The servo system of each axis is
 supplied with a reference value for the angle of rotation of the axis, and
 the driving motor of the axis brings the robot to move in the axis in
 question until the axis position indicated by the position sensor of the
 axis coincides with the reference value supplied to the servo system.
 To prevent the loads on the mechanical components of the robot, for example
 bearings, shafts, stays, motor housing and arm attachments, from becoming
 too high, limits to the maximum permissible torques and speed for each one
 of the axes of the robots are set. These limits are set prior to delivery
 of the robot and limit the performance of the robot, that is, the maximum
 speeds and maximum torques of the axes, during the whole service life of
 the robot. The limits to the maximum permissible axis torque and axis
 speed are calculated based on the guaranteed service life of the robot and
 fatigue diagrams for the mechanical structure. The calculation starts from
 a worst conceivable case with abnormal movement patterns and with an
 abnormal number of cycles per unit of time.
 The mechanical load on a mechanical component at a certain time depends on
 several different factors, for example the speed, acceleration,
 configuration, and load of the robot. This means that if the robot has an
 advantageous configuration or a small load, the limits set to the maximum
 permissible axis torque and axis speed may be exceeded without the load of
 the component becoming too high.
 SUMMARY OF THE INVENTION
 The object of the invention is to increase the degree of utilization of the
 robot so that its mechanics are utilized to their maximum.
 The current load at at least one mechanically critical point is calculated
 continuously on the basis of the output signals from the position sensors
 and a mathematical model for the robot. At regular intervals, a
 utilization factor for the critical point is calculated based on the load
 spectrum of the point during a predetermined period of observation. On the
 basis of the utilization factor and the service life of the robot, the
 maximally permissible load at the critical point is calculated. The
 service life may either be predetermined or optional. The maximum
 permissible load is calculated continuously during the robot cycles in
 question for each one of the critical points. The current load and the
 maximum permissible load are compared continuously and if the current load
 exceeds the maximum permissible load, axis speeds and axis torques are
 limited such that the load at the critical point is reduced.
 By taking into account the magnitude of the loads to which certain
 mechanical structures are subjected, axis speeds and axis torques may be
 increased such that their mechanics are utilized to their maximum. In this
 way, a robot which carries out movement patterns which are favorable to
 the mechanics will have a higher performance than a robot which is run
 with unfavourable movement patterns. Likewise, a robot which handles small
 tool and arm loads will have a higher performance.
 In one embodiment of the invention, the maximum permissible load is
 calculated in view of the desired service life of the robot. The maximum
 permissible load is then calculated on the basis of the whole prehistory
 of the robot. At any time, the user may be informed by the control system
 of the time remaining of the service life of the robot. If the user is not
 satisfied with the remaining service life, he may change the value of the
 remaining service life, after which the control system determines a new
 maximum permissible load on the basis of the new value of the service
 life. In this way, the user may himself choose between higher performance
 and shorter service life or lower performance and longer service life of
 his robot.
 In another embodiment, a fixed service life is determined on installation
 of the robot. The control system then calculates during the observation
 periods the maximum permissible loads in relation to the fixed service
 life, whereby axis speeds and axis torques are adjusted such that the
 maximum permissible loads are not exceeded. In this case, no data about
 the prehistory of the robot need be stored, which is an advantage when
 replacing the control cabinet or in case of memory failures.

DESCRIPTION OF THE PREFERRED EMBODIMENTS
 FIG. 1 shows an example of a known industrial robot. The robot foot 2 is
 fixedly mounted on a base 1. The robot has a base stand 3 which is
 rotatable in relation to the foot 2 around a vertical axis A1. At the
 upper end of the base stand, a first robot arm 4 is journalled and
 rotatable in relation to the base stand around a second axis A2. At the
 outer end of the arm, a second arm 5 is journalled and rotatable in
 relation to the first arm around an axis A3. The robot arm 5 comprises two
 parts 5a and 5b, the outer part 5b being rotatable in relation to the
 inner part 5a around an axis of rotation A4 coinciding with the
 longitudinal axis of the arm. At its outer end the arm 5 supports a
 so-called robot hand 6, which is rotatable around an axis of rotation A5
 perpendicular to the longitudinal axis of the arm. The robot hand
 comprises a tool attachment 6a. The outer part of the robot hand and hence
 the tool attachment 6a are rotatable in relation to the inner part of the
 robot hand around an axis of rotation A6. The angles of rotation in the
 six axes of rotation A1 . . . A6 are designated .phi..sub.1 -.phi..sub.6
 in the figure.
 For each one of the movement axes of the robot, there is a position sensor
 which delivers a signal which is a measure of the angle of rotation of the
 axis in question. The output signals from the position sensors are
 supplied to the control system of the robot. The control system is
 arranged in a separate control cabinet 8 and comprises, in a known manner,
 computer equipment with the necessary memories for programs and other
 data, drives for the driving motors of the different robot axes and the
 necessary supply equipment.
 The control cabinet is connected to a programming unit 9 for programming
 and other operation of the robot. The control unit comprises a
 mathematical model of the robot which is used for calculations of various
 kinds.
 The mechanical strength of a robot is often determined by a small number of
 critical load points. For these load points, it is important that the
 force or torque amplitudes arisen during the robot movements must not
 exceed the level which provides fatigue breakdown during the service life
 of the robot.
 With the aid of a mathematical model of the robot dynamics and the output
 signals from the position sensors, the load at a critical point may be
 calculated. The load may be torque, force, stress, deflection, or
 rotation. The load is derived from such dynamic effects as coupled mass
 inertia, centrifugal force and gravitation. In this embodiment, the load
 is calculated as a bending moment .tau.:
EQU .tau.=M.sub.i (.phi.).cndot..phi.+V.sub.i (.phi.).cndot.(.phi.).sup.2
 +G.sub.i (.phi.) (1)
 .phi.=.phi..sub.1,.phi..sub.2 . . . .phi..sub.6 position of the robot
 .phi.=.phi..sub.1,.phi..sub.2 . . . .phi..sub.6 =speed of the robot
 .phi.=.phi..sub.1,.phi..sub.2 . . . .phi..sub.6 =acceleration of the robot.
 M.sub.i (.phi.) describes the connection between the accelerations of the
 robot arms and the bending moment at the critical point. V.sub.i (.phi.)
 describes the connection between the centrifugal force of all parts of the
 robot and the bending moment at the critical point. G.sub.i (.phi.)
 describes the effect of the gravitation on the bending moment.
 The strength of a material at varying loads is dependent on the amplitude
 of the load changes and their number during the service life of the
 material. From the fatigue diagram of the material, the number of stress
 changes N with a certain amplitude S that the material endures during its
 service life may be read. FIG. 2a shows an example of a fatigue diagram.
 FIG. 2b shows an example of how a bending moment .tau. may vary during an
 observation period .DELTA.t at a critical point in a so-called torque-time
 function. From the torque-time function, the amplitudes .tau..sub.ij for
 the torque changes may be read. FIG. 2c shows an example of a load
 spectrum for one critical point based on measurements during one
 observation period. A load spectrum shows the number of torque changes
 n.sub.i occurring within an amplitude interval, whose mean amplitude is
 S.sub.aij.
 FIG. 3 shows how the calculation of maximum load, that is, maximum values
 for axis speeds .phi..sub.max and axis torque .tau..sub.axis,max may be
 carried out according to one embodiment of the invention. The robot in
 this embodiment has a number (i) of critical points. The critical points
 may be weak points in the robot structure, for example bearings, shafts,
 links, gearboxes, or other life-limiting components. The bending moments
 .tau..sub.i are calculated for each one of the points starting from the
 output signals .phi..sub.1,.phi..sub.2 . . . .phi..sub.6 from the position
 sensor of the robot according to equation 1, block 10. The calculation of
 the bending moments takes place continuously, for example every 24th
 .mu.s. When running the robot, one torque-time function for each point is
 then obtained.
 To obtain the load spectrum for a point, all the torque changes must be
 detected and their amplitudes be calculated from the torque-time function
 for the point. For the torque-time function, therefore, all the local
 maximum values .tau..sub.max and minimum values .tau..sub.min are
 therefore detected simultaneously and from these maximum and minimum
 values the amplitude of the torque changes is then calculated
 ##EQU2##
 Algorithms for detecting and calculating relevant torque variations may be
 carried out in many different known ways. For example, extreme-value
 search or calculation of the number of torque maximums which exceed and
 the number of torque minimums which fall below given torque levels may be
 made directly from the torque-time function. An alternative to using
 special algorithms in the time plane is to use frequency analysis, for
 example with an FFT algorithm.
 The load spectrum is updated during one observation cycle .DELTA.t. The
 observation period should be at least one robot cycle, that is, the time
 it takes for the robot to carry out the robot program in question. It is
 suitable to choose the observation period such that variations in the use
 of the robot during the day are included. In this embodiment, the
 observation period is 24 hours.
 For calculating the maximum permissible load, a so-called utilization
 factor for the point i is first calculated. In this embodiment, partial
 damage D.sub.i is used for calculating the utilization factor.
 ##EQU3##
 N.sub.ij is the maximum number of permissible load cycles in an interval
 [.tau..sub.j-1 -.tau..sub.j ], and n.sub.ij is the number of torque
 changes with amplitudes within the interval [.tau..sub.j-1 -.tau..sub.j ].
 The number of torque changes .DELTA.n.sub.ij with amplitudes within given
 torque intervals [.tau..sub.j-1 -.tau..sub.j ], measured within one
 observation period, are stored in a table for the load spectrum of each
 critical point. For each torque interval, the number of load cycles
 .DELTA.n.sub.ij are calculated, block 11. The table is updated during each
 observation period. The following is an example of such a table for a
 critical point i:

[.tau..sub.j-1 - .tau..sub.j ] .DELTA.n.sub.ij
 0 -.tau..sub.1 .DELTA.n.sub.i1
 .tau..sub.1 - .tau..sub.2 .DELTA.n.sub.i2
 .tau..sub.2 - .tau..sub.3 .DELTA.n.sub.i3
 . .
 . .
 .tau..sub.l-1 - .tau..sub.l .DELTA.n.sub.il
 The table serves as a basis for calculating the rate of change of the
 partial damage, block 12:
 ##EQU4##
 If the partial damage is accumulated during the whole service life of the
 robot, the sum of all the partial damage is 1. The maximum permissible
 partial damage D.sub.imax during the service life of the robot should have
 a value which is immediately below 1, for example it may be chosen to be
 D.sub.imax =0.9. .DELTA.D.sub.i constitutes the increase of the partial
 damage during the period .DELTA.t. The increase in partial damage per unit
 of time, .DELTA.D.sub.i /.DELTA.t, constitutes a measure of the rate at
 which the structure approaches fatigue per unit of time. If the service
 life t.sub.life of the robot is known, the increase in partial damage per
 unit of time may be used for calculating the maximum permissible load. In
 this embodiment, the service life t.sub.life of the robot is predetermined
 by the robot manufacturer. From the following relationship, the largest
 increase in partial damage per unit of time
 ##EQU5##
 is calculated which may be allowed for the structure at the critical point
 to last during the predetermined service life:
 ##EQU6##
 From this the utilization factor k.sub.ilife for the point i may be
 calculated, block 13:
 ##EQU7##
 The utilization factor is calculated for each one of the critical points.
 The utilization factor k.sub.life of the robot is the utilization factor
 for the critical point which has the greatest k.sub.ilife.
EQU k.sub.life =Max{k.sub.ilife } (7)
 If k.sub.life &lt;1, the performance, i.e. axis speeds and axis torques, may
 be increased.
 If k.sub.life &gt;1, the performance must be reduced.
 Calculating, based on k.sub.life, maximum values of axis speeds
 .phi..sub.max and axis torques .tau..sub.axis,max such that the bending
 moments .tau..sub.i achieve values such that k.sub.life =1 is a very
 difficult mathematical problem. Instead, an adaptive method may be used.
 Since it is a question of very long periods of time for the fatigue
 process, the problem is most suitable for adaptivity. The adaptivity means
 that .phi..sub.max and .tau..sub.axis,max are reduced, are maintained
 constant, or are increased in dependence on whether k.sub.life &gt;1,
 k.sub.life =1 or k.sub.life &lt;1. The maximum axis speeds .phi..sub.max and
 axis torques .tau..sub.axis,max are now adjusted by the control system
 after each observation period such that, after a number of observation
 periods, the robot is run with k.sub.life =1, block 14.
 The relation between the changes of the maximum axis speeds .phi..sub.max
 and axis torques .tau..sub.axis,max is determined by what terms in
 equation 1 give the greatest contribution when calculating the bending
 moment .tau. for the limiting point. If M.sub.i
 (.phi.).cndot..phi.+G.sub.i (.phi.) is predominant, the greatest change is
 made in .tau..sub.axis,max and if V.sub.i (.phi.).cndot.(.phi.).sup.2 is
 predominant, .phi..sub.max is most controlled.
 A disadvantage with the embodiment described above is that the service life
 of the robot must be determined on installation of the robot. It is not
 possible to change the service life after a few years to obtain higher
 performance from the robot or for extending the use of the robot. In a
 second embodiment of the invention, the maximum permissible load is
 adapted to the entire prehistory of the robot.
 FIG. 4 shows a flow diagram of a second embodiment of the invention. The
 relevant load .tau. at the critical points is calculated according to
 equation 1 in the same way as in the first embodiment, block 10. In block
 21 .DELTA.n.sub.ij is calculated in the same way as in the preceding
 examples. One difference is that, in this embodiment, the number of torque
 changes are calculated and stored in different torque intervals
 ##EQU8##
 from the time the robot was new and up to the present age t.sub.age of the
 robot:

[.tau..sub.j-1 - .tau..sub.j ] n.sub.ij .DELTA.n.sub.ij
 0 - .tau..sub.1 n.sub.i1 .DELTA.n.sub.i1
 .tau..sub.1 - .tau..sub.2 n.sub.i2 .DELTA.n.sub.i2
 .tau..sub.2 - .tau..sub.3 n.sub.i3 .DELTA.n.sub.i3
 .tau..sub.l-1 - .tau..sub.l n.sub.il .DELTA.n.sub.il
 Since n.sub.ij is now stored since the robot was new, the partial damage
 D.sub.i may be calculated according to equation 3, block 22. In the same
 way as before, the relevant partial damage increase per unit of time,
 .DELTA.D.sub.i /.DELTA.t, is calculated, block 12. The remaining service
 life t.sub.irest is calculated from the following relationship:
 ##EQU9##
 The point which has the shortest remaining service life determines the
 remaining service life t.sub.rest of the robot, block 23.
EQU t.sub.rest =Min(t.sub.rest) (9)
 If the present age t.sub.age of the robot is continuously updated and
 stored in the control system, the total service life t.sub.life of the
 robot may be calculated according to t.sub.life =t.sub.age +t.sub.rest.
 The total service life t.sub.life and the remaining service life
 t.sub.rest of the robot can be presented to the robot operator, who may
 then choose to reduce the performance and hence increase the remaining
 service life, or increase the performance at the expense of a reduced
 remaining service life. Changing the performance means that the levels for
 the maximum permissible axis speeds and axis torques are changed.
 Instead of the operator controlling the performance level, the control
 system may automatically adjust the performance such that a desired
 service life t.sub.life or a desired remaining service life t.sub.restw,
 entered by the operator, is obtained. In block 24 the utilization factor
 k.sub.life is calculated according to:
 ##EQU10##
 Maximum values for axis speeds and axis torques may be adjusted according
 to the adaptive method described above, block 14.
 In order to make possible a fully automated service life optimization, it
 is required that the accumulated number of load cycles n.sub.ij and the
 age t.sub.age of the robot are always available. One problem is if a
 control cabinet is replaced without the robot accompanying the control
 cabinet. Then, the load spectrum and the age of the robot must be saved in
 order to be read later on into the new control system. This problem may be
 solved by mounting a memory module in the foot of the robot and which can
 then be written and read by the control system.
 As an alternative to partial damage D.sub.i a constant equivalent amplitude
 S.sub.eqai may be used to calculate the remaining service life:
 ##EQU11##
 N.sub.jo is the number of torque changes corresponding to the service life
 at a maximum permissible equivalent load S.sub.eqaimax.
 ##EQU12##
 S.sub.aij is the mean torque in the torque interval [.UPSILON..sub.j-1
 -.tau..sub.j ] and k.sub.i is the inclination in the fatigue curve. The
 remaining service life for a critical point i is calculated:
 ##EQU13##
 The critical point which has the shortest remaining service life limits the
 whole of the remaining age of the robot. The remaining service life of the
 robot is:
EQU T.sub.rest =Min{t.sub.resti }.cndot. (14)