A CONTROLLER FOR A PAINT ROBOT

20230356407 · 2023-11-09

    Inventors

    Cpc classification

    International classification

    Abstract

    A robot controller is adapted to execute a program an indication of a setpoint speed of a robot arm, an indication of a contemporaneous setpoint fluid flow per unit time of a spray gun supported by the robot arm, and an indication of a contemporaneous further setpoint quantity of the spray gun. The robot controller is configured to obtain an estimate of actual speed of the robot arm; determine whether the estimate deviates from the setpoint speed; and, in case of a deviation, adjust the setpoint fluid flow per unit time in accordance with a first compensation function. In an embodiment, the robot controller is further configured to concurrently adjust, in case of a deviation, the further setpoint quantity in accordance with a second compensation function, which is different from the first compensation function.

    Claims

    1. A robot controller adapted to execute a program comprising an indication of a setpoint speed of a robot arm, an indication of a contemporaneous setpoint fluid flow per unit time of a spray gun supported by the robot arm, and an indication of a contemporaneous further setpoint quantity of the spray gun, wherein the robot controller is configured to: obtain an estimate of actual speed of the robot arm; determine whether the estimate deviates from the setpoint speed; and, in case of a deviation, adjust the setpoint fluid flow per unit time in accordance with a first compensation function.

    2. The robot controller of claim 1, wherein the robot controller is further configured to concurrently adjust, in case of a deviation, the further setpoint quantity in accordance with a second compensation function, which is different from the first compensation function.

    3. The robot controller of claim 1, wherein the further parameter is a quantitative characteristic of one or more of: atomization, air flow per unit time, spray plume geometry, electrostatic charging.

    4. The robot controller of claim 1, wherein the estimate is derived from a robot arm motion control signal or signals generated by the robot controller without relying on a sensed momentary speed of the robot arm.

    5. The robot controller of claim 1, wherein the estimate is derived from a sensor signal or sensor signals from a rotary position sensor or rotary position sensors attached to respective actuator or actuators.

    6. The robot controller of claim 1, wherein the estimate is derived from a sensor on or at the robot arm.

    7. The robot controller of claim 6, wherein the sensor is an inertial sensor and/or an optical sensor.

    8. The robot controller of claim 1, wherein a slope of the first compensation function is proportional to a first factor representing a desired fluid flow per unit length travelled by the spray gun, wherein the robot controller is configured to derive the first factor from the indicated setpoint speed and setpoint fluid flow per unit time.

    9. The robot controller of claim 1, adapted to control robot painting of a moving workpiece, particularly an object moved by a conveyor arrangement, wherein the actual speed of the robot arm is speed relative to the moving workpiece.

    10. The robot controller of claim 1, comprising: a motion control system for controlling the robot arm; and a process control system for controlling the spray gun, wherein the motion control system operates independently from the process control system.

    11. A method of controlling a robot arm and a spray gun supported by the robot arm, the method comprising: obtaining a program having an indication of a setpoint speed of the robot arm and an indication of a contemporaneous further setpoint fluid flow per unit time of the spray gun and an indication of a contemporaneous further setpoint quantity of the spray gun; obtaining an estimate of actual speed of the robot arm; determining whether the estimate deviates from the setpoint speed; and adjusting, in case of a deviation, the setpoint fluid flow per unit time in accordance with a first compensation function.

    12. A computer program comprising instructions to cause a robot controller to perform the steps of: obtaining a program having an indication of a setpoint speed of the robot arm and an indication of a contemporaneous further setpoint fluid flow per unit time of the spray gun and an indication of a contemporaneous further setpoint quantity of the spray gun; obtaining an estimate of actual speed of the robot arm; determining whether the estimate deviates from the setpoint speed: and adjusting, in case of a deviation, the setpoint fluid flow per unit time in accordance with a first compensation function.

    13. A data carrier having stored thereon a computer program comprising instructions to perform the steps of controlling a robot arm and a spray gun supported by the robot arm, the instructions including: obtaining a program having an indication of a setpoint speed of the robot arm and an indication of a contemporaneous further setpoint fluid flow per unit time of the spray gun and an indication of a contemporaneous further setpoint quantity of the spray gun: obtaining an estimate of actual speed of the robot arm; determining whether the estimate deviates from the setpoint speed; and adjusting, in case of a deviation, the setpoint fluid flow per unit time in accordance with a first compensation function.

    14. The robot controller of claim 2, wherein the further parameter is a quantitative characteristic of one or more of: atomization, air flow per unit time, spray plume geometry, electrostatic charging.

    15. The robot controller of claim 2, wherein the estimate is derived from a robot arm motion control signal or signals generated by the robot controller without relying on a sensed momentary speed of the robot arm.

    16. The robot controller of claim 2, wherein the estimate is derived from a sensor signal or sensor signals from a rotary position sensor or rotary position sensors attached to respective actuator or actuators.

    17. The robot controller of claim 2, wherein the estimate is derived from a sensor on or at the robot arm.

    18. The robot controller of claim 2, wherein a slope of the first compensation function is proportional to a first factor representing a desired fluid flow per unit length travelled by the spray gun, wherein the robot controller is configured to derive the first factor from the indicated setpoint speed and setpoint fluid flow per unit time.

    19. The robot controller of claim 2, adapted to control robot painting of a moving workpiece, particularly an object moved by a conveyor arrangement, wherein the actual speed of the robot arm is speed relative to the moving workpiece.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0023] Aspects and embodiments are now described, by way of example, with reference to the accompanying drawings, on which:

    [0024] FIG. 1 shows an industrial paint system comprising a robot arm equipped with a spray gun, a robot controller configured in accordance with an embodiment of the present invention, and a conveyor arrangement for bringing a workpiece into and out of the operating area of the robot arm;

    [0025] FIG. 2 is a flowchart of a method according to an embodiment of the invention;

    [0026] FIGS. 3 to 5 are plots of various compensation functions for use in embodiments of the invention; and

    [0027] FIG. 6 shows an example architecture of cooperating control algorithms suitable for controlling a robot arm and connected spray gun.

    DETAILED DESCRIPTION

    [0028] The aspects of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, on which certain embodiments of the invention are shown. These aspects may, however, be embodied in many different forms and should not be construed as limiting; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and to fully convey the scope of all aspects of invention to those skilled in the art. Like numbers refer to like elements throughout the description.

    [0029] FIG. 1 shows an industrial paint system 100 generally comprising a robot arm 120, a robot controller 110 and a conveyor arrangement 140. The robot arm 120 comprises multiple segments joined by rotatable or linear joints, which extends from a base 128 and supports, at its outer end, a spray gun 122 adapted for spraying fluid through a spray nozzle 124 onto surfaces of a stationary or moving workpiece 130 on the conveyor arrangement 140. The robot arm 120 may comprise (not shown) supply lines for feeding spray fluid, air, gases etc. to the spray gun 122, return lines for collecting excess fluid etc., as well as an electric harness for supplying electric power and control signals. To allow the spray gun 122 to reach various surfaces of the workpiece 130 and cover these efficiently, the robot arm 120 is movable by translations and/or rotations, and the spray gun 122 itself may be rotatable with respect to the robot arm 120. The speed of the robot arm 120 during such movements may be measured or estimated with reference to a tool center point (TCP) 126. The setpoint speed may refer to the TCP 126 as well.

    [0030] The lower part of FIG. 1 shows an example structure of the robot controller 110, which comprises a motion control system 112, a process control system 114, a memory 116 suitable for storing executable software, including various programs, such as spray programs with indications of the setpoint quantities, and a user interface 118 configured to display various aspects of a current condition of the paint system 100 and to accept commands input by an operator. The programs may be prepared using the user interface 118 or uploaded directly to the memory 116. The motion control system 112 is primarily in charge of feeding the robot arm 120 with motion control signals directed to actuators therein and monitoring the robot arm 120 through rotary position sensors, torque/strain/pressure sensors and the like. The process control system 114 is primarily responsible for controlling aspects of the spray gun 122, such as atomization, electrostatic charging, various air flows modifying the shape of the spray plume, cleaning and replacement of nozzles.

    [0031] In some embodiments, the motion control system 112 and the process control system 114 operate independently of each other, save that the control system 114 may execute setpoint quantities which have been adjusted in view of an estimate of the actual speed emanating from the motion control system 112. The mutual independence of the two systems 112, 114 may be achieved by letting them execute as different threads in a shared processing resource and/or execute on separate processing resources of the robot controller 110. This architecture of the robot controller 110 may contribute to stable operation of the paint system 100 and an ability to respond quickly to fluctuations in speed or other quantities.

    [0032] A method 200 for controlling a robot arm 120 and attached spray gun 122 is visualized as the flowchart in FIG. 2. The method also represents an example way of operating the robot controller 110.

    [0033] The method 200 makes reference to a program, obtained in a first step 210 of the method 200, which comprises an indication of a setpoint speed v* of the robot arm 120 and an indication of a contemporaneous further setpoint fluid flow per unit time dq*/dt of the spray gun 122 and an indication of a contemporaneous further setpoint quantity x* of the spray gun. A tuple (v*,dq*/dt,x*) of values of the contemporaneous setpoint quantities may relate to a surface of the workpiece 130. When the workpiece 130 is a vehicle, the surface may be a roof, ceiling, door, fender etc.

    [0034] In a second step 220 of the method 200, an estimate v of the actual speed of the robot arm 120 is obtained while the robot arm 120 and spray gun 122 are processing said surface of the workpiece 130 for which the tuple of values of the contemporaneous setpoint quantities is valid. The estimate v may be derived from a robot arm motion control signal or signals u.sub.1 generated by the motion control system 112 without relying on a sensed momentary speed of the robot arm 120. Alternatively, the estimate v is a reading of a sensor (not shown) arranged on or at the robot arm 120. The sensor may be an inertial sensor or an optical sensor. If the robot arm’s 120 speed relative to the workpiece 130 is of interest, it may be preferable to use an optical sensor; the relative speed may be determined by tracking visual features on the surface of the workpiece 130, computing an optical flow and similar techniques. Further alternatively, the estimate may be derived from a sensor signal or sensor signals from a rotary position sensor or rotary position sensors attached or associated with respective actuators in the robot arm 120. The rotary position sensors may be implemented as resolvers or rotary encoders, from which the speed information may be computed.

    [0035] In a third step 230, it is determined whether the estimate v deviates from the setpoint speed v*. If the robot is working close to its limitations in either axis speed or torque there can be a temporary drop in speed. Additionally, the conveyor arrangement 140 may move the workpiece 130 into an inconvenient area, where the robot arm 120 is working close to its kinematic limitation. From the point of view of the robot controller 110, a speed deviation may correspond to fulfilment of a condition on the form |v - v*| ≥ ε for a predetermined constant ε > 0 which represents a tolerance. The tolerance can be set in view of how large thickness deviations in the end result are deemed acceptable, but the tolerance may also reflect the expected amount of noise in the estimation of the robot arm’s 120 speed. If the condition is fulfilled, the third step 230 returns a positive decision (Y branch) and the execution of the method 200 proceeds to the fourth step 240. If instead |v - v*| < ε or the estimate v is not available at this time instant, no deviation is determined to exist (N branch); for this outcome, the execution of the method 200 may continue at the second step 220, possibly after a suitable delay has expired, so that it is meaningful to renew the estimation of the speed of the robot arm 120.

    [0036] In the fourth step 240, the setpoint fluid flow per unit time is adjusted in accordance with a first compensation function, i.e., from its value dq*/dt according to the indication in the program to an adjusted value, denoted dq̃/dt. There is furthermore an optional adjustment of the contemporaneous further setpoint quantity x* of the spray gun in accordance with a second compensation function, the result of the adjustment being denoted x̃. The adjusted values dq̃/dt and x̃ of the setpoint quantities may then be fed to the spray gun 122 for the remaining duration of the processing of said surface of the workpiece 130. Alternatively, and clearly depending on the total extent of the surface, it may be prudent to renew the estimate v of the robot arm’s 120 speed, so that the adjusted values of the setpoint quantities dq̃/dt and x̃ can be updated. The robot controller 110 may potentially resume use of the setpoint quantities according to the indications in the program in case of the outcome |v - v*| < ε; if the fourth step 240 is terminated for this reason, the execution of the method 200 may continue from the second step 220, as described for the N branch of the third step 230.

    [0037] The concept of a compensation function has already been introduced and is further illustrated by the examples in FIGS. 3, 4 and 5.

    [0038] FIG. 3 shows three compensation functions, corresponding to 1, 2 and 3 units of the thickness h, for the fluid flow per unit time dq/dt. For a different setpoint quantity, a different family of compensation functions may apply. Each compensation function may be understood as a contour line of a completely or incompletely known thickness function. It is sufficient to have local knowledge of the compensation function in a neighborhood of the setpoint speed v*. A possible scheme for utilizing a family of compensation functions like the one shown in FIG. 3 is as follows: [0039] 1. That one of the compensation functions which matches the setpoint quantities v*,dq*/dt most closely is selected. [0040] 2. The selected compensation function for the estimated actual speed v is evaluated to yield an adjusted setpoint value dq̃/dt. [0041] 3. The adjusted setpoint value dq̃/dt is applied to the spray gun.

    [0042] A determined speed deviation may trigger adjustment of one or more setpoint quantities. For a given setpoint quantity, a different compensation function may apply depending on whether this setpoint quantity is going to be adjusted alone or together with further setpoint quantities. To illustrate this difference, FIG. 4A is a plot of a family of compensation functions to be used if the air flow per unit time dp/dt is adjusted in combination with the fluid flow per unit time dq/dt. If instead the air flow per unit time dp/dt is the sole quantity that is to be adjusted in response to a speed deviation, then the compensation functions in FIG. 4B shall be used. As seen from a comparison of FIGS. 4A and 4B, the somewhat steeper slope in FIG. 4B corresponds to a relatively more vigorous response.

    [0043] With reference to the fluid flow per unit time dq/dt again, FIG. 5 depicts an alternative representation of a compensation function for one thickness value h = h.sub.0. FIG. 5 shows a hashed area enclosed by an upper bound 501 and a lower bound 502, which define a permissible range of the fluid flow per unit time for each value of the speed v in the neighborhood of the setpoint speed v*. It is noted that the spacing of the bounds 501, 502 is non-constant with respect to the speed v, which reflects that non-exact control of the fluid flow per unit time dq/dt is somewhat more acceptable for higher values in this example use case. The fact that a range of fluid flow values is allowable for each speed value v offers the robot controller 110 some freedom as to whether a small speed deviation shall be treated as negligible or shall trigger an adjustment; in this example, this freedom exists for the fluid flow but possibly not for other setpoint quantities.

    [0044] As an alternative to using a compensation function of the type illustrated in FIGS. 3-5, an incremental compensation may be applied. More precisely, letting s denote the distance traveled by the TCP 126, one realizes from the chain rule,

    [00001]dqdt=dqdsv,

    that the differential relationship

    [00002]Δdqdt=dqdsΔv

    holds for small Δv. Here dq*/ds may be understood as the setpoint fluid flow per unit distance travelled by the TCP 126 or equivalently the spray gun 122. It follows that the adjusted setpoint fluid flow per unit time can be computed as the setpoint flow per unit time dq*/dt indicated in the program with the addition of a correction term:

    [00003]dq˜dt=dqdt+dqdsvv.

    A further conclusion to be drawn from this is that the slope of the first compensation function at the setpoint speed v* is proportional to a factor representing a desired fluid flow per unit length travelled by the spray gun 122 or TCP 126. This factor may be derived from the setpoint speed and setpoint fluid flow per unit time indicated in the executing program.

    [0045] A still further alternative is to adjust the setpoint quantities on the basis of tabulated values.

    [0046] The architecture according to FIG. 6, where control algorithms suitable for controlling a robot arm and connected spray gun cooperate, will now be described. Reappearing from FIG. 1, the motion control system 112 is configured to generate a motion control signal or signals u.sub.1 to be fed to actuators in the robot arm 120, and the process control system 114 controls the spray gun 122 on the basis of adjusted and unadjusted setpoint quantities x̃, y*, z̃. These entities of the robot controller 110 operate on the basis of a program 610, which contains indications of a setpoint speed v* and three setpoint quantities x*, y*, z*. By monitoring the robot arm 120 or the motion control signal u.sub.1 (FIG. 6 depicts the former option), an estimate v of the actual speed of the robot arm 120 is fed to a comparator 620, configured to determine whether it deviates from the setpoint speed v*. If this is the case, the comparator 620 emits an activation signal u.sub.2 directed to a first compensator 631 configured to output, in an active mode, an adjusted value x̃ of the first setpoint quantity x*. The activation signal u.sub.2 from the comparator 620 furthermore activates a second compensator 632 configured to output, in the active mode, an adjusted value z̃ of the third setpoint quantity z*. The adjusted values x̃, z̃ of the first and third setpoint quantities are supplied to the process control system 114. It is noted that the motion control system 112 operates on the basis of the indications in program 610 but independently from the process control system 114. The comparator 620 and compensators 631, 632 may be implemented as application-specific circuitry or by software instructions.

    [0047] The aspects of the present disclosure have mainly been described above with reference to a few embodiments. However, as is readily appreciated by a person skilled in the art, other embodiments than the ones disclosed above are equally possible within the scope of the invention, as defined by the appended patent claims.