Robot control system and robot controller
The robot control system addresses the challenge of stopping industrial robots on their trajectories by having the drive control unit generate a stopping trajectory based on predicted positions, ensuring rapid and accurate stopping, thus enhancing safety and productivity.
Patent Information
- Application Number
- JP2024015304
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-03
- Publication Date
- 2025-08-15
AI Technical Summary
Existing robot control systems face challenges in quickly and accurately stopping industrial robots on their intended trajectories when errors occur, leading to potential deviations and increased recovery time, which affects safety and productivity.
A robot control system where the drive control unit monitors for errors and generates a target stopping trajectory to stop the robot on its operating trajectory, reducing time lag by independently initiating braking based on predicted stop positions communicated from the host control unit.
This configuration ensures rapid and accurate stopping of industrial robots on their intended trajectories, enhancing safety and reducing the time lag between error detection and braking, thereby improving productivity.
Smart Images

Figure 2025120065000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a robot control system and a robot controller. [Background technology]
[0002] For example, some robot control systems applied to multi-axis industrial robots include a robot controller (host control unit) that generates a motion trajectory (target motion trajectory) for the industrial robot according to an operation program set by a user and calculates an angle command value for each axis from the motion trajectory, and a servo amplifier (drive control unit) that drives and controls the servo motor of each axis based on the angle command value received from the robot controller. This type of robot control system aims to improve safety by, for example, stopping the industrial robot (emergency stop) when the robot controller detects an error or when it confirms a stop operation by the user (see, for example, Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Unexamined Patent Publication No. 1-119809 Summary of the Invention [Problem to be solved by the invention]
[0004] In the robot control system described above, errors may occur not only in the robot controller but also in various devices such as the servo amplifier, the motor connected to the servo amplifier, and sensors. It is reasonable to configure the servo amplifier to monitor errors occurring on its own. For example, if the servo amplifier independently brakes the motor to decelerate at maximum deceleration when an error is detected, the industrial robot can be stopped quickly. However, such a configuration increases the likelihood that the actual stopping position will deviate from the operating trajectory. This can hinder the effective utilization of safety improvements. Furthermore, if the robot stops at a position significantly deviating from the target operating trajectory, the time required to recover from the emergency stop increases, which raises concerns about the reduced productivity benefits of using industrial robots.
[0005] On the other hand, if an error is detected in the servo amplifier, the servo amplifier notifies the robot controller of the error detection and initiates braking upon receiving a command from the robot controller (specifically, a command to brake the robot so as to stop it on its operating trajectory), the deviation between the stop position and the operating trajectory can be reduced. However, communication between the robot controller and the servo amplifier requires a certain amount of time, which can result in a significant time lag between error detection and the start of braking. In other words, the time from error detection to stopping the industrial robot is longer than in a configuration in which braking is initiated immediately on the servo amplifier side, and the responsiveness of an emergency stop can be reduced. As such, in a configuration in which errors are detected on the servo amplifier side, there is still room for improvement in the configuration related to braking triggered by error detection in order to improve the safety of industrial robots.
[0006] The present invention has been made in consideration of the above-mentioned problems and has a main object to contribute to improving the safety of industrial robots. [Means for solving the problem]
[0007] First means: a host control unit that generates a target motion trajectory when operating an industrial robot and outputs motion command information for operating the industrial robot along the motion trajectory; a drive control unit capable of communicating with the host control unit and controlling a drive unit in the industrial robot based on the operation command information from the host control unit; A robot control system comprising: The drive control unit monitors for specified errors, and if the specified error is detected during drive control of the drive unit based on the operation command information, it generates a target stopping trajectory for stopping the industrial robot on the operation trajectory, and brakes the industrial robot based on the generated stopping trajectory.
[0008] The industrial robot described in the first aspect operates along a motion trajectory generated by a host control unit when no predetermined error occurs. The drive control unit monitors the industrial robot for a predetermined error during its operation. If the drive control unit detects the predetermined error, it generates a stop trajectory to stop the industrial robot on the motion trajectory generated by the host control unit, and brakes the industrial robot based on the generated stop trajectory rather than the motion command information received from the host control unit. In this way, the drive control unit that detects an error generates a stop trajectory itself and initiates braking to stop the industrial robot along the stop trajectory. This reduces the time lag between the detection of a predetermined error and the start of braking, while preventing the industrial robot from stopping at a position outside the motion trajectory. This contributes to improving the safety of industrial robots.
[0009] Second means: a host control unit that generates a target motion trajectory when operating an industrial robot and outputs motion command information for operating the industrial robot along the motion trajectory; a drive control unit capable of communicating with the host control unit and controlling a drive unit in the industrial robot based on the operation command information from the host control unit; A robot control system comprising: the host control unit specifies a predicted stop position of the industrial robot assuming that braking is performed at the present time to bring the industrial robot to an emergency stop and the industrial robot is stopped on the movement trajectory, and outputs information indicating the predicted stop position to the drive control unit at a predetermined cycle; The drive control unit monitors for specified errors, and if the specified error is detected during drive control of the drive unit based on the operation command information, brakes the industrial robot based on the information indicating the predicted stop position.
[0010] As shown in the second aspect, if the information indicating the predicted stop position is periodically output to the drive control unit, the drive control unit can independently start braking by referring to the predicted stop position when it detects a predetermined error. This configuration makes it possible to stop the industrial robot on its operating trajectory while reducing the time lag until braking starts. This contributes to further improving the safety of industrial robots.
[0011] Third means: A robot controller that generates a target motion trajectory when operating an industrial robot, and outputs motion command information to a servo amplifier at a predetermined cycle to operate the industrial robot along the motion trajectory, When the operation command information is output, a predicted stopping position of the industrial robot is identified assuming that the industrial robot is braked at this time to make an emergency stop and stopped on the operation trajectory, and information indicating the predicted stopping position is output to the servo amplifier together with the operation command information.
[0012] As shown in the third aspect, if the information indicating the predicted stop position is output to the drive control unit together with the operation command information, the drive control unit can refer to the predicted stop position when it starts braking independently. This contributes to realizing a configuration that can stop the industrial robot on its operating trajectory while reducing the time lag until braking starts. In other words, it can contribute to further improving the safety of industrial robots. [Brief explanation of the drawings]
[0013] [Figure 1] FIG. 1 is a perspective view showing a robot system according to a first embodiment. [Figure 2] FIG. 2 is a block diagram showing the electrical configuration of the robot system. [Figure 3] Schematic diagram showing the functions of a servo amplifier. [Figure 4] FIG. 4 is a schematic diagram showing the relationship between a motion trajectory and a predicted stop position. [Figure 5] 10 is a flowchart showing a process for generating a stop trajectory executed by a control unit of a servo amplifier. [Figure 6] 10 is a timing chart illustrating an example of behavior when an error is detected. [Figure 7] Schematic diagram for explaining the problem. [Figure 8] 10A is a schematic diagram showing reference information periodically transmitted by a robot controller according to a second embodiment, and FIG. 10B is a schematic diagram showing an example of behavior when an error is detected. [Figure 9] FIG. 11 is a schematic diagram illustrating secondary complement processing according to the third embodiment. [Figure 10] FIG. 10 is a schematic diagram illustrating an example of behavior when an error is detected. [Figure 11] Schematic diagram for explaining the problem. [Figure 12] FIG. 13 is a schematic diagram illustrating an example of how a reference set time is determined in the fourth embodiment. [Figure 13] FIG. 1 is a schematic diagram for explaining an outline of secondary complementation processing. [Figure 14] FIG. 13 is a schematic diagram showing the relationship between the type of error detected and the braking control pattern in the fifth embodiment. [Figure 15] FIG. 4 is a schematic diagram showing the flow of a braking control switching sequence. DETAILED DESCRIPTION OF THE INVENTION
[0014] First Embodiment A first embodiment embodied in a robot system used in a factory production line or the like will be described below with reference to the drawings.
[0015] 1, the robot system 10 includes a robot 11, which is a vertically articulated industrial robot, and a robot controller 15 that controls the robot 11, and the robot 11 (a servo amplifier, which will be described in detail later) and the robot controller 15 are connected (wirelessly) so as to be able to communicate with each other. Note that the robot 11 and the robot controller 15 may be connected in any manner, and may also be connected by wire.
[0016] The main body (robot main body 12) of the robot 11 has a base 22 fixed to a pedestal or the like, a shoulder 23 supported by the base 22, a lower arm 24 supported by the shoulder 23, a first upper arm 25 supported by the lower arm 24, a second upper arm 26 supported by the first upper arm 25, a wrist 27 supported by the second upper arm 26, and a flange 28 supported by the wrist 27.
[0017] A first joint portion is formed on the base portion 22 and the shoulder portion 23, connecting the base portion 22 and the shoulder portion 23, and the shoulder portion 23 is rotatable in the horizontal direction around the connecting axis (first axis AX1) of the first joint portion. A second joint portion is formed on the shoulder portion 23 and the lower arm portion 24, connecting the shoulder portion 23 and the lower arm portion 24, and the lower arm portion 24 is rotatable in the vertical direction around the connecting axis (second axis AX2) of the second joint portion. A third joint portion is formed on the lower arm portion 24 and the first upper arm portion 25, connecting the lower arm portion 24 and the first upper arm portion 25, and the first upper arm portion 25 is rotatable in the vertical direction around the connecting axis (third axis AX3) of the third joint portion. The first upper arm 25 and the second upper arm 26 are formed with a fourth joint that connects the first upper arm 25 and the second upper arm 26, and the second upper arm 26 is rotatable in a torsional direction around the connecting axis (fourth axis AX4) of the fourth joint. The second upper arm 26 and the wrist 27 are formed with a fifth joint that connects the second upper arm 26 and the wrist 27, and the wrist 27 is rotatable in a vertical direction around the connecting axis (fifth axis AX5) of the fifth joint. The wrist 27 and the flange 28 are formed with a sixth joint that connects the wrist 27 and the flange 28, and the flange 28 is rotatable in a torsional direction around the connecting axis (sixth axis AX6) of the sixth joint.
[0018] The shoulder portion 23, lower arm portion 24, first upper arm portion 25, second upper arm portion 26, wrist portion 27, and flange portion 28 are arranged in a series to form an arm 21 in the robot body 12, and an end effector 13 (e.g., a hand) is attached to the flange portion 28 that forms the tip of the arm 21.
[0019] The arm 21 is provided with a servo motor 31 (see FIG. 2) for driving the joints and a rotary encoder 32 for detecting the rotation angle of each joint (axis), for each joint. As shown in FIG. 2, the servo motors 31 and rotary encoder 32 are connected to a servo amplifier 14 attached to the robot body 12. As will be described in detail later, the servo amplifier 14 performs drive control (feedback control) of each servo motor 31 based on position data etc. acquired from the rotary encoder 32, i.e., encoder values etc. indicating the rotation angle (rotation position).
[0020] A host controller 16 (for example, a teaching pendant or PC) is connected to the robot controller 15 (corresponding to the "host control unit"), and data communication is performed between the robot controller 15 and the host controller 16 via a communication interface. An application for creating a control program that defines the work content and work sequence of the robot 11, specifically a setting support application that supports the user in setting the movements of the robot 11 (including so-called teaching), is installed in the host controller 16. The user creates the control program by directly inputting drive control codes into the host controller 16 or by manually operating the robot 11.
[0021] The control unit 51 of the robot controller 15 includes a program interpretation unit 61 that reads a motion program corresponding to a command from a program bank 66 of the memory unit 52 based on a command from the host controller 16 and identifies a target position for motion from the read motion program; a trajectory generation unit 62 that generates a motion trajectory (a target motion trajectory) that smoothly connects the target position identified by the program interpretation unit 61 with the current position of the robot 11 (each axis); and a command value calculation unit 63 that determines interpolated positions that subdivide the motion trajectory and calculates angle command values (corresponding to "motion command information") for each axis corresponding to the interpolated positions. The memory unit 52 of the robot controller 15 is provided with a FIFO-type trajectory buffer 67 consisting of multiple storage areas, and the angle command values for each axis calculated by the command value calculation unit 63 are stored in the trajectory buffer 67. The angle command values for each axis stored in the trajectory buffer 67 are transmitted collectively to the servo amplifier 14.
[0022] In the robot controller 15, when the transmission of the angle command value stored in the trajectory buffer 67 is completed, the next operation program is read and a new target position is identified, and the process of generating an operation trajectory, determining an interpolated position, calculating an angle command value, and transmitting the angle command value is repeated until the operation instructed by the upper controller 16 is completed. In this series of steps, the latest command (angle command value) is transmitted from the robot controller 15 to the servo amplifier 14 at a predetermined cycle (10 msec in this embodiment).
[0023] Next, a supplementary explanation will be given of the configuration related to the servo amplifier 14 (corresponding to the "drive control unit"), which is the lower-level control unit, with reference to Fig. 3. In this embodiment, among the various components constituting the robot system 10, the components related to the control of the robot 11, specifically the robot controller 15 and the servo amplifier 14, correspond to the "robot control system."
[0024] The servo amplifier 14 is provided with a communication unit (not shown) capable of receiving various information including commands (angle command values) from the robot controller 15, a storage unit 42 that stores the received information, and a control unit 41 that performs drive control of the servo motor 31 based on the information stored in the storage unit 42. The communication unit is capable of transmitting error information, which will be described later, to the robot controller 15.
[0025] The control unit 41 includes an interpolation processing unit 45, a position control unit 46, a speed control unit 47, and a current control unit 48. The received angle command value for each axis is stored in the memory unit 42, and the stored angle command value for each axis is read out by the interpolation processing unit 45. The interpolation processing unit 45 then performs a process of interpolating the angle command value at predetermined time intervals (1 msec in this embodiment). The interpolation results (interpolated angle command values) are sequentially transferred to the position control unit 46. The rotary encoders 32 attached to the servo motors 31 are connected to the position control unit 46, and the position control unit 46 detects the rotational position of each servo motor 31, i.e., the rotational angle of each axis, based on the encoder values. The position control unit 46 and the speed control unit 47 calculate the target torque and target rotational speed (speed command value) for each servo motor 31 based on the deviation between the detected current rotation angle and the interpolated angle command value. Then, the current control unit 48 calculates the power (current and voltage) to be supplied to each servo motor 31 based on the calculated target torque and target rotation speed (speed command value), and supplies power to the servo motor 31 based on this calculation result. That is, drive control of each axis is executed so that the servo motor 31 reaches the predicted stop position via the position interpolated by the interpolation processing unit 45 (hereinafter also referred to as the interpolated position).
[0026] The robot system 10 shown in this embodiment has a function of monitoring whether an error has occurred in the system and stopping (emergency stop) the robot main body 12 if an error is detected. This error monitoring is configured to be performed by each of the robot controller 15 and the servo amplifier 14. In this embodiment, a particular feature is the configuration related to the emergency stop when an error is detected in the servo amplifier 14. This characteristic configuration will be described below with reference to FIGS. 2 to 4. The various errors monitored by the servo amplifier 14 include errors related to information sent from the robot controller 15 and communications with the robot controller 15.
[0027] 2, the control unit 51 of the robot controller 15 is provided with a braking time calculation unit 54 that calculates the braking time when braking the robot body 12 at a preset deceleration (braking force) for an emergency stop, and a stop position prediction unit 55 that predicts the stopping position when braking at that deceleration and stopping the robot body 12 on the above-mentioned movement trajectory. More specifically, the braking time calculation unit 54 and the stop position prediction unit 55 have the function of calculating the braking time and predicting the stopping position when an error is assumed to have occurred (when an emergency stop is assumed to be performed) under a situation where the robot body 12 is operating and no error has actually occurred (emergency stop is not required). Incidentally, the deceleration for emergency stop that is used as a reference when calculating the braking time and predicting the stopping position is set lower than the maximum deceleration of the robot body 12.
[0028] In the following description, the stop position predicted by the stop position prediction unit 55 will also be referred to as the "predicted stop position." Note that the predicted stop position indicates the stop rotation angles of the first to sixth axes when the robot body 12 is stopped, and the braking time indicates the time required for the first to sixth axes to reach those stop rotation angles when braking.
[0029] A method for calculating the braking time and predicting the stop position will be further explained with reference to the schematic diagram of FIG. 4. The example of FIG. 4 shows the timing when the robot controller 15 transmits an angle command value while the robot main body 12 is operating. At this timing, no error has been detected and no emergency stop is necessary. However, assuming that an error has been detected and an emergency stop is required, the braking time BT is calculated and the stop position (predicted stop position PE) is predicted. Specifically, the start position PS (specifically, the angle command value to be transmitted), which is the position on the motion trajectory TL where braking starts, and the start speed VS, which is the speed at which braking starts, are identified. The braking time BT is calculated and the predicted stop position PE is predicted based on the motion trajectory TL, the start position PS, the start speed VS, and the deceleration α for emergency stop. In other words, the stop position (predicted stop position PE) is predicted by fitting the motion trajectory TL with the distance from the start position PS that would be reached if braking were performed at the deceleration α for emergency stop. The braking time BT is then calculated, which is the time from the braking start position to the predicted stop position PE, i.e., the time until the speed becomes 0 after braking at the deceleration α.
[0030] In this embodiment, the braking time BT is the time from the braking start position (corresponding to the angle command value to be transmitted) to the predicted stop position PE, but it is also possible to use the braking time BT as the time from the current position PP to the predicted stop position PE.
[0031] As already explained, in this embodiment, the braking time BT is calculated and the stopping position (predicted stopping position PE) is predicted when the angle command value is transmitted. That is, the braking time BT is calculated and the stopping position (predicted stopping position PE) is predicted after the target operating trajectory TL has been generated. Therefore, it is not necessary to generate the operating trajectory TL again when calculating and predicting these. With this configuration, it is possible to prevent the processing load from becoming excessively large during calculation.
[0032] The storage unit 52 of the robot controller 15 is provided with a trajectory generation information buffer 69 that stores information indicating the braking time BT (hereinafter referred to as braking time information) and information indicating the predicted stop position PE (hereinafter referred to as predicted stop position information). The results of calculation and prediction are stored in the trajectory generation information buffer 69. The braking time information and predicted stop position information stored in the trajectory generation information buffer 69 are then transmitted to the servo amplifier 14 together with the angle command value stored in the command value buffer 68. In other words, the servo amplifier 14 is configured to receive the braking time information and predicted stop position information periodically (every 10 msec). In this embodiment, the braking time information and predicted stop position information correspond to "stop trajectory generation information." It should be noted that it is sufficient to realize a configuration in which the braking time information and predicted stop position information are periodically transmitted from the robot controller 15 to the servo amplifier 14, and the method of calculating the braking time BT and the method of predicting the stop position (predicted stop position PE) are arbitrary.
[0033] The servo amplifier 14 stores the received braking time information and predicted stopping position information in a braking time information storage area and a predicted stopping position information storage area of the storage unit 42. The braking time information storage area and the predicted stopping position information storage area are configured to store and hold braking time information and predicted stopping position information received at least one cycle before so that past history can be referenced.
[0034] As already explained, the servo amplifier 14 is provided with an error monitoring unit 43 that monitors errors. When the error monitoring unit 43 detects an error, the servo amplifier 14 (more specifically, the stop trajectory generating unit 49 of the control unit 41) generates a stop trajectory that serves as a target for stopping the robot body 12, and immediately starts braking based on the stop trajectory. Here, with reference to the flowchart in Fig. 5, the stop trajectory generating process that is executed by the control unit 41 of the servo amplifier 14 as part of periodic processing (every 500 μsec in this embodiment) will be described.
[0035] In the stop trajectory generation process, first, it is determined whether or not an error has been detected by the error monitoring unit 43 (S101). If no error is detected (S101: NO), the stop trajectory generation process ends. On the other hand, if an error is detected (S101: YES), reception of an angle command value from the robot controller 15 is temporarily restricted (S102). This restriction makes it impossible to perform drive control based on a command from the robot controller 15 at least until the restriction is released. In this embodiment, the restriction is released when the robot main body 12 stops and a predetermined restriction release operation is performed by the user.
[0036] After restricting the reception of command values, etc., information indicating the braking start position (hereinafter also simply referred to as the start position) of the robot main body 12 (specifically, each axis) is obtained (S103). The start position may be obtained by referring to the received angle command value or the encoder value of the rotary encoder 32. Next, the predicted stop position information storage area of the storage unit 42 is referenced to obtain the predicted stop position information (S104), and the braking time information storage area of the storage unit 42 is referenced to obtain the braking time information (S105). At this time, if the current error is caused by information from the robot controller 15, for example, if there is an abnormality in the deceleration time information or the predicted stop position information, the deceleration time information and predicted stop position information from the previous time (when no error was detected) are read. On the other hand, if the current error is not caused by information from the robot controller 15, the current deceleration time information and predicted stop position information are read.
[0037] Thereafter, a stopping trajectory connecting the braking start position and the predicted stopping position, i.e., a stopping trajectory (target stopping trajectory) that serves as a target for stopping at the predicted stopping position, is generated based on the various pieces of information (braking start position information, predicted stopping position information, and braking time information) that have been obtained (S106). The generated stopping trajectory is stored in a stopping trajectory storage area of the storage unit 42. After the stopping trajectory is generated, braking control is started (S107), and this stopping trajectory generation process ends. When braking control is started, the interpolation processing unit 45 of the control unit 41 reads the stopping trajectory from the stopping trajectory storage area of the storage unit 42 and performs processing to interpolate the braking trajectory in units of a predetermined time (1 msec in this embodiment). The interpolation results (interpolated angle command values) are sequentially transferred to the position control unit 46. The rotary encoders 32 attached to the servo motors 31 are connected to the position control unit 46, and the position control unit 46 detects the rotational position of each servo motor 31, i.e., the rotational angle of each axis, based on the encoder values. The position control unit 46 and the speed control unit 47 calculate the target torque and the target rotation speed of each servo motor 31 based on the deviation between the detected current rotation angle and the interpolated angle command value. Then, the current control unit 48 calculates the power (current and voltage) to be supplied to each servo motor 31 based on the calculated target torque and target rotation speed, and supplies / stops the power supply to the servo motor 31 based on the calculation result.
[0038] As shown in FIG. 6(a), in this embodiment, a stopping trajectory is generated by linear interpolation to connect the braking start position and the predicted stop position with a straight line. That is, the position at which the predicted stop position (predicted stop angle) will be reached after the braking time (ta2) has elapsed from the braking start position (ta1) is set as the target position (target angle), and a trajectory connecting the braking start position and the predicted stop position with a straight line is set as the stopping trajectory. As a result, the vehicle will stop at the predicted stop position after the braking time has elapsed. Note that, as shown in FIG. 6(b), the target speed is interpolated so as to be reduced in stages, thereby making the degree of deceleration closer to a constant.
[0039] According to the first embodiment described above in detail, the following excellent effects can be expected.
[0040] The servo amplifier 14 monitors for errors while the robot body 12 is operating, and if an error is detected, it generates a stop trajectory to stop the robot body 12 on the operating trajectory generated by the robot controller 15, and performs braking based on the generated stop trajectory rather than the angle command value received from the robot controller 15. In this way, the servo amplifier 14 that detects an error generates a stop trajectory itself and starts braking so that the robot body 12 stops along the stop trajectory, thereby reducing the time lag from error detection to the start of braking while preventing the robot body 12 from stopping at a position deviating from the operating trajectory. This contributes to improving the safety of the robot 11.
[0041] Furthermore, as shown in the first embodiment, if the trajectory generation information to be referenced when generating a stop trajectory is periodically transmitted from the robot controller 15, the servo amplifier 14 can be set to a state in which it has already acquired the trajectory generation information when an error is detected. Therefore, when an error is detected, there is no need to request the robot controller 15 to transmit the trajectory generation information, and the process of generating a stop trajectory and then braking can be quickly executed. This is preferable in terms of reducing the time lag mentioned above.
[0042] Depending on the timing of detecting an error (an error related to communication with the robot controller 15, etc.), a situation may arise in which the reliability of the latest trajectory generation information cannot be guaranteed. Therefore, by making it possible to hold the previously received trajectory generation information and generate a stop trajectory based on that trajectory generation information, it is possible to prevent an inappropriate stop trajectory from being generated.
[0043] By configuring the robot controller 15 to output trajectory generation information at the timing when an angle command value is transmitted (the timing when a motion trajectory is generated), the motion trajectory can be used when preparing the trajectory generation information. In other words, a step of regenerating a motion trajectory when preparing the trajectory generation information is not required. Therefore, adopting a configuration that periodically outputs trajectory generation information can prevent the control load on the robot controller 15 from becoming excessively large.
[0044] If the trajectory generation information is configured to include braking time information in addition to predicted stop position information, referring to the braking time information when generating the stop trajectory can contribute to reducing the control load on the servo amplifier 14. In particular, the servo amplifier 14 is responsible for controlling the servo motor 31, and is configured to perform appropriate drive control by shortening the control period. In such a configuration, if the control load becomes too large and processing cannot keep up with the control period, this can be a factor that directly affects the behavior of the servo motor 31. In light of these circumstances, there is technical significance in reducing the control load on the servo amplifier 14.
[0045] If the stopping trajectory is generated by linear interpolation (linear interpolation) as in the present embodiment, the time required to determine the braking mode can be shortened, which is preferable in terms of reducing the time lag mentioned above.
[0046] <Variation 1> In the above embodiment, the robot controller 15 periodically transmits braking time information and predicted stop position information to the servo amplifier 14 as "stop trajectory generation information," but the present invention is not limited to this. For example, the robot controller 15 may periodically transmit only predicted stop position information to the servo amplifier 14 as "stop trajectory generation information." In this case, the servo amplifier 14 may be configured to grasp the deceleration during an emergency stop, and the braking time may be determined on the servo amplifier 14 side. However, the control unit 41 of the servo amplifier 14 has an extremely short control cycle (500 μsec) to achieve precise feedback control. To generate a stop trajectory within this cycle, it is preferable to simplify the calculations and reduce the control load. Therefore, there is technical significance in transmitting both braking time information and predicted stop position information from the robot controller 15 to the servo amplifier 14 as shown in the first embodiment.
[0047] <Variation 2> In the first embodiment, when a command (angle command value) is transmitted from the robot controller 15 to the servo amplifier 14, predicted stop position information and braking time information are transmitted to the servo amplifier 14 together with the angle command value. This can be changed to a configuration in which the predicted stop position information and braking time information are transmitted to the servo amplifier 14 at a timing separate from that of the angle command value.
[0048] <Variation 3> In the first embodiment, the robot controller 15 periodically (every 10 msec) transmits the stop trajectory generating information to the servo amplifier 14, but the period does not necessarily have to be constant. It is sufficient that the stop trajectory generating information is repeatedly transmitted to the servo amplifier 14, and the period can be varied.
[0049] <Variation 4> In the first embodiment, the stop trajectory is generated by the stop trajectory generating unit 49 of the servo amplifier 14, and the interpolation processing unit 45 sets an interpolated position (interpolated angle command value) based on the stop trajectory, but the present invention is not limited to this. It is sufficient to be able to set an interpolated position for braking toward a predicted stop position, and whether or not to generate a stop trajectory is optional. However, as will be described later, when performing braking that takes into account the ability to follow the operating trajectory, the stop trajectory is not necessarily a simple straight line, and some ingenuity is required to improve the ability to follow the operating trajectory. In light of these circumstances, generating a stop trajectory is technically significant.
[0050] <Second embodiment> In the servo amplifier 14 described in the first embodiment, a stop trajectory connecting the current position and the predicted stop position is generated by linear interpolation (linear interpolation). Linear interpolation reduces the control load when generating the stop trajectory, which is advantageous for realizing a configuration capable of generating the stop trajectory within the control period (500 μs) of the servo amplifier 14. However, when generating the stop trajectory by linear interpolation, as illustrated in FIG. 7, there is a possibility that the deviation between the stop trajectory and the operating trajectory will become large in some parts. One of the features of this embodiment is that it is designed to suppress the deviation between the stop trajectory and the operating trajectory while enjoying the benefits of linear interpolation. Below, the characteristic configuration of this embodiment will be described with reference to FIG. 8, focusing on the differences from the first embodiment. Note that a description of the configuration common to the first embodiment will be omitted.
[0051] As shown in FIG. 8(a), the robot controller 15 shown in this embodiment is configured to transmit predicted stop position information, braking time information, and relay position information along with an angle command value to the servo amplifier 14. The relay position information is information indicating a position on the motion trajectory through which the robot passes when moving toward the predicted stop position in an emergency stop. The control unit 51 of the robot controller 15 predicts the relay positions using a procedure similar to that for predicting the stop position (predicted stop position). Specifically, the control unit 51 predicts a stop position (predicted stop position) on the motion trajectory by assuming a braking time shorter than the calculated braking time, and sets the predicted stop position (predicted stop position) as the relay position. More specifically, the unit time obtained by dividing the braking time into N equal parts is set as a hypothetical braking time, and the robot predicts a stop position for each unit time, thereby predicting N-1 relay positions (N: an integer equal to or greater than 2).
[0052] The servo amplifier 14 generates a stop trajectory based on the predicted stop position information, braking time information, and relay position information received from the robot controller 15, as well as information indicating the current position. Specifically, the stop trajectory is generated by connecting two adjacent positions among the current position, relay positions, and predicted stop position with a straight line. For example, in the example shown in FIG. 8(b), three relay positions P2 to P4 are set between the start position P1 and the predicted stop position P5. The trajectory connecting the start position P1 and relay position P2, the trajectory connecting the relay position P2 and relay position P3, the trajectory connecting the relay position P3 and relay position P4, and the trajectory connecting the relay position P4 and predicted stop position P5 are all generated by linear interpolation (linear interpolation). If the stop trajectory is constructed by combining these linear trajectories, it is possible to reduce the control load when generating the stop trajectory and to suppress deviation between the stop trajectory and the target trajectory.
[0053] <Variation 1> In the second embodiment, the braking time to the stopping position is divided into equal parts, and points that the vehicle passes through at each divided time interval are set as relay positions. However, it is not necessary to set relay positions at equal time intervals. It is also possible to set relay positions based on a preset reference time for setting relay positions. The number of relay positions that can be set is arbitrary.
[0054] <Variation 2> In the second embodiment described above, information indicating the time until stopping (braking time) is transmitted to the servo amplifier side, but in addition to this, it is also possible to configure it to transmit information indicating the time interval between relay positions.
[0055] <Variation 3> In the second embodiment described above, the predicted stop position information, braking time information, and relay position information are transmitted for each transmission cycle (10 msec) of the angle command value, but it is also possible to configure the relay position information not to be transmitted during some cycles, and for the servo amplifier 14 to retain the previous relay position information during cycles during which the relay position information is not transmitted. For example, if the braking time is longer than the transmission cycle, there may be some overlap in the relay position information between the previous cycle and the subsequent cycle. When such overlap occurs, it is advisable to refrain from transmitting the relay position information and reuse the overlapping portion on the servo amplifier 14 side.
[0056] <Third embodiment> In the second embodiment, the stopping orbit is generated by linear interpolation (linear interpolation). In this embodiment, the configuration differs from the first embodiment in that another interpolation method (quadratic interpolation), specifically the central difference method, is used to generate the stopping orbit. Below, a supplementary explanation will be given of the configuration related to the generation of the stopping orbit in this feature, focusing on the differences from the second embodiment. Note that the explanation of the configuration common to the second embodiment will be omitted as appropriate.
[0057] Generating a stop trajectory using the central difference method requires at least three pieces of position information. Therefore, the robot controller 15 shown in this embodiment also transmits relay position information along with predicted stop position information to the servo amplifier 14. For example, as in the second embodiment, if three relay positions P2 to P4 are set between the start position P1 and the predicted stop position P5, the three positions are extracted in order from the start position P1 and interpolated using the central difference method. Specifically, the stop trajectory is generated by repeating interpolation using the central difference method for the three positions: the start position P1, relay position P2, and relay position P3; the three positions: the relay positions P2 to P4; and the relay position P3, relay position P4, and predicted stop position P5. Here, with reference to the schematic diagram of FIG. 9 , an overview of the process for generating a stop trajectory using the central difference method will be described using the three positions: the start position P1, relay position P2, and relay position P3 as an example.
[0058] 9, the time interval between start position P1 and relay position P2 and the time interval between relay positions P2 and P3 are both 10 msec, and these are interpolated in 1 msec increments, i.e., the interpolation command value to be transmitted to position control unit 46 is calculated every 1 msec. Specifically, the number of interpolations N=10, the speed change parameter Q=(P3-2×P2+P1) / N^2, the speed V(0) at start position P1=(P2-P1) / NQ / 2, and the angle X(0) at relay position P2=1 / 2×(P2+P1). If C1 (k=0) is an intermediate position between start position P1 and relay position P2, and C2 (k=N) is an intermediate position between relay positions P2 and P3, then the interpolation command angle X(k+1)=X(k)+V(k+1) and the interpolation command speed V(k+1)=V(k)+Q are expressed by the following equations.
[0059] The central difference method is simple in that it uses information from three positions. In other words, it is possible to suppress the deviation between the operating trajectory and the stopping trajectory by quadratic interpolation (see Figure 10), while also suppressing the resulting increase in control load.
[0060] <Variation 1> In the third embodiment, the stopping trajectory is generated using the central difference method or the like, but the present invention is not limited to this. Instead of the central difference method or the like, it is also possible to apply Lagrange interpolation (quadratic interpolation, cubic interpolation, etc.) or spline interpolation. Note that if Lagrange interpolation (quadratic or higher) or spline interpolation is used, the angle waveform of the stopping trajectory of each axis becomes smooth (velocity waveform is continuous), which reduces acceleration and prevents the robot from vibrating when stopped.
[0061] <Fourth embodiment> In a configuration in which a stopping trajectory is generated by quadratic interpolation as shown in the third embodiment, if the stopping trajectory is generated with the requirement that the command speed (target speed) immediately before braking starts and the command speed (target speed) at braking start are continuous, an event may occur in which the timing at which the predicted stopping position is reached differs for each axis (see FIG. 11(a)). In other words, the time taken to reach the predicted stopping position (braking time) may vary for each axis. When such variation occurs, even if the final stopping position is on the operating trajectory, it is likely to deviate from the operating trajectory during braking. In other words, a deviation between the braking trajectory and the operating trajectory is likely to occur.
[0062] In response to this, it is possible to suppress the deviation between the braking trajectory and the operating trajectory by adjusting the timing at which each axis reaches the predicted stop position to be the same (for example, by adjusting the intermediate position P2). However, with such a configuration, there is a possibility that the command speed (speed command value) immediately before the start of braking and the command speed (speed command value) at the start of braking may become discontinuous (see FIG. 11(b)). This may cause concern that the behavior of the robot main body 12 may become unstable. One of the features of this embodiment is that it is designed to solve these two problems. Below, this design will be explained, focusing on the differences from the third embodiment. Note that explanations of the same configuration as the third embodiment will be omitted as appropriate.
[0063] In this embodiment, first, the braking times of the first to sixth axes are compared to determine the axis with the longest braking time. Then, the axis with the longest braking time is set as the reference axis, and its braking time is set as the reference braking time. Stopping trajectories are generated for the other axes based on this reference braking time. In other words, the stopping trajectories are generated so that all of the first to sixth axes stop after the reference braking time has elapsed since they started braking. The stopping trajectories for the reference axis are generated in the manner shown in the third embodiment.
[0064] Figure 12 shows an example of the braking time calculated for each axis when an emergency stop is performed in response to error detection. The braking time (calculated result) for the first axis is "0 seconds," the braking time (calculated result) for the second axis is "1.2 seconds," the braking time (calculated result) for the third axis is "1.5 seconds," the braking time (calculated result) for the fourth axis is "0 seconds," the braking time (calculated result) for the fifth axis is "1.3 seconds," and the braking time (calculated result) for the sixth axis is "0 seconds."
[0065] Comparing the braking times of axes 1 to 6, the longest braking time is axis 3, at 1.5 seconds. Therefore, this braking time (maximum braking time) is set as the reference braking time td, and braking control is performed on axes 1 and 5 so that they stop when reference braking time td has elapsed. Note that axes 1, 4, and 6, which have braking times of 0 seconds, have the same braking start position and predicted stop position, meaning that braking is not actually required, and are therefore not subject to the reference braking time td.
[0066] Here, for the second and fifth axes to which the reference braking time td is applied, the intermediate positions are adjusted to generate a stop trajectory that will reach (stop at) the predicted stop position as the reference braking time td elapses. Specifically, quadratic interpolation is performed twice based on at least six pieces of position information, thereby avoiding discontinuity in the command speed at the current position and allowing the predicted stop position to be reached when the reference braking time td elapses. This interpolation method will be further explained below with reference to the schematic diagram in Figure 13. Note that, for convenience in the following explanation, the following are defined as the current position P0, the start position P1, the intermediate positions P2 to P6, the predicted stop position PE, the reference braking time td, the current speed V0 at the current position P0, the travel time t1 between the start position P1 and the intermediate position P2, and the braking time t before the reference braking time td is applied.
[0067] The first quadratic interpolation using the central difference method targets start position P1, relay position P2, and relay position P3. These positions are expressed as start position P1 = {0, P0}, relay position P2 = {t1, P0 + V0 × t1}, and relay position P3 = {2 × t1, m × (2 × t1) + b}. Note that "m" is the slope of the line passing through relay positions P2 and P5, and "b" is the intercept of the line passing through relay positions P2 and P5.
[0068] The second quadratic interpolation using the central difference method targets relay positions P4, P5, and P6. These positions are expressed as relay position P4 = {-0.5 × t + 2.25 × t1, m × (-0.5 × t + 2.25 × t1) + b}, relay position P5 = {0.5 × td + 0.75 × t1, PE}, and relay position P6 = {1.5 × td - 0.75 × t1, PE}.
[0069] By making such adjustments, the midpoint C3 between the intermediate positions P5 and P6 becomes equal to the predicted stop position PE, and a configuration can be realized in which the predicted stop position PE is reached in accordance with the passage of the reference braking time td.
[0070] According to the fourth embodiment described above in detail, it is possible to preferably suppress the deviation between the motion trajectory and the braking trajectory, and also suppress the disturbance of the behavior of the robot body 12 during braking due to discontinuity in speed.
[0071] <Fifth embodiment> In the first embodiment described above, when an error is detected in the servo amplifier 14, the servo amplifier 14 generates a stop trajectory on its own based on the stop trajectory generation information received in advance from the robot controller 15, and starts braking to quickly stop the robot body 12 on the operating trajectory.
[0072] Here, the errors monitored by the error monitoring unit 43 of the servo amplifier 14 include errors related to information from the robot controller 15 and communications with the robot controller 15, as well as errors occurring in various components such as the rotary encoder 32, power module, IO, and fan. One of the features of this embodiment is that the braking control pattern by the servo amplifier 14 is changed depending on the type of error. Below, the characteristic configuration of this embodiment will be described, focusing on the differences from the first embodiment. Note that descriptions of configurations similar to those of the first embodiment will be omitted as appropriate.
[0073] 14, errors that can be detected by the servo amplifier 14 are divided into Type 1 errors, which are errors relating to information from the robot controller 15 or communication with the robot controller 15, and Type 2 errors, which are other errors. With Type 1 errors, it is assumed that the commands from the robot controller 15 themselves may be unreliable, so as shown in the first embodiment above, when a Type 1 error is detected, reception of commands from the robot controller 15 is restricted and the servo amplifier 14 takes over control. In other words, until the emergency stop of the robot body 12 is completed, a series of braking controls are executed based on the stopping trajectory generated by the servo amplifier 14 (first pattern braking control).
[0074] On the other hand, in the case of a type 2 error, the command itself from the robot controller 15 is assumed to be reliable, and therefore braking control is performed in a manner different from that in the case of a type 1 error (second pattern braking control). In the second pattern braking control, reception of commands from the robot controller 15 is not restricted, and in the event of an emergency stop, control is temporarily transferred from the robot controller 15 to the servo amplifier 14, and then returned to the robot controller 15. Below, the switching sequence in the second pattern braking control will be described with reference to Fig. 15.
[0075] The robot controller 15 generates a motion trajectory (ST1), calculates the angle command value and braking time for each axis based on the generated motion trajectory, and predicts the stop position (predicted stop position) (ST2), and transmits the angle command value and information for generating the stop trajectory (predicted stop position information, braking time information) to the servo amplifier 14 (ST3). These steps of ST2 and ST3 are executed periodically until an emergency stop is performed in response to error detection.
[0076] If the servo amplifier 14 detects the second type error (ST4), it notifies the robot controller 15 that a second type error has occurred (ST5). This notification includes, for example, information indicating the current position. The servo amplifier 14 also generates a stop trajectory on its own based on the received stop trajectory generation information (ST6), and starts braking control based on the generated stop trajectory (ST7). This reduces the time lag from error detection to the start of braking.
[0077] When the robot controller 15 confirms the notification that a second type error has occurred (ST8), it interrupts the loop of steps ST1 to ST3 and starts generating a stop trajectory for an emergency stop (ST9). Specifically, it generates a stop trajectory that performs braking along the generated motion trajectory and stops the robot on the motion trajectory. After generating this stop trajectory, it calculates angle command values for each axis based on the stop trajectory (ST10). Then, it transmits the calculated angle command values to the servo amplifier 14 together with a switch command that indicates a switch of the control mode (ST11).
[0078] When the servo amplifier 14 receives the switching command, it switches the control mode from stop control based on the stop trajectory it generated itself to stop control based on the angle command value from the robot controller 15 (ST12). After that, braking control continues until the robot body 12 comes to a complete stop (ST13). Note that this control mode switching is configured to gradually move closer to the command from the robot controller 15 over a certain period (transition period), thereby suppressing disruption of the behavior of the robot body 12 due to the control mode switching.
[0079] According to the fifth embodiment described above, when a type 2 error is detected, braking of the robot main body 12 is initiated promptly, thereby reducing the time lag between error detection and braking initiation. Here, if the servo amplifier 14 independently generates a stopping trajectory, it is difficult to make the stopping trajectory perfectly coincide with the operating trajectory. In other words, even if it is intended to ultimately stop the robot on the operating trajectory, the actual trajectory may deviate from the operating trajectory during braking. In this regard, as shown in this embodiment, when the servo amplifier 14 independently initiates braking, it notifies the robot controller 15 that a type 2 error has occurred. Upon receiving this notification, the robot controller 15 generates a braking trajectory with less deviation in parallel with braking by the servo amplifier 14, and transmits an angle command value calculated from the braking trajectory to the servo amplifier 14. This switches the focus from the braking trajectory unique to the servo amplifier 14 to the angle command value from the robot controller 15, thereby effectively suppressing deviation from the operating trajectory.
[0080] <Inventions extracted from the above embodiments> The following describes the features of the inventions extracted from the above embodiments, while indicating, as necessary, their effects, etc. Note that, for ease of understanding, the corresponding configurations in the above embodiments are indicated in parentheses, etc. as appropriate, but the invention is not limited to the specific configurations indicated in parentheses, etc.
[0081] The following features are related to the background technology of the above-mentioned robot control system: "For example, some robot control systems applied to multi-axis industrial robots include a robot controller (host control unit) that generates a motion trajectory (target motion trajectory) for the industrial robot according to an operation program set by the user and calculates angle command values for each axis from the motion trajectory, and a servo amplifier (drive control unit) that drives and controls the servo motors of each axis based on the angle command values received from the robot controller. In this type of robot control system, for example, safety is improved by configuring the industrial robot to stop (emergency stop) when an error is detected on the robot controller side or when a stop operation by the user is confirmed (see, for example, Patent Document 1)." The following features are related to the background technology of the above-mentioned robot control system: "Here, in the above-mentioned robot control system, errors may occur not only on the robot controller side but also on the servo amplifier and various devices such as motors and sensors connected to the servo amplifier. It is reasonable to configure the servo amplifier side to monitor errors that occur on the servo amplifier side, and for example, If the servo amplifier independently brakes the motor to maximize deceleration when an error is detected, the industrial robot can be stopped quickly. However, this configuration increases the likelihood that the actual stopping position will deviate from the operating trajectory. This can hinder the effective utilization of safety enhancements. Furthermore, if the robot stops at a position significantly deviating from the target operating trajectory, the time required to recover from the emergency stop increases, potentially reducing the productivity benefits of using an industrial robot. On the other hand, if the servo amplifier notifies the robot controller of the error detection when an error is detected and initiates braking upon receiving a command from the robot controller (specifically, a command to brake the robot so as to stop it on the operating trajectory), the deviation between the stopping position and the operating trajectory can be reduced. However, communication between the robot controller and the servo amplifier requires a certain amount of time, which can result in a significant time lag between error detection and the start of braking.In other words, the time from detecting an error to stopping the industrial robot will be longer than in a configuration in which braking is immediately initiated on the servo amplifier side, and the responsiveness of an emergency stop may be poor. As such, in a configuration in which errors are detected on the servo amplifier side, there is still room for improvement in the configuration related to braking triggered by the detection of the error in order to improve the safety of industrial robots." This was made in consideration of the background and issues mentioned above.
[0082] Feature 1: A host control unit (robot controller 15) that generates a target motion trajectory (target motion trajectory) when operating an industrial robot (robot 11) and outputs motion command information (angle command value) for operating the industrial robot (changing its posture) along the motion trajectory; a drive control unit (servo amplifier 14) that can communicate with the host control unit and controls a drive unit (servo motor 31) in the industrial robot based on the operation command information from the host control unit; A robot control system comprising: The drive control unit monitors for specified errors (e.g., communication errors or encoder errors), and if the specified error is detected during drive control of the drive unit based on the operation command information, generates a target stopping trajectory (target stopping trajectory) for stopping the industrial robot on the operation trajectory, and brakes (brakes control) the industrial robot based on the generated stopping trajectory.
[0083] The industrial robot according to this feature operates along a motion trajectory generated by a host controller when no predetermined error occurs. The drive controller monitors the industrial robot for errors during its operation, and if it detects an error, it generates a stop trajectory to stop the industrial robot on the motion trajectory generated by the host controller, and brakes the industrial robot based on the generated stop trajectory rather than the motion command information received from the host controller. In this way, the drive controller that detects an error generates a stop trajectory itself and initiates braking to stop the industrial robot along the stop trajectory. This reduces the time lag between the detection of a predetermined error and the start of braking, while preventing the industrial robot from stopping at a position outside the motion trajectory. This contributes to improving the safety of industrial robots.
[0084] Feature 2: The robot control system according to Feature 1, wherein the upper control unit outputs, to the drive control unit, trajectory generation information (e.g., braking time information, predicted stopping position information, etc.) that is referenced by the drive control unit when generating the stopping trajectory, at a predetermined cycle (e.g., 10 msec).
[0085] As shown in this feature, if the trajectory generation information referenced when generating a stop trajectory is configured to be output from the upper control unit at a predetermined cycle, the drive control unit can be set to a state in which the trajectory generation information has been acquired when a predetermined error is detected. Therefore, there is no need to request the upper control unit to output the trajectory generation information when a predetermined error is detected, and the process of generating a stop trajectory and then braking can be carried out quickly. This is preferable in terms of reducing the time lag mentioned above.
[0086] Feature 3: The drive control unit is configured to be able to hold at least one piece of trajectory generation information received immediately before, even when the trajectory generation information is newly received; The robot control system according to Feature 2, wherein the drive control unit is capable of generating the stopping trajectory based on the trajectory generation information received immediately before when the specified error is an error related to communication with the upper control unit or information received from the upper control unit.
[0087] Depending on the timing of detecting a predetermined error (an error related to communication with a higher-level control unit, etc.), a situation may arise in which the reliability of the latest trajectory generation information cannot be guaranteed. Therefore, by making it possible to hold the previously received trajectory generation information and generate a stopping trajectory based on that trajectory generation information, it is possible to prevent an inappropriate stopping trajectory from being generated.
[0088] Feature 4: The robot control system according to Feature 1, wherein the upper control unit is configured to output the operation command information to the drive control unit at a predetermined cycle (e.g., 10 msec), and when outputting the operation command information, prepares trajectory generation information (e.g., braking time information, predicted stopping position information, etc.) to be referenced when the drive control unit generates the stopping trajectory based on the generated operation trajectory, and outputs the trajectory generation information to the drive control unit together with the operation command information.
[0089] As shown in this feature, if the trajectory generation information referenced when generating a stop trajectory is configured to be output from the upper control unit at a predetermined cycle, the drive control unit can be set to a state in which the trajectory generation information has already been acquired when a predetermined error is detected. Therefore, there is no need to request the upper control unit to output the trajectory generation information when a predetermined error is detected, and the process of generating a stop trajectory and then braking can be carried out quickly. This is preferable in terms of reducing the time lag mentioned above.
[0090] Furthermore, by configuring the system to output trajectory generation information at the same time as outputting motion command information (the timing at which a motion trajectory is generated), the motion trajectory can be used when preparing the trajectory generation information. In other words, a step of regenerating a motion trajectory when preparing the trajectory generation information is not required. Therefore, adopting a configuration in which trajectory generation information is output at a predetermined cycle can prevent the control load on the upper control unit from becoming excessively large.
[0091] Feature 5: The drive control unit is configured to generate the stopping trajectory based on trajectory generation information (e.g., braking time information, predicted stopping position information, etc.) received from the upper control unit, The robot control system according to Feature 1, wherein the upper control unit identifies a predicted stopping position of the industrial robot assuming that braking is applied at the current time to bring the industrial robot to an emergency stop and the industrial robot is stopped on the operating trajectory, and transmits the trajectory generation information including information indicating the predicted stopping position to the drive control unit at a predetermined cycle (e.g., 10 msec).
[0092] As shown in this feature, if the trajectory generation information referenced when generating a stop trajectory is configured to be output from the upper control unit at a predetermined cycle, the drive control unit can be set to a state in which the trajectory generation information has already been acquired when a predetermined error is detected. Therefore, there is no need to request the upper control unit to output the trajectory generation information when a predetermined error is detected, and the process of generating a stop trajectory and then braking can be carried out quickly. This is preferable in terms of reducing the time lag mentioned above.
[0093] Furthermore, since the trajectory generation information includes information indicating the predicted stop position, the operation control unit does not need to calculate the stop position independently, which contributes to shortening the time required to generate the stop trajectory, which is preferable in terms of reducing the time lag between the detection of a certain error and the start of braking.
[0094] Feature 6: The drive control unit is configured to generate the stopping trajectory based on trajectory generation information (e.g., braking time information, predicted stopping position information, etc.) received from the upper control unit, The robot control system according to Feature 1, wherein the upper control unit is configured to output the operation command information to the drive control unit at a predetermined cycle (for example, 10 msec), and when outputting the operation command information, identifies a predicted stopping position of the industrial robot assuming that braking is currently performed to bring the industrial robot to an emergency stop and the industrial robot is stopped on the operation trajectory, and outputs the trajectory generation information including information indicating the predicted stopping position to the drive control unit together with the operation command information.
[0095] As shown in this feature, if the trajectory generation information referenced when generating a stop trajectory is configured to be output from the upper control unit at a predetermined cycle, the drive control unit can be set to a state in which the trajectory generation information has already been acquired when a predetermined error is detected. Therefore, there is no need to request the upper control unit to output the trajectory generation information when a predetermined error is detected, and the process of generating a stop trajectory and then braking can be carried out quickly. This is preferable in terms of reducing the time lag between detecting a predetermined error and starting braking.
[0096] Furthermore, since the trajectory generation information includes information indicating the predicted stopping position, the operation control unit does not need to take measures such as independently calculating the stopping position, which contributes to shortening the time required to generate the stopping trajectory, i.e., further reducing the time lag mentioned above.
[0097] Furthermore, by configuring the system to output trajectory generation information at the timing when the motion command information is output (the timing when the motion trajectory is generated), the motion trajectory can be used when preparing the trajectory generation information (information indicating the predicted stop position). In other words, a step of regenerating the motion trajectory when preparing the trajectory generation information is not required. Therefore, adopting a configuration that outputs trajectory generation information at a predetermined cycle can prevent the control load on the upper control unit from becoming excessively large.
[0098] Feature 7: A robot control system according to Feature 5 or Feature 6, wherein the trajectory generation information includes information indicating a braking time assumed to be required to brake the industrial robot to an emergency stop and stop the industrial robot on the operating trajectory.
[0099] If the trajectory generation information is configured to include information indicating the braking time in addition to the information indicating the predicted stop position as described in Feature 5, etc., referring to the braking time when generating the stop trajectory can contribute to reducing the control load on the drive control unit. In particular, the drive control unit is responsible for controlling the drive unit, and is often configured to perform appropriate drive control by shortening the control cycle. In such a configuration, if the control load becomes too large and processing cannot keep up with the control cycle, this can directly affect the behavior of the drive unit. In light of these circumstances, there is technical significance in reducing the control load.
[0100] Feature 8: The robot control system according to any one of Features 5 to 7, wherein the drive control unit generates the stop trajectory by linearly interpolating between the current position and the predicted stop position.
[0101] Linear interpolation can shorten the time required to determine the braking mode, including the stopping trajectory, which is preferable in terms of reducing the time lag mentioned above.
[0102] Feature 9: A robot control system according to any one of Features 5 to 8, wherein the trajectory generation information includes information (intermediate position information) indicating positions on the motion trajectory that the robot will pass through when braking to the predicted stopping position.
[0103] Although a configuration in which a stopping trajectory is generated by linear interpolation is preferable in terms of reducing the time lag, it may become difficult for the industrial robot to follow the target movement trajectory during braking. In this regard, by including information indicating the intermediate positions in the trajectory generation information as shown in this feature, it is possible to prevent a large deviation from the movement trajectory even when a stopping trajectory is generated by simple interpolation such as linear interpolation.
[0104] Feature 10: The trajectory generation information includes information indicating positions on the motion trajectory that are to be passed through when moving toward the predicted stop position due to the braking (relay position information), The robot control system according to any one of Features 5 to 7, wherein the drive control unit generates the stopping trajectory by connecting the current position and the predicted stopping position by quadratic interpolation based on the current position, the route position, and the predicted stopping position.
[0105] As shown by this feature, if a configuration is used that uses quadratic interpolation, the angular waveform of the stopping trajectory of each axis becomes smooth (the velocity waveform becomes continuous) through the interpolation, thereby reducing acceleration and preventing the robot from vibrating when stopped.Incidentally, if a configuration is used that uses Lagrange interpolation as quadratic interpolation, it is possible to improve the ability to follow the operating trajectory while reducing the number of intermediate positions.
[0106] Although it is possible to use cubic or higher order interpolation instead of quadratic interpolation, it is not desirable to use this method because of the increased processing time required for interpolation. Therefore, using quadratic interpolation as described above is advantageous.
[0107] Feature 11: A robot control system according to any one of Features 1 to 10, wherein, after the drive control unit detects the specified error and the braking is initiated in response to the detection of the specified error, drive control based on the operation command information from the upper control unit is restricted at least until the braking is completed and the industrial robot stops.
[0108] If the drive control unit independently initiates braking upon detecting a specified error, the drive control based on the operation command information from the higher-level control unit can be restricted, thereby making it less likely that an unintended interruption will occur during braking, disrupting the behavior of the industrial robot.
[0109] Feature 12: A robot control system according to any one of Features 1 to 11, wherein the control period in the drive control unit is shorter than the predetermined period, which is the information output period in the upper control unit.
[0110] Shortening the control cycle of the drive control unit is desirable for achieving precise drive control and smoothing the movement of industrial robots. However, assuming a short control cycle, there are greater constraints on the generation of stop trajectories. In other words, if stop trajectories are generated using complex calculations, it may be difficult to complete the generation within the control cycle. In this regard, by acquiring information for generating stop trajectories in advance, as described in Feature 1, etc., it is possible to simplify the calculations and achieve favorable coexistence with short control cycles.
[0111] Feature 13: A host control unit (robot controller 15) that generates a target motion trajectory (target motion trajectory) when operating an industrial robot (robot 11) and outputs motion command information (angle command value) for operating the industrial robot (changing its posture) along the motion trajectory; a drive control unit (servo amplifier 14) that can communicate with the host control unit and controls a drive unit (servo motor 31) in the industrial robot based on the operation command information from the host control unit; A robot control system comprising: the drive control unit monitors for a predetermined error (for example, a communication error or an encoder error), and when the predetermined error is detected during drive control of the drive unit based on the operation command information, generates a target stopping trajectory (target stopping trajectory) for stopping the industrial robot on the operation trajectory, starts braking (braking process) of the industrial robot based on the generated stopping trajectory, and notifies the upper control unit that the predetermined error has been detected; The upper control unit, upon receiving the notification that the predetermined error has been detected, separately generates a stop trajectory (braking trajectory) on the operation trajectory as a target for stopping the industrial robot, and outputs braking command information to the drive control unit to brake the industrial robot along this stop trajectory; The robot control system is configured such that, when the drive control unit receives the braking command information during braking based on the stop trajectory, the drive control unit transitions to braking based on the braking command information.
[0112] The industrial robot according to this feature operates along a motion trajectory generated by a host controller when no predetermined error occurs. The drive controller monitors the operation of the industrial robot for predetermined errors. If the drive controller detects the predetermined error, it generates a stop trajectory to stop the industrial robot on the motion trajectory generated by the host controller, and initiates braking of the industrial robot based on the generated stop trajectory rather than the motion command information received from the host controller. At this time, the host controller is notified that a predetermined error has been detected. Upon receiving this notification, the host controller independently generates a stop trajectory and outputs braking command information based on the stop trajectory to the drive controller. Upon receiving this braking command information, the drive controller transitions from braking based on the stop trajectory it generated to braking based on the braking command information. This configuration reduces the time lag between the detection of a predetermined error and the start of braking, and enables the industrial robot to brake while following the motion trajectory and stop on the motion trajectory. This contributes to further improving the safety of industrial robots.
[0113] Feature 14: A host control unit (robot controller 15) that generates a target motion trajectory (target motion trajectory) when operating an industrial robot (robot 11) and outputs motion command information (angle command value) for operating the industrial robot (changing its posture) along the motion trajectory; a drive control unit (servo amplifier 14) that can communicate with the host control unit and controls a drive unit (servo motor 31) in the industrial robot based on the operation command information from the host control unit; A robot control system comprising: the host control unit specifies a predicted stop position of the industrial robot assuming that braking is performed at the present time to bring the industrial robot to an emergency stop and the industrial robot is stopped on the movement trajectory, and outputs information indicating the predicted stop position to the drive control unit at a predetermined cycle (for example, 10 msec); The drive control unit monitors for a predetermined error (for example, a communication error or an encoder error), and if the predetermined error is detected during drive control of the drive unit based on the operation command information, the robot control system brakes (brakes) the industrial robot based on information indicating the predicted stop position.
[0114] As shown in this feature, if the information indicating the predicted stop position is periodically output to the drive control unit, the drive control unit can independently start braking by referring to the predicted stop position when it detects a predetermined error. This configuration makes it possible to stop the industrial robot on its operating trajectory while reducing the time lag until braking starts. This contributes to further improving the safety of industrial robots.
[0115] Feature 15: A host control unit (robot controller 15) that generates a target motion trajectory (target motion trajectory) when operating an industrial robot (robot 11) and outputs motion command information (angle command value) for operating the industrial robot (changing its posture) along the motion trajectory; a drive control unit (servo amplifier 14) that can communicate with the host control unit and controls a drive unit (servo motor 31) in the industrial robot based on the operation command information from the host control unit; A robot control system comprising: The upper control unit is configured to output the operation command information to the drive control unit at a predetermined cycle (for example, 10 msec), and when outputting the operation command information, specifies a predicted stop position of the industrial robot assuming that braking is performed at the current time to bring the industrial robot to an emergency stop and the industrial robot is stopped on the operation trajectory, and a braking time required to stop the industrial robot at the predicted stop position, and outputs information indicating the predicted stop position and information indicating the braking time together with the operation command information to the drive control unit, The drive control unit monitors for a predetermined error (for example, a communication error or an encoder error), and if the predetermined error is detected during drive control of the drive unit based on the operation command information, the robot control system brakes (brakes) the industrial robot based on the information indicating the predicted stop position and the information indicating the braking time.
[0116] As shown in this feature, if the information indicating the predicted stop position and the information indicating the braking time are output to the drive control unit along with the operation command information, the drive control unit can independently start braking by referring to the predicted stop position when it detects a predetermined error. This configuration makes it possible to stop the industrial robot on its operating trajectory while reducing the time lag until braking starts. This contributes to further improving the safety of industrial robots.
[0117] Feature 16: A robot controller (robot controller 15) that generates a target motion trajectory (target motion trajectory) when operating an industrial robot (robot 11), and outputs motion command information (angle command value) to a servo amplifier (servo amplifier 14) at a predetermined cycle (e.g., 10 msec) to operate (change the posture of) the industrial robot along the motion trajectory, When outputting the operation command information, the robot controller identifies a predicted stopping position of the industrial robot assuming that braking is applied at the current time to bring the industrial robot to an emergency stop and the industrial robot is stopped on the operation trajectory, and outputs information indicating the predicted stopping position to the servo amplifier together with the operation command information.
[0118] As shown in this feature, if the information indicating the predicted stop position is configured to be output to the drive control unit along with the operation command information, the drive control unit can refer to the predicted stop position when it starts braking independently. This contributes to realizing a configuration that can stop the industrial robot on its operating trajectory while reducing the time lag until braking starts. In other words, it can contribute to further improving the safety of industrial robots. [Explanation of symbols]
[0119] 10...Robot system, 11...Robot, 12...Robot main body, 14...Servo amplifier, 15...Robot controller, 16...Host controller, 31...Servo motor, 32...Rotary encoder, 41...Control unit, 42...Memory unit, 43...Error monitoring unit, 45...Interpolation processing unit, 49...Stop trajectory generation unit, 51...Control unit, 52...Memory unit, 62...Trajectory generation unit, 63...Command value calculation unit, 64...Braking time calculation unit, 65...Stop position prediction unit.
Claims
1. a host control unit that generates a target motion trajectory when operating an industrial robot and outputs motion command information for operating the industrial robot along the motion trajectory; a drive control unit capable of communicating with the host control unit and controlling a drive unit in the industrial robot based on the operation command information from the host control unit; A robot control system comprising: The drive control unit monitors for specified errors, and if the specified error is detected during drive control of the drive unit based on the operation command information, generates a target stopping trajectory on the operation trajectory to stop the industrial robot, and brakes the industrial robot based on the generated stopping trajectory.
2. 2. The robot control system according to claim 1, wherein the host control unit outputs, to the drive control unit at a predetermined cycle, trajectory generation information that is referenced by the drive control unit when generating the stop trajectory.
3. the drive control unit is configured to generate the stopping trajectory based on trajectory generation information received from the upper control unit, 2. The robot control system according to claim 1, wherein the host control unit identifies a predicted stop position of the industrial robot assuming that braking is applied at the current time to bring the industrial robot to an emergency stop and the industrial robot is stopped on the operation trajectory, and transmits the trajectory generation information including information indicating the predicted stop position to the drive control unit at a predetermined cycle.
4. the drive control unit is configured to generate the stopping trajectory based on trajectory generation information received from the upper control unit, 2. The robot control system according to claim 1, wherein the upper control unit is configured to output the operation command information to the drive control unit at a predetermined cycle, and when outputting the operation command information, specifies a predicted stopping position of the industrial robot assuming that braking is currently performed to bring the industrial robot to an emergency stop and the industrial robot is stopped on the operation trajectory, and outputs the trajectory generation information including information indicating the predicted stopping position to the drive control unit together with the operation command information.
5. a host control unit that generates a target motion trajectory when operating an industrial robot and outputs motion command information for operating the industrial robot along the motion trajectory; a drive control unit capable of communicating with the host control unit and controlling a drive unit in the industrial robot based on the operation command information from the host control unit; A robot control system comprising: the host control unit specifies a predicted stop position of the industrial robot assuming that braking is performed at the present time to bring the industrial robot to an emergency stop and the industrial robot is stopped on the movement trajectory, and outputs information indicating the predicted stop position to the drive control unit at a predetermined cycle; The drive control unit monitors for a predetermined error, and if the predetermined error is detected during drive control of the drive unit based on the operation command information, the drive control unit brakes the industrial robot based on the information indicating the predicted stop position.
6. A robot controller that generates a target motion trajectory when operating an industrial robot, and outputs motion command information to a servo amplifier at a predetermined cycle for operating the industrial robot along the motion trajectory, When outputting the operation command information, the robot controller identifies a predicted stopping position of the industrial robot assuming that braking is applied at the current time to bring the industrial robot to an emergency stop and the industrial robot is stopped on the operation trajectory, and outputs information indicating the predicted stopping position to the servo amplifier together with the operation command information.
Citation Information
Patent Citations
Robot locus control method
JP1989119809A