Robot control method and robot control device

The robot control method and device address over-regeneration by calculating and adjusting parameters like deceleration time and maximum speed to manage regenerative power, ensuring efficient operation and protecting circuit elements in robots with multiple motors.

WO2026105576A1PCT designated stage Publication Date: 2026-05-21PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO LTD
Filing Date
2025-10-28
Publication Date
2026-05-21

AI Technical Summary

Technical Problem

Existing robot control systems face challenges in managing regenerative power effectively, particularly when multiple motors are used, leading to potential over-regeneration that can damage circuit elements due to increased power supply voltage, which conventional methods like adding more resistors or using higher-rated capacitors are inefficient or impractical.

Method used

A robot control method and device that calculates dynamic torque and regenerative power for each joint axis, determines if the total regenerative power exceeds a reference value, and adjusts parameters such as deceleration time or maximum speed to prevent over-regeneration without altering circuit components.

Benefits of technology

Accurately estimates regenerative power and reduces acceleration only where necessary, effectively suppressing over-regeneration, thereby protecting circuit elements and maintaining operational efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025037865_21052026_PF_FP_ABST
    Figure JP2025037865_21052026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention provides a robot control method for controlling the movement of a robot having a plurality of joint shafts, the robot control method comprising: calculating the dynamic torque of each of the plurality of joint shafts on the basis of the rotation speed, the rotation acceleration, and the joint angle of each of the plurality of joint shafts (St1); calculating regenerative power of each of the plurality of joint shafts from the dynamic torque and the rotation speed of each of the plurality of joint shafts (St2); determining whether or not the total value of the regenerative power of the plurality of joint shafts exceeds a reference value (St3); and correcting a parameter related to movements of the plurality of joint shafts (St6) when the total value of the regenerative power exceeds the reference value (St3, YES).
Need to check novelty before this filing date? Find Prior Art

Description

Robot control method and robot control device , ,

[0004] ,

[0003] ,

[0006] ,

[0005] ,

[0001] The present disclosure relates to a robot control method and a robot control device that control the driving of a robot by a motor.

[0002] Patent Document 1 discloses a motor drive device that drives a brushless DC motor, suppresses a regenerative phenomenon during sine wave drive, and reduces torque ripple, vibration, and noise during motor drive. The motor drive device includes an inverter that converts supplied DC power into drive power for driving the motor and supplies it to the motor, a speed control unit that generates a group of speed control signals based on a speed command signal and a speed detection signal, and adjusts the drive power based on a drive control signal included in the group of speed control signals to control the speed of the motor, and a regenerative prevention means that determines whether or not a control state in which a regenerative phenomenon may occur based on speed command information included in the speed command signal and speed detection information included in the speed detection signal, and performs a regenerative suppression process for suppressing the regenerative phenomenon according to the determination result.

[0003] International Publication No. 2008 / 152761

[0004] The present disclosure provides a robot control method and a robot control method for suppressing the occurrence of an over-regenerative state in the operation control of a robot using a plurality of motors.

[0005] The present disclosure is a robot control method for controlling the operation of a robot having a plurality of joint axes, and calculates the dynamic torque in each of the plurality of joint axes based on the rotational speed, rotational acceleration, and joint angle of each of the plurality of joint axes, calculates the regenerative power of each of the plurality of joint axes from the dynamic torque and the rotational speed in each of the plurality of joint axes, determines whether or not the total value of the regenerative power of each of the plurality of joint axes exceeds a reference value, and corrects parameters related to the operation of the plurality of joint axes when the total value of the regenerative power exceeds the reference value.

[0006] Furthermore, this disclosure provides a robot control device for controlling the motion of a robot having multiple joint axes, comprising: a dynamic torque calculation unit that calculates the dynamic torque at each of the multiple joint axes based on the rotational speed, rotational acceleration, and joint angle of each of the multiple joint axes; a regenerative power calculation unit that calculates the regenerative power at each of the multiple joint axes from the dynamic torque and rotational speed at each of the multiple joint axes; a determination unit that determines whether the total value of the regenerative power at each of the multiple joint axes exceeds a reference value; and a correction processing unit that corrects parameters related to the motion of the multiple joint axes if the total value of the regenerative power exceeds the reference value.

[0007] According to this disclosure, it is possible to suppress the occurrence of an over-regenerative state in the motion control of a robot that uses multiple motors.

[0008] Figure 1 is a schematic diagram illustrating an example of a robot regenerative operation that is a prerequisite in the embodiments of this disclosure. Figure 2 is a graph showing an example of the time variation between the robot operating speed and the power supply voltage during conventional regenerative operation. Figure 3 is a diagram showing an example of the circuit configuration of a conventional robot control device equipped with a regenerative countermeasure circuit. Figure 4 is a block diagram showing an example of the functional configuration of a robot control device according to the embodiments of this disclosure. Figure 5 is a graph showing an example of a first correction pattern that achieves regenerative amount suppression in the embodiments. Figure 6 is a graph showing an example of a second correction pattern that achieves regenerative amount suppression in the embodiments. Figure 7 is a flowchart showing an example of the operation procedure for regenerative amount suppression by a robot control device according to the embodiments of this disclosure in chronological order.

[0009] (Background to this disclosure) Regenerative power is the power generated by the power generation action when an electric motor or other motor decelerates, and it is returned from the motor side to the power supply side, causing the power supply side voltage to rise. If the power supply side voltage rises to a level higher than the withstand voltage of the circuit elements, it may cause dielectric breakdown of the circuit elements. For this reason, it has been said that countermeasures against regenerative power have been necessary for a long time.

