Robot control method and robot system

By calculating and comparing the differences in the rotation angles of the robotic arm joints, the rotation path was optimized, solving the problems of unstable and inefficient changes in the robotic arm's posture, and achieving efficient and stable robotic arm operation.

CN117584170BActive Publication Date: 2026-06-30SEIKO EPSON CORP

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SEIKO EPSON CORP
Filing Date
2023-08-08
Publication Date
2026-06-30

AI Technical Summary

Technical Problem

Existing robot control methods suffer from instability and inefficiency when the robotic arm's posture changes, especially when rotating a wide range of joints, making it difficult to optimize the direction and amount of rotation to achieve efficient operation.

Method used

By calculating the differences in rotation angles of each joint of the robotic arm, judging and comparing the absolute values, and selecting the rotation angle with the smallest absolute value to drive the robotic arm to change its posture, the joint rotation path is optimized to reduce the total amount of rotation.

Benefits of technology

It enables efficient and smooth operation of the robotic arm during posture changes, reduces joint rotation, and lowers the load and energy consumption of the robotic arm components.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117584170B_ABST
    Figure CN117584170B_ABST
Patent Text Reader

Abstract

This invention provides a robot control method and a robot system. The robot control method includes: a first step of calculating a first angle, which is the difference between the rotation angle (θ1) of the first joint relative to a first reference position in a first posture and the rotation angle (θ2) of the first joint relative to the first reference position in a second posture; a second step of determining whether the calculated first angle is greater than a predetermined value; a third step of calculating a second angle in the second step if the first angle is determined to be greater than the predetermined value, which is the difference between the rotation angle (θ1) and the rotation angle (θ3) of the first joint relative to the first reference position in the second posture when the rotation angle (θA) of the second joint relative to the second reference position is changed to the rotation angle (θB) of the second reference position; and a fourth step of comparing the absolute values ​​of the first angle and the second angle, and setting the angle of the smaller absolute value.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to robot control methods and robot systems. Background Technology

[0002] In recent years, due to rising labor costs and a shortage of skilled workers, factories have adopted robots with robotic arms to perform manufacturing, processing, and assembly tasks, accelerating the automation of tasks that were previously done manually.

[0003] In such robots, tasks are performed by specifying the coordinates of the starting and ending points of the control points set on the robotic arm. Furthermore, it is required that the robotic arm's posture changes smoothly and seamlessly between the starting and ending points.

[0004] For example, in the robot described in Patent Document 1, by making the range of motion of each joint of the robotic arm more than 180°, the degree of freedom of the robotic arm's posture is increased, and smooth changes in posture are achieved. In the robot described in Patent Document 1, because the range of motion of each joint is relatively large, the robotic arm can adopt the same posture regardless of whether it rotates in either clockwise or counterclockwise direction viewed from the axis of rotation of each joint. Therefore, in order to perform smooth, rapid, and efficient work, it is necessary to consider which direction of rotation of each joint results in the least change in posture over time when performing the action.

[0005] Patent Document 1: Japanese Patent Application Publication No. 2013-158876

[0006] However, patent document 1 does not provide sufficient research on the above aspects, and there are problems such as inefficient operation at times. Summary of the Invention

[0007] The robot control method described in the application example of this invention is characterized in that it is a control method for controlling the operation of a robot. The robot has a robotic arm, which has a first joint that rotates about a first axis with a first reference position as a reference, and a second joint that rotates about a second axis orthogonal to the first axis with a second reference position as a reference. When changing the robotic arm from a first posture to a second posture, the robot control method includes: a first step of calculating a first angle, wherein the first angle is the difference between the rotation angle θ1 of the first joint relative to the first reference position in the first posture and the rotation angle θ2 of the first joint relative to the first reference position in the second posture; a second step of determining whether the calculated first angle is greater than a predetermined value; and a third step of, in the second step, if it is determined that the first angle is greater than the predetermined value... Calculate a second angle, which is the difference between the rotation angle θ1 and the rotation angle θ3 of the first joint relative to the first reference position in the second posture when the second joint is changed from a rotation angle θA relative to the second reference position to a rotation angle θB relative to the second reference position. The rotation angle θA is the rotation angle of the second joint when the rotation angle θ2 is calculated in the first step, and the rotation angle θB is the absolute value of the difference between the second reference position and the rotation angle θA when rotating from the second reference position in a direction opposite to the direction of rotation from the second reference position to the rotation angle θA. Fourth step: compare the absolute values ​​of the first angle and the second angle, and set the angle of the smaller absolute value. Fifth step: drive the robotic arm using the angle set in the fourth step to change to the second posture.

[0008] The robot system described in the application example of the present invention is characterized in that the robot system comprises: a robotic arm having a first joint that rotates about a first axis with a first reference position as a reference, and a second joint that rotates about a second axis orthogonal to the first axis with a second reference position as a reference; and a control unit that controls the robotic arm, wherein when the robotic arm is changed from a first posture to a second posture, the control unit performs: a first step of calculating a first angle, wherein the first angle is the difference between the rotation angle θ1 of the first joint relative to the first reference position in the first posture and the rotation angle θ2 of the first joint relative to the first reference position in the second posture; a second step of determining whether the calculated first angle is greater than a predetermined value; and a third step of calculating a second angle in the second step if, when it is determined that the first angle is greater than the predetermined value. The second angle is the difference between the rotation angle θ1 and the rotation angle θ3 of the first joint relative to the first reference position in the second posture when the second joint is changed from a rotation angle θA relative to the second reference position to a rotation angle θB relative to the second reference position. The rotation angle θA is the rotation angle of the second joint when the rotation angle θ2 is calculated in the first step. The rotation angle θB is the absolute value of the difference between the second reference position and the rotation angle θA, which is the rotation angle from the second reference position in the opposite direction to the rotation angle θA. The fourth step is to compare the absolute values ​​of the first angle and the second angle and set the angle of the smaller absolute value. The fifth step is to drive the robotic arm using the angle set in the fourth step to change it to the second posture. Attached Figure Description

