Robot collision detection method and robot collision detection device
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-07-22
- Publication Date
- 2026-08-13
AI Technical Summary
【0018】 本発明によれば、小さな演算負荷量で、ロボットが低速で運動しているときであっても衝突の発生を速やかかつ確実に検出できるようになる。
Smart Images

Figure 0007904745000003 
Figure 0007904745000004 
Figure 0007904745000005
Abstract
Description
Technical Field
[0001] The present invention relates to a method and an apparatus for detecting the occurrence of a collision in a robot.
Background Art
[0002] A robot used for transporting workpieces or the like may have its arm or the like interfere with surrounding objects and collide during operation. When a collision occurs during operation, it is necessary to immediately detect it and perform processing such as urgently stopping the operation of the robot. For detecting a collision in a robot, a collision sensor attached to its arm or the hand at the tip of the arm can be used. However, providing a collision sensor increases costs. Further, the mass of the collision sensor may adversely affect the dynamic characteristics of the robot, and in some cases, it may be difficult to provide wiring to the collision sensor depending on the structure of the robot. As a method of detecting a collision without using a collision sensor, there is a method of monitoring the torque in the servo motor of each axis of the robot. When a collision occurs and the movement of the robot is inhibited, the torque of the servo motor of the corresponding axis rapidly increases. Therefore, when an increase in torque is detected by comparison with a threshold value, it can be determined that a collision has occurred. In this method, even when the robot is operating normally in response to an external command, the torque may increase significantly depending on the content of the command. Therefore, it is necessary to appropriately set a threshold value for determining that a collision has occurred, that is, a collision detection limit value. If a collision detection limit value smaller than the torque that can occur during normal operation is set, a collision during normal operation will be erroneously detected. Generally, the torque increases as the speed of the motor increases. Therefore, in order to prevent false detection, it is necessary to set the collision detection limit value to a value larger than the torque when the motor is driven at its maximum speed.
[0003] Setting the collision detection limit to a value greater than the torque required for driving at maximum speed presents a problem: collision detection may not be accurate when the motor speed is low. At low speeds, the motor torque is small, and the torque increase during a collision or interference is also small. Therefore, using a collision detection limit corresponding to the maximum speed may fail to detect minor collisions or interferences. Alternatively, the collision or interference may only be detected after it has progressed to a certain extent, resulting in a time lag in detection.
[0004] Patent Document 1 discloses a technology for quickly and reliably detecting collisions in robots, which calculates the required drive torque from a required drive torque command element calculated from at least one of position command, velocity command, and acceleration command, and at least one of the position, velocity, and acceleration of the motors driving each axis, without recalculating the robot's equations of motion, and determines the occurrence of a collision by comparing the calculated required drive torque with the current of the motors of each axis. Patent Document 2 discloses a technology for reliably detecting collisions in situations where the drive torque changes depending on whether or not a workpiece is being held, which involves recognizing the state transition between a state where the load of the workpiece is not transmitted to the robot and a state where the load of the workpiece is transmitted to the robot, using different thresholds depending on which state is being observed, and detecting collisions by comparing the disturbance estimate with this threshold. Patent Document 3 discloses a technology for detecting collisions by estimating disturbances through inverse dynamics calculations, which involves increasing the threshold in collision detection to reduce detection sensitivity when the command acceleration of the robot movement is greater than a predetermined value set in advance, in order to prevent a decrease in the accuracy of collision detection due to vibrations caused by the spring component of the reduction gear.
[0005] Although it does not relate to improving the accuracy of collision detection, Patent Document 4 discloses that, in order for a human worker and a robot to work together, the space in which the robot arm moves is divided into a low-speed operating area, which is the space in close proximity to the worker, and a high-speed operating area, which is the space outside of that, and the detection sensitivity for detecting collisions of the robot arm is made higher in the low-speed operating area than in the high-speed operating area. [Prior art documents] [Patent Documents]
[0006] [Patent Document 1] Japanese Patent Publication No. 2003-25272 [Patent Document 2] Japanese Patent Publication No. 2016-16490 [Patent Document 3] Japanese Patent Publication No. 2006-116650 [Patent Document 4] International Publication No. 2016 / 103308 [Overview of the project] [Problems that the invention aims to solve]
[0007] The techniques described in Patent Document 1 for improving the accuracy of collision detection in robots require the calculation of the necessary drive torque, the techniques described in Patent Document 2 require the calculation of an estimated value of the disturbance, and the techniques described in Patent Document 3 require the calculation of the external force by performing inverse dynamics calculations. Therefore, the techniques described in Patent Documents 1-3 have the problem of requiring a heavy computational load for collision detection.
[0008] The object of the present invention is to provide a collision detection method and a collision detection device that have a low computational load and can quickly and reliably detect the occurrence of a collision even when the robot is moving at a low speed. [Means for solving the problem]
[0009] In one embodiment of the present invention, a collision detection method for detecting the occurrence of a collision in a robot having multiple axes, each axis driven by a motor, includes a collision determination step of comparing a threshold value determined according to the motor speed for each axis with the torque value of the motor for that axis, and determining that a collision has occurred when the torque value exceeds the threshold value. In a robot that transports a workpiece between multiple stages, when the robot moves between the entry position of each stage and the stage position by continuous path (CP) control, in the collision determination step, a threshold value obtained by referring to a collision detection limit table which stores threshold values for each stage and each axis for each overall speed in advance is used, and the overall speed is the overall speed of the robot operating by CP control.
[0010] According to the collision detection method described above, when performing CP control where the change in motor speed for each axis cannot be known without actually operating the robot, a collision detection limit table is prepared in advance, storing threshold values for each stage and axis for each overall speed. When the robot is actually moved by CP control, the collision detection limit table is referenced based on the commanded overall speed to obtain a collision detection limit value, which is the threshold value. This allows for more optimal collision detection when the robot accesses the stage by CP control.
[0011] In one embodiment of the collision detection method, it is preferable that the collision detection limit table divides the total speed into multiple CP speed ranges from zero speed to the maximum speed defined by CP control, and that a single threshold value is set for each CP speed range. By setting a single threshold value for each CP speed range, the size of the collision detection limit table can be reduced and the creation time can be shortened.
[0012] In one embodiment of the collision detection method, it is preferable that the threshold is determined based on the maximum value in the motor torque waveform when teaching in the robot's CP control is completed, and stored in a collision detection limit table. By creating a collision detection limit table when teaching is completed, collision detection can be reliably performed when the robot is actually operated.
[0013] In one embodiment of the collision detection method, the robot moves between a standby position and an entry position using point-to-point (PTP) control. When moving with PTP control, it is preferable to set a threshold value for each axis based on the speed determined for each axis according to the speed ratio for each of the multiple axes, such that the threshold value is smaller as the motor speed decreases and larger as the motor speed increases. By configuring it in this way, collision detection can be performed using a more appropriate threshold value when moving the robot with PTP control. In this case, it is preferable that the range from zero speed to the maximum motor speed is divided into multiple PTP control speed ranges, and that the threshold value used during PTP control is set as a single value for each PTP control speed range. This further reduces the computational load for threshold generation.
[0014] In another embodiment of the present invention, a collision detection device for detecting the occurrence of a collision in a robot having multiple axes, each axis driven by a motor, includes: a threshold generation unit that generates a threshold value determined according to the motor speed for each axis; a comparison unit that compares the threshold value supplied from the threshold generation unit with the motor torque value and determines that a collision has occurred when the torque value exceeds the supplied threshold value; and a storage unit that stores a collision detection limit table which has pre-stored threshold values for each stage and each axis for each overall speed. In this collision detection device, when the robot is a robot that transports a workpiece between multiple stages and the robot moves between the entry position of each stage and the stage position by CP control, the threshold generation unit supplies a threshold value obtained by referring to the collision detection limit table to the comparison unit, and the overall speed is the overall speed of the robot operating by CP control.
[0015] In the collision detection device described above, when performing CP control, which cannot know the change in motor speed for each axis unless the robot is actually operated, a collision detection limit table is prepared in advance, storing threshold values for each stage and axis for each overall speed. When the robot is actually moved by CP control, the collision detection limit table is referenced based on the commanded overall speed to obtain the collision detection limit value, which is the threshold value. This makes it possible to perform more optimal collision detection when the robot accesses the stage by CP control.
[0016] In one embodiment of the collision detection device, it is preferable that the collision detection limit table divides the overall speed into multiple CP control speed ranges from zero speed to the maximum speed defined by CP control, and that a single threshold value is set for each CP control speed range. By setting a single threshold value for each CP control speed range, the size of the collision detection limit table can be reduced and the creation time can be shortened. In addition, a table generation unit may be provided that determines the threshold value based on the maximum value in the motor torque waveform and stores it in the collision detection limit table. By providing such a table generation unit, the process of creating the collision detection limit table can be easily executed.
[0017] In a collision detection device according to one aspect, the robot moves between a standby position and an approach position by PTP control, and the threshold value generated by the threshold value generation unit when moving by PTP control is determined for each axis based on a speed defined for each axis according to the speed ratio for each of a plurality of axes such that the lower the speed of the motor, the smaller the threshold value and the higher the speed of the motor, the larger the threshold value. By configuring in this way, when moving the robot by PTP control, it is possible to detect the occurrence of a collision using a more appropriate threshold value. In this case, it is preferable that the range from zero speed to the maximum speed of the motor is divided into a plurality of speed regions for PTP control, and the threshold value used during PTP control is defined as a single value for each speed region for PTP control. Thereby, the calculation load for generating the threshold value can be further reduced.
Advantages of the Invention
[0018] According to the present invention, even when the robot is moving at a low speed, it is possible to quickly and surely detect the occurrence of a collision with a small calculation load.
Brief Description of the Drawings
[0019] [Figure 1] FIG. 1 is a block diagram showing an example of a robot system to which a collision detection method according to an embodiment of the present invention is applied. [Figure 2] FIG. 2 is a diagram showing the principle of collision detection based on torque values. [Figure 3] FIG. 3 is a diagram for explaining the principle of collision detection based on the present invention. [Figure 4] FIG. 4 is a schematic cross-sectional view showing an example of the configuration of a transport robot. [Figure 5] FIG. 5 is a schematic plan view showing an operation example of the robot. [Figure 6] FIG. 6 is a diagram for explaining PTP control. [Figure 7] FIG. 7 is a diagram for explaining CP control. [Figure 8] FIG. 8 is a diagram showing an example of the content of a collision detection limit table.
Embodiments for Carrying Out the Invention
[0020] Next, embodiments of the present invention will be described with reference to the drawings. The collision detection method according to the present invention detects the occurrence of collisions in robots such as transport robots. Collisions here include not only cases where the robot's arm or hand literally collides with another object, but also interference in which the movement of the arm or hand is affected or hindered by another object as the robot operates. First, a robot system to which one embodiment of the collision detection method of the present invention is applied will be described. Figure 1 shows an example of the configuration of such a robot system.
[0021] The robot system consists of a robot 10 used for transporting semiconductor wafers and other similar tasks, and a robot control device (robot controller) 50 that drives and controls the robot 10 based on external commands. The robot 10 includes motors 11 that drive its arms and hands, and encoders that are mechanically connected to the motors 11 to detect the rotational position of the motors 11. The robot 10 typically has multiple axes, each with a motor 11. However, for illustrative purposes, Figure 1 shows a single motor 11 and an encoder 12 connected to that motor 11 in the robot 10.
[0022] The robot control device 50 includes a calculation unit 51 that calculates the trajectory of the robot 10 based on commands input from an external source and outputs position command values for the motors 11 of each axis of the robot 10, and a drive unit 52 that drives the motors 11 based on the position command values output from the calculation unit 51. The encoder 12 outputs a signal indicating the rotational position of the motors 11, and this signal is fed back to the drive unit 52, which then performs servo control of the motors 11. When teaching the robot 10, a teaching pendant is connected to the robot control device 50, and commands from the teaching pendant are also input to the calculation unit 51 as external commands. The configuration of the calculation unit 51 and drive unit 52 described here is the same as the configuration of a general robot control device used for controlling industrial robots.
[0023] The robot control device 50 shown in Figure 1 further includes a threshold generation unit 53 that outputs a collision detection limit value, which is a threshold, in order to detect the occurrence of a collision in the robot 10; a comparison unit 54 that compares the torque value of the motor 11 with the collision detection limit value (threshold) supplied from the threshold generation unit 53; a storage unit 55 that stores a collision detection limit table that is referenced by the threshold generation unit 53 when the robot 10 is operating by CP control, which will be described later; and a table generation unit 56 that generates the collision detection limit table. The comparison unit 54 is configured, for example, by a comparator circuit, and determines that a collision has occurred in the robot 10 when the torque value exceeds the collision detection limit value. The determination result from the comparison unit 54 is output externally as a collision detection result. This collision detection result may be input to the calculation unit 51 in order to make an emergency stop of the robot 10 when a collision occurs. In the collision detection method according to the present invention, the torque value of the motor 11 may be a torque command value calculated internally in the drive unit 52 for servo control of the motor 11, the current value of the motor 11 itself may be used, or the torque value actually measured for the motor 11 may be used. The torque value actually measured for the motor 11 may be a value obtained by performing inverse dynamics calculations or model calculations based on some measured value. The collision detection device according to the present invention is configured by the threshold generation unit 53 and the comparison unit 54. Details of the threshold generation unit 53, the table generation unit 56 and the collision detection limit table will be described later.
[0024] The collision detection method according to the present invention is based on comparing the torque value of the motor 11 with a collision detection limit value, which is a threshold value. Figure 2 is a diagram illustrating the principle of this collision detection method, with the horizontal axis representing time and the vertical axis representing the torque of the motor 11. As shown in Figure 2(a), the torque of the motor 11 during normal operation changes moment by moment but remains within a certain range. If, for example, the arm of the robot 10 collides with another object at time P while being driven by the motor 11, the movement of the arm is hindered, and the torque value of the motor 11 rises sharply to counteract this hindering force. By detecting that the sharply rising torque exceeds a predetermined collision detection limit value, the occurrence of a collision can be detected. As shown in Figure 2(b), the torque of the motor 11 differs depending on whether the motor 11 is moving at low speed or high speed. During low-speed operation, the torque is relatively small, and during high-speed operation, the torque is relatively large. When attempting to detect a collision in the robot 10 using a single collision detection limit value, the collision detection limit value must be greater than the torque that can occur in the motor 11 when it is rotating at its maximum speed during normal operation.
[0025] If the collision detection limit value is set based on the torque during high-speed operation, this value is too large when the motor 11 is operating at a low speed, making it unsuitable for properly detecting collisions in the robot 10. Figure 3 is similar to Figure 2(a), but shows the change in torque when the motor 11 is operating at a relatively low speed. The collision detection limit value shown in the figure is set based on the maximum speed of the motor 11. When a collision occurs at time P, the torque value rises sharply, but does not reach the collision detection limit value, so the collision is not detected at that point. The torque continues to rise and finally reaches the collision detection limit value at time Q, so the collision is detected at time Q. The time from time P to time Q corresponds to the detection time lag. If there is a time lag in detection, the robot will apply a greater force to the object being hit, or the robot will move in a way that causes it to bite further into the object being hit, so a time lag in collision detection is extremely undesirable, for example, in terms of ensuring safety. Furthermore, in cases of minor collisions, for example, if the arm collides with a small object, but the object moves out of the arm's trajectory as a result of the collision, allowing the arm to continue moving, the increase in torque due to the collision may be small and not reach the collision detection limit, resulting in the collision not being detected. Even if the collision is minor, the inability to detect it is extremely undesirable from a safety standpoint.
[0026] In the collision detection method according to the present invention, in order to quickly and reliably detect the occurrence of a collision even when the robot is moving at a low speed, the collision detection limit value, which is a threshold, is changed according to the speed of the motor 11, so that the collision detection limit value becomes smaller when the speed of the motor 11 is low and larger when the speed is high. In Figure 3, the arrow indicates that the collision detection limit value is reduced when the robot is moving at a low speed, so that the occurrence of a collision can be detected without a time lag at the time P when the collision actually occurs. The speed of the motor 11 is obtained by differentiating the signal indicating the motor position from the encoder 12 and is constantly calculated in the drive unit 52, so the threshold generation unit 53 receives the motor speed from the drive unit 52, generates a collision detection limit value, which is a threshold, according to that motor speed, and outputs it to the comparison unit 54. Alternatively, if the speed of the motor 11 is calculated in the calculation unit 51, the threshold generation unit 53 may receive the motor speed from the calculation unit 51, as shown by the dashed line in the figure. In practice, it is preferable to divide the motor speed range from zero speed to the maximum speed of the motor 11 into multiple speed ranges and set a single collision detection limit value for each divided speed range. By setting a collision detection limit value for each speed range in this way, it becomes possible to implement the threshold generation unit 53 using a lookup table, simplifying the configuration of the threshold generation unit 53 and reducing the amount of computation required to calculate the collision detection limit value.
[0027] Table 1 shows an example of a collision detection limit value using a conventional method. Assuming that the current speed of motor 11 is expressed as a percentage with the maximum speed of motor 11 being 100%, in the conventional method, the collision detection limit value is uniformly set to, for example, 200 cN·m when the motor speed is between 0% and 100%. In contrast, Table 2 shows an example of a collision detection limit value used in the collision detection method according to the present invention. In this example, the speed range of motor 11 is divided into 10 speed regions in 10% increments: 0% to 10%, over 10% to 20%, over 20% to 30%, and so on. For the lowest speed region, i.e., the speed region from 0% to 10%, 83 cN·m is set as the collision detection limit value, for the next speed region, i.e., the speed region from over 10% to 20%, 96 cN·m is set, and for the highest speed region, i.e., the speed region from over 90% to 100%, 200 cN·m is set.
[0028] [Table 1]
[0029] [Table 2]
[0030] The collision detection limit value for each speed range can be calculated, for example, by driving the motor 11 at different speeds, measuring the torque waveform at that time, and multiplying the maximum torque by an appropriate safety factor. The collision detection limit values for each motor speed calculated in this way are set in the threshold generation unit 53, but may also be stored in the storage unit 55 as a lookup table.
[0031] The above describes the collision detection limit value for a motor 11 on a specific axis of the robot 10. In reality, the robot 10 has multiple axes, and collision detection needs to be performed for each axis, so the collision detection limit value needs to be changed for each axis according to the motor speed of that axis. The following describes such an example. Figure 4 shows an example of a robot 10 having multiple axes. The robot 10 shown is a 3-link type horizontal articulated robot used for transporting semiconductor wafers, etc. The robot 10 comprises a base 21, a lifting unit 22 provided on the base 21, a link mechanism 23 whose base end is attached to the lifting unit 22, an arm 26 whose base end is rotatably attached to the tip of the link mechanism 23, and two hands 27, 28 that are rotatably held at the tip of the arm 26 to hold a workpiece. Hand 27 is the upper hand, and hand 28 is the lower hand. The lifting unit 22 is driven by motor 11Z and moves up and down along the vertical direction (direction Z shown). For the purposes of this explanation, the raising and lowering of the lifting unit 22 will be referred to as the movement along the Z axis. Therefore, the motor 11Z is a motor for the Z axis.
[0032] The link mechanism 23 is configured such that the movement trajectory of its tip, i.e., the position where the arm 26 is attached, is a straight line. It comprises a base-side link 24 located on the base 21 side and rotatably held by the lifting section 22, and an arm-side link 25 located on the arm 26 side. Both links 24 and 25 are rotatably connected to each other by a link joint J. The base-side link 24 is connected to the lifting section 22 and rotatably held by a motor 11A built into the lifting section 22. The base-side link 24 contains a base-side pulley 24a, an arm-side pulley 24b, and a belt 24c, with the belt 24c stretched between the base-side pulley 24a and the arm-side pulley 24b. The ratio of the diameters of the base-side pulley 24a and the arm-side pulley 24b is 2:1. The arm-side pulley 24b is connected to the arm-side link 25, and when the base-side link 24 rotates around the rotation center of the base-side pulley 24a, the rotation angle ratio between the base-side pulley 24a and the arm-side pulley 24b, i.e., the rotation angle ratio between the base-side link 24 and the arm-side link 25, is configured to be 1:2. Furthermore, the lengths of the base-side link 24 and the arm-side link 25 are equal. As a result, the tip of the link mechanism 23 moves when the motor 11A is driven, but its movement trajectory is restricted to a predetermined straight line. The movement that moves the link mechanism 23 is called the A-axis movement. Therefore, the motor 11A is an A-axis motor.
[0033] Arm 26 is connected to the tip of arm-side link 25 and is rotatably held by motor 11B built into arm-side link 25. By driving motor 11B, arm 26 rotates around its base end, i.e., the connection point with link mechanism 23. This movement of arm 26 is called B-axis movement. Motor 11B is the B-axis motor. Hands 27 and 28 are rotatably held by motors 11C and 11D built into arm 26, respectively, and rotate around the tip of arm 26 when driven by motors 11C and 11D. The movement of hand 27 by motor 11C is called C-axis movement, and the movement of hand 28 by motor 11D is called D-axis movement. Motors 11C and 11D are the C-axis motor and D-axis motor, respectively. As shown in Figure 4, the robot 10 is a five-axis robot consisting of A-axis, B-axis, C-axis, D-axis, and Z-axis, and is equipped with five motors 11A, 11B, 11C, 11D, and 11Z. The motors 11A, 11B, 11C, 11D, and 11Z are controlled collectively by the robot control device 50. For collision detection, the robot control device 50 is provided with a threshold generation unit 53 and a comparison unit 54 for each axis. In contrast, the storage unit 55 and the table generation unit 56 are provided in common for multiple axes of the robot 10.
[0034] Incidentally, as is well known, there are two forms of trajectory control when moving a robot's end-effector to a target position based on teaching data: PTP (point-to-point) control and CP (continuous path) control. PTP control generally involves specifying only the start and end points of the trajectory that the tip of a tool or hand attached to the robot should take, and moving the tool or hand. CP control generally involves specifying a path, which is typically a straight line (or sometimes a curve) in three-dimensional space, and moving the tip of the tool or hand along that path. In PTP control, the teaching data indicates the start and end points, but does not specify the robot's path between the start and end points. In particular, for robots with two or more axes, after determining how much each axis should move between the start and end points, each axis is moved independently according to the amount of movement for each axis. CP control controls each axis at each moment to prevent deviation from the specified path, and is used, for example, when interpolating the movement between teaching points shown in the teaching data with a straight line. PTP control allows for faster robot movement than CP control, but because the robot's path is not specified, interference with surrounding walls and other obstacles is more likely to occur with PTP control. In contrast, CP control allows for specifying the robot's path, so although it is slower than PTP control, it can reliably prevent interference with walls and other obstacles.
[0035] The robot 10 shown in Figure 4 is a transport robot, and is controlled to move from one position to another in order to transport a workpiece. In this case, the robot 10 is controlled in a manner that combines PTP control and CP control. The calculations required for PTP control and CP control are performed by the calculation unit 51 in the robot control device 50.
[0036] Figure 5 shows an example of the operation of the robot 10 when transporting a semiconductor wafer as a workpiece. When the semiconductor wafer is the workpiece 60, the robot 10 is used to transport the workpiece 60 between multiple stages 61, as shown in Figure 5. Here, the cassettes that store the workpiece 60 and the workpiece processing devices that process the workpiece 60 are collectively referred to as stages 61. The multiple stages 61 are arranged to face the work area, which is the space surrounding the robot 10, and are configured so that the hands 27 and 28 of the robot 10 can be inserted into the interior of each stage 61 through the openings in the stages 61. The robot 10, which is installed in the work area, is normally waiting in the standby position shown in (a) in Figure 5, with its links 24 and 25, arms 26, and hands 27 and 28 folded. When going to retrieve a workpiece 60 from a stage 61 using the hand 27, the robot 10 is first moved to the entry position shown in (b) in Figure 5 by PTP control so that the hand 27 is positioned in front of the opening of the target stage 61. Subsequently, CP control moves the robot 10 to the stage position shown in Figure 5(c) so that the hand 27 enters the inside of the stage 61. Once the workpiece 60 is placed on the hand 27 at the stage position, the robot 10 returns to the standby position via the entry position, and then moves in the same manner to another stage 61 to which the workpiece 60 will be transported. The stage position is the position where the workpiece 60 within the stage 61 is placed on the hand 27, and is also the position where the workpiece 60 already placed on the hand 27 is unloaded onto the stage 61. In contrast, the entry position is the position of the stage 61 that is pulled back towards the work area from the stage position, and is the position where part of the robot 10 or part of the workpiece 60 placed on the robot 10 is inside the stage 61 when the robot 10 is in the entry position. In the illustrated example, when the robot 10 is in the entry position, the tip of the hand 27 is inside the stage 61.
[0037] Figure 6(a) is a schematic perspective view showing an example of moving the robot 10 shown in Figure 4 using PTP control, and shows the posture before movement (posture R) and the posture after movement (posture S). Figure 6(b) shows the change in the axis velocity of each axis when the robot is moved from posture R to posture S using PTP control. In PTP control, when each axis starts moving simultaneously at the starting point of movement and stops simultaneously at the ending point of movement, the ratio of motor speeds between different axes is always constant, including the acceleration and deceleration periods. The ratio of motor speeds between different axes is determined by the amount of movement of each axis's motor from the starting point to the ending point of movement, and this can be calculated from the coordinate information of the starting and ending points, so it can be calculated when the PTP control operation command is input. In addition, when performing PTP control, it is common for the overall speed, which indicates the overall speed of movement in that PTP control, to be commanded. Each motor has a specified maximum speed, but a total speed of 100% means that the robot can move at the fastest possible speed using PTP control. In this case, the motor on one axis operates at the maximum speed specified for that motor, while the motors on the other axes operate at less than the maximum speed specified for that axis. Since the specified maximum speed for each motor and the ratio of motor speeds between different axes during PTP operation are known, it is possible to determine the percentage of the maximum speed specified for each motor that each axis's motor is operating at when the total speed is 100% (speed ratio).
[0038] As described above, in this embodiment, the collision detection limit value for each motor is changed according to what percentage of the maximum speed specified for that motor the current speed of that motor is. On the other hand, when performing PTP control, the overall speed is commanded rather than the motor speed being commanded individually for each axis. When performing teaching, for example, the robot 10 is not operated at 100% of the overall speed, but at a lower speed. For example, when operating the robot 10 at X% of the overall speed, the speed ratio of each axis motor to its maximum speed is obtained by multiplying the speed ratio when the overall speed is 100% by X / 100. Then, the collision detection limit value for each axis should be one that corresponds to the speed ratio for each motor obtained in this way. In the robot control device 50, information regarding PTP control, such as the target position and the percentage of the total speed at which the robot should operate, is provided as a command to the calculation unit 51. The calculation unit 51 can then calculate the operating speed of the motor for each axis, and the threshold generation unit 53, which is provided for each axis in the robot control device 50, is given the calculated motor speed for that axis. At this time, as shown in Table 2, if the motor speed range is divided into multiple speed regions, the collision detection limit value is determined by which speed region the calculated motor speed falls into. By assigning a collision detection limit value to each axis according to the speed of that axis in this way, it becomes possible to perform collision detection using a more appropriate collision detection limit value.
[0039] Figure 7(a) is a schematic perspective view showing an example of moving the robot 10 shown in Figure 4 using CP control, which performs linear interpolation so that the trajectory of the hand 27 becomes a straight line, and shows the posture before movement (posture R) and posture after movement (posture S). Figure 7(b) shows the change in the axis velocity of each axis when the robot is moved from posture R to posture S using CP control. As is clear from Figure 7(b), the increase and decrease in the axis velocity of the motors differ greatly from motor to motor. The ratio of the speeds of the motors on different axes is not constant and changes greatly between the start point and the end point of movement. The ratio of motor speeds and its change cannot be obtained simply by providing coordinate information of the start and end points of movement, and cannot be known without actually operating the robot 10 with CP control. Therefore, unlike in the case of PTP control, in CP control, even if a CP control operation command is input along with the specification of the overall speed of the robot 10, it is not possible to assign collision detection limit values for each axis on the spot. In CP control, the speed changes of each axis motor are not known in advance, so it is difficult to define 100% of the total speed under the condition that the speed of one axis motor reaches its maximum speed, and the speeds of the remaining axis motors are below their respective maximum speeds. Instead, the robot control device 50 has a maximum value for the overall speed of the robot 10 in CP control, taking a margin into account, and this maximum speed is set as 100% of the total speed in CP control.
[0040] Incidentally, since CP control cannot move the robot as quickly as PTP control, the use of CP control in transport robots is limited. In the case of the transport robot 10 shown in Figure 4, as explained using Figure 5, CP control is used only for entering or exiting the stage 61 which is the source or destination of the transport of the workpiece 60, that is, for movement between the entry position and the stage position, and PTP control is used for all other movements. The location of the stage 61 is generally fixed, and if the location of the stage 61 is fixed, it is considered that the movement trajectory of the robot 10 with CP control relative to the stage position of that stage 61 does not change from stage 61 to stage 61. In other words, after the teaching of the robot 10 to the stage 61 is completed, the robot 10 will follow the same trajectory each time it moves to that stage 61 with CP control.
[0041] In this embodiment, a collision detection limit table is prepared for each stage 61 and stored in the storage unit 55. During CP control, the threshold generation unit 53 refers to the collision detection limit table and outputs the obtained threshold to the comparison unit 54. Figure 8 shows an example of the contents of a collision detection limit table, assuming there are two stages 61, stage #1 and stage #2. As shown in the figure, the collision detection limit table provided for each stage 61 shows the collision detection limit value, which is the threshold for each axis and for each speed range at the overall speed. The speed range at the overall speed is called the CP (or continuous path control) speed range. In contrast, the speed range determined based on the maximum speed specified for the motor, as explained using Table 2, is called the PTP (or point-to-point) speed range. As in the case shown in Table 2, in the table, "10%" of the overall speed corresponds to the case where the overall speed is 0% or more and 10% or less, and "20%" corresponds to the case where the overall speed is greater than 20% and 30% or less. For example, if the overall speed of CP control is 45% in stage #1, the threshold generation unit 53 corresponding to axis A will refer to the column for "50%" in the collision detection limit table for stage #1, obtain 240 cN·m as the collision detection limit value for axis A, and output it to the comparison unit 54 as the threshold. Similarly, the threshold generation unit 53 corresponding to axis B will obtain 200 cN·m as the collision detection limit value for axis B. The same applies to the other axes.
[0042] A collision detection limit table for each stage 61 can be created by measuring the speed ratio of each axis in the CP control for that stage 61 when teaching for that stage 61 in the CP control of the robot 10 is completed, and calculating the collision detection limit value for each axis. Specifically, the torque correction value of each axis in the drive unit 52 is measured during the movement operation to the relevant stage 61 to obtain the torque waveform, the maximum torque correction value for each axis is determined from the torque waveform, and the collision detection limit value for each axis is obtained by adding a margin to absorb individual differences between robots to the maximum torque correction value for each axis. The table generation unit 56 provided in the robot control device 50 performs the processing from obtaining the torque compensation value from the drive unit 52 to calculating the collision detection limit value for each axis, and writes the calculated collision detection limit value to the collision detection limit table in the storage unit 55 based on the target stage and the overall speed at that time. By calculating these collision detection limit values for all stages 61 accessed by the robot 10 and for all velocity ranges (all velocity ranges used in the collision detection limit table with respect to the overall velocity), a collision detection limit table for each stage 61 is completed. Once the collision detection limit table is completed, thereafter, when the robot 10 accesses the stages 61 via CP control, the collision detection limit values read from the collision detection limit table are assigned to each axis, enabling more optimal collision detection when operating the robot 10 via CP control.
[0043] According to the collision detection method of this embodiment described above, when a collision is determined to have occurred when the motor torque value exceeds the collision detection limit value, the collision detection limit value is changed according to the motor speed. Therefore, even when the robot is moving at a low speed, the occurrence of a collision can be detected quickly and reliably. In particular, by preparing a collision detection limit table that stores threshold values for each stage and axis for each overall speed, and by referring to the collision detection limit table based on the commanded overall speed when actually moving the robot with CP control, a more optimal collision detection can be performed when the robot accesses the stage with CP control. The occurrence of a collision can be reliably detected even when the robot is operating in PTP mode. [Explanation of Symbols]
[0044] 10...Robot; 11, 11A, 11B, 11C, 11D, 11Z...Motors; 12...Encoders; 22...Base; 23...Link mechanism; 26...Arms; 27...Upper hand; 28...Lower hand; 29...Lifting unit; 50...Robot control device; 51...Calculation unit; 52...Drive unit; 53...Threshold generation unit; 54...Comparison unit; 55...Storage unit; 56...Table generation unit.
Claims
1. A collision detection method for detecting the occurrence of a collision in a robot having multiple axes, each axis driven by a motor, The system includes a collision determination step which compares a threshold value determined according to the speed of the motor for each axis with the torque value of the motor for that axis, and determines that a collision has occurred when the torque value exceeds the threshold value. The robot is a robot that transports a workpiece between multiple stages, and when the robot moves between the entry position of each stage and the stage position by continuous path control, in the collision determination step, the threshold value obtained by referring to a collision detection limit table which has the threshold values for each stage and axis and for each overall speed stored in advance is used. A collision detection method wherein the overall speed is the overall speed of the robot operating by the continuous path control.
2. The collision detection method according to claim 1, wherein in the collision detection limit table, the total speed is divided into a plurality of continuous path control speed regions ranging from zero speed to the maximum speed defined by the continuous path control, and the threshold value is set as a single value for each of the continuous path control speed regions.
3. The collision detection method according to claim 1 or 2, wherein the threshold is determined based on the maximum value in the torque waveform of the motor when teaching of the robot in the continuous path control is completed and stored in the collision detection limit table.
4. The robot moves between the standby position and the entry position using point-to-point control. The collision detection method according to claim 1 or 2, wherein when moving by point-to-point control, the threshold value for that axis is determined based on a speed determined for each axis according to the speed ratio for each of the plurality of axes, such that the threshold value is smaller when the motor speed is low and larger when the motor speed is high.
5. The collision detection method according to claim 4, wherein the range from zero speed to the maximum speed of the motor is divided into a plurality of point-to-point control speed regions, and for each point-to-point control speed region, the threshold value used during point-to-point control is defined as a single value.
6. A collision detection device for detecting the occurrence of a collision in a robot having multiple axes, each axis driven by a motor, A threshold generation unit that generates a threshold value determined according to the speed of the motor for each axis, A comparison unit compares the threshold value supplied from the threshold value generation unit with the torque value of the motor and determines that a collision has occurred when the torque value exceeds the supplied threshold value. A storage unit that stores a collision detection limit table in which the threshold values for each stage and axis and for each overall velocity are stored in advance, It has, The robot is a robot that transports a workpiece between multiple stages, and when the robot moves between the entry position of each stage and the stage position by continuous path control, the threshold generation unit supplies the threshold obtained by referring to the collision detection limit table to the comparison unit. The collision detection device, wherein the overall speed is the overall speed of the robot operating by the continuous path control.
7. The collision detection device according to claim 6, wherein in the collision detection limit table, the total speed is divided into a plurality of continuous path control speed regions within the range from zero speed to the maximum speed defined by the continuous path control, and the threshold value is set as a single value for each of the continuous path control speed regions.
8. The collision detection device according to claim 6 or 7, further comprising a table generation unit that determines the threshold value based on the maximum value in the torque waveform of the motor and stores it in the collision detection limit table.
9. The robot moves between the standby position and the entry position using point-to-point control. The collision detection device according to claim 6 or 7, wherein the threshold generated by the threshold generating unit when moving by the point-to-point control is determined based on a speed determined for each of the plurality of axes according to the speed ratio for each of the plurality of axes, such that the threshold is smaller as the motor speed decreases and larger as the motor speed increases.
10. The collision detection device according to claim 9, wherein the range from zero speed to the maximum speed of the motor is divided into a plurality of point-to-point control speed regions, and for each point-to-point control speed region, the threshold value used during point-to-point control is defined as a single value.
Citation Information
Patent Citations
Device having arrangement for preventing collision
JP1994278082A
Controller for work carrying apparatus
JP2000183128A
Robot control device
JP2003025272A
Control device of industrial robot
JP2003136466A
Collision detecting method of robot
JP2006116650A