[0010] Here, with reference to Figures 1 to 3, an example of countermeasures for regenerative operation and regenerative power will be explained.

[0011] Figure 1 is a schematic diagram illustrating an example of the regenerative operation of robot RB1, which is a premise in the embodiments of this disclosure. Figure 2 is a graph showing an example of the time variation between the robot operating speed and the power supply voltage during conventional regenerative operation. Figure 3 is a diagram showing an example of the circuit configuration of a conventional robot control device equipped with a regenerative countermeasure circuit. In Figure 2, the horizontal axis represents time, and the vertical axis represents the power supply voltage and the operating speed of robot RB1 in Figure 1 (robot operating speed), respectively.

[0012] As shown in Figure 3, in the configuration of a conventional robot control device, a regenerative braking circuit 54 is incorporated to prevent an increase in the power supply voltage. If the power supply voltage Vp exceeds the withstand voltage, various elements constituting the power supply circuit within the robot control device may be destroyed.

[0013] Here, regenerative operation refers to an operation in which regenerative power is generated on the generator side (robot RB1 side), and an example of this is the deceleration operation of robot RB1. However, regenerative operation is not limited to the deceleration operation of robot RB1.

[0014] Furthermore, regenerative power can be described as electrical energy generated when the energy lost when the robot RB1 decelerates and stops is returned to the power source.

[0015] As shown in Figure 1, the embodiment of this disclosure illustrates a use case in which a robot RB1, which has degrees of freedom of motion based on three rotation axes (specifically, the first axis J1, the second axis J2, and the third axis J3), grips a heavy load FK1 at the tip of the robot arm RA1 and performs a swinging motion (movement in the direction of the arrow, mainly centered on the second axis J2, in Figure 1).

[0016] In this case, when the load FK1, which is gripped at the tip of the robot arm RA1, moves from a high position to a low position in the vertical direction, the potential energy (potential energy) of the robot RB1 is lost. It is also known that a moving object has kinetic energy, and this kinetic energy is lost when the movement stops. In other words, when the robot RB1 performs a downward swinging motion of the robot arm RA1 as shown in Figure 1, the potential energy and kinetic energy of the robot RB1 combine to generate a large amount of regenerative power. This is fed back to the power supply, which could cause an increase in the power supply voltage.

[0017] In Figure 2, time t1 is the time when the downward swinging motion of the robot arm RA1 of robot RB1 shown in Figure 1 begins. As shown in Figure 2, the robot's operating speed gradually increases from time t1, and after time t2, when the robot's operating speed exceeds the peak due to the downward swinging motion, the power supply voltage Vp (see Figure 3) begins to rise due to the regenerative power generated based on the downward swinging motion. At this time, in the conventional configuration, after time t2, when the voltage detection unit 54b (see Figure 3) of the regenerative protection circuit 54 detects that the power supply voltage Vp has reached the discharge start voltage Vjds, the transistor 54c (see Figure 3) of the regenerative protection circuit 54 starts discharging from the smoothing capacitor 53 (see Figure 3). As a result, current flows through the regenerative resistor 54a (see Figure 3) of the regenerative protection circuit 54, and the regenerative energy based on the regenerative power is converted into heat, suppressing the increase in the power supply voltage Vp and causing it to start to decrease.

[0018] On the other hand, when the voltage detection unit 54b of the regenerative braking circuit 54 detects that the power supply voltage Vp has reached the discharge termination determination voltage Vjde, the transistor 54c of the regenerative braking circuit 54 stops the discharge by the smoothing capacitor 53. As shown in Figure 2, during the deceleration operation of the robot arm RA1 of the robot RB1 during the downward swinging motion, the discharge and stopping of the smoothing capacitor 53 are repeated. Note that time t3 is the time when a certain amount of time has elapsed since the downward swinging motion of the robot arm RA1 was completed, and it represents the time just before the rise in the power supply voltage Vp converges and returns to a predetermined voltage value.

[0019] However, even with the control shown in Figure 2, there is an upper limit to the energy that can be consumed per unit time by the regenerative resistor 54a. Therefore, the regenerative energy based on the unconsumable regenerative power causes over-regeneration, which raises the power supply voltage Vp above the discharge start voltage Vjds. As mentioned above, if the power supply voltage Vp rises and exceeds the withstand voltage of the circuit elements of the power supply circuit, the circuit elements may be destroyed. Furthermore, even if the power supply voltage Vp does not exceed the withstand voltage of the circuit elements of the power supply circuit, there is a risk that the regenerative resistor 54a may burn out due to a temperature rise if discharge due to regenerative energy continues for a long time.

[0020] To solve these problems, one could consider methods such as increasing the number of regenerative resistors 54a in the regenerative braking circuit 54 to increase power consumption per unit time, or changing the smoothing capacitor 53 to one with a high voltage rating. However, such methods are undesirable because they lead to increased costs for the regenerative braking circuit 54 and larger circuit boards. For example, regenerative power is highest when the load on robot RB1 is at its maximum and the robot's operating speed is at its maximum, but selecting components to cover this maximum regenerative power and implementing regenerative braking measures is wasteful and impractical. Therefore, in current operation, regenerative braking measures are often implemented by restricting the maximum acceleration of robot RB1. However, reducing the maximum acceleration is a fundamental downgrade in specifications and, depending on the operation, unnecessarily prolongs the acceleration and deceleration time.