[0009] Figure 1 This is a diagram showing the overall configuration of a robot system that performs the robot control method of the present invention.

[0010] Figure 2 yes Figure 1 The diagram shows a block diagram of the robot system.

[0011] Figure 3 yes Figure 1 The diagram shows a schematic of the robotic arm.

[0012] Figure 4 yes Figure 1 A schematic diagram of the front end of the robotic arm is shown.

[0013] Figure 5 yes Figure 1 A schematic diagram of the front end of the robotic arm is shown.

[0014] Figure 6 yes Figure 1 A schematic diagram of the front end of the robotic arm is shown.

[0015] Figure 7 yes Figure 1 A schematic diagram of the front end of the robotic arm is shown.

[0016] Figure 8 It is used for explanation Figure 1 The diagram shows the amount and direction of rotation of the joints of the robotic arm.

[0017] Figure 9 It is used for explanation Figure 1 The diagram shows the amount and direction of rotation of the joints of the robotic arm.

[0018] Figure 10 It is used for explanation Figure 1 The diagram shows the amount and direction of rotation of the joints of the robotic arm.

[0019] Figure 11 It is used for explanation Figure 1 The diagram shows the amount and direction of rotation of the joints of the robotic arm.

[0020] Figure 12 It is used for explanation Figure 1 The diagram shows the amount and direction of rotation of the joints of the robotic arm.

[0021] Figure 13 This is a flowchart illustrating an example of the robot control method of the present invention.

[0022] Explanation of reference numerals in the attached figures

[0023] 1…robot; 3…control device; 4…teaching pendant; 5…robot control device; 10…robotic arm; 11…base; 12…first arm; 13…second arm; 14…third arm; 15…fourth arm; 16…fifth arm; 17…sixth arm; 20…end-effector; 31…control unit; 32…storage unit; 33…communication unit; 41…control unit; 42…storage unit; 43…communication unit; 100…robot system; 171…joint; 172…joint; 173…joint; 174…joint; 175…joint; 176…joint; A…area outside the range of motion; D1…motor driver; D2…motor driver; D3…motor driver; D4…motor driver; D5…motor driver; D6…motor driver; E1…encoder; E2…encoder; E3…encoder; E4…encoder; E5…encoder; E6…encoder M1…Motor; M2…Motor; M3…Motor; M4…Motor; M5…Motor; M6…Motor; O1…First rotating axis; O2…Second rotating axis; O3…Third rotating axis; O4…Fourth rotating axis; O5…Fifth rotating axis; O6…Sixth rotating axis; Ox…Axis; Oy…Axis; Oz…Axis; P01…First reference position; P02…Second reference position; S101…Step; S102…Step; S103…Step; S104…Step; S105…Step; S106…Step; S107…Step; TCP…Control point; α1…Rotation angle; α2…Rotation angle; α3…Rotation angle; α4…Rotation angle; γ1…First angle; γ2…Second angle; θ1…Rotation angle; θ2…Rotation angle; θ3…Rotation angle; Δθ1…Angle; Δθ2…Angle; Δα1…Angle; P1 to P6…Positions. Detailed Implementation

[0024] Hereinafter, the robot control method and robot system of the present invention will be described in detail based on the preferred embodiments shown in the accompanying drawings.

[0025] <First Implementation Method>

[0026] Figure 1 This is a diagram showing the overall configuration of a robot system that performs the robot control method of the present invention. Figure 2 yes Figure 1 The diagram shows a block diagram of the robot system. Figure 3 yes Figure 1 The diagram shows a schematic of the robotic arm. Figures 4 to 7 yes Figure 1 A schematic diagram of the front end of the robotic arm is shown. Figure 8 It is used for explanation Figure 1 The diagram shows the amount and direction of rotation of the joints of the robotic arm. Figure 9 It is used for explanation Figure 1 The diagram shows the amount and direction of rotation of the joints of the robotic arm. Figure 10 It is used for explanation Figure 1 The diagram shows the amount and direction of rotation of the joints of the robotic arm. Figure 11 It is used for explanation Figure 1 The diagram shows the amount and direction of rotation of the joints of the robotic arm. Figure 12 It is used for explanation Figure 1 The diagram shows the amount and direction of rotation of the joints of the robotic arm. Figure 13 This is a flowchart illustrating an example of the robot control method of the present invention.

[0027] It should be noted that, in the following, the robotic arm 10 will also be... Figure 1 and Figure 3 The side of the base 11 is called the "base end", and the opposite side, namely the end effector 20, is called the "front end".

[0028] like Figure 1 As shown, the robot system 100 includes a robot 1 and a robot control device 5 that executes the robot control method of the present invention. The robot control device 5 includes a control device 3 that controls the operation of various parts of the robot 1 and a teaching device 4 for teaching. It should be noted that the control steps performed by the robot control device 5 can be performed by either the control device 3 or the teaching device 4, or they can be performed by both of them.

[0029] First, let's explain robot 1.

[0030] Figure 1 The robot 1 shown in this embodiment is a single-arm, six-axis vertical joint robot, having a base 11 and a robotic arm 10. Furthermore, an end effector 20 can be mounted on the front end of the robotic arm 10. It should be noted that the end effector 20 may be a component of the robot 1, or it may be a component independent of the robot 1; that is, it may not be a component of the robot 1.

[0031] It should be noted that robot 1 is not limited to the configuration shown in the figure. For example, it can also be a dual-arm multi-joint robot.

[0032] The base 11 serves as a support for the base of the robotic arm 10, enabling it to be driven; for example, it may be fixed to the floor within a factory. The base 11 of the robot 1 is electrically connected to the control device 3 via a relay cable. It should be noted that the connection between the robot 1 and the control device 3 is not limited to... Figure 1 The setup shown is based on a wired connection, but it could also be based on a wireless connection. Alternatively, it could be connected via a network such as the Internet.

