The present invention claims priority under 35 U.S.C. § 119 to Japanese Application No. 2021-119888 filed Jul. 20, 2021, the entire content of which is incorporated herein by reference.
At least an embodiment of the present invention may relate to control of a robot having a plurality of axes, and especially, relate to a robot controller which is capable of stopping a robot in an emergency while maintaining a coordinate of a hand tip in a predetermined trajectory and an emergency stop method of the robot.
A robot controller which controls a robot having a plurality of axes and motors for each axis is provided with motor drive control parts each of which is provided for each motor to perform servo-control based on position command values to the motor. In order to move the robot along a specified trajectory, a plurality of axes provided in the robot is required to be moved simultaneously. Therefore, the robot controller is provided with an all-axes control part which collectively calculates and outputs position command values for each axis of the robot, and the position command values of each axis calculated in the all-axes control part are transmitted to a corresponding motor drive control part. Further, the robot is required to be emergency-stopped when the robot detects abnormality or when a command of an emergency stop is inputted from the outside during operation. When an emergency stop is to be performed, motor speeds of all axes are required to be 0 (zero) within a predetermined time period. Therefore, the robot controller is provided with an emergency stop signal input part into which an emergency stop signal instructing an emergency stop is to be inputted. When a robot is to be emergency-stopped, it is preferable that a position and a posture of the robot after emergency-stopped is located on a normal trajectory of the robot. Stopping at a position other than a normal trajectory, in other words, a situation that the robot is not maintained in a desired trajectory means that the robot is moved to an unexpected position and thus, a safety problem may occur and, in addition, it is difficult to control the robot when the robot is restored from the emergency stop.
As a control method in a robot controller when an emergency stop signal is inputted to make the robot emergency-stop, a method has been known in which an emergency stop signal is supplied to an all-axes control part, and the all-axes control part performs operation planning and inverse kinematics calculation of a hand tip based on a reference position of the hand tip when the emergency stop signal is received, and position command values of the respective axes are outputted so that the robot is stopped on a normal trajectory as near as possible. For example, Japanese Patent Laid-Open No. 2014-34108 (Patent Literature 1) discloses a technique that, when an emergency stop is to be performed, an all-axes control part plans an operation so that a hand is linearly moved in a moving direction of the hand while keeping a direction of the hand when the emergency stop signal is inputted and controls a motor for each axis. As a control method in a robot controller when a robot is to be emergency-stopped, a method has been known in which an emergency stop signal is supplied to respective motor drive control parts, and each of the motor drive control parts decelerates and stops each motor at acceleration for an emergency stop which is determined for each motor.
In a case that a robot is to be decelerated and stopped while maintaining a coordinate and a direction of a hand tip on a target trajectory when an emergency stop signal is inputted into a robot controller, a processing time for inverse kinematics calculation and operation planning is required, and a delay is also generated between an all-axes control part and motor drive control parts due to a transmission interval of position command values. Therefore, it is difficult to rapidly stop the robot after abnormality is detected and an emergency stop signal is generated. On the other hand, in a case that an emergency stop signal is inputted into respective motor drive control parts to decelerate and stop respective motors, a motor is controlled by speed command values calculated in an inside of the motor drive control part with a motor coordinate system of each axis as a reference and thus, each axis is independently stopped and it is not guaranteed that the robot is stopped on a normal trajectory.
In view of the problem described above, at least an embodiment of the present invention may advantageously provide a robot controller and an emergency stop method in which a robot is rapidly stopped while maintaining a coordinate and a direction of a hand tip on a target trajectory when the robot is to be emergency-stopped.
According to at least an embodiment of the present invention, there may be provided a robot controller which is configured to control a robot having a plurality of axes and driven by motors provided for each axis. The robot controller includes an all-axes control part which collectively calculates position command values for the plurality of the axes based on a predetermined trajectory of the robot, and motor drive control parts which are provided for each axis, and each of the motor drive control parts servo-controls the motor for each axis based on the position command value of a corresponding axis transmitted from the all-axes control part. The motor drive control part is provided with a stopping position command calculation part which calculates a stopping position command value for each axis for stopping a corresponding motor with a motor coordinate system as a reference. The motor drive control part switches the position command value used for servo-control from the position command value from the all-axes control part to the stopping position command value for each axis and servo-controls the corresponding motor when an emergency stop signal is inputted and, after that, the motor drive control part returns the position command value used for servo-control from the stopping position command value for each axis to the position command value from the all-axes control part to continue servo-control of the corresponding motor. The all-axes control part starts calculation for outputting an emergency stop position command value for stopping the robot on the predetermined trajectory when the emergency stop signal is inputted.
When a robot is to be emergency-stopped, an emergency stop position command value for stopping the robot on a predetermined trajectory, in other words, while maintaining a coordinate and a direction of a hand tip on a target trajectory is calculated in the all-axes control part after an emergency stop command is inputted and is transmitted to the motor drive control part. Therefore, a time for calculation processing until an emergency stop position command value starts to be outputted and a time required to transmit a position command value between the all-axes control part and the motor drive control part act as a delay time for stopping the robot. According to the robot controller in accordance with the present invention, when an emergency stop signal is inputted, the motor drive control part switches the position command value used for servo-control from the position command value from the all-axes control part to the stopping position command value for each axis and servo-controls the corresponding motor and, after that, the motor drive control part returns the position command value used for servo-control from the stopping position command value for each axis to the position command value from the all-axes control part to continue servo-control of the corresponding motor. Therefore, a delay time for stopping the robot can be shortened, and the robot can be rapidly stopped while maintaining a coordinate and a direction of a hand tip on a target trajectory.
In the robot controller in accordance with the present invention, it may be configured that, in a transition period in which the position command value used for servo-control is returned from the stopping position command value for each axis to the position command value from the all-axes control part, the motor drive control part calculates a position command value used for servo-control which is obtained by proportionally dividing the stopping position command value for each axis and the position command value from the all-axes control part while changing a proportional division rate. When the above-mentioned control is performed, a position command value used for servo-control can be returned to the position command value transmitted from the all-axes control part with a small amount of calculation while suppressing occurrence of vibration and an impact in the robot.
In the robot controller in accordance with the present invention, it may be configured that the all-axes control part is provided with an estimate value calculation part which estimates a movement of the robot by servo-controlling the motor for each axis through the stopping position command value for each axis, and a position command value calculation part which calculates a position command value for a correction operation which returns the robot to the predetermined trajectory based on an estimated result by the estimate value calculation part. The position command value calculation part calculates the emergency stop position command value following calculation of the position command value for the correction operation. According to this configuration, a position command value used for servo-control can be further smoothly returned to the position command value transmitted from the all-axes control part.
In the robot controller in accordance with the present invention, it may be configured that the position command value used for servo-control can be returned from the stopping position command value for each axis to the position command value of the all-axes control part based on a position-command switching command calculated by the all-axes control part. According to this configuration, the position command value used for servo-control can be returned to the position command value transmitted from the all-axes control part according to a timing when the all-axes control part is capable of outputting a position command value for a correction operation or an emergency stop position command value and thus, the robot can be further rapidly returned to the target trajectory.
In the robot controller in accordance with the present invention, the stopping position command value for each axis is, for example, a position command value for decelerating and stopping the motor according to acceleration or a deceleration time set for each motor. When the above-mentioned stopping position command value for each axis is used, for example, estimation of a movement of the robot can be easily performed when the motor for each axis is servo-controlled by the stopping position command value for each axis.
Further, according to at least an embodiment of the present invention, there may be provided an emergency stop method of a robot which includes a plurality of axes and is structured so that motors for each axis are servo-controlled based on position command values collectively calculated for the plurality of the axes by an all-axes control part so as to move along a predetermined trajectory. The emergency stop method includes, when an emergency stop signal is inputted, for each axis, switching the position command value used for servo-control from the position command value transmitted from the all-axes control part to a stopping position command value for each axis calculated with a motor coordinate system as a reference for stopping a corresponding motor and, after that, returning the position command value used for servo-control from the stopping position command value for each axis to the position command value transmitted from the all-axes control part and, when the emergency stop signal is inputted, starting calculation in the all-axes control part for outputting an emergency stop position command value for stopping the robot on the predetermined trajectory.
In the emergency stop method in accordance with the present invention, when an emergency stop signal is inputted, for each axis, the position command value used for servo-control is switches from the position command value transmitted from the all-axes control part to a stopping position command value for each axis and, after that, the position command value used for servo-control is returned from the stopping position command value for each axis to the position command value transmitted from the all-axes control part. Therefore, influence of a delay time from an input of an emergency stop signal to start of outputting an emergency stop position command value and influence of a delay time by a transmission interval of the position command value from the all-axes control part are reduced and the robot can be further rapidly stopped on the target trajectory.
In the emergency stop method in accordance with the present invention, it may be performed that, in a transition period in which the position command value used for servo-control is returned from the stopping position command value for each axis to the position command value transmitted from the all-axes control part, a position command value used for servo-control which is obtained by proportionally dividing the stopping position command value for each axis and the position command value transmitted from the all-axes control part while changing a proportional division rate. When the above-mentioned control is performed, the position command value used for servo-control can be returned to the position command value transmitted from the all-axes control part with a small amount of calculation while suppressing occurrence of vibration and an impact in the robot.
In the emergency stop method in accordance with the present invention, it may be performed that, when the emergency stop signal is inputted, a movement of the robot by servo-controlling the motor for each axis through the stopping position command value for each axis is estimated in the all-axes control part, and a position command value for a correction operation for returning the robot to the predetermined trajectory, i.e., a target trajectory is calculated based on the estimated movement of the robot. When a position command value for a correction operation calculated as described above is used, a position command value used for servo-control can be further smoothly returned to the position command value transmitted from the all-axes control part.
In the emergency stop method in accordance with the present invention, it may be performed that the position command value used for servo-control is returned from the stopping position command value for each axis to the position command value transmitted from the all-axes control part based on a position-command switching command calculated by the all-axes control part. When the above-mentioned position-command switching command is used, the position command value used for servo-control can be returned to the position command value transmitted from the all-axes control part according to a timing when the all-axes control part is capable of outputting a position command value for a correction operation or an emergency stop position command value and thus, the robot can be further rapidly returned to the target trajectory.
In the emergency stop method in accordance with the present invention, the stopping position command value for each axis is, for example, a position command value for decelerating and stopping the motor according to acceleration or a deceleration time set for each motor. When the above-mentioned stopping position command value for each axis is used, for example, estimation of a movement of the robot can be easily performed when a motor for each axis is servo-controlled by the stopping position command value for each axis.
According to the present invention, when the robot is to be emergency-stopped, the robot can be rapidly stopped while maintaining a coordinate and a direction of the hand tip on the target trajectory.
Other features and advantages of the invention will be apparent from the following detailed description, taken in conjunction with the accompanying drawings that illustrate, by way of example, various features of embodiments of the invention.
Embodiments will now be described, by way of example only, with reference to the accompanying drawings which are meant to be exemplary, not limiting, and wherein like elements are numbered alike in several Figures, in which:
Embodiments of the present invention will be described below. A robot controller in accordance with an embodiment of the present invention is used for controlling a robot having a plurality of axes. However, in the following descriptions, a horizontal articulated robot having three joints as shown in
Next, an emergency stop method of the robot shown in
On the other hand, in a case that a motor is decelerated and stopped by calculating a command value in an inside of the motor drive control part with a motor coordinate system of each axis as a reference, each of the motor drive control part 40 is configured to be capable of receiving an emergency stop signal.
As described above, in the conventional emergency stop methods, a delay occurs before the motor starts to decelerate, or a coordinate and a direction of the hand is not maintained on a target trajectory. In view of the problems described above, in an emergency stop method in accordance with a first embodiment of the present invention, the above-mentioned two emergency stop methods are combined with each other, in other words, a method in which a hand is decelerated and stopped by inverse kinematics calculation and a method in which a command value is generated in an inside of the motor drive control part with a motor coordinate system of each axis as a reference are combined with each other and thereby, while shortening a time until a motor is started to decelerate after an emergency stop signal is received, the robot is stopped in a state that a coordinate and a direction of a hand is maintained on a target trajectory. Specifically, each of the motor drive control parts 40 is configured to be capable of calculating a position command value for an emergency stop (stopping position command value for each axis) and, when an emergency stop signal is inputted, a position command value which is used in each of the motor drive control parts 40 for servo-control of a motor is switched from a position command value from the all-axes control part 50 to a stopping position command value for each axis to decelerate the motor. In parallel with this operation, when the emergency stop signal is inputted, the all-axes control part 50 starts calculation for decelerating and stopping the hand by inverse kinematics calculation and, when a predetermined time period has elapsed, each of the motor control drive parts 40 gradually switches from servo-control by the stopping position command value for each axis to servo-control which makes the hand decelerate and stop by the inverse kinematics calculation. Further, finally, the robot is stopped under control only by the position command value for deceleration stop of the hand by the inverse kinematics calculation. Start of switching from servo-control by the stopping position command value for each axis to servo-control by the position command value for decelerating the hand which is calculated by the inverse kinematics calculation is given by a position-command switching command.
In the timing diagram shown in
On the other hand, when the emergency stop signal is inputted into the motor drive control part 40 at the time “P”, the motor drive control part 40 switches the position command value used for servo-control of the motor from the all-axes control part 50 to a stopping position command value for each axis. As a result, the motor starts to decelerate and a speed of the hand tip position also starts to deteriorate. The stopping position command value for each axis is, for example, a position command value calculated for each motor with the motor coordinate system as a reference in order to decelerate and stop the motor according to acceleration or deceleration time which is set for each motor. After that, the position-command switching command is switched from “off” to “on” at a time “Q”. As a result, the all-axes control part 50 stops output of the position command value for a normal operation and starts output of a position command value for an emergency stop, in other words, for decelerating and stopping the hand while maintaining a target trajectory. It is conceivable that the position command value used in the motor drive control part 40 for servo-control is switched to the position command value for an emergency stop transmitted from the all-axes control part 50 at the time “Q”. However, in this case, the robot is unable to operate smoothly, and an excessive torque, vibration, an impact or the like may occur. In order to prevent the problem, according to at least an embodiment of the present invention, a period from the time “Q” to a time “R” is set to be a transition period, and the position command value is gradually switched within the transition period. For example, in the motor drive control part 40, when a position command value used for servo-control is defined as “Pc”, a position command value for an emergency stop which is outputted from the all-axes control part 50 is defined as “Pcik”, a stopping position command value for each axis generated in an inside of the motor drive control part 40 is defined as “Pcm”, and an elapsed time from the time “Q” is defined as “t” (t≥0 (zero)), the position command value is obtained by the following equation:
Pc=r(t)×Pcik+{1−r(t)}×Pcm (1).
In this expression, r(t) is a proportional division rate and, when a length of the transition period is set to be “T”,
in a case that “t≤T”, “r(t)=a×t”, and
in a case that “t>T”, “r(t)=1”.
The “a” is a parameter indicating a time change rate of a proportional division rate and is expressed as “a=1/T”. The speed of the hand position is continuing to decelerate also in the transition period. The length “T” of the transition period is determined depending on structure and the like of the robot.
When the time “R” has arrived and the transition period has finished, the position command value used for servo-control in the inside of the motor control drive part 40 is completely switched to the position command value for an emergency stop transmitted from the all-axes control part 50, the motor continues to decelerate, and the speed of the hand tip position also decelerates toward zero. The speed of the hand tip position is also shown in
A basic configuration of the robot controller which is used for executing the emergency stop method in this embodiment is similar to the robot controller 15 described with reference to
In this embodiment, the position-command switching command may be outputted by the all-axes control part 50 at a time when the position command value for an emergency stop is capable of being outputted in the all-axes control part 50, or may be outputted by the emergency stop signal input part 90 at a time when a predetermined time period has elapsed from an input of the emergency stop signal. In addition, instead of calculating a position-command switching command in the outside of the motor drive control part 40, a position-command switching command may be calculated in the inside of the motor drive control part 40 after a predetermined time has elapsed from a time when an emergency stop signal is inputted.
According to the emergency stop method in this embodiment described above, a robot can be stopped with simple calculation while shortening a time until the motor starts to decelerate after an emergency stop signal is received, and a coordinate and a direction of the hand tip are maintained on a target trajectory.
Next, an emergency stop method in accordance with a second embodiment of the present invention will be described below. In the first embodiment described above, a transition period is provided and, in the transition period, the position command value from the all-axes control part 50 and the stopping internal position command are proportionally divided according to an elapsed time and thereby, switching from the stopping position command value for each axis to the position command value for an emergency stop transmitted from the all-axes control part 50 is performed smoothly. However, when correction calculation is performed in the all-axes control part 50 instead of performing proportional division calculation in the motor drive control part 40, further smooth switching can be realized from the stopping position command value for each axis to the position command value for an emergency stop transmitted from the all-axes control part 50. In the second embodiment, correction calculation is performed in the all-axes calculation part 50.
In the timing diagram shown in
After that, the position-command switching command is switched from “off” to “on” at a time “Q”. As a result, the all-axes control part 50 stops output of the position command value for a normal operation and outputs a position command value of a correction operation in order to correct deviation from an original trajectory which is generated when the robot is controlled based on the stopping position command value for each axis. Next, at a time “R”, when the robot is returned to the original trajectory, i.e., a target trajectory, the all-axes control part 50 outputs a position command value for an emergency stop. When the position-command switching command is switched to “on”, the motor drive control part 40 switches a position command value used in its inside for servo-control from the stopping position command value for each axis to the position command value outputted from the all-axes control part 50. As a result, a speed of the hand tip position is decelerated similarly to the case shown in
The robot controller which performs an emergency stop operation in accordance with the second embodiment of the present invention is, similarly to the first embodiment, provided with the all-axes control part 50 and the motor drive control part 40 for each motor. In the second embodiment, as described with reference to
The all-axes control part 50 shown in
The estimate value calculation part 56 is provided with an after-deceleration angle calculation part 61 which takes a position command value outputted from the reverse speed ratio calculation part 53 at a time when an emergency stop signal is inputted and estimates a motor position after deceleration by the stopping position command value for each axis, a speed ratio calculation part 62 which performs speed ratio calculation based on a motor position estimated by the after-deceleration angle calculation part 61, and a kinematics calculation part 63 which performs kinematics calculation based on a calculation result of the speed ratio calculation part 62 to calculate a hand tip position estimated value. In addition, the estimate value calculation part 56 is provided with an after-deceleration angular speed calculation part 64 which takes the position command differential value outputted from the reverse speed ratio calculation part 53 at the time when the emergency stop signal is inputted and estimates a motor speed after deceleration by the stopping position command value for each axis, a speed ratio calculation part 65 which performs speed ratio calculation based on a motor speed estimated by the after-deceleration angular speed calculation part 61, and a Jacobian calculation part 66 which performs Jacobian calculation based on a calculation result by the speed ratio calculation part 62 to calculate a hand tip speed estimated value. In each of the motor drive control parts 40, when the motor is to be decelerated based on the stopping position command value for each axis, control for decelerating the motor is executed at acceleration (or deceleration time) set for each motor. The acceleration for deceleration in this case is predetermined and thus, the after-deceleration angle calculation part 61 and the after-deceleration angular speed calculation part 64 are respectively capable of estimating a position and a speed of each motor at the time “Q” based on the position command value and the position command differential value which are outputted from the reverse speed ratio calculation part 53 at the time when an emergency stop signal is inputted. Next, speed ratio calculation is performed on the estimated values of the motor position and the motor speed and, in addition, kinematics calculation and Jacobian calculation are performed to be capable of estimating the hand position and the hand speed. The hand tip position estimated value includes a “Y” direction coordinate of the hand tip position, an “X” direction coordinate of the hand tip position (or lateral coordinate error “Ax”), and an azimuth angle error “Δθ”. The hand tip speed estimated value includes a “Y” direction speed of the hand tip position, an “X” direction speed of the hand tip position, and a temporal change of an azimuth angle error “Δθ” (in other words, azimuth angle angular speed).
The position command value calculation part 57 is provided with a hand tip position command calculation part 71 which calculates a hand tip position command for deceleration based on a “Y” direction coordinate and a “Y” direction speed of the hand tip position obtained by the estimate value calculation part 56, an inverse kinematics calculation part 74 which performs inverse kinematics calculation on the hand tip position command calculated by the hand tip position command calculation part 71, and a reverse speed ratio calculation part 75 which performs reverse speed ratio calculation with respect to a calculation result of the inverse kinematics calculation part 74 to output a position command value. In a case that a hand tip position command is calculated based on only a coordinate and a speed in the “Y” direction, deviation from a trajectory of the robot cannot be corrected. Therefore, the position command value calculation part 57 is further provided with an error correction amount calculation part 72 which calculates an error correction amount based on an “X” direction coordinate of the hand position, an azimuth angle error “Δθ”, an “X” direction speed and an azimuth angular speed of the hand position, and an addition part 73 which adds the error correction amount to the hand position command calculated by the hand tip position command calculation part 71. The hand tip position command to which the error correction amount is added in the addition part 73 is performed with inverse kinematics calculation in the inverse kinematics calculation part 74. When the position command value calculation part 57 described above is used, a position command value of a correction operation can be calculated in addition to a position command value for an emergency stop for decelerating and stopping while maintaining a trajectory of the hand tip in a desired value.
According to the emergency stop method in accordance with the second embodiment of the present invention as described above, although calculation processing in the all-axes control part 50 is complicated in comparison with the first embodiment, the robot can be further smoothly emergency-stopped on a target trajectory.
The emergency stop methods described above are embodiments in which the emergency stop methods are applied to a three-axes horizontal articulated robot. However, a robot to which the present invention may be applied is not limited to the robot described above and may be applied to a robot other than a horizontal articulated robot. Commonly, in a robot having many axes, it is often difficult to rapidly stop the robot while maintaining a coordinate and a direction of a hand on a target trajectory. However, according to the embodiments of the present invention, such a robot can be rapidly stopped while maintaining a coordinate and a direction of a hand on a target trajectory.
While the description above refers to particular embodiments of the present invention, it will be understood that many modifications may be made without departing from the spirit thereof. The accompanying claims are intended to cover such modifications as would fall within the true scope and spirit of the present invention.
The presently disclosed embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims, rather than the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.
Number | Date | Country | Kind |
---|---|---|---|
2021-119888 | Jul 2021 | JP | national |