[0021] Patent Document 1 discloses a technology for determining the regenerative state from speed command information and speed detection information, and for performing suppression processing to prevent the regenerative state from occurring. However, Patent Document 1 assumes the use of a product consisting of a single motor, such as a fan motor, and does not assume the use of a product consisting of multiple motors, such as a robot. When multiple motors are connected to a power supply, as in a robot, it is necessary to consider the state of all connected motors when estimating the regenerative power returned to the power supply side. In addition, the change in potential energy depending on the robot's posture must also be considered when determining the regenerative state.

[0022] Therefore, this disclosure provides a robot control method and a robot control method that suppress the occurrence of an over-regenerative state in the motion control of a robot using multiple motors, without the need to change circuit elements, by accurately estimating the amount of regeneration during robot operation and reducing the acceleration only for operations that exceed the allowable value of the amount of regeneration.

[0023] Hereinafter, embodiments of the robot control device and robot control method relating to this disclosure will be described in detail, with reference to the drawings as appropriate. However, unnecessarily detailed explanations may be omitted. For example, detailed explanations of already well-known matters and redundant explanations of substantially identical configurations may be omitted. This is to avoid the following explanation becoming unnecessarily verbose and to facilitate understanding by those skilled in the art. The accompanying drawings and the following explanation are provided to enable those skilled in the art to fully understand this disclosure and are not intended to limit the subject matter described in the claims.

[0024] (1. Configuration of the robot control device) First, the robot control device 10 according to the embodiment of the present disclosure will be described with reference to Figure 4.

[0025] Figure 4 is a block diagram showing an example of the functional configuration of a robot control device 10 according to an embodiment of the present disclosure.

[0026] The robot control device 10 controls the movement of a robot arm 16, which is provided by the robot (for example, the robot RB1 in Figure 1) and has multiple joint axes (in other words, rotation axes).

[0027] The robot control device 10 includes at least a processing unit 12 for processing the motion program 11, a movement command generation unit 13, an acceleration / deceleration processing unit 14, a servo 15, a movement time calculation unit 17, an axis speed calculation unit 18, an acceleration / deceleration time calculation unit 19, a dynamic torque calculation unit 20, a regenerative amount calculation unit 21, a correction processing unit 22, and a multiplier 23.

[0028] Although not shown in the figures, the robot control device 10 of this embodiment also includes the configuration shown in Figure 3 (power supply, rectifier, smoothing capacitor 53, and regenerative braking circuit 54, etc.).

[0029] Each component shown in Figure 4 is realized by executing software stored in a recording unit (not shown) or read from an external source on a computing device such as a Central Processing Unit (CPU) (not shown) provided in the robot control device 10. This software may also include an operation program 11. Furthermore, for the sake of explanation, multiple sets of joint axes incorporated into the robot arm 16, and motors connected to these joint axes to rotate them, are omitted from the illustration.

[0030] The motion program 11 records the positions of multiple teaching points for the robot arm 16, the interpolation pattern corresponding to the shape of the trajectory connecting the multiple teaching points, and the target movement speed. The teaching point positions are the work point positions in orthogonal space, or the joint angles of each joint axis of the robot arm 16. The target movement speed is the target speed when moving between the multiple teaching points in the specified interpolation pattern.

[0031] There are two types of interpolation: Continuous Path (CP) interpolation, which interpolates between multiple work points in orthogonal space to trace a specific shape such as a straight line or an arc, and Point-to-Point (PTP) interpolation, which moves each joint axis at a constant rotational speed and does not depend on the shape of the trajectory between work points. In the following explanation, the case of performing PTP interpolation will be used as an example. PTP interpolation is an interpolation type that is applied when moving between teaching points in the shortest time, and in many cases, one or more of the joint axes of the robot arm 16 are moved to rotate at their maximum speed.

[0032] If the teaching point position recorded in the operation program 11 is a coordinate value in orthogonal space, the processing unit 12 converts that coordinate value into the joint angle value of each joint axis of the robot arm 16 and outputs it to the movement command generation unit 13, the axis velocity calculation unit 18, and the dynamic torque calculation unit 20, or outputs the coordinate value in orthogonal space to the movement time calculation unit 17. The processing unit 12 also outputs parameter values ​​(for example, target movement speed V) included in the operation program 11 to the movement command generation unit 13 and the movement time calculation unit 17. If the teaching point position is the joint angle of each joint axis of the robot arm 16, the processing unit 12 may output the values ​​of those joint angles to the movement command generation unit 13, the axis velocity calculation unit 18, and the dynamic torque calculation unit 20, or convert those joint angle values ​​into coordinate values ​​in orthogonal space and output them to the movement time calculation unit 17.

[0033] In the following description, any teaching point recorded in the operation program 11 will be referred to as teaching point Pa, and the next teaching point will be referred to as teaching point Pb. More specifically, in this embodiment, teaching point Pa is the position indicated by the coordinate values ​​in orthogonal space of the load FK1 before the start of the swing-down motion performed by the robot RB1 shown in Figure 1 (the position on the left in Figure 1). Similarly, teaching point Pb is the position indicated by the coordinate values ​​in orthogonal space of the load FK1 after the completion of the swing-down motion performed by the robot RB1 shown in Figure 1 (the position on the right in Figure 1).

[0034] The movement command generation unit 13 uses the outputs from the processing unit 12 and the movement time calculation unit 17 to generate a movement command based on the amount of movement between adjacent teaching points and the target movement speed V, and outputs it to the acceleration / deceleration processing unit 14. This movement command is the amount of joint angle movement per unit time. The amount of joint angle movement of each joint axis is grouped together to form one movement command. Therefore, the movement command is a vector quantity. The movement command generation unit 13 outputs multiple sets of movement commands corresponding to the movement time, which will be described later, in a time series. These multiple sets of movement commands output in a time series are called a movement command sequence. Note that the movement command sequence output by the movement command generation unit 13 does not undergo the acceleration / deceleration processing described later.