[0033] In this embodiment, the robotic arm 10 has a first arm 12, a second arm 13, a third arm 14, a fourth arm 15, a fifth arm 16, and a sixth arm 17, which are connected in this order from the base 11 side. It should be noted that the number of arms in the robotic arm 10 is not limited to six; for example, it can have one, two, three, four, five, or more than seven arms. Furthermore, the overall length and other dimensions of each arm are not particularly limited and can be appropriately set.

[0034] The base 11 and the first arm 12 are connected via a joint 171. Furthermore, the first arm 12 is capable of rotating relative to the base 11 about a first rotation axis O1 extending vertically. Thus, the first rotation axis O1 is aligned with the normal to the floor surface of the base 11, allowing the robotic arm 10 to rotate in either the positive or negative axial direction of the first rotation axis O1.

[0035] The first arm 12 and the second arm 13 are connected via a joint 172. Furthermore, the second arm 13 is capable of rotating relative to the first arm 12 about a second rotation axis O2 extending in the horizontal direction as the center of rotation.

[0036] The second arm 13 and the third arm 14 are connected by a joint 173. Furthermore, the third arm 14 is capable of rotating relative to the second arm 13 about a third rotation axis O3 extending horizontally. The third rotation axis O3 is parallel to the second rotation axis O2.

[0037] The third arm 14 and the fourth arm 15 are connected by a joint 174. Furthermore, the fourth arm 15 is capable of rotating relative to the third arm 14 around a fourth rotation axis O4 that is parallel to the central axis of the third arm 14. The fourth rotation axis O4 is orthogonal to the third rotation axis O3.

[0038] The fourth arm 15 and the fifth arm 16 are connected via joint 175. Furthermore, the fifth arm 16 is capable of rotating relative to the fourth arm 15 about the fifth rotation axis O5. The fifth rotation axis O5 is orthogonal to the fourth rotation axis O4.

[0039] The fifth arm 16 and the sixth arm 17 are connected by a joint 176. Furthermore, the sixth arm 17 is capable of rotating relative to the fifth arm 16 about a sixth rotation axis O6. The sixth rotation axis O6 is orthogonal to the fifth rotation axis O5.

[0040] Additionally, the sixth arm 17 becomes the robot's foremost end piece located at the far end of the robotic arm 10. This sixth arm 17 is capable of displacement together with the end effector 20 via the drive of the robotic arm 10.

[0041] Regardless of the orientation of robotic arm 10, the fourth rotation axis O4 and the sixth rotation axis O6 lie in the same plane. Even if each arm rotates around the axes of the first rotation axis O1, the second rotation axis O2, the third rotation axis O3, and the fifth rotation axis O5, the fourth rotation axis O4 and the sixth rotation axis O6 still lie in the same plane. For example, in Figure 3 In the state shown, the plane in which the fourth rotation axis O4 and the sixth rotation axis O6 lie is parallel to... Figure 3 A plane parallel to the paper.

[0042] Figure 1 The end effector 20 shown has a gripping part capable of holding a workpiece or tool. When the end effector 20 is mounted on the sixth arm 17, the front end of the end effector 20 becomes the control point TCP.

[0043] Robot 1 includes motors M1, M2, M3, M4, M5, and M6 as drive units, and encoders E1, E2, E3, E4, E5, and E6. Motor M1 is integrated into joint 171, causing the first arm 12 to rotate relative to the base 11 about a first rotation axis O1. Motor M2 is integrated into joint 172, causing the first arm 12 and the second arm 13 to rotate relative to each other about a second rotation axis O2. Motor M3 is integrated into joint 173, causing the second arm 13 and the third arm 14 to rotate relative to each other about a third rotation axis O3. Motor M4 is integrated into joint 174, causing the third arm 14 and the fourth arm 15 to rotate relative to each other about a fourth rotation axis O4. Motor M5 is integrated into joint 175, causing the fourth arm 15 and the fifth arm 16 to rotate relative to each other about a fifth rotation axis O5. Motor M6 is integrated into joint 176, causing the fifth arm 16 and the sixth arm 17 to rotate relative to each other about a sixth rotation axis O6.

[0044] Additionally, encoder E1 is integrated into joint 171 to detect the position of motor M1. Encoder E2 is integrated into joint 172 to detect the position of motor M2. Encoder E3 is integrated into joint 173 to detect the position of motor M3. Encoder E4 is integrated into joint 174 to detect the position of motor M4. Encoder E5 is integrated into the fifth arm 16 to detect the position of motor M5. Encoder E6 is integrated into the sixth arm 17 to detect the position of motor M6. It should be noted that "detecting position" here refers to detecting the rotation angle of the motor, including both forward and reverse rotation and angular velocity; this detected information is called "position information."

[0045] like Figure 2 As shown, motor drivers D1 to D6 are connected to the corresponding motors M1 to M6 respectively, controlling the drive of these motors. Motor drivers D1 to D6 are respectively built into joints 171, 172, 173, 174, the fifth arm 16, and the sixth arm 17.

[0046] Encoders E1 to E6, motors M1 to M6, and motor drivers D1 to D6 are electrically connected to control device 3. The position information (rotation amount) of motors M1 to M6 detected by encoders E1 to E6 is sent as an electrical signal to control device 3. Furthermore, control device 3, based on this position information, sends... Figure 2 The motor drivers D1 to D6 shown output control signals to drive motors M1 to M6. That is, controlling the robotic arm 10 means controlling the drive of motors M1 to M6, thereby controlling the operation of the first arm 12 to the sixth arm 17 belonging to the robotic arm 10.

[0047] An end effector 20 is detachably mounted at the front end of the robotic arm 10, i.e., at the front end of the sixth arm 17. In this embodiment, the end effector 20 is composed of a hand having a pair of claws that can approach and separate from each other, and the claws grip and release workpieces or tools. A force detector mounted on the end effector 20 can detect the magnitude and direction of the reaction force of the gripping force when the workpiece is gripped by the two claws.

