Robot control device
By introducing a movable range determination unit and a correction unit into the robot control device, the action program is automatically rewritten to adapt to the movable range of the new robot, and the problem of adjusting the action program when the robot size changes is solved, and the effect of making the robot move normally without manual intervention is achieved.
Patent Information
- Application Number
- CN202180047786.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-07-07
- Filing Date
- 2021-07-01
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2041-07-01
AI Technical Summary
When a robot is replaced with a new robot of different sizes, it is difficult for the prior art to automatically adjust the action program so that the new robot can perform the same actions as the old robot, especially if the new robot has insufficient range of movement.
A robot control device is designed, including a storage unit and a control unit, which includes a movable range determination unit and a correction unit. The movable range determination unit determines whether there is an axis that exceeds the movable range of the new robot in the action program, and the calibration unit rewrites the action program to make the axis enter the movable range of the new robot.
When the robot size changes, the operator does not need to re-enter the action program, and automatically adjust the action program, so that the robot can operate normally, simplifying the operation process.
Smart Images

Figure CN115769161B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a robot control device. Background Art
[0002] A robot that performs machining such as cutting and welding on a workpiece operates according to a movement instruction based on an operation program sent from a robot control device. The operation program records commands for operating a plurality of drive shafts of the robot so that the tool tip of the robot moves to a taught position (for example, refer to Patent Document 1, etc.).
[0003] Prior Art Documents
[0004] Patent Documents
[0005] Patent Document 1: Japanese Unexamined Patent Application Publication No. 2017-213668 Summary of the Invention
[0006] Problems to be Solved by the Invention
[0007] When a robot is replaced with a new robot (new robot) due to aging or the like, in order for the new robot to also perform the same operations as the robot before replacement (old robot), the operation program of the old robot is sometimes read into the robot control device of the new robot. An operator performs a teaching operation using a teaching operation panel on the new robot after reading the operation program. Thereby, the teaching points corresponding to the new robot are corrected.
[0008] However, for example, when the size of the new robot is smaller than the size of the old robot, the operation program read into the robot control device of the new robot sometimes includes positions outside the movable range of the new robot. When the operation program includes positions that the tool tip of the robot cannot reach, the robot becomes inoperable. Therefore, the operator cannot perform a teaching operation on the robot. In this case, the operator must directly input a new operation program to the robot control device again, which requires extremely complicated operations.
[0009] Therefore, it is desired that the robot can operate without the operator directly inputting the operation program again even when the robot is replaced with a new robot of a different size.
[0010] Solutions to the Problems
[0011] One aspect of the present disclosure is a robot control device including: a storage unit that stores an operation program; and a control unit that causes the robot to operate on a robot coordinate system of three orthogonal axes based on the operation program. The control unit includes: a movable range determination unit that determines whether there is an axis that exceeds the movable range of the robot among the three orthogonal axes in the operation program; and a correction unit that, when the movable range determination unit determines that there is an axis that exceeds the movable range of the robot, rewrites the operation program so that the axis falls within the movable range of the robot.
[0012] Effect of the Invention
[0013] According to one aspect, it is possible to provide a robot control device that can cause a robot to operate without the operator having to directly re-enter the operation program even when the robot is replaced with a new robot having a different size. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 is a structural diagram showing a robot system.
[0015] Figure 2 is a block diagram showing the structure of a robot control device.
[0016] Figure 3 is a block diagram showing the structure of a control unit in a robot control device.
[0017] Figure 4A is a schematic diagram showing an example of a singularity of a robot.
[0018] Figure 4B is a schematic diagram showing another example of a singularity of a robot.
[0019] Figure 5 is a flowchart showing a control operation in a robot control device.
[0020] Figure 6 is a flowchart showing a control operation in a robot control device. DETAILED DESCRIPTION
[0021] Hereinafter, a robot control device according to one aspect of the present disclosure will be described with reference to the drawings. Figure 1 A robot system including a robot control device 1 is shown. The robot system includes a robot 10 (new robot) that is connected to the robot control device 1 and is driven and controlled. The robot 10 is a new robot replaced from the robot 20 (old robot) represented by the virtual line in Figure 1 the figure.
[0022] The robot 10 shown in this embodiment is an articulated robot having a plurality of arm portions 12a to 12d rotatably connected to a base portion 10a by six drive shafts 11a to 11f. Motors M (not shown in Figure 1 are respectively provided on the drive shafts 11a to 11f. A tool T1 is attached to the tip of the arm portion 12d. The tool T1 is a cutting drill, a robot hand, a welding torch, etc. In addition, the robot 10 may be an articulated robot having a plurality of drive shafts (joint portions), and is not limited to the Figure 1 structure of the shown robot.
[0023] A robot coordinate system composed of three orthogonal axes, the X-axis, the Y-axis, and the Z-axis, is set for the robot 10. The origin of the robot coordinate system is set at the base portion 10a of the robot 10. In this robot 10, with the origin of the robot coordinate system as the center, Figure 1 the left direction is the +X-axis direction, and the right direction is the -X-axis direction. Relative to Figure 2 the paper surface, the direction toward the inside is the +Y-axis direction, and the direction toward the outside relative to the paper surface is the -Y-axis direction. Figure 1 the upward direction is the +Z-axis direction, and the downward direction is the -Z-axis direction.
[0024] The size of the newly replaced robot 10 is smaller than the size of the robot 20 before replacement. Therefore, the movable range in each of the X-axis, Y-axis, and Z-axis directions of the robot 10 is narrower than the movable range in each of the X-axis, Y-axis, and Z-axis directions of the robot 20.
[0025] As Figure 2 shown, the robot control device 1 includes a control unit 3 composed of a CPU, and a storage unit 5, a teaching operation panel I / F 6, and a drive unit 7 respectively connected in parallel to the control unit 3 via a bus 4.
[0026] An operation program for operating the robot 10 is stored in the storage unit 5. This operation program is the operation program used by the robot 20 and is stored in the storage unit 5 as it is when replacing the robot 20 with the robot 10.
[0027] Information on the movable range unique to the robot 10 is stored in the storage unit 5. The information on the movable range unique to the robot 10 is information obtained by using the dimensional data at the time of designing the robot 10 (for example, the intervals of the drive shafts 11a to 11f and the lengths of the arm portions 12a to 12d, etc.) to find the range that the tip of the robot 10 (specifically, the tool tip Tp1) can reach on the robot coordinate system. The information on the movable range of this robot 10 is represented by the stroke limit values of the X-axis, Y-axis, and Z-axis on the robot coordinate system.
[0028] The teaching operation panel I / F 6 is connected to the teaching operation panel 8 having a display unit 81 by wire or wirelessly. The operator can perform various operations such as teaching of the robot 10 by manually operating the teaching operation panel 8.
[0029] The drive unit 7 is a servo drive unit that performs servo control on the motors M that drive the plurality of drive shafts 11a to 11f of the robot 10. The drive unit 7 has a servo controller 71 and a servo amplifier 72 for each motor M. Figure 2 Three servo controllers 71 and three servo amplifiers 72 corresponding to three motors M1, M2, and M3 are shown. However, the motors M, the servo controllers 71, and the servo amplifiers 72 may also be provided corresponding to the drive shafts 11a to 11f, respectively.
[0030] The control unit 3 reads the operation program stored in the storage unit 5, and based on the operation program, generates a movement command through arithmetic processing for robot control. The control unit 3 outputs the generated movement command to the drive unit 7. The drive unit 7 that has received the movement command outputs a torque command to the servo amplifier 72 via the servo controller 71. The servo amplifier 72 supplies current to the motors M corresponding to the drive shafts 11a to 11f based on each torque command to individually drive the drive shafts 11a to 11f. Thereby, the robot 10 changes its posture in various ways in the robot coordinate system.
[0031] As Figure 3 shown, the control unit 3 further includes a movable range determination unit 31, a singularity determination unit 32, and a correction unit 33.
[0032] The movable range determination unit 31 reads the operation program stored in the storage unit 5 and determines whether there is an axis that exceeds the movable range of the robot 10 in the robot operation based on the operation program. Specifically, the movable range determination unit 31 analyzes the operation program stored in the storage unit 5 to simulate the operation of the robot 10 based on the operation program. The movable range determination unit 31 refers to the movement command based on the operation program and the stroke limit values of the X-axis, Y-axis, and Z-axis of the robot 10 stored in the storage unit 5 in this simulation. Thereby, the movable range determination unit 31 determines whether there is an axis in the robot coordinate system that exceeds the stroke limit value of the robot 10 in the robot operation based on the operation program.
[0033] For example, as Figure 1As shown, the robot 20 before replacement can move the tool tip Tp2 to the position of 2365 mm in the +X axis direction. In contrast, the newly replaced robot 10 can only move the tool tip Tp1 to the position of 1859 mm in the +X axis direction. That is, the stroke limit value of the robot 10 in the +X axis direction is 1859 mm. In this case, the movable range determination unit 31 determines that the +X axis of the robot motion based on the motion program is an axis that exceeds the stroke limit value of the robot 10.
[0034] The singularity determination unit 32 determines whether the robot motion based on the motion program includes a singularity of the robot 10. A singularity refers to a three-dimensional position of the tool tip Tp1 of the robot 10 where it is difficult to uniquely determine the rotation angles and rotation speeds of the respective drive shafts 11a to 11f of the robot 10 by inverse kinematics calculation based on the movement instruction including the position instruction and speed instruction of the robot 10.
[0035] Regarding this singularity, use Figure 4A and Figure 4B to further illustrate. Figure 4A and Figure 4B schematically depict Figure 1 the respective drive shafts 11a to 11f of the robot 10 and the tool T1 shown. As Figure 4A shown, in the case of the robot posture where the rotation centers of the drive shaft 11d and the drive shaft 11f are arranged on the same straight line L, the rotational movement of the tool T1 of the robot 10 around the axis can be performed by the rotation of the drive shaft 11d and can also be performed by the rotation of the drive shaft 11f. As Figure 4B shown, in the case of the robot posture where the rotation centers of the drive shaft 11a and the drive shaft 11f are arranged on the same straight line L, the rotational movement of the tool T1 of the robot 10 around the axis can be performed by the rotation of the drive shaft 11a and can also be performed by the rotation of the drive shaft 11f. Therefore, for the three-dimensional position of the tool tip Tp1 of the robot 10 such as the robot postures exemplified by Figure 4A and Figure 4B the rotation angles and rotation speeds of the respective drive shafts 11a to 11f cannot be uniquely determined by inverse kinematics calculation. Therefore, when moving the tool tip Tp1 to a three-dimensional position where the rotation centers of two or more drive shafts of the robot 10 are arranged on the same straight line and the vicinity of this position, the robot 10 will become unable to perform the motion.
[0036] The singularity determination unit 32 determines whether the motion program includes a singularity of the robot 10 by actually causing the robot 10 to move according to the motion program until the reachable range. The inclusion of a singularity includes not only the case where the robot posture exactly coincides with the posture of the singularity, but also the case where the posture becomes similar to the posture of the singularity, that is, the case where the robot 10 passes near the singularity.
[0037] In order to determine whether the motion program includes a singularity, the singularity determination unit 32 calculates a plurality of positions (sampling points) that the tool tip Tp1 of the robot 10 can pass through in the moving direction specified by the teaching operation panel 8 (for example, the X-axis direction, or the combined direction of the X-axis direction and the Y-axis direction, etc.). The plurality of sampling points calculated thereby are the positions (coordinates) of the robot 10 in the robot coordinate system of three orthogonal axes.
[0038] Specifically, the singularity determination unit 32 calculates the current position of the tool tip Tp1 of the robot 10 based on the rotation angles of the respective drive shafts 11a to 11f that can be obtained from the output values of the encoders of the respective drive shafts 11a to 11f of the robot 10. This current position can be obtained by forward kinematics calculation. The singularity determination unit 32 calculates sampling points at a prescribed period based on the calculated current position and the moving direction specified by the teaching operation panel 8. The prescribed period is an extremely short period compared to the generation period of the movement command of the robot 10.
[0039] The singularity determination unit 32 determines whether the sampling point is a singularity of the robot 10 by determining whether there is a drive shaft among the drive shafts 11a to 11f of the robot 10 for which it is difficult to obtain a solution to the inverse kinematics calculation for the position of the calculated sampling point. Further, even if a solution to the inverse kinematics calculation is obtained, the singularity determination unit 32 can determine whether the sampling point is near the singularity of the robot 10 based on whether there is a drive shaft among the drive shafts 11a to 11f that cannot perform motor follow-up control to the rotation angle as the solution. That is, the singularity of the robot 10 corresponds to the position of the tool tip Tp1 of the robot 10 where it is impossible to obtain a solution to the inverse kinematics calculation as described above. The vicinity of the singularity of the robot 10 corresponds to the position range of the tool tip Tp1 of the robot 10 where a drive shaft is generated for which it is impossible to perform the desired motor control even if the solution to the inverse kinematics calculation is obtained. The determination of the vicinity of the singularity can be performed by determining whether there is a sampling point in the region obtained by adding a prescribed setting range to the position of the tool tip Tp1 determined to be the singularity of the robot 10.
[0040] Based on the determination results of the movable range determination unit 31 and the singularity determination unit 32, the correction unit 33 rewrites the motion program stored in the storage unit 5 into a new motion program applicable to the robot 10. The new motion program rewritten by the correction unit 33 is stored in the storage unit 5 as the new motion program for the robot 10.
[0041] Specifically, when the movable range determination unit 31 determines that there is an axis exceeding the stroke limit value of the robot 10, the correction unit 33 rewrites the motion program so that the axis in the robot coordinate system falls within the stroke limit value. The rewritten value can be either the stroke limit value or a value near the stroke limit value. The value near the stroke limit value is obtained by subtracting a preset value from the stroke limit value.
[0042] In addition, when the singularity determination unit 32 determines that it includes the singularity inherent to the robot 10 or the vicinity of the singularity, the correction unit 33 replaces the motion form of the robot 10 with each axis in the robot coordinate system so that the motion program does not include the singularity or the vicinity of the singularity of the robot 10. For example, the correction unit 33 replaces the motion in the X-axis direction of the robot 10 with the motion in the Y-axis direction or the Z-axis direction, or the motion in the combined direction of any two of the X-axis, Y-axis, and Z-axis. Thus, the robot 10 can avoid driving at least two of the drive shafts 11a to 11f being arranged on the same straight line L as shown in Figure 4A and Figure 4B during motion. By doing so, the correction unit 33 rewrites the motion program in such a way that the robot motion based on the motion program does not conform to the singularity inherent to the robot 10, that is, so that the robot 10 does not pass through the singularity or the vicinity of the singularity.
[0043] Next, the specific control of the robot control device 1 will be described using a flowchart. After replacing the robot 20 with the robot 10, the control unit 3 of the robot control device 1 first executes the movable range determination process through the movable range determination unit 31, and then executes the singularity determination process through the singularity determination unit 32.
[0044] In Figure 5 shows the movable range determination process. In the movable range determination process, the control unit 3 reads out the motion program of the robot 20 stored in the storage unit 5 (step S1). Next, the control unit 3 analyzes the read motion program through the movable range determination unit 31, and compares the movement instructions of each axis of the robot 10 based on the motion program with the stroke limit values of each axis of the robot 10 pre-stored in the storage unit 5 (step S2). Through this comparison, the movable range determination unit 31 determines whether there is an axis exceeding the stroke limit value of the robot 10 in the movement instructions of each axis of the robot 10 based on the motion program (step S3).
[0045] When it is determined in step S3 that there is an axis exceeding the travel limit value of the robot 10 (step S3; "Yes"), the control unit 3 rewrites the axis value in the motion program to the travel limit value of the robot 10 or a value near the travel limit value through the correction unit 33 (step S4). The control unit 3 temporarily stores the new motion program rewritten by the correction unit 33 in a specified area of the storage unit 5 and transfers to the singularity determination process.
[0046] When it is determined in step S3 that there is no axis exceeding the travel limit value of the robot 10 (step S3; "No"), the control unit 3 does not cause the correction unit 33 to rewrite the motion program and transfers to the singularity determination process.
[0047] In Figure 6 shows the singularity determination process. In the singularity determination process, the control unit 3 causes the robot 10 to move based on the movement instruction from the teaching operation panel 8 until the reachable range (step S11). The singularity determination unit 32 obtains the current position of the tool tip Tp1 of the robot 10 based on the rotation angles of the respective drive shafts 11a to 11f of the robot 10 through forward kinematics calculation (step S12).
[0048] Next, the singularity determination unit 32 respectively calculates a plurality of sampling points on the robot coordinate system through which the tool tip Tp1 of the robot 10 can pass (step S13). After that, the singularity determination unit 32 determines whether the sampling point is a singularity of the robot 10 or near a singularity by determining whether there is a drive shaft among the drive shafts 11a to 11f of the robot 10 for which it is difficult to obtain a solution for inverse kinematics calculation for the calculated sampling point position, or whether there is a drive shaft among the drive shafts 11a to 11f of the robot 10 that cannot control the motor to follow the rotation angle as the solution for inverse kinematics calculation, as described above (step S14).
[0049] When it is determined in step S14 that the sampling point is a singularity of the robot 10 or near a singularity (step S14; "Yes"), the control unit 3 replaces the motion form of the robot 10 with a non-singularity-compliant form for each axis on the robot coordinate system through the correction unit 33. Thus, the correction unit 33 rewrites the motion program in a manner that does not include the singularity or near the singularity of the robot 10 (step S15). After that, the control unit 3 ends the process.
[0050] When it is determined in step S14 that the sampling point is not a singularity of the robot 10 or not near a singularity (step S14; "No"), the control unit 3 does not perform the replacement of the motion program and ends the process.
[0051] As described above, the robot control device 1 according to one aspect of the present disclosure includes: a storage unit 5 that stores an operation program; and a control unit 3 that causes the robot 10 to operate on a robot coordinate system of three orthogonal axes based on the operation program. The control unit 3 includes: a movable range determination unit 31 that determines whether there is an axis that exceeds the movable range of the robot 10 among the three orthogonal axes in the operation program; and a correction unit 33 that, when the movable range determination unit 31 determines that there is an axis that exceeds the movable range of the robot 10, rewrites the operation program so that the axis enters the movable range of the robot 10. Thereby, when replacing the robot 20 with a new robot 10 having a different size, the operation program can be automatically rewritten into a new operation program suitable for the robot 10. Therefore, the robot can be operated without the operator directly inputting the operation program again.
[0052] In the robot control device 1 of the present embodiment, when the movable range determination unit 31 determines that there is an axis that exceeds the movable range of the robot 10, the correction unit 33 rewrites the value of the axis in the operation program to the stroke limit value of the robot 10 or a value near it. Thereby, the value of the axis that exceeds the movable range of the robot 10 in the operation program can be easily rewritten to a value within the movable range of the robot 10.
[0053] In the robot control device 1 of the present embodiment, the control unit 3 further includes a singularity determination unit 32 that determines whether the operation program includes a singularity of the robot 10. When the singularity determination unit 32 determines that the operation program includes a singularity of the robot 10, the correction unit 33 rewrites the operation program so that the operation program does not include a singularity. Thereby, it is possible to avoid the situation where the robot 10 passes through a singularity during the robot operation based on the operation program.
[0054] In the robot control device 1 of the present embodiment, when the singularity determination unit 32 determines that the operation program includes a singularity of the robot 10, the correction unit 33 rewrites the operation program so that the singularity is not included by replacing the operation form of the robot 10 in the operation program with each axis of the robot coordinate system. Thereby, it is possible to easily avoid the situation where the robot 10 passes through a singularity.
[0055] Description of Reference Numerals
[0056] 1: Robot control device; 3: Control unit; 31: Movable range determination unit; 32: Singularity determination unit; 33: Correction unit; 5: Storage unit; 10: Robot.
Claims
1. A robot control device includes a control unit that causes a robot to move on a robot coordinate system of three orthogonal axes based on an operation program. The robot control device includes a storage unit that stores a first operation program for a first robot. Among them, The control unit has: A movable range determination unit that determines whether there is an axis among the three orthogonal axes that exceeds the movable range of a second robot in the first operation program read from the storage unit, where the size of the second robot is different from that of the first robot. And A correction unit that, when the movable range determination unit determines that there is an axis that exceeds the movable range of the second robot, rewrites the first operation program so that the axis falls within the movable range of the second robot.
2. The robot control device according to claim 1, wherein The correction unit stores the rewritten first operation program as an operation program for the second robot in the storage unit.
3. The robot control device according to claim 1, wherein The correction unit, when the movable range determination unit determines that there is an axis that exceeds the movable range of the second robot, rewrites the value of the axis in the first operation program to the stroke limit value of the second robot or a value near it.
4. The robot control device according to claim 2, wherein The correction unit, when the movable range determination unit determines that there is an axis that exceeds the movable range of the second robot, rewrites the value of the axis in the first operation program to the stroke limit value of the second robot or a value near it.
5. The robot control device according to any one of claims 1 to 4, wherein The control unit further has a singularity determination unit that determines whether the first operation program includes a singularity of the second robot. The correction unit, when the singularity determination unit determines that the first operation program includes a singularity of the second robot, rewrites the first operation program so as not to include the singularity.
6. The robot control device according to claim 5, wherein The correction unit, when the singularity determination unit determines that the first operation program includes a singularity of the second robot, rewrites the first operation program so as not to include the singularity by replacing the movement form of the robot in the first operation program with the axes of the second robot coordinate system.
Citation Information
Patent Citations
Robot control device and robot controlling method
JP2017213668A
Robot control apparatus and method for controlling robot
US20150045949A1
Robotic saw and water jet control
US20200139546A1