[0035] In the case of PTP interpolation, if the joint angles at teaching points Pa and Pb are θa and θb, respectively, and the travel time between the working points corresponding to the teaching points is Tm, and the unit time of interpolation is Th, then the movement command Δθ can be calculated as Δθ = (θb - θa) × Th / Tm. The travel time Tm is calculated by the travel time calculation unit 17, which will be described later. θa and θb are vector quantities whose elements are the joint angles of each joint axis, and Δθ is a vector quantity whose elements are the amount of joint angle movement per unit time of each joint axis.

[0036] The acceleration / deceleration processing unit 14 performs acceleration / deceleration processing using the movement command sequence from the movement command generation unit 13 and the output from the multiplier 23 (see below), and outputs the accelerated / deceleration processed movement command sequence to the servo 15. The acceleration / deceleration processing is performed using the output of the multiplier 23, which will be described later, and is based on the acceleration time or deceleration time after correction processing. The specific details of the correction processing will be described later.

[0037] Here, acceleration time refers to the time from when acceleration starts from the teaching point Pa until the moving speed (in other words, the robot's operating speed) reaches the target moving speed V (an example of maximum speed). Deceleration time refers to the time from when deceleration starts before reaching the teaching point Pb until the moving speed (in other words, the robot's operating speed) becomes zero. The acceleration / deceleration time is the sum of the acceleration time and the deceleration time. Furthermore, for each joint axis, the acceleration time (shortest acceleration time for each axis) is calculated when accelerating to the target moving speed V (in other words, the target rotational speed) at the maximum allowable acceleration for each joint axis. The value with the largest among these shortest acceleration times for each joint axis is selected and set as the common acceleration time for all axes. All joint axes are accelerated using this common acceleration time for all axes. Similarly, during deceleration, the value with the largest among the shortest deceleration times for each joint axis is selected and set as the common deceleration time for all axes.

[0038] The acceleration / deceleration processing unit 14 accelerates the sequence of movement commands from the movement command generation unit 13 so that it reaches the target movement speed V within the acceleration time output by the acceleration / deceleration time calculation unit 19, which will be described later. Specifically, the acceleration / deceleration processing unit 14 changes the rotational acceleration (acceleration) at each joint axis over time to reach a predetermined target movement speed V. The acceleration / deceleration processing unit 14 also decelerates the sequence of movement commands from the movement command generation unit 13 so that it starts decelerating from the target movement speed V before reaching the teaching point Pb and reaches the teaching point Pb after the deceleration time output by the acceleration / deceleration time calculation unit 19 has elapsed.

[0039] The servo 15 controls the movement of the robot arm 16 by rotating the motors connected to each joint axis based on the movement command sequence processed by the acceleration / deceleration processing unit 14.

[0040] The movement time calculation unit 17 uses the output from the processing unit 12 to calculate the time required for the tip of the robot arm 16 gripping the load FK1 to move from teaching point Pa to teaching point Pb at the target movement speed V without acceleration or deceleration (specifically, the rotational movement of the robot arm 16 performed during the swing-down motion), and outputs this time to the movement command generation unit 13 and the axis speed calculation unit 18. This required time corresponds to the movement time Tm described above. When the distance traveled between the work points corresponding to teaching points Pa and Pb is L and the target movement speed is V, the movement time Tm is expressed as Tm = L / V. In the case of PTP interpolation, the distance traveled L corresponds to the straight-line distance between the work points. Furthermore, when operating the robot arm 16 by accelerating or decelerating each joint axis, if there is an axis whose rotational speed exceeds its own maximum allowable speed, the movement time Tm is modified so that the rotational speed of that axis falls within the maximum allowable speed.

[0041] Furthermore, in PTP interpolation, when moving between work points corresponding to teaching points Pa and Pb in the shortest time, the movement time calculation unit 17 sets the maximum value obtained by dividing the movement angle of each joint axis by its maximum rotation speed (shortest movement time of that axis) as the movement time Tm. That is, when the movement angle of axis j (j: an integer of 1 or more and less than or equal to the number of joint axes of the robot arm 16) among the multiple joint axes is Δθj, and the maximum rotation speed of joint axis j is ωjmax, the movement time Tm is expressed as Tm = max{Δθj / ωjmax}. max{} means selecting the largest value among the elements (one or more) in the brackets {}.

[0042] Each axis speed calculation unit 18 uses the outputs of the processing unit 12 and the movement time calculation unit 17 to calculate the target rotational speed ωj (in other words, the target movement speed) of each joint axis during PTP interpolation, and outputs it to the acceleration / deceleration time calculation unit 19 and the dynamic torque calculation unit 20. The target rotational speed ωj for the j axis is expressed as ωj = (θbj - θaj) / Tm. θaj and θbj are the joint angles of the j axis at adjacent teaching points Pa and Pb, respectively, and Tm is the movement time obtained from the movement time calculation unit 17. Therefore, the target rotational speed ωj is a vector quantity whose elements are the target rotational speed of each joint axis. Note that the value of the target rotational speed ωj can be determined in advance before PTP interpolation.

