Robot control method and robot system
Patent Information
- Application Number
- JP2023156379
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-21
- Publication Date
- 2026-08-26
AI Technical Summary
Existing robot control methods are ineffective in reducing vibrations in directions other than the operation direction, leading to unstable arm movement and a risk of decreasing the vibration-damping effect.
A robot control method that involves receiving inertial information from an inertial sensor, adjusting the feedback gain in response to changes in arm operation, and controlling the arm driving using the increased feedback gain, followed by a subsequent adjustment of the feedback gain after a predetermined time.
The method effectively suppresses residual vibrations and enhances the vibration suppression effect of the arm by dynamically adjusting the feedback gain in response to changes in arm movement.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a robot control method and a robot system. [Background technology]
[0002] The robot described in Patent Document 1 includes a base, a first arm rotatably connected to the base, a first motor for driving the first arm, a first angle sensor for detecting the rotation angle of the first motor, a first angular velocity sensor for detecting the angular velocity of the first arm relative to the base, a second arm rotatably connected to the first arm, a second motor for driving the second arm, a second angle sensor for detecting the rotation angle of the second motor, and a second angular velocity sensor for detecting the angular velocity of the second arm relative to the first arm. The output of the first angle sensor and the output of the first angular velocity sensor are used to detect the rotation angle of the first arm, and the output of the second angle sensor and the output of the second angular velocity sensor are used to detect the rotation angle of the second arm. Furthermore, the detection results are fed back to perform vibration suppression control of the robot. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2005-242794 A Summary of the Invention [Problem to be solved by the invention]
[0004] However, the above-mentioned method can reduce vibrations in the movement direction of the first and second arms, but cannot reduce vibrations in other directions, such as vibrations along the rotation axis. Furthermore, when vibrations occur in a direction different from the movement direction, the above-mentioned method feeds back the vibrations, which may cause the movement of the first and second arms to become unstable and reduce the vibration damping effect. In other words, the method of Patent Document 1 cannot provide excellent vibration damping control. [Means for solving the problem]
[0005] The method for controlling a robot of the present invention includes the steps of: receiving an output signal from an inertial sensor that measures an arm movement; a first feedback gain adjustment step of performing an adjustment to increase a feedback gain by which the output signal or a signal generated from the output signal is multiplied in response to a change in the operation of the arm; a drive control step of controlling drive of the arm by using the feedback gain increased in the first feedback gain adjustment step; and a second feedback gain adjusting step of adjusting the feedback gain to decrease the feedback gain after a predetermined time has elapsed since the first feedback gain adjusting step.
[0006] The robot system of the present invention includes a base and an arm that moves relative to the base; an inertial sensor for detecting the movement of the arm; A control unit that controls the drive of the arm, The control unit is receiving an output signal from the inertial sensor; adjusting the feedback gain by which the output signal or a signal generated from the output signal is multiplied in response to a change in the operation of the arm, controlling the drive of the arm using the adjusted feedback gain; After a predetermined time has elapsed since the feedback gain was increased, the feedback gain is adjusted to be decreased. [Brief description of the drawings]
[0007] [Figure 1] 1 is a block diagram showing a configuration of a robot system according to a first embodiment. [Diagram 2] FIG. 2 is a diagram showing a robot included in the robot system of FIG. [Diagram 3] 2 is a block diagram showing a control unit of the robot system of FIG. 1. [Figure 4] FIG. 1 is a diagram showing a two-inertia system model of a rotating part of a robot. [Diagram 5] 13 is a graph showing changes in the angular acceleration command Aref, the driving element angular velocity ωm, the driven element angular velocity ωl, and the deflection angular velocity ωd during PTP operation of the arm. [Figure 6] 13 is a timing chart showing an example of a process for adjusting a flexure angular velocity feedback gain Kgp. [Figure 7] 13 is a graph showing the residual vibration suppression effect of the arm. [Figure 8] 1 is a flowchart showing a method for controlling a robot. [Figure 9] 13 is a timing chart showing an example of a process for adjusting a flexure angular velocity feedback gain Kgp, which is performed in a robot system according to a second embodiment. [Figure 10] 13 is a timing chart showing an example of a process for adjusting a flexure angular velocity feedback gain Kgp, which is performed in a robot system according to a third embodiment. [Figure 11] 13 is a timing chart showing an example of a process for adjusting a deflection angular velocity feedback gain Kgp, which is performed in a robot system according to a fourth embodiment. [Figure 12] 13 is a timing chart showing an example of a process for adjusting a deflection angular velocity feedback gain Kgp, which is performed in a robot system according to a fifth embodiment. [Figure 13] 13 is a timing chart showing an example of a process for adjusting a deflection angular velocity feedback gain Kgp, which is performed in a robot system according to a sixth embodiment. [Figure 14] 13 is a timing chart showing an example of a process for adjusting a flexure angular velocity feedback gain Kgp, which is performed in a robot system according to the seventh embodiment. [Figure 15] 13 is a timing chart showing an example of a process for adjusting a deflection angular velocity feedback gain Kgp, which is performed in a robot system according to the eighth embodiment. [Figure 16] 13 is a timing chart showing an example of a process for adjusting a deflection angular velocity feedback gain Kgp, which is performed in a robot system according to a ninth embodiment. [Figure 17] 23 is a timing chart showing an example of a process for adjusting a deflection angular velocity feedback gain Kgp, which is performed in a robot system according to a tenth embodiment. [Figure 18] 23 is a timing chart showing an example of a process for adjusting a deflection angular velocity feedback gain Kgp, which is performed in a robot system according to an eleventh embodiment. [Figure 19] FIG. 23 is a diagram showing a robot included in a robot system according to a twelfth embodiment. [Figure 20] FIG. 20 is a block diagram showing a control unit of the robot system of FIG. 19. [Figure 21] FIG. 1 is a diagram showing a two-inertia system model of a linear motion part of a robot. [Figure 22] 11 is a graph showing changes in acceleration command Aref', speed V1, and speed V2 during operation of the spline shaft. [Figure 23] 13 is a timing chart showing an example of a process for adjusting a flexure angular velocity feedback gain Kgp. [Figure 24] 5 is a graph showing the residual vibration suppression effect of the spline shaft. [Diagram 25] FIG. 23 is a diagram showing a robot included in a robot system according to a thirteenth embodiment. [Figure 26] FIG. 23 is a diagram showing a robot included in a robot system according to a fourteenth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0008] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a robot control method and a robot system according to the present invention will be described in detail based on the embodiments shown in the accompanying drawings.
[0009] FIG. 1 is a block diagram showing a configuration of a robot system according to a first embodiment. FIG. 2 is a diagram showing a robot included in the robot system of FIG. 1. FIG. 3 is a block diagram showing a control unit included in the robot system of FIG. 1. FIG. 4 is a diagram showing a two-inertia system model of a rotating part of a robot. FIG. 5 is a graph showing changes in an angular acceleration command Aref, a driving element angular velocity ωm, a driven element angular velocity ωl, and a deflection angular velocity ωd during PTP operation of an arm. FIG. 6 is a timing chart showing an example of a process for adjusting a deflection angular velocity feedback gain Kgp. FIG. 7 is a graph showing a residual vibration suppression effect of an arm. FIG. 8 is a flowchart showing a method for controlling a robot.
[0010] The robot system 1 shown in Fig. 1 includes a robot 2, a control device 3, a host computer 4, and a teaching pendant 5. A program for operating the robot 2 is created in the host computer 4. The teaching pendant 5 is used to teach the robot 2 an operation. The control device 3 also includes a control unit 30 that controls the driving of the robot 2 based on the program created in the host computer 4.
[0011] <Robot 2> As shown in FIG. 2, the robot 2 includes a base 21 fixed to the floor, an arm 22 whose base end is connected to the base 21 and rotates around a rotation axis J along a vertical direction relative to the base 21, a drive mechanism 23 that rotates the arm 22 around the rotation axis J relative to the base 21, and an inertia sensor 24 disposed at the tip of the arm 22. The drive mechanism 23 also includes a reducer 231 that connects the base 21 and the arm 22, a motor 232 having a rotation shaft connected to the input side of the reducer 231, and a position detector 233 that detects the rotation angle of the rotation shaft of the motor 232. The inertia sensor 24 is an angular velocity sensor that detects the angular velocity of the arm 22 around the rotation axis J. Here, the inertia sensor 24 can be said to be an inertia sensor that measures the movement of the arm that rotates the arm 22 around the rotation axis J. The output signal from the inertia sensor 24 includes information on the inertia generated in the arm 22 due to the movement of the arm 22, that is, inertia information. The inertial information indicates information on inertia such as angular velocity and acceleration, and the inertial sensor 24 can be said to be a sensor that transmits the inertial information. In this embodiment, angular velocity is used as the inertial information.
[0012] For ease of explanation, hereinafter, the rotation angle of the rotation shaft of the motor 232 is also simply referred to as the "rotation angle of the motor 232", and the rotation shaft of the motor 232 is also simply referred to as the "motor shaft".
[0013] <Control device 3> The control device 3 is, for example, configured from a computer, and has a processor for processing information, a memory communicatively connected to the processor, and an external interface. In addition, various programs executable by the processor are stored in the memory, and the processor can read and execute the various programs stored in the memory.
[0014] Such a control device 3 has a control unit 30 that controls the driving of the drive mechanism 23. The control unit 30 has a circuit configuration shown in Fig. 3. The control unit 30 has a position command generation unit 31, a position control unit 32, a speed control unit 33, a current control unit 34, and a flexure angular velocity feedback generation unit 35.
[0015] The flexure angular velocity feedback generator 35 first obtains a motor-shaft-converted arm angular velocity 912 by multiplying the angular velocity 911 of the arm 22 detected by the inertial sensor 24 by the arm angular velocity scaling coefficient Kgs. The flexure angular velocity feedback generator 35 also obtains a motor-shaft angular velocity 913, which is the angular velocity of the motor shaft, by time-differentiating the motor shaft position 902, which is the rotation angle of the motor 232 detected by the position detector 233. Next, the flexure angular velocity feedback generator 35 obtains a flexure angular velocity 914 by subtracting the motor shaft angular velocity 913 from the motor-shaft-converted arm angular velocity 912. Next, the flexure angular velocity feedback generator 35 multiplies the flexure angular velocity 914 by a flexure angular velocity feedback gain Kgp (flexure angular velocity feedback base gain Kgpb and flexure angular velocity feedback gain coefficient Kgpc), which is a feedback gain, to obtain a flexure angular velocity feedback 915. By using the deflection angular velocity feedback 915 thus determined, it is possible to enhance the effect of suppressing vibration of the arm 22, as will be described later.
[0016] The position command generating unit 31 generates a position command 901 for the motor 232 based on a program created by the host computer 4 .
[0017] Position control unit 32 first obtains position deviation 903 by subtracting motor shaft position 902 (rotation angle of motor 232) detected by position detector 233 from position command 901. Next, position control unit 32 obtains speed command 904 by multiplying position deviation 903 by position loop proportional gain Kpp.
[0018] The speed control unit 33 is configured with proportional-integral control. First, the speed control unit 33 calculates a speed loop command 905 by adding a speed command 904 and a flexure angular velocity feedback 915 generated by the flexure angular velocity feedback generation unit 35. Next, the speed control unit 33 calculates a current command 906 by adding an integral term obtained by multiplying the integral value of the speed loop command 905 by a speed loop integral gain Kvi to a proportional term obtained by multiplying the speed loop command 905 by a speed loop proportional gain Kvp.
[0019] The current control unit 34 controls the current 907 that drives the motor 232 so that it coincides with the current command 906, that is, so that the current 907 follows the current command 906. The motor 232 is driven by the current 907 controlled by the current control unit 34, and the load 29 connected to the motor 232 rotates. Here, the load 29 is the sum of the inertia moments of the motor shaft and the driving elements (the reducer 231, the arm 22, the inertia sensor 24, etc.) connected to the motor shaft.
[0020] The circuit configuration of the control unit 30 has been briefly described above. Next, Fig. 4 shows a two-inertia system model 600 of the rotating unit of the robot 2. In this two-inertia system model 600, a driving element 601 having a motor shaft side moment of inertia Jm and a driven element 602 having a load side moment of inertia Jl are connected by a spring element 603 with a spring constant Ks. In this two-inertia system model 600, the driving element 601 and the driven element 602 rotate around a rotation axis 604, and the spring element 603 is torsionally deformed around the rotation axis 604 due to the rotation.
[0021] In the robot 2, the spring element 603 is mainly composed of the motor shaft, the reducer 231, and the arm 22. Therefore, the spring constant Ks is a composite value of the spring constants due to the deformations of the motor shaft, the reducer 231, and the arm 22. In the robot 2, the motor shaft side moment of inertia Jm is mainly the moment of inertia of the motor shaft. In the robot 2, the load side moment of inertia Jl is the sum of the moments of inertia around the rotation axis J of the driving elements connected to the motor shaft, that is, mainly the reducer 231, the arm 22, and the inertia sensor 24.
[0022] In addition, in the robot 2, a motor-shaft converted arm angular velocity 912 obtained by multiplying the angular velocity 911 of the arm 22 detected by the inertial sensor 24 by the arm angular velocity scaling coefficient Kgs corresponds to the angular velocity of the driven element 602 about the rotation axis 604, that is, the driven element angular velocity ωl. Meanwhile, in the robot 2, a motor-shaft angular velocity 913 obtained by time-differentiating the motor-shaft position 902 detected by the position detector 233 corresponds to the angular velocity of the driving element 601 about the rotation axis 604, that is, the driving element angular velocity ωm. In addition, a driving torque for the driving element 601 to rotate the driven element 602 acts on the spring element 603. Therefore, a twist occurs in the spring element 603. The deflection angular velocity ωd, which is the velocity at which the spring element 603 twists, can be obtained by subtracting the driving element angular velocity ωm of the driving element 601 from the driven element angular velocity ωl of the driven element 602, as shown in the following equation (1).
[0023] ωd = ωl - ωm … (1)
[0024] Here, when the vibration of the driven element 602 caused by the torsion of the spring element 603 is defined as "flexural vibration", the main cause of the vibration of the arm 22 is this "flexural vibration". Therefore, by damping the flexural vibration, the vibration of the arm 22 can be effectively suppressed, and an excellent vibration suppression effect can be exhibited. The flexural angular velocity feedback 915 generated by the flexural angular velocity feedback generating unit 35 has the effect of damping such flexural vibration, and the damping rate of the flexural vibration is adjusted by changing the flexural angular velocity feedback gain Kgp according to the angular velocity of the arm 22.
[0025] Next, the flexure angular velocity feedback gain Kgp will be described in detail. The flexure angular velocity feedback gain Kgp is obtained by multiplying a flexure angular velocity feedback base gain Kgpb, which is a feedback base gain, by a flexure angular velocity feedback gain coefficient Kgpc, which is a feedback gain coefficient. In other words, the flexure angular velocity feedback gain Kgp is expressed by the following formula (2).
[0026] Kgp = Kgpc × Kgpb…(2)
[0027] Of these, the flexure angular velocity feedback base gain Kgpb is adjusted in accordance with the posture of the load 29 and the arm 22, and is kept constant in this embodiment. In contrast to this, the flexure angular velocity feedback gain coefficient Kgpc is changed in accordance with the rotation direction of the arm 22, that is, the angular velocity about the rotation axis J. In this way, according to the method of changing the flexure angular velocity feedback gain coefficient Kgpc while keeping the flexure angular velocity feedback base gain Kgpb constant, it becomes easy to adjust the flexure angular velocity feedback gain Kgp. Below, the timing for changing the flexure angular velocity feedback gain coefficient Kgpc will be described in detail.
[0028] 5 shows changes in the angular acceleration command Aref, the driving element angular velocity ωm, the driven element angular velocity ωl, and the deflection angular velocity ωd during PTP (point-to-point) operation of the arm 22. For ease of explanation, the deflection angular velocity ωd is shown on an enlarged scale relative to the driven element angular velocity ωl and the driving element angular velocity ωm.
[0029] As shown in the figure, the angular acceleration command Aref changes at an angular acceleration increase start point N1s and an angular acceleration increase end point N1e at the start of acceleration, an angular acceleration decrease start point N2s and an angular acceleration decrease end point N2e at the end of acceleration, an angular acceleration increase start point N3s and an angular acceleration increase end point N3e at the start of deceleration, and an angular acceleration decrease start point N4s and an angular acceleration decrease end point N4e at the end of deceleration. In addition, there is a section where the speed is constant between the angular acceleration decrease end point N2e and the angular acceleration increase start point N3s.
[0030] The vibration of the flexural angular velocity ωd (hereinafter also referred to as "flexural vibration") increases from the angular acceleration change points where the angular acceleration command Aref changes, that is, the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s and the angular acceleration decrease end point N4e. This is a phenomenon that occurs when the spring element 603 twists at the above eight points because the driving torque that accelerates and decelerates the driven element 602 is transmitted to the driving element 601 via the spring element 603.
[0031] Therefore, in the robot system 1, the flexural angular velocity feedback gain Kgp is increased at a timing determined based on each of the eight points N1s, N1e, N2s, N2e, N3s, N3e, N4s, and N4e where the flexural vibration increases, thereby reducing the vibration of the driven element 602, i.e., the arm 22.
[0032] Specifically, the deflection angular velocity feedback gain Kgp is increased and the vibration of the arm 22 is reduced starting from a first timing T1 determined based on the angular acceleration increase start point N1s, a second timing T2 determined based on the angular acceleration increase end point N1e, a third timing T3 determined based on the angular acceleration decrease start point N2s, a fourth timing T4 determined based on the angular acceleration decrease end point N2e, a fifth timing T5 determined based on the angular acceleration increase start point N3s, a sixth timing T6 determined based on the angular acceleration increase end point N3e, a seventh timing T7 determined based on the angular acceleration decrease start point N4s, and an eighth timing T8 determined based on the angular acceleration decrease end point N4e.
[0033] Conventionally, the deflection angular velocity feedback gain Kgp has been adjusted in accordance with the posture of the robot 2 and the magnitude of the load 29, but it has not been adjusted in accordance with the angular velocity of the arm 22 as in this embodiment.
[0034] In this embodiment, the first timing T1 is set to the same time as the angular acceleration increase start point N1s, the second timing T2 is set to the same time as the angular acceleration increase end point N1e, the third timing T3 is set to the same time as the angular acceleration decrease start point N2s, the fourth timing T4 is set to the same time as the angular acceleration decrease end point N2e, the fifth timing T5 is set to the same time as the angular acceleration increase start point N3s, the sixth timing T6 is set to the same time as the angular acceleration increase end point N3e, the seventh timing T7 is set to the same time as the angular acceleration decrease start point N4s, and the eighth timing T8 is set to the same time as the angular acceleration decrease end point N4e. This makes it possible to increase the deflection angular velocity feedback gain Kgp without delay for each of the angular acceleration change points, i.e., the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s, and the angular acceleration decrease end point N4e, thereby achieving a greater vibration suppression effect.
[0035] However, without being limited thereto, for example, the first timing T1 may be a time later than the angular acceleration increase start point N1s by a predetermined time Δt, or may be a time earlier than the angular acceleration increase start point N1s by a predetermined time Δt. This also applies to the second, third, fourth, fifth, sixth, seventh, and eighth timings T2, T3, T4, T5, T6, T7, and T8 other than the first timing T1. In addition, the predetermined time Δt may be different between two or more timings arbitrarily selected from the first, second, third, fourth, fifth, sixth, seventh, and eighth timings T1, T2, T3, T4, T5, T6, T7, and T8.
[0036] For ease of explanation, in the following, the first timing T1 will be referred to as the angular acceleration increase start point N1s, the second timing T2 as the angular acceleration increase end point N1e, the third timing T3 as the angular acceleration decrease start point N2s, the fourth timing T4 as the angular acceleration decrease end point N2e, the fifth timing T5 as the angular acceleration increase start point N3s, the sixth timing T6 as the angular acceleration increase end point N3e, the seventh timing T7 as the angular acceleration decrease start point N4s, and the eighth timing T8 as the angular acceleration decrease end point N4e.
[0037] Here, possible destabilizing factors of control that may occur by increasing the flexure angular velocity feedback gain Kgp include, for example, (A) physical destabilization of control due to elements constituting the drive system, and (B) reduced control stability due to intrusion of vibration in a direction different from the rotation direction. The instability factor (A) refers to destabilization of the flexure angular velocity feedback control determined by the motor shaft side inertia moment Jm, the load side inertia moment Jl, and the spring constant Ks in the two-inertia system model 600. On the other hand, the destabilization factor (B) refers to destabilization of the flexure angular velocity feedback control due to the arm 22 vibrating in a direction different from the rotation direction, particularly in the vertical direction, due to elastic deformation of each element constituting the robot 2, and the inertial sensor 24 detecting the vibration (hereinafter also referred to as "vibration in a non-rotation direction") as noise, and the control unit 30 using this noise for control. The vibration in the non-rotation direction occurs due to intrusion of the flexure vibration in the rotation direction. Therefore, the increase in vibration in the non-rotational direction increases with a delay relative to the increase in bending vibration in the rotational direction.
[0038] Therefore, in the robot system 1, the characteristic that the vibration in the non-rotational direction increases with a delay compared to the bending vibration in the rotational direction is effectively utilized, and the bending vibration in the rotational direction is damped by temporarily increasing the bending angular velocity feedback gain Kgp at the above-mentioned eight angular acceleration change points at which the bending vibration in the rotational direction increases, that is, the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s, and the angular acceleration decrease end point N4e, are used as starting points to suppress the instability of the control due to the expansion of the vibration in the non-rotational direction. In this way, by temporarily increasing the bending angular velocity feedback gain Kgp, the bending angular velocity feedback gain Kgp can be lowered again when the vibration in the non-rotational direction increases, and the influence of the instability factor (B) can be reduced, preferably eliminated.
[0039] Conventionally, it was not possible to increase the flexure angular velocity feedback gain Kgp to the limit value (maximum value) of the destabilization factor (A) due to the destabilization factor (B). In contrast, according to the control method of the present embodiment as described above, the influence of the destabilization factor (B) is reduced as described above, so that the flexure angular velocity feedback gain Kgp can be increased to the limit value of the destabilization factor (A). Therefore, it is possible to set the flexure angular velocity feedback gain Kgp higher than conventionally without causing destabilization of the control, and it is possible to enhance the vibration suppression effect of the arm 22.
[0040] Fig. 6 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp using the above-mentioned eight points, which are the change points of the angular acceleration command Aref, that is, the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s, and the angular acceleration decrease end point N4e as starting points. Fig. 6 shows the changes of the angular acceleration command Aref, the velocity command Vref, and the angular velocity feedback gain coefficient Kgpc.
[0041] In the illustrated example, the deflection angular velocity feedback gain coefficient Kgpc is increased from a reference value of 1 to 3 for only a time dt (seconds) starting from all of the points of the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s, and the angular acceleration decrease end point N4e. Then, after the time dt has elapsed since the deflection angular velocity feedback gain coefficient Kgpc was increased from 1 to 3, the deflection angular velocity feedback gain coefficient Kgpc is decreased from 3 to 1, that is, to the reference value. Therefore, the control unit 30 controls the driving of the motor 232 using the deflection angular velocity feedback gain coefficient Kgpc=3 until the deflection angular velocity feedback gain coefficient Kgpc is increased from 1 to 3 and decreased to 1 again, and controls the driving of the motor 232 using the deflection angular velocity feedback gain coefficient Kgpc=1 for the rest of the time. In this manner, by increasing or decreasing the flexure angular velocity feedback gain coefficient Kgpc relative to the reference value 1, adjustment of the flexure angular velocity feedback gain coefficient Kgpc becomes easy.
[0042] The flexure angular velocity feedback gain Kgp is obtained by multiplying the flexure angular velocity feedback base gain Kgpb by the flexure angular velocity feedback gain coefficient Kgpc as shown in the above formula (2). Therefore, while the flexure angular velocity feedback gain coefficient Kgpc is increased to 3, the flexure angular velocity feedback gain Kgp is increased by three times. By increasing the flexure angular velocity feedback gain Kgp by three times, the effect of damping the flexure vibration is enhanced, and it is possible to reduce the flexure vibration during operation that increases from each of the angular acceleration change points of the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, and the angular acceleration increase end point N3e, and the residual vibration during stoppage that increases from each of the angular acceleration change points of the angular acceleration decrease start point N4s and the angular acceleration decrease end point N4e.
[0043] Adjustment of the flexure angular velocity feedback gain coefficient Kgpc at the angular acceleration increase start point N1s and the angular acceleration increase end point N1e has the effect of reducing flexure vibration during acceleration operation of the arm 22. Adjustment of the flexure angular velocity feedback gain coefficient Kgpc at the angular acceleration decrease start point N2s and the angular acceleration decrease end point N2e has the effect of reducing flexure vibration during constant speed operation of the arm 22. Adjustment of the flexure angular velocity feedback gain coefficient Kgpc at the angular acceleration increase start point N3s and the angular acceleration increase end point N3e has the effect of reducing flexure vibration during deceleration operation of the arm 22. Adjustment of the flexure angular velocity feedback gain coefficient Kgpc at the angular acceleration decrease start point N4s and the angular acceleration decrease end point N4e has the effect of reducing residual vibration of the arm 22.
[0044] In the illustrated example, the flexure angular velocity feedback gain coefficient Kgpc is increased from 1 to 3 starting from all of the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s, and the angular acceleration decrease end point N4e, but is not limited thereto, and it is sufficient to increase the flexure angular velocity feedback gain coefficient Kgpc from 1 to 3 starting from at least one of these eight points. This makes it possible to effectively suppress at least the vibration that increases starting from that point. Also, in the illustrated example, the flexure angular velocity feedback gain coefficient Kgpc is increased to 3, but the value of the flexure angular velocity feedback gain coefficient Kgpc is not particularly limited.
[0045] If the time dt during which the flexural angular velocity feedback gain coefficient Kgpc is increased to 3 is too long, the vibration in the non-rotation direction increases during that time, which may cause the flexural angular velocity feedback control to become unstable. On the other hand, if the time dt is too short, the vibration suppression effect described above may not be fully exhibited. Therefore, it is necessary to set the time dt appropriately. The time dt is not particularly limited and varies depending on the configuration of the robot 2 and the operation of the arm 22, but is preferably, for example, about 0.1 seconds or more and 2 seconds or less, which corresponds to 0.1 to 2 times the natural vibration period of the flexural vibration. Also, in this embodiment, the time dt is equal at all points of the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s, and the angular acceleration decrease end point N4e. This simplifies the process of adjusting the flexural angular velocity feedback gain coefficient Kgpc.
[0046] FIG. 7 is a graph showing the residual vibration suppression effect of the arm 22, comparing the residual vibration in the rotation direction generated at the tip of the arm 22 in the case A where the flexure angular velocity feedback gain Kgp is kept constant and the case B where the flexure angular velocity feedback gain Kgp is changed in synchronization with the angular acceleration change as in this embodiment. When the flexure angular velocity feedback gain Kgp is kept constant, an overshoot occurs beyond the target position, and the residual vibration is then attenuated and the arm stops at the target position. In contrast, when the flexure angular velocity feedback gain Kgp is changed in synchronization with the angular acceleration change as in this embodiment, the arm stops quickly at the target position with almost no overshoot or residual vibration. This shows that an excellent vibration suppression effect is achieved.
[0047] For example, when performing a part assembly task using the robot 2, an excessive force is applied to the workpiece due to overshoot, causing the workpiece to be damaged or the workpiece to be assembled in a variable position, resulting in a decrease in product quality. In addition, residual vibration extends the takt time of the assembly task, resulting in a decrease in productivity. For this reason, the robot system 1, which does not cause overshoot, can produce high-quality products with high productivity.
[0048] In this embodiment, the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s, and the angular acceleration decrease end point N4e are detected based on the angular acceleration command Aref, which is a position command for the arm 22. According to this method, the points N1s, N1e, N2s, N2e, N3s, N3e, N4s, and N4e can be detected more accurately. Therefore, a higher vibration suppression effect can be achieved with excellent reproducibility.
[0049] However, the method of detecting each of the points N1s, N1e, N2s, N2e, N3s, N3e, N4s, and N4e is not particularly limited. For example, each of the points N1s, N1e, N2s, N2e, N3s, N3e, N4s, and N4e may be detected using acceleration obtained by second-order differentiation of the motor shaft position 902 detected by the position detector 233. However, the acceleration obtained by second-order differentiation of the motor shaft position 902 has a large ripple (pulsating AC component), and the detection accuracy of each of the points N1s, N1e, N2s, N2e, N3s, N3e, N4s, and N4e may be inferior to that of detection based on the angular acceleration command Aref. Therefore, it is more preferable to detect each of the points N1s, N1e, N2s, N2e, N3s, N3e, N4s, and N4e based on the angular acceleration command Aref.
[0050] From the above description, it can be said that the control method of the robot 2 as described above includes an inertial information receiving step S1 for receiving an angular velocity 911, which is an output signal from the inertial sensor 24 that measures the movement of the arm 22, a first feedback gain adjusting step S2 for making an adjustment to increase a deflection angular velocity feedback gain Kgp to be multiplied by the angular velocity 911 or a signal generated from the angular velocity 911 in accordance with a change in the angular velocity of the arm 22 (in this embodiment, a deflection angular velocity 914 generated from the angular velocity 911), a drive control step S3 for controlling the drive of the arm 22 using the deflection angular velocity feedback gain Kgp increased in the first feedback gain adjusting step S2, and a second feedback gain adjusting step S4 for making an adjustment to decrease the deflection angular velocity feedback gain Kgp after a time dt has elapsed since the first feedback gain adjusting step S2. According to such a control method, the deflection angular velocity feedback gain Kgp can be increased to the limit value of the destabilization factor (A) without causing destabilization of the control. Therefore, the flexure angular velocity feedback gain Kgp can be set higher than in the past, and the vibration of the arm 22 can be suppressed more effectively.
[0051] The robot system 1 has been described above. The control method for the robot 2 used in such a robot system 1 includes, as described above, an inertial information receiving step S1 for receiving the angular velocity 911 included in the output signal from the inertial sensor 24 that measures the movement of the arm 22, a first feedback gain adjusting step S2 for performing an adjustment to increase the deflection angular velocity feedback gain Kgp, which is a feedback gain to be multiplied by the angular velocity 911 or a signal generated from the angular velocity 911, in this embodiment, the deflection angular velocity 914 generated from the angular velocity 911, in response to a change in the movement of the arm 22, a drive control step S3 for controlling the drive of the arm 22 using the deflection angular velocity feedback gain Kgp increased in the first feedback gain adjusting step S2, and a second feedback gain adjusting step S4 for performing an adjustment to decrease the deflection angular velocity feedback gain Kgp after a predetermined time dt has elapsed since the first feedback gain adjusting step S2. According to such a control method, it is possible to increase the deflection angular velocity feedback gain Kgp to the limit value of the destabilization factor (A) without causing destabilization of the control. Therefore, the flexure angular velocity feedback gain Kgp can be set higher than in the past, and the vibration of the arm 22 can be suppressed more effectively.
[0052] As described above, in the control method for the robot 2, in the first feedback gain adjustment step S2, the flexure angular velocity feedback gain coefficient Kgpc is changed from the reference value of 1 to a value higher than the reference value, and in the second feedback gain adjustment step S4, the flexure angular velocity feedback gain coefficient Kgpc is returned to the reference value of 1. This makes it easy to adjust the flexure angular velocity feedback gain Kgp.
[0053] As described above, the output signal from the inertial sensor 24 includes inertia information, that is, angular velocity, which is information about the inertia occurring in the arm 22 due to the movement of the arm 22. In the control method for the robot 2, the first feedback gain adjustment step S2 includes an angular acceleration increase start point N1s, which is a first timing T1 at which the angular velocity starts to increase when the acceleration of the arm 22 starts, an angular acceleration increase end point N1e, which is a second timing T2 at which the increase in the angular velocity ends when the acceleration of the arm 22 starts, an angular acceleration decrease start point N2s, which is a third timing T3 at which the angular velocity starts to decrease when the acceleration of the arm 22 ends, and a fourth timing T4 at which the decrease in the angular velocity ends when the acceleration of the arm 22 ends. The angular acceleration increase start point N2e is set at at least one of the angular acceleration increase start point N3s, which is a fifth timing T5 at which the increase in the angular velocity starts when the deceleration of the arm 22 starts, the angular acceleration increase start point N3e, which is a sixth timing T6 at which the increase in the angular velocity ends when the deceleration of the arm 22 starts, the angular acceleration decrease start point N4s, which is a seventh timing T7 at which the decrease in the angular velocity starts when the deceleration of the arm 22 ends, and the angular acceleration decrease end point N4e, which is an eighth timing T8 at which the decrease in the angular velocity ends when the deceleration of the arm 22 ends. This makes it possible to effectively reduce vibration that increases from each of these points.
[0054] As described above, in the control method for the robot 2, the flexure angular velocity feedback gain Kgp is obtained by multiplying the flexure angular velocity feedback base gain Kgpb, which is a feedback base gain serving as a reference for the flexure angular velocity feedback gain Kgp, by the flexure angular velocity feedback gain coefficient Kgpc, which is a feedback gain coefficient. Then, in the first feedback gain adjustment step S2 and the second feedback gain adjustment step S4, the flexure angular velocity feedback gain Kgp is adjusted by changing the flexure angular velocity feedback gain coefficient Kgpc, respectively. This makes it easy to adjust the flexure angular velocity feedback gain Kgp.
[0055] As described above, in the control method for the robot 2, the change in the angular velocity of the arm 22 is detected based on the angular acceleration command Aref, which is a position command for the arm 22. According to this method, it is possible to more accurately detect the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s, and the angular acceleration decrease end point N4e. Therefore, it is possible to achieve a higher vibration suppression effect with excellent reproducibility.
[0056] As described above, the robot system 1 includes the base 21, the arm 22 that drives relative to the base 21, the inertial sensor 24 that detects the angular velocity that is the movement of the arm 22, and the control unit 30 that controls the drive of the arm 22. The control unit 30 receives the angular velocity 911 that is the output signal from the inertial sensor 24, and performs an adjustment to increase the deflection angular velocity feedback gain Kgp that is the feedback gain multiplied by the angular velocity 911 or the signal generated from the angular velocity 911, in this embodiment, the deflection angular velocity 914 generated from the angular velocity 911, in accordance with the change in the angular velocity of the arm 22, controls the drive of the arm 22 using the deflection angular velocity feedback gain Kgp after the adjustment, and performs an adjustment to decrease the deflection angular velocity feedback gain Kgp after a predetermined time dt has elapsed since the deflection angular velocity feedback gain Kgp was increased. With this configuration, the deflection angular velocity feedback gain Kgp can be increased to the limit value of the destabilization factor (A) without causing destabilization of the control. Therefore, the flexure angular velocity feedback gain Kgp can be set higher than in the past, and the vibration of the arm 22 can be suppressed more effectively.
[0057] As described above, the robot system 1 includes the motor 232 that rotates the arm 22 around the rotation axis J relative to the base 21, and the position detector 233 that detects the rotation angle of the motor 232. The inertial sensor 24 detects the angular velocity of the arm 22 around the rotation axis J. The control unit 30 determines a deflection angular velocity 914 based on a motor-shaft converted arm angular velocity 912 that is the angular velocity of the arm 22 detected by the inertial sensor 24, and a motor shaft angular velocity 913 that is the angular velocity of the motor 232 detected by the position detector 233, and multiplies the deflection angular velocity 914 by a deflection angular velocity feedback gain Kgp. By using the deflection angular velocity feedback 915 determined in this manner, the vibration suppression effect of the arm 22 can be improved.
[0058] <Second embodiment> FIG. 9 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp, which is performed in the robot system according to the second embodiment.
[0059] This embodiment is similar to the first embodiment described above, except that the process for adjusting the flexure angular velocity feedback gain Kgp is different. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similar points will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as those in the above-mentioned embodiment.
[0060] In the first feedback gain adjustment step S2 of this embodiment, the deflection angular velocity feedback gain Kgp is adjusted to be different at any two points selected from the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s, and the angular acceleration decrease end point N4e.
[0061] 9, the flexure angular velocity feedback gain coefficient Kgpc is adjusted to 3 at the angular acceleration increase start point N1s, 2 at the angular acceleration increase end point N1e, 1 at the angular acceleration decrease start point N2s, 3 at the angular acceleration decrease end point N2e, 2 at the angular acceleration increase start point N3s, 3 at the angular acceleration increase end point N3e, 3 at the angular acceleration decrease start point N4s, and 2 at the angular acceleration decrease end point N4e. In this way, by adjusting the flexure angular velocity feedback gain coefficient Kgpc for each angular acceleration change point, it is possible to effectively suppress vibrations during accelerating and decelerating operations of arm 22 and residual vibrations after stopping.
[0062] As described above, in the control method for the robot 2 of this embodiment, in the first feedback gain adjustment step S2, the flexural angular velocity feedback gain Kgp is adjusted to different values at any two timings selected from the angular acceleration increase start point N1s, which is the first timing T1, the angular acceleration increase end point N1e, which is the second timing T2, the angular acceleration decrease start point N2s, which is the third timing T3, the angular acceleration decrease end point N2e, which is the fourth timing T4, the angular acceleration increase start point N3s, which is the fifth timing T5, the angular acceleration increase end point N3e, which is the sixth timing T6, the angular acceleration decrease start point N4s, which is the seventh timing T7, and the angular acceleration decrease end point N4e, which is the eighth timing T8. In this way, by adjusting the flexural angular velocity feedback gain Kgp for each angular acceleration change point, it is possible to effectively suppress vibrations during acceleration and deceleration of the arm 22, and residual vibrations after stopping.
[0063] The second embodiment as described above can also achieve the same effects as the first embodiment.
[0064] <Third embodiment> FIG. 10 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp, which is performed in the robot system according to the third embodiment.
[0065] This embodiment is similar to the first embodiment described above, except that the process for adjusting the flexure angular velocity feedback gain Kgp is different. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similar points will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as those in the above-mentioned embodiment.
[0066] In the first feedback gain adjustment step S2 of this embodiment, the rise and fall of the deflection angular velocity feedback gain coefficient Kgpc is changed stepwise or continuously for at least one of the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s, and the angular acceleration decrease end point N4e.
[0067] In the example shown in Fig. 10, at the angular acceleration increase start point N1s and the angular acceleration increase end point N1e, the rise of the deflection angular velocity feedback gain coefficient Kgpc is continuously increased. At the angular acceleration decrease start point N2s and the angular acceleration decrease end point N2e, the fall of the deflection angular velocity feedback gain coefficient Kgpc is continuously decreased. At the angular acceleration increase start point N3s and the angular acceleration increase end point N3e, the rise of the deflection angular velocity feedback gain coefficient Kgpc is continuously increased and the fall of the deflection angular velocity feedback gain coefficient Kgpc is continuously decreased. At the angular acceleration decrease start point N4s, the rise of the deflection angular velocity feedback gain coefficient Kgpc is continuously increased and at a rate of change smaller than that at the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration increase start point N3s, and the angular acceleration increase end point N3e. At the angular acceleration decrease end point N4e, the flexure angular velocity feedback gain coefficient Kgpc decreases continuously and at a smaller rate of change than the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s and the angular acceleration increase end point N3e.
[0068] In this way, by continuously increasing the rising edge of the flexure angular velocity feedback gain coefficient Kgpc, the process of increasing the flexure angular velocity feedback gain Kgp can be delayed with respect to the angular acceleration change point. Therefore, the influence of twisting of the spring element 603 due to changes in angular acceleration can be suppressed, and control instability can be effectively suppressed. On the other hand, by continuously decreasing the falling edge of the flexure angular velocity feedback gain coefficient Kgpc, the process of lowering the flexure angular velocity feedback gain Kgp can be delayed, and the vibration suppression effect can be maintained for a longer period of time.
[0069] The third embodiment as described above can also achieve the same effects as the first embodiment described above.
[0070] <Fourth embodiment> FIG. 11 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp, which is performed in the robot system according to the fourth embodiment.
[0071] This embodiment is similar to the first embodiment described above, except that the process for adjusting the flexure angular velocity feedback gain Kgp is different. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similar points will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as those in the above-mentioned embodiment.
[0072] In the third embodiment described above, the flexure angular velocity feedback gain coefficient Kgpc rises and falls linearly. In other words, the rate of change is constant. In contrast, in this embodiment, as shown in FIG. 11, the flexure angular velocity feedback gain coefficient Kgpc rises and falls quadratically.
[0073] By increasing the rise of the flexure angular velocity feedback gain coefficient Kgpc in a quadratic curve, the flexure angular velocity feedback gain Kgp can be increased in a short time, thereby enhancing the vibration suppression effect. Also, by decreasing the rate of change of the flexure angular velocity feedback gain Kgp over time, it is possible to suppress destabilization of control. On the other hand, by decreasing the fall of the flexure angular velocity feedback gain coefficient Kgpc in a quadratic curve, the process of lowering the flexure angular velocity feedback gain Kgp can be delayed, allowing the vibration suppression effect to be sustained for a longer period.
[0074] The fourth embodiment as described above can also achieve the same effects as the first embodiment.
[0075] <Fifth embodiment> FIG. 12 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp, which is performed in the robot system according to the fifth embodiment.
[0076] This embodiment is similar to the first embodiment described above, except that the process for adjusting the flexure angular velocity feedback gain Kgp is different. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similar points will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as those in the above-mentioned embodiment.
[0077] In this embodiment, as shown in Fig. 12, an upper limit Lim is set for the flexure angular velocity feedback gain Kgp, and the flexure angular velocity feedback gain Kgp is adjusted so as not to exceed the upper limit Lim. The adjustment method is not particularly limited, and may be, for example, a method of adjusting the flexure angular velocity feedback gain coefficient Kgpc so as not to exceed the upper limit Lim. Alternatively, a method may be used in which the flexure angular velocity feedback gain coefficient Kgpc is adjusted regardless of the upper limit Lim, and when the flexure angular velocity feedback gain Kgp after the adjustment exceeds the upper limit Lim, the flexure angular velocity feedback gain Kgp is set to the upper limit Lim. In this way, by setting the upper limit Lim for the flexure angular velocity feedback gain Kgp, it is possible to effectively suppress instability of control caused by the flexure angular velocity feedback gain Kgp being too high.
[0078] The fifth embodiment as described above can also achieve the same effects as the first embodiment.
[0079] Sixth embodiment FIG. 13 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp, which is performed in the robot system according to the sixth embodiment.
[0080] This embodiment is similar to the first embodiment described above, except that the process for adjusting the flexure angular velocity feedback gain Kgp is different. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similar points will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as those in the above-mentioned embodiment.
[0081] In the first feedback gain adjustment step S2 of this embodiment, the time dt is different from each other at any two points selected from the angular acceleration increase start point N1s, the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, the angular acceleration increase end point N3e, the angular acceleration decrease start point N4s, and the angular acceleration decrease end point N4e.
[0082] In the example shown in FIG. 13, the time dt at the angular acceleration increase start point N1s, the angular acceleration decrease start point N2s, the angular acceleration increase end point N3e, and the angular acceleration decrease end point N4e is longer than the time dt at the angular acceleration increase start point N1e and the angular acceleration decrease end point N2e, and conversely, the time dt at the angular acceleration increase start point N3s and the angular acceleration decrease start point N4s is shorter. When the time dt is made longer, the deflection angular velocity feedback gain Kgp is maintained in a high state for a longer period of time, so that the vibration suppression effect can be enhanced. On the other hand, when the time dt is made shorter, the wraparound of the vibration in the non-rotation direction as described above can be suppressed, and the instability of the control can be effectively suppressed. Therefore, by setting the time dt for each angular acceleration change point, the vibration suppression effect and the instability of the control can be balanced at each angular acceleration change point.
[0083] As described above, in the control method for the robot 2 of this embodiment, in the first feedback gain adjustment step S2, the time dt as the predetermined time is different between any two timings selected from the angular acceleration increase start point N1s which is the first timing T1, the angular acceleration increase end point N1e which is the second timing T2, the angular acceleration decrease start point N2s which is the third timing T3, the angular acceleration decrease end point N2e which is the fourth timing T4, the angular acceleration increase start point N3s which is the fifth timing T5, the angular acceleration increase end point N3e which is the sixth timing T6, the angular acceleration decrease start point N4s which is the seventh timing T7, and the angular acceleration decrease end point N4e which is the eighth timing T8. According to this method, it is possible to balance the vibration suppression effect and the instability of the control at each timing.
[0084] The sixth embodiment as described above can also achieve the same effects as the first embodiment.
[0085] Seventh embodiment FIG. 14 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp, which is performed in the robot system according to the seventh embodiment.
[0086] This embodiment is similar to the first embodiment described above, except that the process for adjusting the flexure angular velocity feedback gain Kgp is different. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similar points will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as those in the above-mentioned embodiment.
[0087] In this embodiment, as shown in Fig. 14, when the adjustment of the flexure angular velocity feedback gain coefficient Kgpc starting from the angular acceleration increase start point N1s is continued until the angular acceleration increase end point N1e, the adjustment of the flexure angular velocity feedback gain coefficient Kgpc starting from the angular acceleration increase end point N1e is canceled. In other words, when the adjustment of the flexure angular velocity feedback gain coefficient Kgpc starting from a certain angular acceleration change point is continued until the next angular acceleration change point, the adjustment of the flexure angular velocity feedback gain coefficient Kgpc starting from the angular acceleration change point is canceled. According to this processing, it is possible to prevent the processing of adjusting the flexure angular velocity feedback gain coefficient Kgpc from continuing and the time for increasing the flexure angular velocity feedback gain Kgp from being extended. Therefore, it is possible to effectively prevent the instability of the control.
[0088] The seventh embodiment as described above can also achieve the same effects as the first embodiment.
[0089] Eighth embodiment FIG. 15 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp, which is performed in the robot system according to the eighth embodiment.
[0090] This embodiment is similar to the first embodiment described above, except that the process for adjusting the flexure angular velocity feedback gain Kgp is different. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similar points will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as those in the above-mentioned embodiment.
[0091] In FIG. 15, there is no section in which the arm 22 moves at a constant speed. In this case, the points at which the speed command Vref changes from increasing to decreasing correspond to the angular acceleration decrease end point N2e and the angular acceleration increase start point N3s. In this embodiment, the flexural angular velocity feedback gain coefficient Kgpc is not adjusted starting from these two points N2e and N3s. This is because the angular acceleration does not change at the points N2e and N3s, so that the flexural vibration does not increase, and the vibration suppression effect of adjusting the flexural angular velocity feedback gain Kgp is low. In this way, by not adjusting the flexural angular velocity feedback gain coefficient Kgpc at the points where the vibration suppression effect is low, it is possible to suppress instability of the control.
[0092] The eighth embodiment as described above can also achieve the same effects as the first embodiment.
[0093] <Ninth embodiment> FIG. 16 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp, which is performed in the robot system according to the ninth embodiment.
[0094] This embodiment is similar to the first embodiment described above, except that the process for adjusting the flexure angular velocity feedback gain Kgp is different. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similar points will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as those in the above-mentioned embodiment.
[0095] In this embodiment, the flexure angular velocity feedback gain coefficient Kgpc is adjusted starting from the point where the angular acceleration of the arm 22 exceeds a predetermined threshold, for example, ±Ahys. In the example shown in Fig. 16, the flexure angular velocity feedback gain coefficient Kgpc is adjusted to be higher starting from the points where the angular acceleration starts to increase from a constant state and exceeds a threshold, that is, the times (first timing T1, third timing T3, fifth timing T5, seventh timing T7) slightly delayed from the angular acceleration increase start point N1s, the angular acceleration decrease start point N2s, the angular acceleration increase start point N3s, and the angular acceleration decrease start point N4s. This makes it possible to more effectively suppress the vibration of the arm 22.
[0096] In this process, since the angular velocity change point is detected, there is a risk that the angular acceleration change point will be erroneously detected due to noise contained in the angular acceleration. Therefore, by providing a hysteresis characteristic of ±Ahys to the judgment of the angular acceleration change point, it is possible to suppress erroneous detection of the angular acceleration change point.
[0097] In this embodiment, the flexure angular velocity feedback gain coefficient Kgpc is adjusted using as a starting point the point at which the angular acceleration of the arm 22 changes from a changing state to a constant state. In the example shown in Fig. 16, the flexure angular velocity feedback gain coefficient Kgpc is adjusted to be increased using as a starting point the points at which the angular acceleration changes from a changing state to a constant state, that is, the times (second timing T2, fourth timing T4, sixth timing T6, eighth timing T8) slightly delayed from the angular acceleration increase end point N1e, the angular acceleration decrease end point N2e, the angular acceleration increase end point N3e, and the angular acceleration decrease end point N4e.
[0098] As described above, in the control method for the robot 2 of this embodiment, the first timing T1, the third timing T3, the fifth timing T5, and the seventh timing T7 are timings at which the angular acceleration, which is inertia information, exceeds a threshold value. This makes it possible to more effectively suppress the vibration of the arm 22.
[0099] The ninth embodiment as described above can also achieve the same effects as the first embodiment described above.
[0100] Tenth embodiment FIG. 17 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp, which is performed in the robot system according to the tenth embodiment.
[0101] This embodiment is similar to the first embodiment described above, except that the process for adjusting the flexure angular velocity feedback gain Kgp is different. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similar points will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as those in the above-mentioned embodiment.
[0102] In this embodiment, when the adjustment to increase the flexure angular velocity feedback gain Kgp is not performed, the flexure angular velocity feedback gain coefficient Kgpc is set to zero. That is, the reference value of the flexure angular velocity feedback gain coefficient Kgpc is set to zero. In the example shown in FIG. 17, the angular velocity detection range of the inertial sensor 24 is limited to Vmax or less. Then, for the angular acceleration increase start point N1s, the angular acceleration decrease end point N2e, the angular acceleration increase start point N3s, and the angular acceleration decrease end point N4e where the angular velocity is Vmax or less, the adjustment to increase the flexure angular velocity feedback gain coefficient Kgpc is performed starting from each of these points. On the other hand, for the angular acceleration increase end point N1e, the angular acceleration decrease start point N2s, the angular acceleration increase end point N3e, and the angular acceleration decrease start point N4s where the angular velocity exceeds Vmax, the adjustment to increase the flexure angular velocity feedback gain coefficient Kgpc is not performed starting from each of these points. According to this process, even if the inertial sensor 24 with a short angular velocity detection range is used, a sufficient vibration suppression effect can be achieved.
[0103] The above-described tenth embodiment can also achieve the same effects as the above-described first embodiment.
[0104] <Eleventh embodiment> FIG. 18 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp, which is performed in the robot system according to the eleventh embodiment.
[0105] This embodiment is similar to the first embodiment described above, except that the process for adjusting the flexure angular velocity feedback gain Kgp is different. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similar points will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as those in the above-mentioned embodiment.
[0106] In this embodiment, the conditions for adjusting the flexure angular velocity feedback gain Kgp are switched between the case where the arm 22 performs a PTP (point-to-point) operation and the case where the arm 22 performs a CP (continuous path) operation. All the above-described embodiments show the case where the arm 22 performs a PTP operation. In contrast, FIG. 18 shows the change in angular acceleration when the arm 22 performs a CP operation. As can be seen from the figure, when the arm 22 performs a CP operation, the angular acceleration changes continuously. That is, an infinite number of angular acceleration change points are continuously present. In such a case, if the adjustment is made to increase the flexure angular velocity feedback gain coefficient Kgpc in the same way as when the arm 22 performs a PTP operation, the flexure angular velocity feedback gain Kgp may be continuously maintained in a high state, which may cause control instability. Therefore, by switching the conditions for adjusting the flexure angular velocity feedback gain Kgp between the case where the arm 22 performs a CP operation and the case where the arm 22 performs a PTP operation, it is possible to suppress the instability of the control during the CP operation and obtain a vibration suppression effect.
[0107] As described above, in the control method for the robot 2 of this embodiment, in the first feedback gain adjustment step S2, the conditions for adjusting the deflection angular velocity feedback gain Kgp are made different between when the arm 22 performs CP operation and when the arm 22 performs PTP operation. This makes it possible to suppress instability of the control during CP operation and obtain a vibration suppression effect.
[0108] The eleventh embodiment as described above can also achieve the same effects as the first embodiment described above.
[0109] <Twelfth embodiment> FIG. 19 is a diagram showing a robot included in a robot system according to a twelfth embodiment. FIG. 20 is a block diagram showing a control unit included in the robot system of FIG. 19. FIG. 21 is a diagram showing a two-inertia system model of a linear motion part of a robot. FIG. 22 is a graph showing changes in acceleration command Aref', velocity V1, and velocity V2 during operation of a spline shaft. FIG. 23 is a timing chart showing an example of a process for adjusting a deflection angular velocity feedback gain Kgp. FIG. 24 is a graph showing the residual vibration suppression effect of a spline shaft.
[0110] This embodiment is similar to the first embodiment described above, except for the configuration of the robot 2. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and a description of the similarities will be omitted. In each drawing of this embodiment, the same reference numerals are used for the same configurations as those in the previously described embodiment.
[0111] <Robot 2> 19, the robot 2 further has a spline shaft 253 as a moving part disposed at the tip of the arm 22, and a ball screw nut 252. When the ball screw nut 252 rotates, the spline shaft 253 moves up and down along its central axis Jg. An end effector suitable for the target work is attached to the tip (lower end) of the spline shaft 253.
[0112] The robot 2 further includes a drive mechanism 27 that rotates the ball screw nut 252 to raise and lower the spline shaft 253. The drive mechanism 27 includes a motor 271, a position detector 272 that detects the rotation angle of the rotation shaft of the motor 271, and a power transmission mechanism 273 that transmits the power of the motor 271 to the ball screw nut 252. The power transmission mechanism 273 includes a pulley 273a attached to the rotation shaft of the motor 271, and a timing belt 273b that is wound around the pulley 273a and the ball screw nut 252. Note that, in reality, the robot 2 further includes a spline nut and a drive mechanism that rotates the spline nut to rotate the spline shaft 253 about the central axis Jg, but since this mechanism has little relevance to this embodiment, its description and illustration are omitted.
[0113] Further, the inertial sensor 24 attached to the arm 22 is an angular velocity sensor that detects an angular velocity around a detection axis Js perpendicular to the extending direction of the arm 22 and the central axis Jg.
[0114] <Control device 3> 20, the flexure angular velocity feedback generator 35 first multiplies the angular velocity 931 of the arm 22 detected by the inertial sensor 24 by the arm angular velocity scaling coefficient Kgs to obtain a flexure angular velocity 932. Next, the flexure angular velocity feedback generator 35 multiplies the flexure angular velocity 932 by a flexure angular velocity feedback gain Kgp (flexure angular velocity feedback base gain Kgpb and flexure angular velocity feedback gain coefficient Kgpc) to obtain a flexure angular velocity feedback 933.
[0115] The position command generating unit 31 generates a position command 921 for the motor 271 based on a program created by the host computer 4 .
[0116] Position control unit 32 first obtains position deviation 923 by subtracting motor shaft position 922, which is the rotation angle of motor 271 detected by position detector 272, from position command 921. Next, position control unit 32 obtains speed command 924 by multiplying position deviation 923 by position loop proportional gain Kpp.
[0117] The speed control section 33 is configured with proportional-integral control. First, the speed control section 33 time-differentiates the motor shaft position 922 detected by the position detector 272 to obtain a motor shaft angular velocity 925, which is the angular velocity of the motor shaft. Next, the speed control section 33 obtains a speed deviation 926 by subtracting the motor shaft angular velocity 925 from the speed command 924. Next, the speed control section 33 adds an integral term obtained by multiplying the integral value of the speed deviation 926 by a speed loop integral gain Kvi to a proportional term obtained by multiplying the speed deviation 926 by a speed loop proportional gain Kvp, and further obtains a current command 927 by subtracting a flexure angular velocity feedback 933.
[0118] The current control unit 34 controls the current 928 that drives the motor 271 so that it coincides with the current command 927, that is, so that the current 928 follows the current command 927. The motor 271 is driven by the current 928 controlled by the current control unit 34, and the load 28 connected to the motor 271 moves linearly. Here, the load 28 mainly refers to the sum of the inertial masses of the motor shaft, the drive mechanism 27, the ball screw nut 252, and the spline shaft 253.
[0119] The circuit configuration of the control unit 30 has been briefly described above. Next, Fig. 21 shows a two-inertia system model 700 of the linear motion unit of the robot 2. In this type of two-inertia system model 700, a driving element 702 having an inertial mass m2 is placed on a base element 701 having an inertial mass m1, and the base element 701 is connected to a mounting surface via a spring element 703 having a spring constant Ks. The inertia sensor 24 is placed on the base element 701, and detects a velocity V1 of the base element 701 in the x1 direction.
[0120] In the robot 2, the spring element 703 mainly corresponds to the stiffness of the vertical displacement (displacement in the direction along the rotation axis J) of the base 21 and the arm 22. In the robot 2, the base element 701 is mainly composed of the base 21 and the arm 22. In the robot 2, the driving element 702 is mainly composed of the spline shaft 253. When the driving element 702 operates, a reaction force acts on the base element 701 that supports the driving element 702, and the base element 701 is displaced. A thrust Fs proportional to the displacement of the spring element 703 acts on the base element 701.
[0121] The main cause of vibration in the direction along the central axis Jg of the tip of spline shaft 253 is vibration of the tip of arm 22. Therefore, by using deflection angular velocity feedback 933 obtained by multiplying deflection angular velocity 932 detected by inertial sensor 24 by deflection angular velocity feedback gain Kgp to control motor 271, the reaction force that drives spline shaft 253 can be used to damp the vibration of arm 22.
[0122] 22 shows changes in acceleration command Aref', velocity V2 of drive element 702, and velocity V1 of base element 701 during PTP (point-to-point) operation of arm 22. As shown in the figure, acceleration command Aref' changes at acceleration increase start point N1s' and acceleration increase end point N1e' when acceleration starts, acceleration decrease start point N2s' and acceleration decrease end point N2e' when acceleration ends, acceleration increase start point N3s' and acceleration increase end point N3e' when deceleration starts, and acceleration decrease start point N4s' and acceleration decrease end point N4e' when deceleration ends. In addition, there is a section where the velocity is constant between acceleration decrease end point N2e' and acceleration increase start point N3s'.
[0123] The vibration of the speed V1 (hereinafter also referred to as "flexural vibration") increases from the acceleration change points where the acceleration command Aref' changes, that is, the acceleration increase start point N1s', the acceleration increase end point N1e', the acceleration decrease start point N2s', the acceleration decrease end point N2e', the acceleration increase start point N3s', the acceleration increase end point N3e', the acceleration decrease start point N4s' and the acceleration decrease end point N4e'. This is a phenomenon that occurs when the reaction force due to the acceleration and deceleration of the driving element 702 acts on the base element 701.
[0124] Therefore, in the robot system 1, the flexural angular velocity feedback gain Kgp is increased at a timing determined based on the above-mentioned eight points N1s', N1e', N2s', N2e', N3s', N3e', N4s', and N4e' at which the flexural vibration of the speed V1 increases, thereby reducing the vibration of the base element 701, i.e., the arm 22.
[0125] Specifically, the deflection angular velocity feedback gain Kgp is increased and the vibration of the arm 22 is reduced using as starting points the first timing T1' determined based on the acceleration increase start point N1s', the second timing T2' determined based on the acceleration increase end point N1e', the third timing T3' determined based on the acceleration decrease start point N2s', the fourth timing T4' determined based on the acceleration decrease end point N2e', the fifth timing T5' determined based on the acceleration increase start point N3s', the sixth timing T6' determined based on the acceleration decrease end point N3e', the seventh timing T7' determined based on the acceleration decrease start point N4s', and the eighth timing T8' determined based on the acceleration decrease end point N4e'.
[0126] In this embodiment, the first timing T1' is set to the same time as the acceleration increase start point N1s', the second timing T2' is set to the same time as the acceleration increase end point N1e', the third timing T3' is set to the same time as the acceleration decrease start point N2s', the fourth timing T4' is set to the same time as the acceleration decrease end point N2e', the fifth timing T5' is set to the same time as the acceleration increase start point N3s', the sixth timing T6' is set to the same time as the acceleration increase end point N3e', the seventh timing T7' is set to the same time as the acceleration decrease start point N4s', and the eighth timing T8' is set to the same time as the acceleration decrease end point N4e'. This makes it possible to increase the deflection angular velocity feedback gain Kgp without delay for each acceleration change point, i.e., the acceleration increase start point N1s', the acceleration increase end point N1e', the acceleration decrease start point N2s', the acceleration decrease end point N2e', the acceleration increase start point N3s', the acceleration increase end point N3e', the acceleration decrease start point N4s', and the acceleration decrease end point N4e', thereby achieving a greater vibration suppression effect.
[0127] However, without being limited thereto, for example, the first timing T1' may be a time later than the acceleration increase start point N1s' by a predetermined time Δt, or may be a time earlier than the acceleration increase start point N1s' by a predetermined time Δt. This also applies to the second, third, fourth, fifth, sixth, seventh, and eighth timings T2', T3', T4', T5', T6', T7', and T8' other than the first timing T1'. In addition, the predetermined time Δt may be different between two or more timings arbitrarily selected from the first, second, third, fourth, fifth, sixth, seventh, and eighth timings T1', T2', T3', T4', T5', T6', T7', and T8'.
[0128] For ease of explanation, the following will refer to the first timing T1' as the acceleration increase start point N1s', the second timing T2' as the acceleration increase end point N1e', the third timing T3' as the acceleration decrease start point N2s', the fourth timing T4' as the acceleration decrease end point N2e', the fifth timing T5' as the acceleration increase start point N3s', the sixth timing T6 as the acceleration increase end point N3e', the seventh timing T7' as the acceleration decrease start point N4s', and the eighth timing T8' as the acceleration decrease end point N4e'.
[0129] Here, possible destabilizing factors of control that may occur by increasing the flexural angular velocity feedback gain Kgp include, for example, (A) physical destabilization of control due to elements constituting the drive system, and (B) reduction in control stability due to intrusion of vibration in a direction different from the linear direction. The instability factor (A) refers to the instability of the flexural angular velocity feedback control determined by the inertial mass m2 of the drive element 702, the inertial mass m1 of the base element 701, and the spring constant Ks in the two-inertia system model 700. On the other hand, the instability factor (B) refers to the instability of the flexural angular velocity feedback control caused by the elastic deformation of each element constituting the robot 2 causing the arm 22 to vibrate in a direction different from the linear direction of the spline shaft 253, and the inertial sensor 24 detecting the vibration (hereinafter also referred to as "vibration in a non-linear direction") as noise, and the control unit 30 using this noise for control. The vibration in the non-linear direction occurs due to intrusion of the flexural vibration in the linear direction. Therefore, the increase in vibration in the non-linear direction increases with a delay relative to the increase in bending vibration in the linear direction.
[0130] Therefore, in the robot system 1, the characteristic that the vibration in the non-linear direction increases with a delay compared to the bending vibration in the linear direction is effectively utilized, and the bending vibration in the linear direction is damped by temporarily increasing the bending angular velocity feedback gain Kgp at the above-mentioned eight acceleration change points at which the bending vibration in the linear direction increases, that is, the acceleration increase start point N1s', the acceleration increase end point N1e', the acceleration decrease start point N2s', the acceleration decrease end point N2e', the acceleration increase start point N3s', the acceleration increase end point N3e', the acceleration decrease start point N4s', and the acceleration decrease end point N4e', thereby suppressing the instability of the control due to the expansion of the vibration in the non-linear direction. In this way, by temporarily increasing the bending angular velocity feedback gain Kgp, the bending angular velocity feedback gain Kgp can be lowered again when the vibration in the non-linear direction increases, and the influence of the instability factor (B) can be reduced, preferably eliminated.
[0131] Conventionally, it was not possible to increase the flexure angular velocity feedback gain Kgp to the limit value (maximum value) of the destabilization factor (A) due to the destabilization factor (B). In contrast, according to the control method of the present embodiment as described above, the influence of the destabilization factor (B) is reduced as described above, so that the flexure angular velocity feedback gain Kgp can be increased to the limit value of the destabilization factor (A). Therefore, it is possible to set the flexure angular velocity feedback gain Kgp higher than conventionally without causing destabilization of the control, and it is possible to enhance the vibration suppression effect of the arm 22.
[0132] Fig. 23 is a timing chart showing an example of a process for adjusting the deflection angular velocity feedback gain Kgp using the above-mentioned eight points, which are the change points of the acceleration command Aref', that is, the acceleration increase start point N1s', the acceleration increase end point N1e', the acceleration decrease start point N2s', the acceleration decrease end point N2e', the acceleration increase start point N3s', the acceleration increase end point N3e', the acceleration decrease start point N4s' and the acceleration decrease end point N4e' as starting points. Fig. 23 shows the changes in the acceleration command Aref', the velocity command Vref' and the angular velocity feedback gain coefficient Kgpc.
[0133] In the illustrated example, the flexure angular velocity feedback gain coefficient Kgpc is increased from a reference value of 1 to 3 for dt seconds starting from all of the acceleration increase start point N1s', acceleration increase end point N1e', acceleration decrease start point N2s', acceleration decrease end point N2e', acceleration increase start point N3s', acceleration increase end point N3e', acceleration decrease start point N4s', and acceleration decrease end point N4e'. Then, after dt seconds have elapsed since the flexure angular velocity feedback gain coefficient Kgpc was increased from 1 to 3, the flexure angular velocity feedback gain coefficient Kgpc is decreased from 3 to 1, that is, to the reference value. Therefore, the control unit 30 controls the driving of the motor 271 using the flexure angular velocity feedback gain coefficient Kgpc=3 until the flexure angular velocity feedback gain coefficient Kgpc is increased from 1 to 3 and then decreased back to 1, and controls the driving of the motor 271 using the flexure angular velocity feedback gain coefficient Kgpc=1 for the rest of the time.
[0134] The flexure angular velocity feedback gain Kgp is obtained by multiplying the flexure angular velocity feedback base gain Kgpb by the flexure angular velocity feedback gain coefficient Kgpc, as shown in the above formula (2). Therefore, while the flexure angular velocity feedback gain coefficient Kgpc is increased to 3, the flexure angular velocity feedback gain Kgp is increased by three times. By increasing the flexure angular velocity feedback gain Kgp by three times, the effect of damping the flexure vibration is enhanced, and it is possible to reduce the flexure vibration during operation that increases from each of the acceleration change points of acceleration increase start point N1s', acceleration increase end point N1e', acceleration decrease start point N2s', acceleration decrease end point N2e', acceleration increase start point N3s', and acceleration increase end point N3e', and the residual vibration after stopping that increases from each of the acceleration change points of acceleration decrease start point N4s' and acceleration decrease end point N4e'.
[0135] Adjustment of the flexure angular velocity feedback gain coefficient Kgpc at the acceleration increase start point N1s' and the acceleration increase end point N1e' has the effect of reducing flexure vibration during acceleration operation of the spline shaft 253. Adjustment of the flexure angular velocity feedback gain coefficient Kgpc at the acceleration decrease start point N2s' and the acceleration decrease end point N2e' has the effect of reducing flexure vibration during constant speed operation of the spline shaft 253. Adjustment of the flexure angular velocity feedback gain coefficient Kgpc at the acceleration increase start point N3s' and the acceleration increase end point N3e' has the effect of reducing flexure vibration during deceleration operation of the spline shaft 253. Adjustment of the flexure angular velocity feedback gain coefficient Kgpc at the acceleration decrease start point N4s' and the acceleration decrease end point N4e' has the effect of reducing residual vibration of the spline shaft 253.
[0136] In the illustrated example, the flexure angular velocity feedback gain coefficient Kgpc is increased from 1 to 3 using all of the acceleration increase start point N1s', acceleration increase end point N1e', acceleration decrease start point N2s', acceleration decrease end point N2e', acceleration increase start point N3s', acceleration increase end point N3e', acceleration decrease start point N4s', and acceleration decrease end point N4e' as starting points, but the present invention is not limited to this. It is sufficient to increase the flexure angular velocity feedback gain coefficient Kgpc from 1 to 3 using at least one of these eight points as a starting point. This makes it possible to effectively suppress at least the flexure vibration that increases from that point as a starting point. In the illustrated example, the flexure angular velocity feedback gain coefficient Kgpc is increased to 3, but the value of the flexure angular velocity feedback gain coefficient Kgpc is not particularly limited.
[0137] 24 is a graph showing the residual vibration suppression effect at the tip of the spline shaft 253, comparing the linear residual vibration generated at the tip of the spline shaft 253 between C, where the flexure angular velocity feedback gain Kgp is kept constant, and D, where the flexure angular velocity feedback gain Kgp is changed in synchronization with the acceleration change as in this embodiment. It can be seen from the same figure that the overshoot is reduced in this embodiment, and a superior vibration suppression effect is achieved.
[0138] As described above, the robot system 1 in this embodiment has the spline shaft 253 as a moving part that moves linearly along a predetermined movement direction relative to the arm 22. The inertial sensor 24 detects an angular velocity about the detection axis Js, which is generated by elastic deformation of the arm 22 and is a direction perpendicular to the movement direction of the spline shaft 253. The control unit 30 determines a deflection angular velocity 932 based on the angular velocity of the arm 22 detected by the inertial sensor 24, and multiplies the deflection angular velocity 932 by a deflection angular velocity feedback gain Kgp. By using the deflection angular velocity feedback 933 determined in this manner, the vibration suppression effect of the spline shaft 253 can be improved.
[0139] The twelfth embodiment as described above can also achieve the same effects as the first embodiment described above.
[0140] In this embodiment, the process of adjusting the flexure angular velocity feedback gain Kgp is similar to that in the first embodiment, but the method of the process is not limited to this, and the methods of the process described in the second to eleventh embodiments can also be applied. This makes it possible to achieve the same effects as those described in each embodiment.
[0141] <Thirteenth embodiment> FIG. 25 is a diagram showing a robot included in a robot system according to the thirteenth embodiment.
[0142] This embodiment is similar to the first embodiment described above, except for the configuration of the robot. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similarities will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as the above-mentioned embodiment.
[0143] 25, the robot 2100 of this embodiment is a horizontal articulated robot (SCARA robot) and includes a base 2110 fixed to the floor and an arm 2120 connected to the base 2110. The arm 2120 includes a first arm 2121 having a base end connected to the base 2110 and rotating about a first rotation axis J1 relative to the base 2110, and a second arm 2122 having a base end connected to a tip end of the first arm 2121 and rotating about a second rotation axis J2 parallel to the first rotation axis J1 relative to the first arm 2121. An inertial sensor 2190 is disposed on the second arm 2122 to detect an angular velocity around an axis along the vertical direction and an angular velocity around an axis perpendicular to the vertical direction.
[0144] Further, a working head 2130 is provided at the tip of the second arm 2122. The working head 2130 has a spline nut 2131 and a ball screw nut 2132 that are coaxially arranged at the tip of the second arm 2122, and a spline shaft 2133 that is inserted through the spline nut 2131 and the ball screw nut 2132. The spline shaft 2133 rotates around a third rotation axis J3 that is its central axis with respect to the second arm 2122, and moves up and down along the third rotation axis J3. An end effector according to the work is attached to the lower end (tip) of the spline shaft 2133. The third rotation axis J3 is parallel to the first rotation axis J1 and the second rotation axis J2, and is along the vertical direction.
[0145] The robot 2100 also has a drive mechanism 2140 that rotates the first arm 2121 about a first rotation axis J1 relative to the base 2110, and a drive mechanism 2150 that rotates the second arm 2122 about a second rotation axis J2 relative to the first arm 2121. The drive mechanisms 2140 and 2150 have the same configuration as the drive mechanism 23 described above. In other words, the drive mechanism 2140 has a reducer 2141 that connects the base 2110 and the first arm 2121, a motor 2142 having a rotating shaft connected to the input side of the reducer 2141, and a position detector 2143 that detects the rotation angle of the rotating shaft of the motor 2142. Similarly, the drive mechanism 2150 has a reducer 2151 that connects the first arm 2121 and the second arm 2122, a motor 2152 with a rotating shaft connected to the input side of the reducer 2151, and a position detector 2153 that detects the rotation angle of the rotating shaft of the motor 2152.
[0146] The robot 2100 also includes a driving device 2160 that rotates the spline nut 2131 to rotate the spline shaft 2133 around the third rotation axis J3, and a driving device 2170 that rotates the ball screw nut 2132 to raise and lower the spline shaft 2133 along the third rotation axis J3. The driving devices 2160 and 2170 have the same configuration as the driving mechanism 27 described above. That is, the driving device 2160 includes a motor 2161, a position detector 2162 that detects the rotation angle of the rotating shaft of the motor 2161, and a power transmission mechanism 2163 that transmits the power of the motor 2161 to the spline nut 2131. Similarly, the driving device 2170 includes a motor 2171, a position detector 2172 that detects the rotation angle of the rotating shaft of the motor 2171, and a power transmission mechanism 2173 that transmits the power of the motor 2171 to the ball screw nut 2132.
[0147] In the robot 2100 configured as described above, the control methods of the first to eleventh embodiments described above are used to control the motors 2142, 2152 for driving the first and second arms 2121, 2122, thereby making it possible to effectively suppress vibration of the first and second arms 2121, 2122.
[0148] In addition, the deflection angular velocity 914 of the first arm 2121 can be obtained by subtracting the motor shaft angular velocity 913 of the motor 2152 that drives the second arm 2122 and the motor shaft angular velocity 913 of the motor 2142 that drives the first arm 2121 from the angular velocity detected by the inertial sensor 2190.
[0149] In addition, the deflection angular velocity 914 of the second arm 2122 can be obtained by subtracting the motor shaft angular velocity 913 of the motor 2142 that drives the first arm 2121 and the motor shaft angular velocity 913 of the motor 2152 that drives the second arm 2122 from the angular velocity detected by the inertial sensor 2190.
[0150] In addition, in the robot 2100 configured as above, the control method of the twelfth embodiment described above can also be used to control the motor 2171 for raising and lowering the spline shaft 2133 along the third rotation axis J3.
[0151] According to this configuration, vibrations at the tip end of the spline shaft 2133 can be effectively suppressed.
[0152] The thirteenth embodiment as described above can also achieve the same effects as the first embodiment described above.
[0153] <Fourteenth embodiment> FIG. 26 is a diagram showing a robot included in a robot system according to the fourteenth embodiment.
[0154] This embodiment is similar to the first embodiment described above, except for the configuration of the robot. In the following description, the present embodiment will be described focusing on the differences from the first embodiment described above, and the description of the similarities will be omitted. In the drawings of this embodiment, the same reference numerals are used for the same configurations as the above-mentioned embodiment.
[0155] 26, the robot 2200 of this embodiment is a six-axis vertical articulated robot having six drive axes, and includes a base 2210 fixed to the floor, and an arm 2220 rotatably connected to the base 2210. The arm 2220 includes a first arm 2221, a second arm 2222, a third arm 2223, a fourth arm 2224, a fifth arm 2225, and a sixth arm 2226 rotatably connected from the base 2210 side. An end effector according to the work is attached to the sixth arm 2226.
[0156] The robot 2200 also has a drive mechanism 2231 that rotates the first arm 2221 around a first rotation axis J21 relative to the base 2210, a drive mechanism 2232 that rotates the second arm 2222 around a second rotation axis J22 relative to the first arm 2221, a drive mechanism 2233 that rotates the third arm 2223 around the third rotation axis J23 relative to the second arm 2222, a drive mechanism 2234 that rotates the fourth arm 2224 around the fourth rotation axis J24 relative to the third arm 2223, a drive mechanism 2235 that rotates the fifth arm 2225 around the fifth rotation axis J25 relative to the fourth arm 2224, and a drive mechanism 2236 that rotates the sixth arm 2226 around the sixth rotation axis J26 relative to the fifth arm 2225.
[0157] Although not shown, each of these drive mechanisms 2231, 2232, 2233, 2234, 2235, and 2236 has a configuration similar to the drive mechanism 23 described above, and includes a reducer, a motor with a rotating shaft connected to the input side of the reducer, and a position detector that detects the rotation angle of the motor's rotating shaft.
[0158] The robot 2200 also has an inertial sensor 2241 disposed on the first arm 2221 and an inertial sensor 2242 disposed on the third arm 2223. The inertial sensor 2241 detects the angular velocity of the first arm 2221 about the first rotation axis J21. The inertial sensor 2242 detects the combined angular velocity of the second arm 2222 about the second rotation axis J22 and the angular velocity of the third arm 2223 about the third rotation axis J23.
[0159] In the robot 2200 configured as described above, the control methods of the first to eleventh embodiments described above are used to control the motors for driving the first and second arms 2221, 2222, thereby making it possible to effectively suppress vibration of the first and second arms 2221, 2222.
[0160] The deflection angular velocity 914 of the first arm 2221 can be obtained by subtracting the motor shaft angular velocity 913 of the motor that drives the first arm 2221 from the angular velocity detected by the inertial sensor 2241. This makes it possible to effectively suppress vibration of the first arm 2221.
[0161] In addition, the deflection angular velocity 914 of the second arm 2222 can be obtained by subtracting the motor shaft angular velocity 913 of the motor that drives the third arm 2223 and the motor shaft angular velocity 913 of the motor that drives the second arm 2222 from the angular velocity detected by the inertial sensor 2242.
[0162] In addition, the deflection angular velocity 914 of the third arm 2223 can be obtained by subtracting the motor shaft angular velocity 913 of the motor that drives the second arm 2222 and the motor shaft angular velocity 913 of the motor that drives the third arm 2223 from the angular velocity detected by the inertial sensor 2242.
[0163] According to this configuration, vibration of the tip end of the arm 2220, that is, the sixth arm 2226, can be effectively suppressed.
[0164] The fourteenth embodiment as described above can also achieve the same effects as the first embodiment described above.
[0165] The thirteenth embodiment described above shows an example of application to a horizontal articulated robot, and the fourteenth embodiment shows an example of application to a six-axis vertical articulated robot, but the present invention is not limited thereto. For example, the present invention may be applied to an orthogonal robot or a seven-axis vertical articulated robot. The present invention may be applied to any robot that has at least a rotary joint or a linear joint.
[0166] Although the robot control method and the robot system of the present invention have been described above based on the illustrated embodiment, the present invention is not limited to this, and the configuration of each part can be replaced with any configuration having a similar function. In addition, any other configuration may be added to the present invention. [Explanation of symbols]
[0167] 1...robot system, 2...robot, 21...base, 22...arm, 23...driving mechanism, 231...reduction gear, 232...motor, 233...position detector, 24...inertia sensor, 252...ball screw nut, 253...spline shaft, 27...driving mechanism, 271...motor, 272...position detector, 273...power transmission mechanism, 273a...pulley, 273b...timing belt, 28...load, 29...load, 3...control device, 30...controller, 31...position command generator, 32...position controller, 33...speed controller, 34...current controller, 35...flexure angular velocity feedback generator , 4... host computer, 5... teaching pendant, 600... two-inertia system model, 601... driving element, 602... driven element, 603... spring element, 604... rotating shaft, 700... two-inertia system model, 701... base element, 702... driving element, 703... spring element, 901... position command, 902... motor shaft position, 903... position deviation, 904... speed command, 905... speed loop command, 906... current command, 907... current, 911... angular velocity, 912... motor shaft equivalent arm angular velocity, 913... motor shaft angular velocity, 914... deflection angular velocity, 915... deflection angular velocity feedback, 921...position command, 922...motor shaft position, 923...position deviation, 924...speed command, 925...motor shaft angular velocity, 926...speed deviation, 927...current command, 928...current, 931...angular velocity, 932...deflection angular velocity, 933...deflection angular velocity feedback, 2100...robot, 2110...base, 2120...arm, 2121...first arm, 2122...second arm, 2130...work head, 2131...spline nut, 2132...ball screw nut, 2133...spline shaft, 2140...driving mechanism, 2141...reduction gear, 2142...motor, 214 3...position detector, 2150...driving mechanism, 2151...reduction gear, 2152...motor, 2153...position detector, 2160...driving device, 2161...motor, 2162...position detector, 2163...power transmission mechanism, 2170...driving device, 2171...motor, 2172...position detector, 2173...power transmission mechanism, 2190...inertial sensor, 2200...robot, 2210...base, 2220...arm, 2221...first arm, 2222...second arm, 2223...third arm, 2224...fourth arm, 2225...fifth arm, 2226...sixth arm, 2231...driving mechanism,2232...driving mechanism, 2233...driving mechanism, 2234...driving mechanism, 2235...driving mechanism, 2236...driving mechanism, 2241...inertia sensor, 2242...inertia sensor, Aref...angular acceleration command, Aref'...acceleration command, dt...time, Fs...thrust, J...rotating axis, J1...first rotating axis, J2...second rotating axis, J21...first rotating axis, J22...second rotating axis, J23...third rotating axis, J24...fourth rotating axis, J25...fifth rotating axis, J26...sixth rotating axis, J3...third rotating axis, Jg...central axis, Jl...load side inertia moment, Jm...motor shaft side inertia moment Js...detection axis, Kgp...deflection angular velocity feedback gain, Kgpb...deflection angular velocity feedback base gain, Kgpc...deflection angular velocity feedback gain coefficient, Kgs...arm angular velocity scaling coefficient, Kpp...position loop proportional gain, Ks...spring constant, Kvi...velocity loop integral gain, Kvp...velocity loop proportional gain, Lim...upper limit, N1e...angular acceleration increase end point, N1e'...acceleration increase end point, N1s...angular acceleration increase start point, N1s'...acceleration increase start point, N2e...angular acceleration decrease end point, N2e'...acceleration decrease end point end point, N2s...start point of angular acceleration decrease, N2s'...start point of acceleration decrease, N3e...end point of angular acceleration increase, N3e'...end point of acceleration increase, N3s...start point of angular acceleration increase, N3s'...start point of acceleration increase, N4e...end point of angular acceleration decrease, N4e'...end point of acceleration decrease, N4s...start point of angular acceleration decrease, N4s'...start point of acceleration decrease, S1...inertia information receiving step, S2...first feedback gain adjusting step, S3...drive control step, S4...second feedback gain adjusting step, T1...first timing, T1'...first timing, T2... Second timing, T2'...second timing, T3...third timing, T3'...third timing, T4...fourth timing, T4'...fourth timing, T5...fifth timing, T5'...fifth timing, T6...sixth timing, T6'...sixth timing, T7...seventh timing, T7'...seventh timing, T8...eighth timing, T8'...eighth timing, V1...speed, V2...speed, Vref...speed command, Vref'...speed command, m1...inertial mass, m2...inertial mass, ωd...deflection angular velocity, ωl...driven element angular velocity, ωm...driving element angular velocity,
Claims
1. an inertial information receiving step of receiving an output signal from an inertial sensor that measures the movement of the arm; a first feedback gain adjustment step of performing an adjustment to increase a feedback gain by which the output signal or a signal generated from the output signal is multiplied in response to a change in the operation of the arm; a drive control step of controlling drive of the arm using the feedback gain increased in the first feedback gain adjustment step; a second feedback gain adjusting step of adjusting the feedback gain to decrease the feedback gain after a predetermined time has elapsed since the first feedback gain adjusting step.
2. In the first feedback gain adjustment step, the feedback gain is changed from a reference value to a value higher than the reference value, 2. The method for controlling a robot according to claim 1, wherein in the second feedback gain adjustment step, the feedback gain is returned to the reference value.
3. the output signal includes inertia information that is information about inertia generated in the arm due to the movement, The first feedback gain adjusting step includes: a first timing at which the inertia information starts to increase when the arm starts to accelerate; a second timing at which the increase in the inertia information ends when the acceleration of the arm starts; a third timing at which the inertia information starts to decrease when the acceleration of the arm ends; a fourth timing at which the decrease in the inertia information ends when the acceleration of the arm ends; a fifth timing at which the inertia information starts to increase when the arm starts to decelerate; a sixth timing at which the increase in the inertia information ends when the arm starts to decelerate; a seventh timing at which the inertia information starts to decrease when deceleration of the arm is completed; an eighth timing at which the decrease in the inertia information ends when the deceleration of the arm ends; The method for controlling a robot according to claim 1, wherein the method is carried out by at least one of the steps.
4. the feedback gain is calculated by multiplying a feedback base gain, which is a reference for the feedback gain, by a feedback coefficient; 2. The method for controlling a robot according to claim 1, wherein in the first feedback gain adjusting step and the second feedback gain adjusting step, the feedback gain is adjusted by changing the feedback coefficient.
5. 4. The robot control method according to claim 3, wherein in the first feedback gain adjustment step, the feedback gains are adjusted to be different from each other at any two timings selected from the first timing, the second timing, the third timing, the fourth timing, the fifth timing, the sixth timing, the seventh timing, and the eighth timing.
6. 4. The robot control method according to claim 3, wherein in the first feedback gain adjustment step, the specified time is different from each other for any two timings selected from the first timing, the second timing, the third timing, the fourth timing, the fifth timing, the sixth timing, the seventh timing, and the eighth timing.
7. 2. The method for controlling a robot according to claim 1, wherein the change in the inertial information is detected based on a position command for the arm.
8. The method for controlling a robot according to claim 3 , wherein the first timing, the third timing, the fifth timing, and the seventh timing are timings at which the inertial information exceeds a threshold value.
9. 2. The method for controlling a robot according to claim 1, wherein in the first feedback gain adjustment step, conditions for adjusting the feedback gain are made different depending on whether the arm performs CP operation or PTP operation.
10. With the base, an arm that moves relative to the base; an inertial sensor for detecting the movement of the arm; A control unit that controls the drive of the arm, The control unit is receiving an output signal from the inertial sensor; adjusting the feedback gain by which the output signal or a signal generated from the output signal is multiplied in response to a change in the operation of the arm, controlling the drive of the arm using the adjusted feedback gain; A robot system comprising: a feedback gain adjustment step of decreasing the feedback gain after a predetermined time has elapsed since the feedback gain was increased.
11. a motor that rotates the arm about a rotation axis relative to the base; a position detector for detecting a rotation angle of the motor; 11. The robot system according to claim 10, wherein the control unit determines a deflection angular velocity based on the angular velocity of the arm about the rotation axis detected by the inertial sensor and the angular velocity of the motor detected by the position detector, and multiplies the deflection angular velocity by the feedback gain.
12. a moving part that moves linearly along a predetermined movement direction relative to the arm, The inertial sensor detects an angular velocity in a direction perpendicular to the movement direction of the moving part, the angular velocity being generated by elastic deformation of the arm; The robot system according to claim 10 , wherein the control unit determines a deflection angular velocity based on the angular velocity of the arm detected by the inertial sensor, and multiplies the deflection angular velocity by the feedback gain.