Robot control device and robot system

By using vibration detection and command value correction in the robot control device, the problem of vibration suppression in the robot system has been solved. Vibration can be reduced with fewer motion learning cycles, thereby improving the speed and efficiency of the robot system.

CN116615316BActive Publication Date: 2025-11-04FANUC LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180084128.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-12-21
Filing Date
2021-12-14
Publication Date
2025-11-04
Estimated Expiration
2041-12-14

AI Technical Summary

Technical Problem

In existing robotic systems, repeated actions are required to perform machine learning in order to suppress vibrations, which limits the improvement of action speed, especially when there are only a few action programs, the time required for machine learning is too long.

Method used

The robot control device uses a vibration detector to acquire the robot's vibration, extracts the vibration related to the work area, and corrects the command value based on machine learning to reduce vibration. This includes a combination of command value generation, driving, vibration acquisition, extraction, and correction components.

Benefits of technology

It enables effective reduction of robot vibration, improvement of movement speed and efficiency through fewer repetitive movements, and avoids the time consumption caused by excessive repetitive movements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116615316B_ABST
    Figure CN116615316B_ABST
Patent Text Reader

Abstract

Provided is a robot control device capable of reducing the amount of vibration of a robot through machine learning based on a small number of actions. A robot control device according to an embodiment of the present invention controls the actions of a robot based on an action program for performing work on an object moved by the robot, the action program determining a movement path including one or more work intervals in which work is performed through a plurality of passing points, the robot control device including: a command value creation unit that creates a command value indicating the state of the robot at each time based on the action program; a drive unit that drives the robot in accordance with the command value; a vibration amount acquisition unit that acquires the amount of vibration of the robot driven by the drive unit at each time; a vibration amount extraction unit that extracts the amount of vibration at the time corresponding to the work interval from the amount of vibration acquired by the vibration amount acquisition unit based on the action program; and a command value correction unit that corrects the command value based on the amount of vibration extracted by the vibration amount extraction unit.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to a robot control device and a robot system. BACKGROUND

[0002] A system such as a robot welding system that performs a desired work by moving a reference point represented by a position of a tool, a workpiece, or the like held at a front end portion of a robot along a predetermined trajectory has been widely utilized. In such a robot system, the robot is caused to act in accordance with a motion program that represents a desired trajectory with a plurality of passing points so that the front end portion of the robot sequentially passes through the plurality of passing points.

[0003] Since a robot has elasticity in its mechanical structure, although only slightly, the robot generates vibration along with its motion. When it is intended to improve work efficiency by speeding up the motion of the robot, the vibration of the robot becomes large. Thus, there has been proposed a method of correcting the acceleration / deceleration time of the robot so as to be able to suppress the vibration of the robot by learning based on a measured value of the vibration at the time of the actual motion of the robot (see, for example, Patent Literature 1).

[0004] PRIOR ART DOCUMENTS

[0005] PATENT LITERATURE

[0006] Patent Literature 1: Japanese Patent Application Laid-Open No. 2019-147197 SUMMARY

[0007] PROBLEMS TO BE SOLVED BY THE INVENTION

[0008] In order to sufficiently suppress the vibration of the robot by machine learning, it is necessary to repeatedly perform the following procedures: causing the robot to act to confirm the actually generated vibration; and correcting the command value to operate the confirmed vibration. When a plurality of motion programs are executed in the same robot system, such as in the case where the robot is used for a manufacturing line for mass production of a small number of products, it is necessary to repeat the motion for machine learning for each motion program. If the motion speed of the robot is set to be large, the number of repetitions for machine learning required to bring the vibration within the allowable range increases. Therefore, in the case where the number of times of execution of the motion program required is small, the time reduction due to the increase in the motion speed of the robot is offset by the time required for machine learning.

[0009] In view of the circumstances described above, the problem of the present application is to provide a robot control device and a robot system that can reduce the vibration of a robot by machine learning based on a smaller number of motions.

[0010] SOLUTION TO THE PROBLEM

[0011] The robot control device of one embodiment of the present application controls the motion of a robot on the basis of a motion program for performing work on an object moved by the robot, the motion program specifying a movement path including one or plural work intervals in which the work is performed by a plurality of passing points, and includes an instruction value generation section that generates an instruction value indicating a state of the robot at each time on the basis of the motion program, a drive section that drives the robot in accordance with the instruction value, a vibration amount acquisition section that acquires a vibration amount of the robot driven by the drive section at each time, a vibration amount extraction section that extracts the vibration amount at the time corresponding to the work interval from the vibration amount acquired by the vibration amount acquisition section on the basis of the motion program, and an instruction value correction section that corrects the instruction value on the basis of the vibration amount extracted by the vibration amount extraction section.

[0012] Effects of Invention