[0043] The acceleration / deceleration time calculation unit 19 calculates and outputs an acceleration time Ta when accelerating from the teaching point Pa to the target moving speed V, and a deceleration time Tb when decelerating from the target moving speed V in front of the teaching point Pb and reaching the teaching point Pb. In the case of PTP interpolation, the acceleration / deceleration time calculation unit 19 calculates and outputs the shortest acceleration / deceleration time based on the target rotational speed ωj of each joint axis from each axis speed calculation unit 18.

[0044] First, the acceleration / deceleration time calculation unit 19 calculates the shortest acceleration time Taj for the j-axis by Taj = |ωj| / αajmax. Here, ωj is the target rotational speed of the j-axis calculated by each axis speed calculation unit 18, and αajmax is the maximum allowable acceleration of the j-axis when only the j-axis is accelerated independently at the teaching point Pa, and is defined, for example, by the operation program 11. The acceleration / deceleration time calculation unit 19 calculates the acceleration time Ta when moving the robot arm 16 from the teaching point Pa by Ta = max{Taj}. The acceleration time Ta is a scalar quantity. Here, max{} means selecting the element with the maximum value from the plurality of elements within the parentheses {}.

[0045] Similarly, for the shortest deceleration time Tbj of the j-axis, the acceleration / deceleration time calculation unit 19 calculates it by Tbj = |ωjc| / αbjmax. Here, αbjmax is the maximum allowable acceleration of the j-axis when only the j-axis is decelerated independently at the teaching point Pb, and is defined, for example, by the operation program 11. The acceleration / deceleration time calculation unit 19 calculates the deceleration time Tb when moving the robot arm 16 to the teaching point Pb by Tb = max{Tbj}. The deceleration time Tb is a scalar quantity. The acceleration time Ta and the deceleration time Tb calculated by the acceleration / deceleration time calculation unit 19 are input to the dynamic torque calculation unit 20 and the multiplier 23.

[0046] The dynamic torque calculation unit 20 calculates the dynamic torque of each joint axis at time t and outputs it to the regeneration amount calculation unit 21. Specifically, the dynamic torque calculation unit 20 calculates the dynamic torque at time t using the outputs of the processing unit 12, each axis speed calculation unit 18, and the acceleration / deceleration time calculation unit 19, and outputs it to the regeneration amount calculation unit 21. In addition to the rotation angles θa and θb, the output of the processing unit 12 includes constants such as the link lengths, center-of-gravity positions, center-of-gravity masses, moments of inertia of the links, and motor inertias defined in the operation program 11. This dynamic torque is the torque required for each joint axis to operate at the rotation speed ω and acceleration α in the case of the joint angle θ, and each of the joint angle θ, rotation speed ω, and acceleration α is a vector quantity composed of components of each joint axis.

[0047] The dynamic torque τ(t) at time t is represented by, for example, the following equations (1) to (3). Here, H(θ(t)) is the inertia matrix at the joint angle θ(t), and D is the viscous matrix composed of viscous coefficients. Also, b(ω(t), θ(t)) is the sum of the centrifugal force, Coriolis force, and gravitational torque at the joint angle θ(t) due to the speed ω(t) at time t. Note that equation (1) can be derived by formulating and solving the equation of motion of the robot arm 16 by the Lagrange method or the Newton-Euler method.

[0048] τ(t) = τbp + τbr...(1) τbp = H(θ(t)) × α(t)...(2) τbr = D × ω(t) + b(ω(t), θ(t))...(3) That is, the right side of equation (1) can be divided into a component that depends only on acceleration and a component that does not depend on acceleration, and the dynamic torque calculation unit 20 separates the dynamic torque calculated by equation (1) into the dynamic torque τbp of equation (2) and the dynamic torque τbr of equation (3). More specifically, equation (2) is a component of the dynamic torque that depends only on acceleration and can be called the "acceleration term of the dynamic torque". Also, equation (3) is a component that does not depend on acceleration and can be called the "non-acceleration term of the dynamic torque".

[0049] Furthermore, the dynamic torque calculation unit 20 acquires data from each axis speed calculation unit 18 at the point when the absolute value of acceleration is maximum during the deceleration operation of the robot arm 16, as a representative value. Specifically, the dynamic torque calculation unit 20 acquires the rotational speed ωbp at the point when the absolute value of acceleration is maximum during the deceleration operation of the robot arm 16 from each axis speed calculation unit 18 and outputs it to the regenerative amount calculation unit 21.

[0050] The regenerative power calculation unit 21 uses the output from the dynamic torque calculation unit 20 to calculate the regenerative power (in other words, the amount of regeneration) for each joint axis based on the movement of the robot arm 16 at time t, and calculates the sum of the regenerative powers for each joint axis (Στ[j]×ω[j]). The regenerative power at time t is obtained by multiplying the dynamic torque τ(t) at time t by the rotational speed ω(t) at time t. When τ(t)×ω(t) > 0, it is in a powered state, and power is supplied to the robot arm 16 from the power source. On the other hand, when τ(t)×ω(t) < 0, it is in a regenerative state, and power is returned (returned) from the robot arm 16 to the power source. The robot RB1 has multiple joint axes, and the power supply to each joint axis is common. Therefore, the regenerative amount calculation unit 21 calculates the regenerative amount for each joint axis and calculates the total axis regenerative power by summing the individual regenerative amounts. Based on this calculation result of total axis regenerative power, it determines whether the power supply circuit (not shown) of the robot control device 10 is in a regenerative state or a motor state.