[0048] It should be noted that the end effector 20 is not limited to the configuration shown in the figure. For example, it may also be a configuration that has an adsorption part and holds the workpiece or tool by adsorption through the adsorption of the adsorption part. In addition, the end effector 20 may also be a grinding machine, a milling machine, a cutting machine, a spray gun, a laser irradiator, a screwdriver, a wrench, or other tools.

[0049] Next, the control device 3 and the teaching device 4 will be explained.

[0050] like Figure 1 As shown, in this embodiment, the control device 3 is located away from the robot 1. However, it is not limited to this configuration; the control device 3 may also be built into the base 11. Furthermore, the control device 3 has the function of controlling the drive of the robot 1 and is electrically connected to the various parts of the robot 1. The control device 3 includes a control unit 31, a storage unit 32, and a communication unit 33. These parts are connected to each other, for example, via a bus, in a manner that allows them to communicate with each other.

[0051] The control unit 31, for example, is composed of a CPU (Central Processing Unit), which reads and executes various programs, such as motion programs, stored in the storage unit 32. Signals generated by the control unit 31 are sent to various parts of the robot 1 via the communication unit 33, and signals from various parts of the robot 1 are received by the control unit 31 via the communication unit 33. Thus, the robotic arm 10 can perform predetermined tasks under predetermined conditions. It should be noted that the control unit 31 is the part that performs the fifth step described later.

[0052] The storage unit 32 stores various programs executed by the control unit 31. Examples of storage units 32 include volatile memory such as RAM (Random Access Memory), non-volatile memory such as ROM (Read Only Memory), and removable external storage devices.

[0053] The communication unit 33 uses an external interface such as a wired LAN (Local Area Network) or a wireless LAN to transmit and receive signals with the control device 3. In this case, communication can be conducted via a server (not shown), or via a network such as the Internet.

[0054] like Figure 1 , Figure 2 and Figure 3 As shown, the teaching pendant 4 is a device for teaching, i.e., creating motion programs for the robot 1 to execute. Specifically, the teaching pendant 4 creates motion programs based on user-specified position information and sends them to the control device 3. The user, for example, inputs the coordinates of the start and end positions of the task in a predetermined coordinate system as position information. It should be noted that the coordinates referred to here are the coordinates of the control point TCP. Based on the aforementioned position information, the teaching pendant 4 calculates the start and end positions of the task, and the posture of the robotic arm 10 over time, between them, and creates the motion program.

[0055] The teaching device 4 has a control unit 41, a storage unit 42, and a communication unit 43.

[0056] The control unit 41, for example, is composed of a CPU (Central Processing Unit), which reads and executes various programs stored in the storage unit 42, such as motion programs and motion program generation programs. Signals generated by the control unit 41 are sent to various parts of the robot 1 via the communication unit 43, and signals from various parts of the robot 1 are received by the control unit 31 via the communication unit 33. Thus, the robotic arm 10 can perform predetermined tasks under predetermined conditions. The control unit 41 is responsible for executing the first to fourth steps described later. It should be noted that the control unit 31 may also execute at least one of the first to fourth steps described later.

[0057] As a storage unit 42, for example, it may be configured to include volatile memory such as RAM (Random Access Memory), non-volatile memory such as ROM (Read Only Memory), and removable external storage devices.

[0058] The storage unit 42 stores the position information of the first reference position P01, the third reference position P03, positions P1, P2, P3, P4, P5, and P6 (described later), the range of motion of each joint 171 to 176, rotation angles θ1, θ2, θ3, rotation angles α1, α2, α3, α4, first angle γ1, second angle γ2, and the motion program created based on these through the first to fourth steps. It should be noted that some or all of the information stored in the storage unit 42 may also be stored in the storage unit 32.

[0059] The communication unit 43 transmits and receives signals with the control device 3 using an external interface such as a wired LAN (Local Area Network) or a wireless LAN. In this case, communication can be conducted via a server (not shown) or a network such as the Internet. The communication unit 43 sends information related to the operation program stored in the storage unit 42 to the control device 3. Furthermore, the communication unit 43 can also receive information stored in the storage unit 32 and store that information in the storage unit 42.

[0060] The above describes the configuration of the robot system 100. The range of motion, i.e. the range of angles that the robotic arm 10 can rotate, of its joints 171 to 176 is set to be relatively large.

[0061] The range of motion of joint 171 is not particularly limited, for example, it is more than 400° and less than 500°. That is, the first arm 12 can rotate relative to the base 11 about the first rotation axis O1 by the above angle.

[0062] The range of motion of joint 172 is not particularly limited, for example, it is more than 100° and less than 200°. That is, the second arm 13 can rotate relative to the first arm 12 about the second rotation axis O2 by the above angle.

[0063] The range of motion of joint 173 is not particularly limited, for example, it is more than 200° and less than 300°. That is, the third arm 14 can rotate relative to the second arm 13 about the third rotation axis O3 by the above angle.

[0064] The range of motion of joint 174 is not particularly limited, for example, it is more than 350° and less than 450°. That is, the fourth arm 15 can rotate relative to the third arm 14 about the fourth rotation axis O4 by the above angle.

[0065] The range of motion of joint 175 is not particularly limited, for example, it is more than 200° and less than 300°. That is, the fifth arm 16 can rotate relative to the fourth arm 15 about the fifth rotation axis O5 by the above angle.

[0066] The range of motion of joint 176 is not particularly limited, for example, it is more than 650° and less than 750°. That is, the sixth arm 17 can rotate relative to the fifth arm 16 about the sixth rotation axis O6 by the above angle.