[0013] According to the present application, a robot system capable of reducing vibration by machine learning based on a small number of motions can be provided. BRIEF DESCRIPTION OF DRAWINGS

[0014] Figure 1 FIG. 1 is a schematic view showing the structure of a robot system according to one embodiment of the present application.

[0015] Figure 2 FIG. 2 is a schematic view showing a movement path of an object in the case where spot welding is performed by the robot system of FIG. 1. Figure 1

[0016] Figure 3 FIG. 4 is a schematic view showing a movement path of an object in the case where laser processing is performed by the robot system of FIG. 1. Figure 1

[0017] Figure 4 FIG. 6 is a schematic view showing a range of extracted vibration amounts in the movement path of FIG. 5. Figure 2

[0018] Figure 5 FIG. 8 is a schematic view showing a range of extracted vibration amounts in the movement path of FIG. 7. Figure 3

[0019] Figure 6 FIG. 10 is a control block diagram showing the flow of instruction value correction in the robot system of FIG. 1. Figure 1

[0020] Figure 7 FIG. 12 is a graph showing the change in the position of an object in the robot system of FIG. 1. Figure 1 DETAILED DESCRIPTION ​​​​​​

[0021] Next, an embodiment of the present application will be described with reference to the drawings. Figure 1 is a schematic view showing the configuration of a robot system 1 according to an embodiment of the present application.

[0022] The robot system 1 according to the present embodiment is provided with a robot 10, an object 20 held at the front end of the robot 10 and moved by the robot 10, a vibration detector 30 that detects a value related to the amount of vibration of the robot 10 (deviation of the theoretical position of the front end portion from the actual position), and a robot control device 40 that controls the robot 10.

[0023] As the robot 10, a vertical multi-joint robot as shown in the drawing is typically used. In the following description, although the robot 10 is described as a vertical multi-joint robot, the robot 10 can also be, for example, a horizontal multi-joint (SCARA) robot, a parallel link robot, an orthogonal coordinate robot, or the like.

[0024] The robot 10 includes a plurality of links connected by joints, and the robot 10 determines the angular position of the drive shaft of each joint in accordance with the command value input from the robot control device 40, thereby positioning the object 20 in a world coordinate system (typically, a coordinate system of the space in which the base of the robot 10 is fixed). The links and the drive mechanism of the joints of the robot 10 are slightly elastically deformed, and thus vibration can occur in conjunction with the movement of the robot 10. The vibration of the robot 10 causes the amount of vibration of the object 20.

[0025] As the object 20, a machine that performs various operations such as processing, measurement, and the like, a workpiece that is the object of the operation, or the like can be assumed, and a holder that holds them can also be used. As an example, the object 20 is illustrated in Figure 1 The object 20 in FIG. 1 is a welding head that performs spot welding by clamping a workpiece and applying a welding current.

[0026] The vibration detector 30 detects the position, acceleration, and the like of the front end portion of the robot 10 or the object 20 in the world coordinate system, which can be used to calculate the amount of vibration. In the illustrated example, the vibration detector 30 is fixed to the front end portion of the robot 10 in a manner that does not move relative to the object 20, but the vibration detector 30 can also be provided so as to be stationary in the world coordinate system.

[0027] The robot control device 40 controls the movement of the robot 10 based on a movement program in order to perform a work on the object 20 moved by the robot 10, the movement program determining a movement path including one or more work intervals in which the work is performed, by a plurality of passing points. Specifically, the robot control device 40 supplies a drive current to each drive shaft of the robot 10 in order to cause the robot 10 to move in accordance with the movement program.

[0028] The robot control device 40 can be realized by, for example, causing one or more computer devices having a memory, a CPU, an input / output interface, and the like to execute an appropriate control program. Furthermore, each structural element of the robot control device 40 described below can also be a structural element classified in terms of function, rather than a structural element that can be clearly distinguished in terms of physical structure and program structure.

[0029] The robot control device 40 includes a program storage section 41, an instruction value production section 42, an instruction value storage section 43, a drive section 44, a vibration amount acquisition section 45, a vibration amount extraction section 46, and an instruction value correction section 47.

[0030] The program storage section 41 stores a movement program. In the robot system 1, for example, a movement program for performing spot welding along a movement path as shown in FIG. 1 can be described as follows. Figure 2

[0031] (Spot welding program example)

[0032]

[0033]

[0034] The example movement program contains command statements that specify passing points of the robot 10 and command statements that indicate start and end points of learning, as in the past. In the command statements that specify the passing points of the robot 10, a command that instructs performance of a work on the object 20 can be described. In the example movement program, "position [n]" indicates a passing point defined as the nth in a table in which passing points are defined separately. The start and end points of the work interval in which the work is actually performed on the object can each be determined by any one of the passing points. Furthermore, with respect to "position [n]", on the drawing, "p[n]" is indicated for simplicity.