[0051] Furthermore, the regeneration amount calculation unit 21 separates Στ[j]×ω[j], which corresponds to the total shaft regenerative power, into an acceleration term of the total shaft regenerative power (Στbp[j]×ωbp[j]) corresponding to the acceleration term of the dynamic torque, and a non-acceleration term of the total shaft regenerative power (Στbr[j]×ωbp[j]) corresponding to the non-acceleration term of the dynamic torque, using the results calculated by the dynamic torque calculation unit 20, and outputs them to the correction processing unit 22.

[0052] The correction processing unit 22 determines whether the total regenerative power of all axes calculated by the regenerative amount calculation unit 21 (i.e., the sum of (Στbp[j] × ωbp[j]) and (Στbr[j] × ωbp[j])) is greater than a reference value. This reference value is a fixed value set in advance to determine that the power supply circuit (not shown) of the robot control device 10 is in a regenerative state, and is stored in advance in the memory (not shown) of the robot control device 10. The reference value is an acceptable power value designed to prevent dielectric breakdown or burnout of the circuit elements of the power supply circuit (not shown) of the robot control device 10, and is a negative value indicating a regenerative state. If the correction processing unit 22 determines that the total regenerative power of all axes is greater than the reference value, it calculates a correction coefficient γ to correct the deceleration operation to such that the total regenerative power of all axes does not exceed the reference value by increasing the deceleration time Tb based on the excess amount corresponding to the difference between the total regenerative power of all axes and the reference value.

[0053] In other words, in this embodiment, the correction processing unit 22 increases the deceleration time Tb used by the acceleration / deceleration processing unit 14 by determining a correction coefficient γ that increases the deceleration time Tb calculated by the acceleration / deceleration time calculation unit 19, in order to reduce the regenerative power (all-axis regenerative power) generated in the power supply circuit (not shown) of the robot control device 10. When the deceleration time Tb is increased, the deceleration becomes slower and the peak of the dynamic torque τbp, which depends on acceleration, decreases. As the peak of the dynamic torque τbp decreases, the component of the all-axis regenerative power, which depends on acceleration, also decreases. In other words, the reason why the regenerative amount calculation unit 21 separates the all-axis regenerative power into an acceleration term and a non-acceleration term is to separate the term that is affected by changes in acceleration and deceleration from the term that is not affected by changes in acceleration and deceleration by adjusting the deceleration time Tb.

[0054] If the total regenerative power of all axes exceeds the reference value, the correction processing unit 22 calculates a correction coefficient γ based on the excess amount corresponding to the difference between the total regenerative power of all axes and the reference value, according to equation (4), based on the acceleration term of the total regenerative power of all axes corresponding to the acceleration term of the dynamic torque and the non-acceleration term of the total regenerative power of all axes corresponding to the non-acceleration term of the dynamic torque, and outputs it to the multiplier 23.

[0055] γ = (Στbp[j] × ωbp[j]) / {reference value - (Στbr[j] × ωbp[j])} ... (4) The multiplier 23 corrects the deceleration time Tb by multiplying the correction coefficient γ calculated by the correction processing unit 22 with the deceleration time Tb calculated by the acceleration / deceleration time calculation unit 19 (i.e., performing the operation γ × Tb), thereby increasing the deceleration time Tb. The result of the multiplication by the multiplier 23 is input to the acceleration / deceleration processing unit 14.

[0056] (2. Operation of the robot control device) Next, the operation of the robot control device 10 according to this embodiment will be described with reference to Figures 5 to 7.

[0057] Figure 5 is a graph showing an example of a first correction pattern that achieves regenerative amount suppression in the embodiment of this disclosure. Figure 6 is a graph showing an example of a second correction pattern that achieves regenerative amount suppression in the embodiment. Figure 7 is a flowchart showing an example of the operation procedure for regenerative amount suppression by the robot control device 10 according to the embodiment in chronological order. In the series of processes shown in Figure 7, the processing of the regenerative amount calculation unit 21 using the dynamic torque calculated by the dynamic torque calculation unit 20 of the robot control device 10 and the processing of the correction processing unit 22 using the processing result of the regenerative amount calculation unit 21 are illustrated as examples in order to achieve regenerative amount suppression.

[0058] Figures 5 and 6 illustrate an example of the second axis J2 (see Figure 1) of the robot arm 16, showing examples of changes in axis angle (θ), axis velocity (ω), axis acceleration (α), and axis torque (τ) with respect to time t. In Figures 5 and 6, dashed lines represent the command values ​​for position (angle), velocity, and acceleration, solid lines represent the measured values ​​for each command value, and thick solid lines represent examples of changes in the measured values ​​after correction processing.

[0059] Figure 5 shows an example where the deceleration time Tb is increased to reduce the total regenerative power (regeneration amount) of all axes. In other words, in Figure 5, the deceleration time Tb is increased to deceleration time Tb' (> deceleration time Tb), making the changes in axis angle, axis velocity, and axis acceleration during deceleration equally gradual. As a result, the axis velocity at the peak of axis acceleration (ωbp) remains almost unchanged, but the peak of axis acceleration (αbp) decreases to α'bp, and for axis torque, there is no increase or decrease in the non-acceleration term of axis torque, but a decrease in the absolute value of the acceleration term of axis torque is observed (i.e., τbp → τ'bp (|τ'bp| < |τbp|)). Therefore, in the example of Figure 5, the robot control device 10 can reduce the acceleration term of the total regenerative power by performing a correction process that increases the deceleration time Tb, and can efficiently suppress the amount of regeneration.