[0067] Thus, when the range of motion of joints 171 to 176 is large, even if joints 171 to 176 rotate in different directions, they can still adopt the same posture. For example, Figure 4 The posture shown and Figure 7 The poses shown are the same. Figure 4 and Figure 7 The diagram illustrates the three axes, Ox, Oy, and Oz, in the front-end coordinate system set at the tip of the robotic arm 10. Figure 4 and Figure 7 In this configuration, all three axes point in the same direction, but the character "E" marked on joint 175 is reversed from left to right. That is, Figure 4 The posture shown and Figure 7 The same posture shown means that the postures set in the front-end coordinate system of the robotic arm 10 are the same. Figure 4 and Figure 7 In the process, before reaching the same posture, the predetermined direction and amount of rotation of the joint are different, resulting in the reversal of the orientation of joint 175.

[0068] robotic arm 10, for example, from Figure 4 The posture shown has passed Figure 5 The posture shown and Figure 6 The posture shown becomes Figure 7 The posture shown. Joint 174 is moved from... Figure 4 The posture shown is rotated 180° to become Figure 5 The posture shown. Next, move joint 175 from... Figure 5 The posture shown is reversed and becomes Figure 6 The posture shown. Next, move joint 176 from... Figure 6 The posture shown is rotated -180° to become Figure 7 The posture shown. It should be noted that "reversing joint 175" means rotating joint 175 from the second reference position P02 in the opposite direction to the rotation angle θA from the second reference position P02 by the absolute value of the difference between the second reference position P02 and the rotation angle θA. That is, "reversing joint 175" means moving arm 16 to a symmetrical position via the second reference position P02. It should be noted that in the illustrated configuration, the second reference position P02 refers to the position located on the extension line of arm 15.

[0069] When changing the robotic arm 10 to a predetermined posture, although there are various combinations of rotation directions and rotation amounts for each joint, by selecting the optimal combination, the load on each part of the robotic arm 10 can be further reduced, and a motion program for performing efficient actions can be created and executed. This can be achieved through the robot control method of this embodiment described below.

[0070] The control unit 41 generates an action program that, when the user-specified control point TCP moves from the start position to the end position, drives the robotic arm 10 to change the control point TCP from a first posture at the start position to a second posture at the end position. That is, based on the start and end positions, the first posture, the second posture, and the time-varying rotation amount and speed of each joint 171 to 176 in between are set. Hereinafter, among the joints 171 to 176, joint 174 will be used as the first joint and joint 175 as the second joint as an example for explanation.

[0071] As mentioned earlier, since the rotation axis of joint 174, i.e., the fourth rotation axis O4, and the rotation axis of joint 176, i.e., the sixth rotation axis O6, are located in the same plane, the control point TCP is made to rotate around... Figure 4 and Figure 7 The rotation amount of axis Ox shown is the sum of the rotation amounts of joints 174 and 176. Furthermore, the total rotation amount of rotating control point TCP counterclockwise around axis Ox is less than that of rotating control point TCP 190° clockwise around axis Ox. That is, when the latter is chosen to set control point TCP at the same rotational position (rotation angle), the total rotation amount can be reduced compared to choosing the former. It should be noted that at this time, the action of moving arm 16 to a symmetrical position via the second reference position P02 is performed, but this movement is less than 180°, which is a relatively small amount of movement.

[0072] In this selection, the amount of rotation of the control point TCP around axis Ox can be set to 180° or less. By distributing this amount of rotation to two joints 174 and 176, which have rotation axes in the same plane, the amount of rotation of either joint 174 or joint 176 can be 90° or less.

[0073] Figures 8 to 12 These are graphs representing the amount of joint rotation. The 12 o'clock position of the circle in each graph is used as the reference position, showing the amount and direction of rotation. The reference position is, for example, the rotation position in the standby posture. The reference position of joint 174 is called the first reference position P01, and the reference position of joint 176 is called the third reference position P03.

[0074] It should be noted that, in Figures 8 to 12In this system, a clockwise rotation angle is represented by "+", and a counterclockwise rotation angle is represented by "-". For example, a clockwise rotation of 80° means a rotation of +80°, and a counterclockwise rotation of 80° means a rotation of -80°.

[0075] The following example illustrates this point.

[0076] (Scenario 1)

[0077] like Figure 8 As shown, the rotational position (hereinafter also referred to as "rotation angle") of joint 174 in the first posture is position P1 after rotating clockwise by θ1 (°) from the first reference position P01. Furthermore, the rotational position of joint 174 in the second posture is position P2 after rotating clockwise by θ2 (°) from the first reference position P01. That is, when the posture changes from the first posture to the second posture, joint 174 rotates clockwise by an angle Δθ1 (°) from position P1 towards position P2. In the illustrated configuration, θ1 = +150°, θ2 = +250°, and Δθ1 is Δθ1 = θ2 - θ1 = +100°.

[0078] It should be noted that, unlike the illustration, when θ1 = +150° and θ2 = +100°, Δθ1 = θ2 - θ1 = -50°. That is, when the posture changes from the first posture to the second posture, joint 174 rotates 50° counterclockwise.

[0079] In addition, such as Figure 9 As shown, the rotational position of joint 176 in the first posture is position P3 after rotating clockwise by α1 (°) from the third reference position P03. Furthermore, the rotational position of joint 176 in the second posture is position P4 after rotating clockwise by α2 (°) from the third reference position P03. That is, when the posture changes from the first posture to the second posture, joint 176 rotates clockwise by Δα1 (°) from position P3 towards position P4. In the illustrated configuration, α1 = +45°, α2 = +125°, and Δα1 is Δα1 = α2 - α1 = +80°.

[0080] That is, in case 1, when changing from the first posture to the second posture, joint 174 is rotated by +100° and joint 176 is rotated by +80°.

[0081] The control unit 41 sets this information as J4 flag information and J6 flag information, and stores it in the storage unit 42. During this setting, the control unit 41 also sets J1 flag information, hand flag information, elbow flag information, wrist flag information, etc., and stores them in the storage unit 42. The J1 flag information indicates the amount and direction of rotation of joint 171. The hand flag information indicates whether the robotic arm 10 is in a right-handed or left-handed posture. The elbow flag information indicates whether the robotic arm 10 is in an upper-elbow or lower-elbow posture. The wrist flag information indicates whether the robotic arm 10 is in a non-reversing wrist posture or a reversing wrist posture (see Japanese Patent Application Publication No. 2016-83706).