[0035] ​In the robot control device 40 of the present embodiment, the kind of work is described in the command sentence indicating the start point of learning. According to the kind of work described, it is possible to determine whether it is a work performed at a single pass point, such as spot welding, or a work started at any pass point and ended at another pass point, such as laser processing. In the action program illustrated, "point" at the end of the command sentence indicating the start point of learning in the 6th line is a switch indicating that the work content is spot welding and the work interval has only one pass point, i.e., the start point and the end point of the work interval are the same. In the above action program, "point [S = 1]" in the 7th line, the 9th line, and the 11th line indicates that spot welding should be performed at the pass point described in the line.

[0036] Next, an action program in which the object 20 is a laser head for continuously irradiating a workpiece with laser light to form a linear groove and laser processing is performed along a movement path as illustrated in FIG. 6, for example, is illustrated. Figure 3

[0037] (Laser Processing Program Example)

[0038]

[0039]

[0040]

[0041] In the action program illustrated, "laser processing" at the end of the command sentence indicating the start point of learning in the 3rd line is a switch indicating that the work content is laser processing, the work interval starts at the pass point in which the command indicating the start point of laser irradiation is recorded, and ends at the pass point in which the command indicating the end point of laser irradiation is recorded. In the above action program, "DO [1] = ON" in the 4th line, the 11th line, and the 19th line is a command indicating that laser irradiation starts at the pass point described in the next line, and "DO [1] = OFF" in the 8th line, the 16th line, and the 23rd line is a command indicating that laser irradiation ends at the pass point described in the previous line.

[0042] The command value creation unit 42 creates a command value indicating the state of the robot 10 at each time based on the action program. Specifically, the position that each drive shaft of the robot 10 should take at each time in the case where the object 20 moves along the path described in the action program is calculated.

[0043] The command value storage unit 43 stores the command value created by the command value creation unit 42. The command value stored in the command value storage unit 43 can be updated by the command value correction unit 47.

[0044] ​The drive section 44 drives the robot 10 in accordance with the command value stored in the command value storage section 43. Specifically, the rotational speed of the drive shaft and the drive current required for the rotational speed are calculated, and the calculated drive current is supplied to each shaft of the robot 10, so that each drive shaft of the robot 10 becomes the angular position specified by the command value.

[0045] The vibration amount acquisition section 45 acquires the vibration amount of the robot 10 driven by the drive section 44 at each timing, based on the detection value of the vibration detector 30. Specifically, in a case where the vibration detector 30 detects the position of the front end section of the robot 10 or the object 20 in the world coordinate system, the vibration amount acquisition section 45 can be configured to calculate the vibration amount based on the difference between the detection value of the vibration detector 30 and the position calculated in accordance with the command value of the robot control device 40. In addition, in a case where the vibration detector 30 detects the acceleration of the front end section of the robot 10 or the object 20, the vibration amount acquisition section 45 can also be configured to calculate the vibration amount based on the difference between the detection value of the vibration detector 30 and the acceleration calculated in accordance with the command value of the robot control device 40.

[0046] The vibration amount extraction section 46 extracts the vibration amount at the timing corresponding to the work section, from the vibration amount acquired by the vibration amount acquisition section 45, based on the motion program. Here, it is preferable to set the "timing corresponding to the work section" to the timing belonging to the entire range of the work section and the set range in which the end point coincides with the start point of the work section, that is, the set range immediately before the work section. The "set range" is a range in which it is expected that the vibration of the robot 10 at the start point of the work section will have a large influence, and the set range is determined based on a predetermined rule set in advance. Specifically, the set range can be appropriately set in accordance with the expected vibration of the robot 10, such as a certain time range, a certain movement distance range, a time range proportional to the movement speed, and the like. Furthermore, the set range can also be set to "zero", that is, set so that the extraction range of the vibration amount coincides with the work section.

[0047] In Figure 4 , the extraction range of the vibration amount in the movement path of Figure 2 is indicated by a thick line, and in Figure 5 , the extraction range of the vibration amount in the movement path of Figure 3 is indicated by a thick line. In this way, the vibration amount extraction section 46 extracts only the vibration amount in the work section in which work is performed on the object 20 and the set range immediately before the work section, and disregards the vibration amount in the section in which work is not performed other than the set range immediately before the work section.

[0048] Generally, the motion program is made to limit the speed and acceleration of the object 20 in the work section to accurately perform work on the object 20, but between the work sections, it is made in a manner not to limit the speed and acceleration in order to shorten the cycle time. According to such a motion program, immediately after starting to move from the end point of the work section to the start point of the next work section, the acceleration of the robot 10 becomes maximum, and the amount of vibration due to elastic deformation of the robot 10 easily becomes large.