[0060] Figure 6 shows an example of reducing the maximum speed ωmax, which is the peak of the axis speed ω, in order to reduce the total regenerative power (regeneration amount) of all axes. In other words, in Figure 6, the maximum speed ωmax is reduced to the maximum speed ω'max (< maximum speed ωmax, ω'max = ωmax / γ). As a result, the total amount of speed change from the maximum speed to speed 0 (zero) decreases, so the absolute value of the peak of the axis acceleration decreases (αbp → α'bp (|α'bp| < |αbp|)). As for the axis torque, although there is no increase or decrease in the non-acceleration term of the axis torque, as in the example in Figure 5, a decrease in the absolute value of the acceleration term of the axis torque is observed (i.e., τbp → τ'bp (|τ'bp| < |τbp|)). Therefore, in the example in Figure 6, as in the example in Figure 5, the robot control device 10 can reduce the acceleration term of the total regenerative power of all axes by performing a correction process to reduce the maximum speed ωmax, and thus efficiently suppress the amount of regeneration.

[0061] Next, in Figure 7, the dynamic torque calculation unit 20 calculates the dynamic torque of each joint axis at time t and separates it into an acceleration term and a non-acceleration term of the dynamic torque (St1). The dynamic torque calculation unit 20 also obtains data from each axis velocity calculation unit 18 as a representative value when the absolute value of acceleration is maximum during the deceleration operation of the robot arm 16.

[0062] The regenerative power calculation unit 21 uses the output from the dynamic torque calculation unit 20 to calculate the regenerative power (in other words, the amount of regeneration) for each joint axis based on the movement of the robot arm 16 at time t, and calculates the sum of the regenerative power of each joint axis (Στ[j]×ω[j]) (St2). Furthermore, the regenerative power calculation unit 21 calculates the total regenerative power (Στ[j]×ω[j]) corresponding to the total axis regenerative power using the acceleration and deacceleration terms of the dynamic torque calculated by the dynamic torque calculation unit 20, as the sum of the acceleration term of the total axis regenerative power (Στbp[j]×ωbp[j]) corresponding to the acceleration term of the dynamic torque, and the deacceleration term of the total axis regenerative power (Στbr[j]×ωbp[j]) corresponding to the deacceleration term of the dynamic torque (St2).

[0063] If the regenerative power calculation unit 21 determines that the total regenerative power calculated in step St2 is greater than the reference value (St3, YES), it determines that the power consumption in the regenerative countermeasure circuit 54 (Figure 3), etc., is insufficient, and that the robot RB1 will perform an over-regenerative operation that causes an excessive rise in the power supply voltage Vp (St4).

[0064] The correction processing unit 22 corrects the parameters based on the excess amount corresponding to the difference between the total regenerative power of all axes and the reference value (for example, by increasing the deceleration time Tb) and calculates a correction coefficient γ to correct the deceleration operation so that the total regenerative power of all axes does not exceed the reference value (St5). Specifically, if the value of the total regenerative power of all axes exceeds the reference value, the correction processing unit 22 calculates a correction coefficient γ based on the excess amount corresponding to the difference between the total regenerative power of all axes and the reference value according to equation (4) and outputs it to the multiplier 23.

[0065] The multiplier 23 corrects the parameter (for example, increases the deceleration time Tb) by multiplying the correction coefficient γ calculated by the correction processing unit 22 by the parameter (for example, deceleration time Tb) calculated by the acceleration / deceleration time calculation unit 19 (i.e., by performing γ × Tb) (St6). As a result, as shown in Figure 5, the robot control device 10 can reduce the acceleration term of the regenerative power of all axes and efficiently suppress the amount of regeneration. On the other hand, if a correction process is performed in steps St5 and St6 to reduce the maximum speed ωmax, which is the peak of the axis speed ω, as a parameter, as shown in Figure 6, the robot control device 10 can reduce the acceleration term of the regenerative power of all axes and efficiently suppress the amount of regeneration.

[0066] On the other hand, if the regenerative power calculation unit 21 determines that the total regenerative power calculated in step St2 is less than the reference value (St3, NO), it determines that the robot is in a regenerative or traction state that can be processed by the regenerative countermeasure circuit 54 (Figure 3), and that the robot is operating normally (St7). In this case, the correction processing unit 22 maintains the current values ​​without changing the parameters (e.g., deceleration time) (St8).

[0067] (Note) The following technologies are disclosed based on the above description of embodiments.

[0068] (Item 1) A robot control method for controlling the operation of a robot (RB1) having a plurality of joint axes (for example, J1, J2, J3, ..., hereinafter referred to as J1 to J3), comprising: calculating the dynamic torque (τ) at each of the plurality of joint axes (J1 to J3) based on the rotational speed (ω), rotational acceleration (α), and joint angle (θ) of each of the plurality of joint axes (J1 to J3); calculating the regenerative power of each of the plurality of joint axes (J1 to J3) from the dynamic torque (τ) and rotational speed (ω) at each of the plurality of joint axes (J1 to J3); determining whether the sum of the regenerative powers of each of the plurality of joint axes (J1 to J3) exceeds a reference value; and correcting parameters related to the operation of the plurality of joint axes (J1 to J3) (for example, deceleration time Tb, or maximum speed ωmax, which is the peak of the rotational speed ω).

[0069] As a result, according to this robot control method, in the motion control of a robot that uses multiple motors, the amount of regeneration during robot operation can be estimated with high accuracy, and the occurrence of over-regeneration can be suppressed by reducing the acceleration only for movements that exceed the allowable value of the amount of regeneration.

[0070] (Item 2) The robot control method according to Item 1, wherein, in correcting the parameters, the parameters are corrected so that the total value of the regenerative power does not exceed the reference value, based on the amount by which the total value of the regenerative power exceeds the reference value.