[0082] Wrist markings indicate which side the wrist is bent from the second reference position P02 of joint 175, i.e., from a state of straight extension of joint 175, and are designated as Flip (F) and NonFlip (NP). For example, Figure 5 The state shown is Flip(F). Figure 6 The state shown is NonFlip (NP). It should be noted that, in addition to the rotational position of joint 175, the rotational position of joint 174 can also be listed as an element for determining wrist marker information. For example, by rotating joint 174 by 180°, it is also possible to switch... Figure 5 The posture shown and Figure 6 The posture shown. In this way, the wrist marking information incorporates the rotational position information of joints 174 and 175.

[0083] As described above, by rotating joint 174 clockwise by Δθ1 (=+100°) and joint 176 clockwise by Δα1 (=+80°), the robotic arm 10 can be changed from the first posture to the second posture.

[0084] Here, as in Case 2, which differs from Case 1 above, the combination of the rotation direction and rotation amount of joints 174, 175, and 176 can be changed so that the rotation amount of joint 174 is +90° or less, and the rotation amount of joint 176 is +90° or more, thereby achieving the same posture change from the first posture to the second posture as described above. Comparing joints 174 and 176, it can be seen that because joint 174 is located on the base side and a larger load is applied, the energy required to rotate it and the load during rotation are greater. Therefore, compared to Case 1, Case 2, where the absolute value of the rotation amount of joint 174 is set to 90° or less, and the absolute value of the rotation amount of joint 176 is set to 90° or more, is a more suitable motion procedure. Therefore, when the rotation amount of joint 174 exceeds 90°, a motion procedure similar to Case 2, as described below, is created.

[0085] (Scenario 2)

[0086] like Figure 11 As shown, the rotational position of joint 176 in the first posture is position P3 after rotating clockwise by α1 (°) from the third reference position P03. Furthermore, the rotational position of joint 176 in the second posture is position P5 after rotating counterclockwise by α3 (°) from the third reference position P03. Here, position P5 is the rotational position after rotating 180° from the rotational position of joint 176 in the second posture of case 1, i.e., position P4. That is, when changing from the first posture to the second posture, joint 176 rotates counterclockwise by Δα4 (°) from position P3 towards position P5. In the illustrated configuration, α1 = +45°, α3 = -50°, and Δα4 is Δα4 = α3 - α1 = -95°.

[0087] Furthermore, the rotational position of joint 174 in the first posture is position P1 after rotating clockwise by θ1 (°) from the first reference position P01. Additionally, the rotational position of joint 174 in the second posture is position P6 after rotating clockwise by θ3 (°) from the first reference position P01. Here, P6 is the rotational position of joint 174 in the second posture of case 1 after rotating 180° from position P2. That is, when the posture changes from the first posture to the second posture, joint 174 rotates counterclockwise by Δθ2 (°) from position P1 towards position P6. In the illustrated configuration, θ1 = +150°, θ3 = +70°, and Δθ2 is Δθ2 = θ3 - θ1 = -80°.

[0088] Thus, in case 2, when changing from the first posture to the second posture, joint 174 is rotated 80° counterclockwise from position P1 to position P6, that is, rotated 80° clockwise, and joint 176 is rotated 95° counterclockwise from position P3 to position P5.

[0089] Furthermore, in case 2, the same posture as in case 1 is achieved by reversing the rotation angle of joint 175. That is, in case 2, the absolute value of the difference between the second reference position P02 and the rotation angle θA is rotated from the second reference position P02 in the opposite direction to the direction of rotation angle θA (refer to...). Figure 5 and Figure 6 ).For example, Figure 5 The rotation position shown is -45°. Figure 6 The rotation position shown is +45°. By adjusting joint 175 in this way, it is possible to counteract the situation where the rotation position of joint 176 in the second posture is set to position P5 after rotating 180° from the rotation position of joint 176 in the second posture in case 1, i.e., position P4. This allows the second postures of case 1 and case 2 to be the same.

[0090] Comparing Case 1 and Case 2, it is clear that Case 2 has a smaller absolute value of the rotation amount of joint 174, making it a more suitable motion program. Therefore, Case 2 is adopted. Thus, if the program created based on the input job start and end position information has an absolute value of the rotation amount of joint 174 exceeding 90°, as in Case 1, the control unit 41 performs the aforementioned adjustment to create a motion program where the absolute value of the rotation amount of joint 174 is less than 90°, as in Case 2.

[0091] It should be noted that, in the following, the rotation angle of joint 174 in case 1 will be referred to as the first angle γ1, and the rotation angle of joint 174 in case 2 will be referred to as the second angle γ2. That is, the first angle γ1 is γ1 = Δθ1 = θ2 - θ1 = 100°, and the second angle γ2 is γ2 = Δθ2 = θ3 - θ1 = -80°.

[0092] Here, as Figure 12 As shown by the shaded lines, the case where there is an outside-range region A in joint 174 will be explained. This outside-range region A is the area where joint 174 cannot rotate, and in the illustrated configuration, it exists between positions 3 and 4. When outside-range region A exists at this position, for example, the rotation path of joint 174 calculated in case 2 overlaps with all or part of outside-range region A. Therefore, even if the intention is to create a motion program that rotates joint 174 counterclockwise 80° from position P1 to position P6 as described above (see...), Figure 10 It is also possible to create a motion program that rotates 280° clockwise from position P1 to position P6 (see reference). Figure 12 That is, the motion program is set to the second angle γ2 = 280°. When this second case is adopted, the rotation of joint 174 becomes larger, and it is no longer a suitable motion program.