[0049] The command value correction section 47 corrects the command value so as to make the amount of vibration of the robot 10 small by machine learning based on the amount of vibration extracted by the amount of vibration extraction section 46. The command value correction section 47 processes the amount of vibration at the time when the amount of vibration extraction section 46 does not extract the amount of vibration as zero. That is, the command value correction section 47 corrects the command value in such a manner that only the amount of vibration in the work section and the set range immediately before it, which can affect the accuracy of work on the object 20, is made small. On the other hand, the command value correction section 47 does not compensate for the amount of vibration in the range immediately after starting to move from the end point of the work section to the start point of the next work section, which does not affect the accuracy of work on the object 20 and in which the amount of vibration easily becomes large. Furthermore, the correction of the command value by machine learning based on the amount of vibration can be performed by a known method.

[0050] When compensating for the vibration during the period when the acceleration of the robot 10 is large, overshoot can occur when the acceleration of the robot 10 is reduced, and the amount of vibration can become large. The command value correction section 47 allows such vibration during the period when the acceleration of the robot 10 is large, and thus can prevent the situation where the amount of vibration increases due to overshoot caused by vibration compensation within the work section. Furthermore, during the period when the object 20 is moved between the work section and the next work section without performing work, even if a deviation occurs between the actual position of the robot 10 and the position expected according to the motion program, it does not affect the result of work.

[0051] In Figure 6 , the flow of command value correction in the robot system 1 is represented by a control block diagram. By thus masking a part of the detection value of the vibration detector 30 by the amount of vibration extraction section 46, and then correcting the command value by the command value correction section 47, it is possible to effectively reduce the vibration of the robot 10 in the work section by machine learning based on a smaller number of motions.

[0052] In Figure 7An example of a time change in the position of the object 20 in spot welding by the robot system 1 is shown in a graph. In the graph, a position change based on a command value before correction according to the action program, a position change based on a command value after correction by three actions to mitigate vibration in the entire range, and a position change based on a command value after correction by three actions to mitigate vibration only in the work range and the set range are shown. In this example, the time of the work range (passing point of spot welding) is 1.5 seconds, and the time of the start of the set range is 0.7 seconds.

[0053] As shown in the graph, by the vibration amount extraction section 46 extracting only the vibration amount of the work range and the set range to correct the command value, it is possible to greatly suppress vibration at the time point of performing spot welding.

[0054] The above, although the robot system of the present disclosure has been described with respect to the embodiments of the robot system of the present disclosure, the scope of the present disclosure is not limited to the described embodiments. In addition, the effects described in the described embodiments are only examples of the most ideal effects produced by the robot system to which the present disclosure relates, and the effects of the robot system to which the present disclosure relates are not limited to the effects described in the described embodiments.

[0055] Explanation of Reference Signs

[0056] 1: robot system; 10: robot; 20: object; 30: vibration detector; 40: robot control device; 41: program storage section; 42: command value creation section; 43: command value storage section; 44: drive section; 45: vibration amount acquisition section; 46: vibration amount extraction section; 47: command value correction section.

Claims

1. A robot control device that controls an action of a robot based on an action program in order to perform work on an object that moves by the robot, the action program determining a movement path including one or more work intervals in which the work is performed by a plurality of passing points, the robot control device comprising: an instruction value production section that produces an instruction value that indicates a state of the robot at each time based on the action program; a drive section that drives the robot in accordance with the instruction value; a vibration amount acquisition section that acquires a vibration amount of the robot that is driven by the drive section at each time; a vibration amount extraction section that extracts, based on the action program, the vibration amount of the times that belong to the work interval and a prescribed range immediately before the work interval from among the vibration amounts acquired by the vibration amount acquisition section; and an instruction value correction section that corrects the instruction value based on the vibration amount extracted by the vibration amount extraction section.

2. The robot control device according to claim 1, wherein the start point and the end point of the work interval are determined by any one of the passing points.

3. The robot control device according to claim 1 or 2, wherein the start point and the end point of the work interval are determined by a command that indicates execution of the work described in the action program.

4. The robot control device according to claim 1 or 2, wherein the vibration amount extraction section extracts the vibration amount of the times that belong to the entire range of the work interval and a prescribed range whose end point coincides with the start point of the work interval.

5. The robot control device according to claim 3, wherein the vibration amount extraction section extracts the vibration amount of the times that belong to the entire range of the work interval and a prescribed range whose end point coincides with the start point of the work interval.

6. A robot system comprising: the robot control device according to any one of claims 1 to 5; a robot that is controlled by the robot control device; and a vibration detector that detects a value related to a vibration amount of the robot. ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​

Citation Information

Patent Citations

  • Work device using parallel link mechanism, and control method of the same

    JP2019147197A

  • Robot and method of controlling the same

    CN108568814A