[0071] This robot control method allows for further adjustment of parameters to ensure that the total regenerative power of all axes does not exceed the standard value, even after taking into account any excess exceeding the standard value, thereby effectively suppressing the occurrence of over-regeneration conditions.

[0072] (Item 3) The robot control method according to Item 1 or 2, wherein the parameter is the deceleration time (Tb) during the regenerative over-movement of the plurality of joint axes (J1 to J3).

[0073] With this robot control method, it becomes possible to efficiently reduce the amount of regeneration by increasing the deceleration time Tb of the axial acceleration α of the robot arm 16 in proportion to the difference exceeding the reference value of the total regenerative power of all axes.

[0074] (Item 4) The robot control method according to Item 1 or 2, wherein the parameter is the maximum velocity (ωmax) in the overall motion including acceleration, constant velocity, and deceleration of the plurality of joint axes (J1 to J3).

[0075] As a result, according to the robot control method, it becomes possible to efficiently reduce the amount of regeneration by decreasing the maximum speed ωmax, which is the peak of the axis speed ω of the robot arm 16, in proportion to the difference that exceeds the reference value of the total axis regenerative power.

[0076] (Item 5) A robot control device (10) for controlling the movement of a robot (RB1) having multiple joint axes (J1 to J3), comprising: a dynamic torque calculation unit (20) that calculates the dynamic torque (τ) at each of the multiple joint axes (J1 to J3) based on the rotational speed (ω), rotational acceleration (α), and joint angle (θ) of each of the multiple joint axes (J1 to J3); a regenerative power calculation unit (regenerative amount calculation unit 21) that calculates the regenerative power of each of the multiple joint axes (J1 to J3) from the dynamic torque (τ) and rotational speed (ω) at each of the multiple joint axes (J1 to J3); and a determination unit (regenerative amount calculation unit 21) that determines whether the total value of the regenerative power of each of the multiple joint axes (J1 to J3) exceeds a reference value. A robot control device (10) comprising: a correction processing unit (22) that corrects parameters related to the operation of the plurality of joint axes (J1 to J3) (for example, deceleration time Tb, or maximum speed ωmax which is the peak of the rotational speed ω) when the total value of the regenerative power exceeds the reference value.

[0077] With such a robot control device, in the motion control of a robot using multiple motors, the amount of regeneration during robot operation can be estimated with high accuracy, and the occurrence of over-regeneration can be suppressed by reducing the acceleration only for movements that exceed the allowable value of the amount of regeneration.

[0078] This disclosure is useful as a robot control method and robot control method, etc., for suppressing the amount of regeneration in the motion control of a robot that uses multiple motors.

[0079] 10 Robot control device 11 Operation program 12 Processing unit 13 Movement command generation unit 14 Acceleration / deceleration processing unit 15 Servo 16 Robot arm 17 Movement time calculation unit 18 Each axis speed calculation unit 19 Acceleration / deceleration time calculation unit 20 Dynamic torque calculation unit 21 Regeneration amount calculation unit 22 Correction processing unit 53 Smoothing capacitor 54 Regeneration countermeasure circuit 54a Regeneration resistor 54b Voltage detection unit 54c Transistor FK1 Load J1 First axis J2 Second axis J3 Third axis Pa, Pb Teaching point RA1 Robot arm RB1 Robot St1-St8 Step t1-t3 Time Ta Acceleration time Tb, Tb' Deceleration time Tm Movement time V Target movement speed Vjde Discharge end determination voltage Vjds Discharge start voltage Vp Power supply voltage α Shaft acceleration αbp, α'bp Peak of axial acceleration γ Correction coefficient θ Shaft angle θa, θb Joint angle τ Shaft torque τbp, τ'bp, τbr Dynamic torque ω Shaft speed ωj Target rotational speed ωmax, ω'max Maximum speed

Claims

1. A robot control method for controlling the motion of a robot having multiple joint axes, comprising: calculating the dynamic torque at each of the multiple joint axes based on the rotational speed, rotational acceleration, and joint angle of each of the multiple joint axes; calculating the regenerative power at each of the multiple joint axes from the dynamic torque and rotational speed at each of the multiple joint axes; determining whether the sum of the regenerative powers at each of the multiple joint axes exceeds a reference value; and correcting the parameters related to the motion of the multiple joint axes if the sum of the regenerative powers exceeds the reference value.

2. The robot control method according to claim 1, wherein, in correcting the parameters, the parameters are corrected based on the amount by which the total value of the regenerative power exceeds the reference value, so that the total value of the regenerative power does not exceed the reference value.

3. The robot control method according to claim 1 or claim 2, wherein the parameter is the deceleration time during the regenerative over-movement of the plurality of joint axes.

4. The robot control method according to claim 1 or 2, wherein the parameter is the maximum velocity in the overall motion including acceleration, constant velocity, and deceleration of the plurality of joint axes.

5. A robot control device for controlling the motion of a robot having multiple joint axes, comprising: a dynamic torque calculation unit that calculates the dynamic torque at each of the multiple joint axes based on the rotational speed, rotational acceleration and joint angle of each of the multiple joint axes; a regenerative power calculation unit that calculates the regenerative power at each of the multiple joint axes from the dynamic torque and rotational speed at each of the multiple joint axes; a determination unit that determines whether the total value of the regenerative power at each of the multiple joint axes exceeds a reference value; and a correction processing unit that corrects the parameters related to the motion of the multiple joint axes if the total value of the regenerative power exceeds the reference value.