[0093] Considering the above, in this invention, the absolute value of the first angle γ1 (°) |γ1| and the absolute value of the second angle γ2 (°) |γ2| are compared, and the angle of the smaller of the two absolute values ​​is set. For example, Case 2 is used when |γ1| = 100° and |γ2| = 80°, and Case 1 is used when |γ1| = 100° and |γ2| = 280°. That is, even if the rotation angle of joint 174 exceeds 90° in Case 1, if Case 2, which has undergone the above adjustment, is an unintended motion program, then Case 1 is used. By taking such steps, it is possible to prevent the rotation amount of joint 174 from becoming too large and to create a suitable motion program.

[0094] In particular, compared to the case where a motion program is meticulously created in advance before the robotic arm 10 is moved, the present invention is effective in the case where the robotic arm 10 is moved in real time and driven while the position information of the target position as the next moving destination is input, due to the requirement for efficient processing.

[0095] It should be noted that, regarding which side to use when the absolute value of the first angle γ1, |γ1|, is equal to the absolute value of the second angle γ2, |γ2|, it can be the configuration preset by the user, or the configuration with the smaller rotation amount of joints 174 and 176.

[0096] It should be noted that area A outside the range of motion includes areas that cannot be rotated structurally, areas where user rotation is prohibited, etc.

[0097] Next, use Figure 13 The flowchart shown illustrates an example of the robot control method of the present invention.

[0098] First, in step S101, a first angle γ1 is calculated based on the position information of the start and end positions of the job input by the user. This step S101 is the first step. In case 1, the first angle γ1 is 100°.

[0099] Next, in step S102, it is determined whether the absolute value of the first angle γ1, |γ1|, exceeds a predetermined value, which is 90° in this embodiment. That is, it is determined whether |γ1| > 90°. This step S102 is the second step. If it is determined that |γ1| > 90° as in case 1, the process proceeds to step S103. If it is determined that |γ1| is not > 90°, the γ1 is set to a fixed value, and the process proceeds to step S107. In step S107, the robotic arm 10 is driven based on the set conditions. It should be noted that in step S107, the motion conditions other than joints 174 and 176 are also determined, and the robotic arm 10 is driven based on these conditions.

[0100] In step S103, the wrist marker is switched, that is, the rotation angle of joint 175 is reversed for adjustment, and the second angle γ2 is calculated. Specifically, the absolute value of the difference between the second reference position P02 and the rotation angle θA is calculated from the second reference position P02 in the opposite direction to the direction of rotation angle θA (refer to...). Figure 5 and Figure 6 ), and calculate the second angle γ2. For example, in case 2 above, when the rotation path of joint 174 does not overlap with the area A outside the range of motion, the second angle γ2 = -80°; when the rotation path of joint 174 overlaps with the area A outside the range of motion, the second angle γ2 = 280°. This step S103 is the third step.

[0101] Next, in step S104, the absolute values ​​of the first angle γ1 and the second angle γ2 are compared to determine their relative magnitudes. That is, it is determined whether |γ1| < |γ2|. If in step S104 ||γ1| < |γ2| is true, the process moves to step S105 and the first angle γ1 is used. If in step S104 ||γ1| < |γ2| is false, the process moves to step S106 and the second angle γ2 is used. That is, the angle with the smaller absolute value between γ1 and γ2 is set as the rotation angle of joint 174, and an action program is created. Steps S104 to S106 constitute the fourth step.

[0102] Next, in step S107, the robotic arm 10 is driven with the rotation angles of joints 174 and 176 set above. It should be noted that in step S107, based on the set rotation angles of joints 174 and 176, the action conditions of other joints are also set, and the robotic arm 10 is driven based on these conditions.

[0103] As described above, this is a control method for controlling the operation of robot 1. Robot 1 has a robotic arm 10, which has a joint 174, which is a first joint and rotates around a rotation axis O4, which is a first axis, with a first reference position P01 as a reference. It also has a joint 175, which is a second joint and rotates around a rotation axis O5, which is orthogonal to the rotation axis O4, with a second reference position P02 as a reference. Furthermore, when changing the robotic arm 10 from a first posture to a second posture, the robot control method includes: a first step, calculating a first angle γ1, where the first angle γ1 is the difference between the rotation angle θ1 of joint 174 relative to the first reference position P01 in the first posture and the rotation angle θ2 of joint 174 relative to the first reference position P01 in the second posture; a second step, determining whether the calculated first angle γ1 is greater than a predetermined value; and a third step, in the second step, if it is determined that the first angle γ1 is greater than the predetermined value, calculating a second angle γ2, where the second angle γ2 is the difference between the rotation angle θ1 and the rotation angle θA of joint 175 when changing from the first reference position P02 to the second reference position P01. The first step is to compare the absolute value of the difference between the rotation angle θ3 of joint 174 and the first reference position P01 when the rotation angle θB of P02 is set. The second step is to compare the absolute value of the first angle γ1 and the absolute value of the second angle γ2 and set the angle of the smaller absolute value. The third step is to use the angle set in the fourth step to drive the robotic arm 10 to change to the second posture.

[0104] In addition, the robot system 100 includes: a robotic arm 10 having a joint 174, which is a first joint and rotates around a rotation axis O4, which is a first axis, with a first reference position P01 as a reference; and a joint 175, which is a second joint and rotates around a rotation axis O5, which is orthogonal to the rotation axis O4, with a second reference position P02 as a reference; and a robot control device 5, which is a control unit, to control the robotic arm. Furthermore, when changing the robotic arm 10 from the first posture to the second posture, the robot control device 5 performs the following steps: First step, calculating a first angle γ1, where the first angle γ1 is the difference between the rotation angle θ1 of joint 174 relative to the first reference position P01 in the first posture and the rotation angle θ2 of joint 174 relative to the first reference position P01 in the second posture; Second step, determining whether the calculated first angle γ1 is greater than a predetermined value; Third step, in the second step, if it is determined that the first angle γ1 is greater than the predetermined value, calculating a second angle γ2, where the second angle γ2 is the difference between the rotation angle θ1 and the rotation angle θA of joint 175 when changing from the rotation angle θA relative to the second reference position P02 to the rotation angle θA relative to the second reference position P01. The first step is to compare the absolute value of the difference between the rotation angle θ3 of joint 174 and the first reference position P01 when the rotation angle θB of position P02 is at the second posture. The second step is to compare the absolute value of the first angle γ1 and the absolute value of the second angle γ2 and set the angle of the smaller absolute value. The third step is to use the angle set in the fourth step to drive the robotic arm 10 to change to the second posture.

[0105] By going through steps one through four, a more suitable motion program can be created, and by executing this motion program, the robot can perform more efficient actions. In particular, it can prevent the rotation of joint 174 from becoming excessive, which helps to reduce the load on the robotic arm 10 and reduce drive energy.

[0106] It should be noted that in this embodiment, the case where the motion program created through the first to fourth steps is executed, and the robotic arm 10 is driven to change from the first posture to the second posture, is described. In this case, it is assumed that the creation of the motion program and the driving of the robotic arm 10 based on the execution of the motion program are performed in real time, i.e., continuously in time. In this case, for example, it has the advantage that if the position information of the first or second posture changes, the corresponding motion program can be created or modified instantly to follow the change, and the movement of the robotic arm 10 can be corrected in real time.

[0107] In contrast, the invention also includes the provision that, based on the first to fourth steps, one or more motion programs are created in advance, and when the robotic arm 10 is moved, an appropriate motion program is set or selected and executed.

[0108] Furthermore, in this embodiment, the first joint is described as joint 174 and the second joint as joint 175, but this is not a limitation of the present invention, and other joints can also be applied. For example, the first joint can be described as joint 176 and the second joint as joint 175. In this case, since the rotation amount of joint 176 can be smaller than that of joint 174, the twisting of the wiring can be further reduced when wiring is done at the front end of the sixth arm 17, such as when a camera is installed.

[0109] It should be noted that in the second step, the case of a predetermined value of 90° as compared with the first angle γ1 was described, but it is not limited to this in the present invention, and for example, it can also be 180°.

[0110] Furthermore, the robotic arm 10 has six joints, namely joints 171 to 176. The first joint is the fourth joint from the base side, namely joint 174, and the second joint is the sixth joint from the base side, namely joint 176. With this configuration, the first and second joints are applied to the two joints located on the more forward side of the robotic arm 10, that is, closer to the end effector 20. Therefore, the forward end, which requires higher precision motion compared to the base end, can be properly moved. As a result, more suitable operations can be performed.

[0111] It should be noted that the number of joints in the robotic arm 10 is not limited to six; it can also be two to five, or even seven or more. In this case, it is preferable to apply the first and second joints to the two joints located on the more forward side of the robotic arm 10, that is, closer to the end effector 20. This allows for more suitable operations.

[0112] While the robot control method and robot system of the present invention have been described above with reference to the illustrated embodiments, the present invention is not limited thereto. Furthermore, in the robot control method, arbitrary steps may be added before or after each of the first to fifth steps. Additionally, each part of the robot system can be replaced with any structure that performs the same function, or arbitrary structures may be added.

Claims

1. A robot control method, characterized in that, The robot control method described herein is a method for controlling the operation of a robot. The robot has a robotic arm, which has a first joint that rotates about a first axis and is based on a first reference position, and a second joint that rotates about a second axis orthogonal to the first axis and is based on a second reference position. When changing the robotic arm from a first posture to a second posture, the robot control method has the following characteristics: The first step is to calculate the first angle, which is the difference between the rotation angle θ1 of the first joint relative to the first reference position in the first posture and the rotation angle θ2 of the first joint relative to the first reference position in the second posture. The second step is to determine whether the calculated first angle is greater than a predetermined value. In the third step, in the second step, if it is determined that the first angle is greater than the predetermined value, a second angle is calculated. The second angle is the difference between the rotation angle θ1 and the rotation angle θ3 of the first joint relative to the first reference position in the second posture when the second joint is changed from a rotation angle θA relative to the second reference position to a rotation angle θB relative to the second reference position. The rotation angle θA is the rotation angle of the second joint when the rotation angle θ2 is calculated in the first step. The rotation angle θB is the absolute value of the difference between the second reference position and the rotation angle θA, which is rotated from the second reference position in a direction opposite to the direction of rotation from the second reference position to the rotation angle θA. The fourth step is to compare the absolute values ​​of the first angle and the second angle, and set the angle of the smaller absolute value. as well as The fifth step involves driving the robotic arm using the angle set in the fourth step to change it to the second posture.

2. The robot control method according to claim 1, characterized in that, The robotic arm has six joints. The first joint is the fourth joint from the base side, and the second joint is the fifth joint from the base side.

3. A robot system, characterized in that, The robot system includes: a robotic arm with a first joint that rotates about a first reference position and a first axis, and a second joint that rotates about a second reference position and a second axis orthogonal to the first axis. and a control unit to control the robotic arm, When the robotic arm changes from the first posture to the second posture, the control unit executes: The first step is to calculate the first angle, which is the difference between the rotation angle θ1 of the first joint relative to the first reference position in the first posture and the rotation angle θ2 of the first joint relative to the first reference position in the second posture. The second step is to determine whether the calculated first angle is greater than a predetermined value. In the third step, in the second step, if it is determined that the first angle is greater than the predetermined value, a second angle is calculated. The second angle is the difference between the rotation angle θ1 and the rotation angle θ3 of the first joint relative to the first reference position in the second posture when the second joint is changed from a rotation angle θA relative to the second reference position to a rotation angle θB relative to the second reference position. The rotation angle θA is the rotation angle of the second joint when the rotation angle θ2 is calculated in the first step. The rotation angle θB is the absolute value of the difference between the second reference position and the rotation angle θA, which is rotated from the second reference position in a direction opposite to the direction of rotation from the second reference position to the rotation angle θA. The fourth step is to compare the absolute values ​​of the first angle and the second angle, and set the angle of the smaller absolute value. as well as The fifth step involves driving the robotic arm using the angle set in the fourth step to change it to the second posture.