Method for controlling articulated robot, robot system, program, and method for manufacturing article

In the control method of multi-joint robot, the combination of inverse kinematic calculation and fixed processing is used to solve the calculation error problem caused by joints exceeding the range of motion, and the effect of correct operation of the robot is achieved.

CN119789935APending Publication Date: 2025-04-08LAUREL BANK MACHINES CO LTD +2
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380062646.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-05-25
Filing Date
2023-08-16
Publication Date
2025-04-08

AI Technical Summary

Technical Problem

In the inverse kinematic calculation of multi-joint robots, when the joints exceed the range of motion, the calculation results are incorrect and the correct solution cannot be found, resulting in the robot being unable to operate correctly.

Method used

Using a control method, including repeating unit processing, the unit processing includes calculating joint displacements through inverse kinematic calculations and updating joint values ​​based on the displacement, performing fixation processing on joints in a particular state to change the values ​​of other joints without substantially changing their joint values.

Benefits of technology

Reduces the frequency of wrong results in inverse kinematic calculations, prevents joints from exceeding the range of motion, and ensures that the robot can operate correctly.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119789935A_ABST
    Figure CN119789935A_ABST
Patent Text Reader

Abstract

A control method of a multi-joint robot having seven or more joints is provided. A control method of an articulated robot includes: performing inverse kinematics calculation to calculate a displacement amount of a plurality of joints capable of operating the articulated robot; repeatedly performing unit processing including calculation processing for updating a plurality of joint values of the plurality of joints based on the displacement amount, performing fixing processing on a joint in a predetermined specific state among the joints, and when the fixing processing is performed, performing unit processing on the joint in the predetermined specific state, in the calculation process, the joint value of each of the plurality of joints not in the specific state is changed without substantially changing the joint value of the joint in the specific state.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a control method for a multi-joint robot, a robot system, a program, and a method for manufacturing an article. Background Art

[0002] It is known that a multi-joint robot with six degrees of freedom performs human-like movements. Recent studies have shown that a multi-joint robot has seven or more degrees of freedom, including six degrees of freedom and an additional redundant degree of freedom. For example, Patent Document 1 discloses a control method for a multi-joint robot with seven degrees of freedom.

[0003] Related literature

[0004] Patent Literature

[0005] Patent Document 1: Japanese Patent Application Publication No. H6-143172 Summary of the invention

[0006] Problems to be solved by the present invention

[0007] One, some or all joints of a general multi-joint robot have a certain range of motion. In one example, inverse kinematics is used to calculate the displacement of the joints based on the position and posture of the robot. If any joint exceeds the range of motion, the calculation result of the inverse kinematics is incorrect, and the correct solution (the solution satisfies each joint moving within the range of motion) cannot be found. This incorrect calculation result cannot make the robot operate correctly. Therefore, it is required to reduce the frequency of incorrect results in the inverse kinematics calculation.

[0008] Means of solving the problem

[0009] The method according to a preferred aspect of the present invention is a control method for a multi-joint robot having seven or more joints. The method includes: repeating unit processing, the unit processing includes: calculation processing for: calculating the displacement of each joint by applying inverse kinematics calculation, wherein the displacement of each joint causes the multi-joint robot to operate; and updating the joint value of each joint based on the displacement; and performing fixed processing on the joints in a specific state among the joints; wherein the specific state is preset and determined based on the corresponding joint value. When performing the fixed processing, the calculation processing includes: changing the joint values ​​of each joint in a non-specific state among the joints without substantially changing the joint values ​​of the joints in the specific state.

[0010] According to a preferred aspect of the present invention, a robot system includes: a multi-joint robot having seven or more joints; and a controller configured to control the operation of the multi-joint robot, wherein the controller includes a motion controller configured to repeat unit processing, and the unit processing includes: a calculation process for: calculating the displacement of each joint by applying inverse kinematics calculation, wherein the displacement of each joint causes the multi-joint robot to operate; and updating the joint value of each joint based on the displacement; and performing a fixed process on the joints in a specific state of the joints; wherein the specific state is preset and determined based on the corresponding joint value. When performing the fixed process, the motion controller changes the joint value of each joint in a non-specific state of the joint without substantially changing the joint value of the joint in the specific state.

[0011] The method according to a preferred aspect of the present invention is a method of manufacturing an article. The method comprises assembling or removing components by a robotic system.

[0012] The program according to a preferred aspect of the present invention is a program for controlling the operation of a multi-joint robot having seven or more joints. The program causes the processor to act as a motion controller, and the motion controller is configured to repeat unit processing, and the unit processing includes: calculation processing, which is used to: calculate the displacement of each joint by applying inverse kinematics calculation, wherein the displacement of each joint causes the multi-joint robot to operate; and update the joint value of each joint based on the displacement; and perform fixed processing on the joints in a specific state among the joints; wherein the specific state is preset and determined based on the corresponding joint value. When performing the fixed processing, the motion controller changes the joint values ​​of each joint in a non-specific state among the joints without substantially changing the joint values ​​of the joints in the specific state.

[0013] Technical Effects of the Invention

[0014] According to the invention, the frequency of erroneous results in inverse kinematics calculations is reduced. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Figure 1 A descriptive diagram showing the appearance of a robot system according to an embodiment.

[0016] Figure 2 Shows Figure 1 An example of the hardware configuration of the robot controller is shown.

[0017] Figure 3 Shows Figure 1 A flowchart showing an example of the operation of the robot controller is shown.

[0018] Figure 4 A flow chart showing an example of the operation of a robot controller by which the position and posture of a robot's hand are sequentially changed to one or more target positions and postures.

[0019] Figure 5 Shows Figure 4 A flowchart of an example of an update process is shown.

[0020] Figure 6 A flowchart showing another example of the operation of the robot controller when the position and posture of the robot's hand are sequentially changed to the target position and posture.

[0021] Figure 7 A flow chart illustrating another example of the operation of a robot controller by which the position and posture of a robot's hand are sequentially changed to one or more target positions and postures.

[0022] Figure 8 Shows Figure 7 A flowchart of an example of the first update process is shown.

[0023] Fig. 9 A descriptive diagram of the simulation model is shown.

[0024] Fig.10 Shows Fig. 9 Descriptive diagram of the initial joint values ​​of the simulation model shown.

[0025] Fig.11 A descriptive diagram showing the displacement of the hand used in the simulation.

[0026] Fig.12 A descriptive diagram of the Jacobian matrix used in the comparison control methods is shown.

[0027] Fig.13 Shows Fig.12 Descriptive diagram of the pseudo-inverse matrix of the Jacobian matrix shown in .

[0028] Fig.14 Shows the use of Fig.13 The pseudo-inverse matrix shown is the calculated joint displacement.

[0029] Fig.15 Shown based on Fig.14 The joint displacements shown are the final joint values ​​calculated.

[0030] Fig.16 A diagram describing the Jacobian matrix J when a joint mechanism in a specific state is fixed is shown.

[0031] Fig.17 Shows Fig.16The pseudo-inverse matrix of the Jacobian matrix is ​​shown in the figure.

[0032] Fig.18 Shows the use of Fig.17 The joint displacements are calculated using the pseudo-inverse matrix in .

[0033] Fig.19 Shown based on Fig.18 The joint displacements shown are the final joint values ​​calculated.

[0034] Fig. 20 Shown according to Fig.10 Descriptive diagram of simulation results for different initial joint values.

[0035] Fig.21 A descriptive diagram of a robot according to a first modified example is shown.

[0036] Fig. 22 A descriptive diagram of an end section according to a second modified example is shown.

[0037] Fig.23 A descriptive diagram of "turning" is shown. DETAILED DESCRIPTION

[0038] Now, a description of an embodiment of the present invention will be given with reference to the accompanying drawings. The dimensions and proportions of the various parts in the accompanying drawings are determined as appropriate and are different from the actual product. Since the following embodiments are preferred specific examples of the present invention, various technical preferred limitations are added thereto. However, the scope of the present invention is not limited to the embodiments unless otherwise stated in the following description.

[0039] 1. Example

[0040] First, we will now refer to Figure 1 An example of the outer appearance of the robot system 1 according to the present embodiment is given.

[0041] Figure 1 A descriptive diagram showing the outer appearance of the robot system 1 according to this embodiment.

[0042] In the following, for the sake of convenience, a reference coordinate system ∑0 fixed in a physical space is introduced as a base coordinate system of the robot 10. In one example, the reference coordinate system ∑0 is a three-axis orthogonal coordinate system. The reference coordinate system ∑0 has an origin located at the center of a bottom surface BDPbt of the robot 10 (to be described later), an X0 axis, a Y0 axis, and a Z0 axis orthogonal to each other. In this embodiment, the reference coordinate system ∑0 is assumed to be a right-handed coordinate system. Fig. 9 The coordinate systems Σ1 to Σ8 shown in (to be described later) are also assumed to be right-handed coordinate systems.

[0043] In one example, the robot system 1 includes a robot 10, an end effector 20 that can be detached from or attached to the robot 10, and a robot controller 30 that controls operations of the robot 10 and the end effector 20. The robot 10 is an example of a “multi-joint robot”, and the robot controller 30 is an example of a “controller”.

[0044] In one example, the robot 10 and the robot controller 30 are communicably connected to each other through a line. A wireless connection or a wired and wireless connection may be applied to the connection between the robot 10 and the robot controller 30. The robot controller 30 may communicate with the end effector 20 attached to the robot 10. The robot controller 30 may be an information processing device that may communicate with other devices.

[0045] In one example, the robot 10 is a multi-joint robot used in farms, factories, warehouses or other similar places. Specifically, the robot 10 is an eight-axis multi-joint robot, which includes six joint mechanisms JEr (JEr1, JEr2, JEr3, JEr4, JEr5 and JEr6) of a six-axis multi-joint robot and two additional joint mechanisms JEp (JEp1 and JEp2). These joint mechanisms are rotational joints, and the additional joint mechanism JEp is a translational joint. In one example, the robot 10 includes six joint mechanisms JEr, two joint mechanisms JEp, a base BDP, two connecting rods LK (LK1 and LK2) and an end segment TP1. Figure 1 In the example of , the joint mechanism JEr1 is included in the base body BDP, and the joint mechanisms JEr5 and JEr6 are included in the end segment TP1. The joint mechanism JEp1 is arranged in the link LK1, and the joint mechanism JEp2 is arranged in the link LK2. In the following, the joint mechanisms JEr and JEp are not particularly distinguished from each other, and they may also be referred to as joint mechanisms JE.

[0046] The robot 10 also includes a plurality of motors for driving each joint mechanism JE. Figure 1 In the figure, for the sake of clarity, some elements such as motors for the respective joint mechanisms JE and a speed reducer and an encoder for each motor are not shown. The joint mechanism JE is an example of a “joint”.

[0047] The base BDP is an example of a “base.” The link LK1 is an example of a “first link,” and the link LK2 is an example of a “second link.” In one example, the base BDP and the end section TP1 are connected by the links LK1 and LK2.

[0048] Examples of connections between components include direct connection between two components and indirect connection between two components. Direct connection between two components includes (i) a state where two components are in contact with each other, and (ii) a state where two components are considered to be in contact with each other. A state where two components are considered to be in contact with each other is, for example, a state where one of the two components is fixed to the other by an adhesive or the like. Indirect connection between two components means that another component is provided between the two components.

[0049] The joint mechanism JEr1 is an example of a “first drive mechanism”, and the joint mechanism JEr2 is an example of a “second drive mechanism”. The joint mechanism JEr3 is an example of a “third drive mechanism”, and the joint mechanism JEr4 is an example of a “fourth drive mechanism”. The joint mechanism JEr5 is an example of a “fifth drive mechanism”, and the joint mechanism JEr6 is an example of a “sixth drive mechanism”. The joint mechanism JEp1 is an example of a “first translation mechanism”, and the joint mechanism JEp2 is an example of a “second translation mechanism”.

[0050] In one example, the base BDP includes a base portion BDPba fixed to a predetermined place (e.g., a floor) and a joint mechanism JEr1 connected to a joint mechanism JEr2. The joint mechanism JEr1 rotates a portion of the base BDP around an axis Ax1 that is perpendicular to the bottom surface BDPbt of the base BDP. In one example, the joint mechanism JEr1 includes a portion connected to the joint mechanism JEr2, and the portion is a portion of the outer wall of the joint mechanism JErl. For example, the joint mechanism JEr1 rotates the outer wall of the joint mechanism JEr2 relative to the base portion BDPba around the axis Ax1 that serves as the rotation axis. In other words, the joint mechanism JEr1 rotates the joint mechanism JEr2 relative to the base BDP around the axis Ax1 that serves as the rotation axis. The axis Ax1 is an example of a "first rotation axis."

[0051] The term "perpendicular" includes not only "absolutely perpendicular" but also "substantially perpendicular" (e.g., perpendicular within a range of error). Similarly, the term "parallel" described below includes not only "absolutely parallel" but also "substantially parallel" (e.g., parallel within a range of error). Figure 1 The illustrated rotation direction Dr1 represents the rotation direction of a portion of the base body BDP when the portion of the base body BDP rotates around the axis Ax1.

[0052] The joint mechanism JEr2 connects the base BDP and the link LK1 to each other. The joint mechanism JEr2 rotates the link LK1 relative to the base BDP about an axis Ax2 as a rotation axis. The axis Ax2 is parallel to the bottom surface BDPbt of the base BDP. Figure 1The rotation direction Dr2 shown indicates the rotation direction of the link LK1 when the link LK1 rotates around the axis Ax2 as the rotation axis. The axis Ax2 is an example of a “second rotation axis”.

[0053] In one example, the link LK1 is hollow and elongated. The link LK1 has an opening Hlk1 extending along an extending direction De1 of the link LK1. The direction De1 refers to the "extending direction of the first link".

[0054] In one example, the link LK1 has a surface facing the link LK2. The opening Hlk1 is located on a portion of the surface of the link LK1. The joint mechanism JEp1 and a portion of the joint mechanism JEr3 are mounted inside the link LK1. In one example, a portion of the joint mechanism JEr3 is located inside the link LK1, and the remaining portion of the joint mechanism JEr3 protrudes from the opening Hlk1 to the outside of the link LK1. The joint mechanism JEr3 includes an outer portion protruding outside the link LK1. The outer portion or a portion of the outer portion is located inside the link LK2 via the opening Hlk2 (described later) of the link LK2.

[0055] The link LK1 rotates relative to the base body BDP about the axis Ax1 as the rotation axis via the joint mechanism JEr1. In addition, the link LK1 rotates relative to the base body BDP about the axis Ax2 as the rotation axis via the joint mechanism JEr2.

[0056] The joint mechanism JEr3 connects the link LK1 and the link LK2 to each other. The joint mechanism JEr3 rotates the link LK2 relative to the link LK1 around the axis Ax3 as a rotation axis. The axis Ax3 is perpendicular to the extending direction De1 of the link LK1. Figure 1 The rotation direction Dr3 shown indicates the rotation direction of the link LK2 when the link LK2 rotates around the axis Ax3 as the rotation axis. The axis Ax3 is an example of a "third rotation axis".

[0057] The joint mechanism JEp1 causes the joint mechanism JEr3 to move relative to the link LK1 in the direction De1. The movement of the joint mechanism JEr3 in the direction De1 causes the link LK2 to move relative to the link LK1 in the direction De1. The range of motion of the joint mechanism JEr3 moved by the joint mechanism JEp1 is as follows: the substantial length (control length) of the link LK1 is equal to or less than half the length of the link LK1; or, the substantial length may be equal to or greater than half the length of the link LK1.

[0058] In one example, the link LK2 is hollow and elongated. The link LK2 has an opening Hlk2 extending in an extending direction De2 of the link LK2. The direction De2 is referred to as the "extending direction of the second link".

[0059] In one example, the link LK2 has a surface facing the link LK1. The opening Hlk2 is located on a portion of the surface of the link LK2. A joint mechanism JEp2 and a portion of the joint mechanism JEr3 are provided inside the link LK2. In one example, a portion of the joint mechanism JEr3 is inside the link LK1, and the rest of the joint mechanism JEr3 protrudes from the opening Hlk2 to the outside of the link LK2.

[0060] The joint mechanism JEp2 moves the link LK2 relative to the joint mechanism JEr3 along the extension direction De2 of the link LK2. This movement causes the link LK2 to move relative to the joint mechanism JEr3 along the direction De2. In other words, the link LK2 moves relative to the link LK1 along the direction De2. The range of motion of the joint mechanism JEr3 moved by the joint mechanism JEp2 is as follows: the substantial length (control length) of the link LK2 is equal to or less than half the length of the link LK2; or, the substantial length may be equal to or greater than half the length of the link LK2.

[0061] Therefore, link LK2 is movable relative to link LK1 in direction De1 and is movable relative to link LK1 in direction De2.

[0062] The joint mechanism JEr4 connects the link LK2 and the end section TP1 to each other. The joint mechanism JEr4 rotates the end section TP1 relative to the link LK2 around the axis Ax4 as a rotation axis. The axis Ax4 is perpendicular to the direction De2. Figure 1 The rotation direction Dr4 shown indicates the rotation direction when the end segment TP1 rotates around the axis Ax4 as the rotation axis. The axis Ax4 is an example of a “fourth rotation axis”.

[0063] In one example, an end effector 20 for holding an article (product) is attached to the end segment TP1. In one example, the end effector 20 is attached to the end surface TP1sf of the end segment TP1. The end segment TP1 includes a first portion TP11 connected to the link LK2, a second portion TP12 connected to the first portion TP11, a joint mechanism JEr5, and a joint mechanism JEr6. In one example, the first portion TP11 is connected to the link LK2 via a joint mechanism JEr4, so that the first portion TP11 rotates relative to the link LK2 around the axis Ax4 as a rotation axis.

[0064] The joint mechanism JEr5 connects the first part TP11 and the second part TP12 to each other. The joint mechanism JEr5 rotates the second part TP12 about the axis Ax5 as the rotation axis relative to the first part TP11. The axis Ax5 is perpendicular to the axis Ax4. Figure 1The rotation direction Dr5 shown indicates the rotation direction of the second portion TP12 when the second portion TP12 rotates around the axis Ax5. The axis Ax5 is an example of a "fifth rotation axis".

[0065] The joint mechanism JEr6 rotates at least a portion of the end segment TP1 around the axis Ax6 as a rotation axis. The axis Ax6 is perpendicular to the axis Ax5. Figure 1 In the example of , the joint mechanism JEr6 rotates the end surface TP1sf of the end segment TP1 around the axis Ax6 as the rotation axis. In other words, the joint mechanism JEr6 rotates the portion (end surface TP1sf) of the end segment TP1 to which the end effector 20 is attached around the axis Ax6 as the rotation axis. Figure 1 The rotation direction Dr6 shown indicates the rotation direction of the end surface TP1sf when the end surface TP1sf rotates around the axis Ax6. The axis Ax6 is an example of a "sixth rotation axis".

[0066] exist Figure 1 In the example of FIG. 5 , the surface of the joint mechanism JEr6 corresponds to the end surface TP1sf. If the joint mechanism JEr6 includes the second portion TP12, the end surface TP1sf may be the end surface of the second portion TP12.

[0067] Work using the end effector 20 is not limited to holding items. The end effector 20 may include appropriate units (eg, robot hands and robot fingers) depending on the tasks to be performed by the robot 10. End effectors 20 suitable for various types of tasks are attached to the end segment TP1.

[0068] In the present embodiment, there are two types of rotation. One of the two types is a rotation around an axis whose angle with a specific direction is greater than a predetermined angle. The other of the two types is a rotation around an axis whose angle with a specific direction is equal to or less than a predetermined angle. The former angle may be described as a "turn" to distinguish it from the latter angle. The predetermined angle may be 45°; however, the predetermined angle is not limited to 45°.

[0069] For the rotation around the axis Ax1 and the rotation around the axis Ax2, the direction Dv1 perpendicular to the bottom surface BDPbt of the base BDP corresponds to a specific direction. The axis Ax1 corresponds to an axis whose angle with the direction Dv1 perpendicular to the bottom surface BDPbt of the base BDP is equal to or less than a predetermined angle. The axis Ax2 corresponds to an axis whose angle with the direction Dv1 is greater than a predetermined angle. Therefore, the rotation of the connecting rod LK1 around the axis Ax2 corresponds to "turning". In the present embodiment, the extension direction Deb of the base BDP can be a specific direction because the base BDP extends along the direction Dv1 perpendicular to the bottom surface BDPbt.

[0070] For the rotation around the axis Ax3, the extension direction De1 of the connecting rod LK1 corresponds to a specific direction. For the rotation around the axis Ax4, the extension direction De2 of the connecting rod LK2 corresponds to a specific direction. The axis Ax3 corresponds to an axis that forms an angle greater than a predetermined angle with the extension direction De1 of the connecting rod LK1. The axis Ax4 corresponds to an axis that forms an angle greater than a predetermined angle with the extension direction De2 of the connecting rod LK2. The following two rotations, namely, the rotation of the connecting rod LK2 around the axis Ax3 as the rotation axis and the rotation of the first part TP11 around the axis Ax4 as the rotation axis, correspond to the above-mentioned rotation.

[0071] For the rotation around the axis Ax5, the direction De11 corresponds to a specific direction. For the rotation around the axis Ax6, the direction De12 corresponds to a specific direction. The first part TP11 has two ends: a predetermined end connected to the joint mechanism JEr5 and an end opposite to the predetermined end. The direction De11 refers to the direction from the opposite end to the predetermined end. The direction De11 can be considered as the extension direction of the first part TP11. The second part TP12 has two ends: a predetermined end connected to the joint mechanism JEr6 (the end includes the end surface TP1sf) and an end opposite to the predetermined end. The direction De12 refers to the direction from the opposite end to the predetermined end. The direction De12 can be considered as the extension direction of the second part TP12.

[0072] When the direction De11 is a specific direction, the axis Ax5 corresponds to an axis whose angle with the direction De11 is equal to or less than a predetermined angle. When the direction De12 is a specific direction, the axis Ax6 corresponds to an axis whose angle with the direction De12 is equal to or less than a predetermined angle. In this embodiment, it is assumed that the direction De11 is perpendicular to the axis Ax4 and the direction De12 is perpendicular to the axis Ax5. The axis Ax5 whose angle with the direction De11 is equal to or less than the predetermined angle corresponds to an axis whose angle with the axis Ax4 is greater than the predetermined angle. The axis Ax6 whose angle with the direction De12 is equal to or less than the predetermined angle corresponds to an axis whose angle with the axis Ax5 is greater than the predetermined angle.

[0073] Therefore, in the present embodiment, each part of the robot 10 (base BDP, link LK1, link LK2, end segment TP1, etc.) rotates around the corresponding axes Ax1, Ax2, Ax3, Ax4, Ax5, and Ax6 as rotation axes. This rotation allows the robot 10 to perform substantially the same actions as humans.

[0074] In one example, the link LK1 between the joint mechanism JEr2 and the joint mechanism JEr3 corresponds to the upper arm. The link LK2 between the joint mechanism JEr3 and the joint mechanism JEr4 corresponds to the forearm. The joint mechanism JEr1 enables the robot 10 to imitate the twisting at the waist of a human, and the joint mechanism JEr2 enables the robot 10 to imitate the turning at the shoulder. In addition, the joint mechanism JEr3 enables the robot 10 to imitate the turning at the elbow, and the joint mechanism JE4 enables the robot to imitate the turning at the wrist. The joint mechanism JEr5 enables the robot 10 to imitate the twisting of the wrist, and the joint mechanism JEr6 enables the robot to imitate the twisting of the fingertips.

[0075] In the present embodiment, the joint mechanism JEp1 provided in the link LK1 enables the link LK2 to move relative to the link LK1 along the extension direction De1 of the link LK1. In addition, the joint mechanism JEp2 provided in the link LK2 enables the link LK2 to move relative to the link LK1 along the extension direction De2 of the link LK2. As a result, in the present embodiment, the joint mechanisms JEp1 and JEp2 enable the end segment TP1 of the robot 10 to move to the vicinity of the base body BDP. The joint mechanisms JEp1 and JEp2 expand the reachable range of the end segment TP1 (more specifically, the end surface TP1sf), and also expand the reachable range of the end effector 20 attached to the robot 10.

[0076] The configuration of the robot system 1 is not limited to Figure 1 The robot controller 30 may be built into the robot 10. Although the robot 10 is fixed to Figure 1 The example of a predetermined place (e.g., a floor) shown in the figure, but the robot 10 is not necessarily fixed to the predetermined place and may be movable. The base portion BDPba of the base body BDP may be fixed to a predetermined place (e.g., a floor) via a joint mechanism JEr1. In this case, the base body BDP may not include the joint mechanism JEr1. The base portion BDPba may be fixed to a predetermined place via the joint mechanism JEr1. In this configuration, the joint mechanism JEr1 may cause the base portion BDPba to rotate around an axis Ax1 serving as a rotation axis. Alternatively, in this configuration, the base portion BDPba may be connected to the joint mechanism JEr2.

[0077] The operation of the robot controller 30 will now be briefly described. Figure 2 A description is given of the configuration of the robot controller 30. Figure 3 A description is given of the operation flow of the robot controller 30 .

[0078] In one example, in order to set the position and posture of the robot 10 to the target position and posture, the robot controller 30 calculates the joint value of each joint mechanism JE, wherein each joint value is related to the state of the corresponding joint mechanism JE (the state of the joint). The phrase "the state of the joint mechanism JE" may represent the movement of the joint. Specific examples of the state of the joint mechanism JE include the position of the joint mechanism JE (the position of the joint) and the rotation angle of the joint mechanism JEr (the orientation of the joint). In this case, the joint value represents the position of the joint mechanism JE (the position of the joint) and the rotation angle of the joint mechanism JEr (the orientation of the joint). The phrase "joint value related to the state (the state of the joint) of the corresponding joint mechanism JE" is simply referred to as "joint value of the joint mechanism JE (joint)".

[0079] In one example, the relationship between the velocity of the hand of the robot 10 (eg, the distal end of the end effector 20 ) and the joint velocity is defined by equation (1). Hereinafter, the velocity of the hand of the robot 10 is referred to as “hand velocity”.

[0080] Formula (1) is as follows:

[0081]

[0082] in, represents the hand velocity (vector), also denoted as r(·); represents the joint velocity (vector), also expressed as θ(·); J represents the Jacobian matrix showing the relationship between the hand velocity and the joint velocity.

[0083] The hand velocity r(·) is defined by formula (2). In a multi-joint robot having m joints (m is a natural number of 2 or more), the joint velocity θ(·) is defined by formula (3), and the Jacobian matrix J is defined by formula (4).

[0084] Formula (2) is as follows:

[0085]

[0086] in, represents the hand’s translational velocity vector, also expressed as p(·); ω represents the angular velocity vector.

[0087] Formula (3) is as follows:

[0088]

[0089] in, represents the velocity of the i-th joint.

[0090] Formula (4) is as follows:

[0091] J= [J1 …J i …J m ] (4)

[0092] Among them, J i Represents an element of the i-th joint.

[0093] In one example, the Jacobian matrix J is represented by a matrix with six rows and m columns, and the element in the i-th column represents the element J associated with the i-th joint i When the i-th joint is a revolute joint, the element J associated with the joint i Defined by formula (5). When the i-th joint is a translation joint, the element J i Defined by formula (6). The value "0" in formula (6) indicates that the vector value is zero.

[0094] Formulas (5) and (6) are as follows:

[0095]

[0096]

[0097] in represents Z as seen from the reference coordinate system ∑0 i Unit vector in the positive direction of the axis.

[0098] When the i-th joint is a revolute joint, the Z axis corresponds to the rotation axis of the joint mechanism JEr. When the i-th joint is a translation joint, the Z axis corresponds to the axis of motion of the joint mechanism JEp or the axis of extension and retraction of the link LK.

[0099] The relationship between the hand velocity and the joint velocity of the robot 10 is given by formula (7) using the pseudo-inverse matrix J of the Jacobian matrix J + definition.

[0100] Formula (7) is as follows:

[0101]

[0102] In one example, the robot controller 30 calculates the joint velocity θ of each joint mechanism JE at the target hand velocity r(·) according to formula (7): i (·), and operates based on the calculation result to move the joint mechanism JE. Specifically, the joint velocity θ of each joint mechanism JE based on formula (7) i (·), the robot controller 30 calculates the joint value of each joint mechanism JE. Then, the robot controller 30 operates to move the joint mechanism JE based on the calculated joint values ​​of each joint mechanism JE. In one example, the robot controller 30 operates to move the joint mechanism JE to an appropriate state based on the joint value.

[0103] In this embodiment, the movement of the robot 10 is operated by jog motion. In jog motion, the position and posture of the robot are achieved by moving the joints and hands little by little to reach the target position and posture. Each joint value is related to the joint velocity θ i (·) and based on the joint velocity θ i (·) The information of the state of each joint mechanism JE calculated. The inverse kinematics calculation example includes calculating the joint velocity θ(·) of each joint mechanism JE. Assuming that the pseudo inverse matrix J + It is calculated based on the Jacobian matrix J. Then the joint velocity θ(·) of each joint mechanism JE is calculated according to formula (7), which represents the inverse kinematics calculation using the Jacobian matrix.

[0104] In the jog motion, the joint velocity θ is calculated for all joint mechanisms JE i (·). Using a conventional control method with the Jacobian matrix J (hereinafter referred to as the comparative control method) may result in i (·) The calculated joint mechanism JE of one or more joint mechanisms exceeds the motion range of the joint mechanism JE. In this case, the robot cannot follow the determined jog motion. In addition, for a multi-joint robot having eight or more joints, if the joints to be operated are limited to less than the total number of joints (for example, the joints to be operated are limited to six or seven), the comparative control method cannot operate such a robot.

[0105] Based on this fact, in the present embodiment, if the joints of the robot 10 to be operated are limited to be less than the total number of joints, the element J of the specific i-th joint among the multiple elements of the Jacobian matrix J is i Fixed to zero vector value. Set the element J corresponding to the i-th joint i The Jacobian matrix J set to a zero vector value is defined by equation (8). Here, the joint velocity θi(·) in equation (7) represents the joint velocity vector defined by equation (9).

[0106] Formulas (8) and (9) are as follows:

[0107] J= [J 1 …J i-1 0 J i+1 …J m ] (8)

[0108]

[0109] As shown in formula (9), the joint velocity θ of the i-th joint is i (·) is zero. Therefore, in this embodiment, among the multiple elements of the Jacobian matrix J, the element J of the i-th joint iis fixed to the zero vector value. This fixation preserves the joint value of the i-th joint, and the i-th joint among the m joints can be regarded as a fixed joint. In other words, by replacing the element J of the i-th joint of the Jacobian matrix J i By setting the fixed processing to zero vector value, the joint velocity θ of (m-1) joints other than the i-th joint can be calculated. i (·) As a result, even if the joints to be operated are limited to be smaller than the total number of joints, the robot 10 can operate.

[0110] In this embodiment, the vector value is fixed to zero. However, the vector value is not necessarily zero, and may be a small value (substantially zero) as long as the joint value of the i-th joint remains substantially unchanged without affecting the control of the robot. Here, the phrase "substantially zero" not only means zero, but also means a very small value that is regarded as zero. The phrase "the joint value remains substantially unchanged" not only means "the vector value remains strictly unchanged", but also means "the joint value remains approximately unchanged (for example, a small change that has little effect on the control of the robot)".

[0111] In one example, it is assumed that a certain joint (the i-th joint) among the plurality of joints is in a specific state. If the certain joint receives a constraint (e.g., a range of motion) on its joint value, then in the specific state according to the present invention, the joint value approaches the constraint limit. Specifically, within the range of motion, a certain joint value takes a value of a boundary range between inside and outside the range of motion.

[0112] The specific state is determined based on the joint value of the i-th joint. The robot controller 30 treats the i-th joint in the specific state as a fixed joint, and the elements (vector values) of the Jacobian matrix J of the fixed joint are fixed to a value substantially zero. When the constraints on the displacement are satisfied, this state is called a "restricted state". As described later, the robot controller 30 detects the arrival of the joint (joint mechanism JE) before reaching the restricted state by utilizing the joint's motion margin (the remaining amount of the joint's range of motion).

[0113] In one example, the constraint on the joint displacement is related to the movement of the joint mechanism JE, and examples of the constraint include the movement range of the joint mechanism JEr3 moved by the joint mechanism JEp1 and the movement range of the joint mechanism JEr3 moved by the joint mechanism JEp2.

[0114] In one example, when the joint mechanism JEr3 moves relative to the connecting rod LK1 through the joint mechanism JEp1, the motion range of the joint mechanism JEr3 is limited by the length of the connecting rod LK1. Specifically, the joint mechanism JEr3 moved by the joint mechanism JEp1 has an upper limit and a lower limit of the motion range. The upper limit is located near one of the two ends of the connecting rod LK1, and the lower limit is located near the other end. When the joint mechanism JEr3 reaches the upper limit or the lower limit of the motion range, the joint mechanism JEp1 that moves the joint mechanism JEr3 is in a restricted state. In one example, when the joint mechanism JEr3 is positioned close to the end of the connecting rod LK1, the robot controller 30 confirms that the joint mechanism JEp1 is in a specific state. Compared with the restricted state, in the specific state, the movement of the joint mechanism JEr3 has a margin.

[0115] Similarly, when the joint mechanism JEp2 causes the joint mechanism JEr3 to move relative to the connecting rod LK2, the motion range of the joint mechanism JEr3 is limited by the length of the connecting rod LK2. Specifically, the joint mechanism JEr3 moved by the joint mechanism JEp2 has an upper limit and a lower limit of the motion range. The upper limit is located near one of the two ends of the connecting rod LK2, and the lower limit is located near the other end. When the joint mechanism JEr3 reaches the upper limit or the lower limit of the motion range, the joint mechanism JEp2 that causes the joint mechanism JEr3 to move is in a restricted state. In one example, when the joint mechanism JEr3 is positioned close to the end of the connecting rod LK2, the robot controller 30 confirms that the joint mechanism JEp2 is in a specific state.

[0116] In one example, when the plurality of joint mechanisms JE include one or more joint mechanisms JE in a specific state (determined based on the corresponding joint value), the robot controller 30 fixes the elements of the respective joint mechanisms JE in the specific state to zero among the plurality of elements of the Jacobian matrix J. When performing inverse kinematics calculation using the Jacobian matrix, the elements of the respective joint mechanisms JE in the specific state are set to zero values, and the joint values ​​of the respective joint mechanisms in the specific state are fixed.

[0117] In one example, the robot controller 30 repeats the unit processing until the position and posture of the robot 10 reach the target position and posture. The unit processing includes (i) a state calculation processing for calculating the joint values ​​of each joint mechanism JE, and (ii) a state fixing processing for maintaining one or more joint values ​​of each joint mechanism JE in a specific state. The state calculation processing is an example of a "calculation processing", and the state fixing processing is an example of a "fixing processing".

[0118] Thus, the unit process including the calculation process is repeated. In the calculation process, the robot controller 30 calculates the joint values ​​of the respective joint mechanisms JE. When calculating these joint values, the robot controller 30 calculates the displacement of the respective joint mechanisms JE when the robot 10 operates using inverse kinematics calculation.

[0119] In addition, the unit processing including the state fixing processing is repeated. In this state fixing processing, when the multiple joint mechanisms JE include one or more joint mechanisms JE in a specific state determined based on the joint values ​​of the joint mechanisms, the robot controller 30 sets the joint values ​​of each joint mechanism JE in the specific state to a fixed value.

[0120] In the calculation process, when one or more joint mechanisms JE in a specific state are included in the plurality of joint mechanisms JE, the robot controller 30 performs inverse kinematics calculation by using the joint mechanisms JE other than the joint mechanisms JE in the specific state.

[0121] In the present embodiment, the frequency of erroneous results of inverse kinematics calculation is reduced, and each joint mechanism JE in a state determined based on the joint value of the joint mechanism is prevented from exceeding the motion range.

[0122] The configuration of the robot 10 is not limited to Figure 1 The robot 10 may have Fig. 9 (will be described later) as shown in the simulation model. Fig. 9 In the simulation model shown, the connecting rod LK1 can be Figure 1 The joint mechanism JEp1 of the robot 10 shown is retractable, and the link LK2 can be retracted and retracted through the joint mechanism JEp2. The motion constraint of each joint mechanism JE is not limited to the following two motion ranges: the motion range of the joint mechanism JEr3 moved by the joint mechanism JEp1 and the joint mechanism JEr3 moved by the joint mechanism JEp2. In one example, the constraint on the motion of each joint mechanism JE may include avoiding abnormalities that cause the posture of the robot 10 to lose control. Therefore, the restriction on the motion of each joint mechanism JE can be applied to a part of the multiple joint mechanisms JE, or to all of the multiple joint mechanisms JE. A part of the multiple joint mechanisms JE may be one or more joint devices JE.

[0123] Now refer to Figure 2 A description is given of the hardware configuration of the robot controller 30 .

[0124] Figure 2 Shows Figure 1 An example of the hardware configuration of the robot controller 30 is shown.

[0125] The robot controller 30 includes a processing device 32 that controls each element of the robot controller 30 , a memory 35 that stores various information, a communicator 36 , an input operation device 37 that receives an input operation from an operator, a display 38 , and a driver circuit 39 .

[0126] In one example, the memory 35 includes one or both of the following (i) and (ii): (i) a volatile memory such as a RAM (Random Access Memory) for processing a working area of ​​the device 32, and (ii) a nonvolatile memory such as an EEPROM (Electrically Erasable Programmable Read Only Memory) for storing various types of information (such as a control program PGr). The memory 35 can be detached from and attached to the robot controller 30. Specific examples of the memory 35 include a storage medium such as a memory card detachable from and attached to the robot controller 30, and a storage device communicably connected to the robot controller 30 via a network (e.g., an online storage).

[0127] Figure 2 The memory 35 shown stores a control program PGr. The control program PGr is an example of a “program”. In the present embodiment, the control program PGr includes an application program for the robot controller 30 to control the operation of the robot 10. However, the control program PGr may include a program for operating a robot system in which the processing device 32 controls each element of the robot controller 30. In this embodiment, it is assumed that the memory 35 corresponds to a computer-readable non-transitory recording medium on which the control program PGr is recorded.

[0128] The processing device 32 is a processor that controls the entire robot controller 30 and includes one or more CPUs (central processing units). In one example, the processing device 32 executes the control program PGr stored in the memory 35 and operates according to the control program PGr to act as the motion controller 33. In one example, the motion controller 33 repeats Figure 1 The unit processing described in , until the position and posture of the robot 10 reach the target position and posture. The motion controller 33 drives the robot 10 via a driver circuit 39 (described later) based on the joint values ​​of each joint mechanism JE. The control program PGr may be transmitted from another device via a network.

[0129] In one example, if the processing device 32 includes two or more CPUs, one, some or all functions of the processing device 32 can be implemented by the CPUs operating in cooperation with programs including the control program PGr. In addition to or in place of one, some or all CPUs, the processing device 32 may also include hardware such as a GPU (graphics processing unit), a DSP (digital signal processor) or an FPGA (field programmable gate array). In this case, one, some or all functions of the processing device 32 may be implemented by hardware such as a DSP.

[0130] The communicator 36 is a hardware device that communicates with a device outside the robot controller 30. In one example, the communicator 36 communicates with the external device through short-range wireless communication. The communicator 36 can communicate with the external device via a mobile network or a network.

[0131] The input operation device 37 is an input device such as a keyboard, a mouse, a switch, a button, and a sensor. In one example, the input operation device 37 receives an input operation from an operator and outputs information about the input operation to the processing device 32. The input operation device 37 may be a touch panel that detects a touch input to the screen of the display 38.

[0132] The display 38 is an output device that performs output to the outside. In one example, the display 38 displays an image under the control of the processing device 32. The input operation device 37 and the display 38 may be an integral device such as a touch panel.

[0133] The driver circuit 39 is a hardware device that outputs a signal for driving the robot 10 to the robot 10 under the control of the processing device 32 (specifically, the motion controller 33). In one example, the driver circuit 39 outputs a signal defined based on the joint values ​​of each joint mechanism JE to the robot 10. These signals are used to drive each motor MOr1, MOr2, MOr3, MOr4, MOr5, MOr6, MOp1 and MOp2. These motors MOr1, MOr2, MOr3, MOr4, MOr5 and MOr6 drive the joint mechanisms JEr1, JE2, JE3, JE4, JE5 and JE6 respectively. The motors MOp1 and MOp2 drive the joint mechanisms JEp1 and JEp2 respectively. In the following, these motors MOr1, MOr2, MOr3, MOr4, MOr5, MOr6, MOp1 and MOp2 are collectively referred to as motors MO.

[0134] Therefore, the robot controller 30 controls the operation of the robot 10 by controlling the plurality of motors MO.

[0135] Now refer to Figure 3 A description is given of an outline of the operation of the robot controller 30 .

[0136] Figure 3 Shows Figure 1 Flowchart showing an example of the operation of the robot controller 30. Figure 3 In the illustrated operation, joint values ​​of the respective joint mechanisms JE (eg, the position of the joint mechanism JE and the rotation angle of the joint mechanism JEr) are calculated, and the joint values ​​set the position and posture of the hand of the robot 10 to the target position and posture. Figure 3 The operations shown are performed by a processing device 32 acting as a motion controller 33. In other words, Figure 3 In the illustrated operation (a series of steps S100 to S520 ), the processing device 32 functions as the motion controller 33 .

[0137] First, in step S100, the motion controller 33 calculates the difference between (i) the position and posture of the hand of the robot 10 and (ii) the target position and posture. Specifically, the motion controller 33 calculates the position and posture of the hand of the robot 10 based on the current joint values ​​of each joint mechanism JE. Then, the motion controller 33 calculates the difference between (i) the calculated position and posture of the hand of the robot 10 and (ii) the target position and posture.

[0138] Then, in step S120, the motion controller 33 determines whether the difference between (i) the position and posture of the hand of the robot 10 and (ii) the target position and posture is lower than an acceptable value. In one example, when the difference between (i) the position and posture of the hand of the robot 10 and (ii) the target position and posture is lower than an acceptable value, the acceptable value is defined as an approximation of the position and posture equivalent to the target position and posture.

[0139] When the determination result in step S120 is positive, the motion controller 33 ends Figure 3 In this case, the joint values ​​of the respective joint mechanisms JE calculated in step S100 are used as the latest joint values ​​to set the position and posture of the hand of the robot 10 to the target position and posture. When a series of steps S100 to S520 are repeated two or more times, the updated joint values ​​obtained in the previous step S420 are used in the current step S100.

[0140] In contrast, when the result in step S120 is negative, the motion controller 33 advances the process to step S200 .

[0141] In step S200 , the motion controller 33 calculates the Jacobian matrix J based on the current joint values ​​of each joint mechanism JE. Then, the motion controller 33 advances the process to step S300 .

[0142] In step S300, the motion controller 33 determines whether the plurality of joint mechanisms JE include one or more joint mechanisms JE in a specific state. When the determination result in step S300 is positive, the motion controller 33 advances the process to step S320. On the contrary, when the determination result in step S300 is negative, the motion controller 33 advances the process to step S400.

[0143] In step S320, the motion controller 33 sets the elements of each joint mechanism JE in a specific state among the multiple elements of the Jacobian matrix J to a value substantially zero. As a result, the elements in the column corresponding to each joint mechanism JE in a specific state in the Jacobian matrix J are set to a value substantially zero. Then, the motion controller 33 advances the processing to step S400.

[0144] In step S400, the motion controller 33 calculates the Jacobian matrix J by using the pseudo-inverse matrix J + To calculate the displacement of each joint mechanism JE (for example, the joint velocity θi(·) of each joint mechanism JE). When the plurality of joint mechanisms JE include one or more joint mechanisms JE in a specific state, the displacement of each joint mechanism JE in the specific state is zero or approximately zero, because the elements in the column corresponding to each joint mechanism JE in the specific state in the Jacobian matrix J are set to approximately zero (regarded as zero value). After step S400, the motion controller 33 advances the processing to step S420.

[0145] In step S420, the motion controller 33 updates the joint values ​​of each joint mechanism JE based on the displacement of each joint mechanism JE. Specifically, in order to update the joint values ​​of each joint mechanism JE, the motion controller 33 adds the displacement of each joint mechanism JE to the joint values ​​of each joint mechanism JE obtained when calculating the position and posture of the hand of the robot 10 in step S100.

[0146] When the multiple joint mechanisms JE include one or more joint mechanisms JE in a specific state, the displacement of each joint mechanism JE in the specific state is found to be zero or approximately zero. As a result, the updated joint values ​​of each joint mechanism in step S420 are the same as or (deemed to be) substantially the same as the values ​​before the update. Therefore, the joint mechanism JE in a specific state is maintained. In this embodiment, each joint mechanism JE can be prevented from being in an unsatisfactory state of the constraint, that is, it is prevented from exceeding the range of motion.

[0147] Thereafter, in step S500, the motion controller 33 increases the number of loops by 1. Figure 3 Before the operation shown begins, the loop count is initialized to zero.

[0148] Thereafter, in step S520, the motion controller 33 determines whether the number of cycles is lower than an upper limit. The upper limit indicates a limit on the number of repetitions of a series of steps S100 to S520. Figure 3 Sets an upper limit to terminate the operation when the indicated operation fails to converge.

[0149] When the determination result in step S520 is negative, the motion controller 33 stops Figure 3 In this case, the updated joint values ​​of each joint mechanism JE in step S420 are used for the latest joint value to be calculated. However, when the number of loops exceeds the upper limit, Figure 3 During the operation shown, the latest joint value may not make the position and posture of the hand of the robot 10 the target position and posture. Based on this fact, the motion controller 33 can notify the operator of an error. The error means that the calculation of the joint values ​​of each joint mechanism JE does not converge when setting the position and posture of the hand of the robot 10 to the target position and posture. In one example, the motion controller 33 can display the error on the display 38.

[0150] On the contrary, when the determination result in step S520 is positive, the motion controller 33 returns the processing to step S100. Therefore, a series of steps S100 to S520 are repeated until the final joint values ​​of each joint mechanism JE are calculated to set the position and posture of the hand of the robot 10 to the target position and posture. Alternatively, the series of steps are repeated until the number of loops exceeds the upper limit.

[0151] In one example, a series of steps S400 and S420 corresponds to Figure 1 A series of steps S300 and S320 correspond to Figure 1 A series of steps S100 to S520 corresponds to a “unit process including a calculation process and a fixed process”. Specifically, a series of steps S100 to S520 is an example of a “unit process”. A series of steps S400 and S420 is an example of a “calculation process”, and a series of steps S300 and S320 is an example of a “fixed process”. In addition to steps S400 and S420, the calculation process may further include step S200. A series of steps S400 and S420 may be a “calculation process”.

[0152] The operation of the robot controller 30 is not limited to Figure 3 In one example, steps S500 and S520 may be omitted. In this case, after step S420, the motion controller 33 returns the process to step S100. Since steps S500 and S520 are omitted, Figure 3The operations shown may be terminated by an interrupt. Steps S300 and S320 may be merged into step S200.

[0153] Reference Figure 4 and Figure 5 , an overview will now be given of the operation of the robot controller 30 by which the robot 10 changes via one or more target states to a final target state.

[0154] Figure 4 Flowchart showing an example of the operation of the robot controller 30, by which the position and posture of the hand of the robot 10 are sequentially changed to one or more target positions PP and postures PS. Figure 4 In the illustrated operation, n target positions PP and postures PS are assumed, where n is a natural number of 2 or more. Hereinafter, the n target positions PP and postures PS are referred to as n target states.

[0155] exist Figure 4 In the operation shown, a series of steps S8, S600 and S700 to S760 are combined into Figure 3 In the operation shown in FIG. 10 , in addition, in the update process, as with Figure 3 The series of steps S200 to S420 shown in FIG. 1 correspond to step S140, updating the joint value. Figure 5 A detailed description of the update process in step S140 is described. In one example, the update process in step S140 is similar to Figure 3 However, when the plurality of joint mechanisms JE include one or more joint mechanisms JE in a specific state, the execution Figure 5 The step S310 shown in FIG. 140 updates the joint values ​​of each joint mechanism JE through the updating process of step S140.

[0156] In this embodiment, it is assumed that Figure 4 Before the operation shown is started, as the initial state of the robot 10, the plurality of joint mechanisms JE do not include a joint mechanism JE in a specific state. Figure 4 In the operation, it is also assumed that the initial variable k is 1, where k is a natural number greater than 1 and less than n. In the following, the kth target position PP is represented as "position PPk" and the kth posture PS is represented as "posture PSk". In one example, position PP1 represents the first target position PP, and posture PS1 represents the first target posture PS. Position PPn represents the nth target position (final target position), and posture PSn represents the nth posture PP (final target posture).

[0157] exist Figure 4In the operation shown, n target positions PP and n postures PS are defined in the robot controller 30, which represent the trajectory of the robot 10 from the initial state to the final target state. Specifically, the robot controller 30 updates the target position PPk and posture PSk of the hand of the robot 10 by changing the variable k in order from 1 to n.

[0158] First, in step S8, the motion controller 33 sets the kth target position PPk and posture PSk of the hand of the robot 10. Figure 4 When the operation shown starts, at step S8, the motion controller 33 sets the first position PP1 and posture PS1 of the first target (k=1). After step S8, the motion controller 33 advances the process to step S100.

[0159] A series of steps S100 and S120 and Figure 3 However, when the determination result in step S120 is positive, the motion controller 33 advances the process to step S700. On the contrary, when the determination result in step S120 is negative, the motion controller 33 performs the update process in step S140 and then advances the process to step S500.

[0160] A series of steps S500 and S520 and Figure 3 The steps are the same as shown in Figure 4 In the operation shown, when the determination result in step S520 is negative, the motion controller 33 stops operating the robot 10 due to an error in step S600. In this case, Figure 4 The operation shown ends. On the contrary, when the result in step S520 is positive, the motion controller 33 Figure 3 The operation shown returns the process to step S100 in a similar manner.

[0161] As described above, when the determination result in step S120 is affirmative, step S700 is executed.

[0162] In step S700, the motion controller 33 controls each joint mechanism JE according to the updated joint value of each joint mechanism JE through the update processing in step S140. As a result, the position and posture of the hand of the robot 10 are changed to the target position PPk and the posture PSk. If the operator teaches the robot 10 to operate in step S700, the motion controller 33 can store the joint values ​​of each joint mechanism JE updated by the update processing in step S140 in the memory 35 as the joint values ​​of the target position PPk and the posture PSk.

[0163] A description will be given of the case where the difference between (i) the initial position and posture of the hand of the robot 10 in the initial state and (ii) the target position PP1 and posture PS1 is lower than the acceptable value. In this case, the determination result in step S120 is affirmative, and the updating of the joint values ​​of the various joint mechanisms JE in step S140 is no longer performed. Therefore, the phrase "the joint values ​​of the various joint mechanisms JE updated by the updating process in step S140" is read as "the initial joint values ​​of the various joint mechanisms JE of the robot 10 in the initial state". In one example, when the determination result in step S120 is affirmative, and when the updating process in step S140 is no longer performed, the motion controller 33 maintains the joint values ​​of the various joint mechanisms JE as the joint values ​​of the robot 10 in the initial state in step S700.

[0164] After step S700 , the motion controller 33 advances the process to step S720 .

[0165] In step S720, the motion controller 33 determines whether the variable k is less than n. When the determination result in step S720 is negative, that is, when the position and posture of the hand of the robot 10 are changed to the final target position PPn and posture PSn, the motion controller 33 stops. Figure 3 In contrast, when the result in step S720 is positive, the motion controller 33 resets the number of loops to zero in step S740 and then advances the process to step S760.

[0166] In step S760, the motion controller 33 increments the variable k by 1 (k=k+1). Then, the motion controller 33 returns the process to step S8. In step S8, the next target position PPk and posture PSk of the hand of the robot 10 are set.

[0167] Therefore, in Figure 4 In the operation shown, for each of the n target states (position PP and posture PS), a series of steps S100 to S520 (i.e., unit processing) are repeated until the difference is below an acceptable value. Here, the difference is the difference between (i) the position and posture of the hand of the robot 10 and (ii) the target position PPk and posture PSk.

[0168] Reference Figure 5 , a description will now be given of the update processing of step S140.

[0169] Figure 5 Shows Figure 4 Flowchart of an example of an update process shown in FIG. Figure 4 In the updating process of step S140 shown in FIG. 1 , the processing device 32 used as the motion controller 33 executes Figure 5The series of steps S200 to S420 shown. Figure 4 When the determination result in step S120 is negative, step S200 is executed. After step S420, Figure 4 Step S500 is shown.

[0170] In the following, the phrase "kth target state" is introduced. For example, the expression "processing performed when the target position PP and the posture PS are the kth target position PPk and the posture PSk" is rewritten as "processing in the kth target state". Unless otherwise specified, the update processing means the update processing in the kth target state.

[0171] A series of steps S200 and S300 and Figure 3 The steps are the same as shown in Figure 5 In the operation shown in FIG. 1 , when the determination result in step S300 is positive, the motion controller 33 advances the process to step S310. On the contrary, when the determination result in step S300 is negative, the motion controller 33 proceeds to step S310. Figure 3 The process proceeds to step S400 in a similar manner to the operation shown.

[0172] In step S310, the motion controller 33 returns the joint values ​​of each joint mechanism JE to the values ​​before the update. In other words, the motion controller 33 cancels the update of these joint values ​​obtained in the previous step S420 (through the previous update process). Specifically, the motion controller 33 returns the joint values ​​of each joint mechanism JE to the joint values ​​before the update that were not updated in the previous step S420 (through the previous update process). In other words, the motion controller 33 returns the "first joint value" updated in the previous step S420 to the "second joint value" representing the joint value before the update.

[0173] Here, a description will be given of the first update process after the position PP and the posture PS are updated to the target position PPk and the posture PSk. When the determination result in step S300 is positive, the previous update process represents the last update process of the (k-1)th target state. In step S310, the motion controller 33 returns the joint values ​​of each joint mechanism JE to the joint values ​​obtained before the joint values ​​have been updated by the last update process (the last step S420) in the (k-1)th target state.

[0174] After step S310, the motion controller 33 advances the processing to Figure 3 The same step S320 is shown. Figure 5In the example of , the Jacobian matrix J to be used in step S320 is calculated in step S200 before step S310. However, the Jacobian matrix J used in step S320 may be calculated based on the joint values ​​of the respective joint mechanisms JE obtained after step S310 (e.g., the Jacobian matrix J calculated in the previous update process of step S200).

[0175] In step S300 before step S310 (cancelling the update of the joint values ​​of each joint mechanism JE), one or more joint mechanisms JE in a specific state to be fixed in step S320 are confirmed. In other words, based on the joint values ​​("first joint values") obtained before canceling the update of the joint values ​​of each joint mechanism JE, one or more joint mechanisms JE in a specific state to be processed in step S320 are confirmed.

[0176] After step S320, the motion controller 33 advances the process to step S400. A series of steps S400 and S420 (calculation process) is similar to Figure 3 When the plurality of joint mechanisms JE include one or more joint mechanisms JE in a specific state, Figure 5 Step S310 is executed in the updating process shown. Therefore, the updating process of step S420 is executed for two or more joint values ​​of each joint mechanism JE in a non-specific state (a state that is not a specific state).

[0177] Therefore, when the plurality of joint mechanisms JE include one or more joint mechanisms JE in a specific state, Figure 5 In the update process shown, the update of the joint values ​​of each joint mechanism JE in the previous step S420 (by the previous update process) is canceled in the current step S320 (current update process). In other words, the update of the joint values ​​of each joint mechanism JE calculated in the previous series of steps S400 and S420 (previous calculation process) is canceled.

[0178] As described above, based on the joint values ​​obtained before canceling the update, one or more joint mechanisms JE in a specific state are confirmed to be fixed in step S320. When one or more joint mechanisms JE in a specific state are included in the plurality of joint mechanisms JE, steps S310 (cancellation) and S320 (fixing) are performed, and then steps S400 and S420 are performed.

[0179] like Figure 5 As shown, in the updating process, the updating process of step S420 is performed on two or more joint values ​​of each joint mechanism JE in a non-specific state. Figure 4 and Figure 5 In the illustrated operation, duplication of a series of steps S100 to S520 (unit processing) is prevented.

[0180] The operation of the robot controller 30 (specifically, the operation performed when the position and posture of the hand of the robot 10 are sequentially changed to the target position PP and posture PS) is not limited to Figure 4 and Figure 5 In one example, step S740 may be after step S760, or may be combined with step S760. Alternatively, the operation of the robot controller 30 (specifically, the operation performed when the position and posture of the hand of the robot 10 are sequentially changed to the target position PP and the posture PS) may be Figure 6 or Figure 7 The operation shown.

[0181] Figure 6 A flowchart showing another example of the operation of the robot controller 30 when the position and posture of the hand of the robot 10 are sequentially changed to the target position PP and posture PS. Figure 6 The operations shown are similar to Figure 4 However, the update process of step S140A is performed instead of Figure 4 At the same time, a series of steps S780 and S782 are integrated into Figure 4 in operation.

[0182] The update process of step S140A is performed by Figure 3 The process shown consists of a series of steps S200 to S420. Figure 6 The series of steps S100 to S520 shown are Figure 3 The steps shown are similar. Figure 6 The series of steps S100 to S520 shown do not involve Figure 5 Step S310 shown (cancel the updating of the joint values ​​of each joint mechanism JE). Figure 6 The operation shown involves steps S780 and S782 following step S760. However, the update process of step S140A is not performed. Figure 5 The main description of steps S780 and S782 will be given below.

[0183] After step S760, the motion controller 33 advances the process to step S780.

[0184] In step S780, the motion controller 33 determines whether the plurality of joint mechanisms JE include one or more joint mechanisms JE in a specific state. The joint mechanisms JE used in step S780 are the plurality of joint mechanisms JE of the robot 10 that change the position and posture of the hand to the target position PPk and posture PSk in step S700.

[0185] When the determination result in step S780 is negative, the motion controller 33 returns the process to step S8. Specifically, after the position and posture of the hand of the robot 10 are changed to the target position PPk and posture PSk in step S700, when the joint mechanism JE in a specific state is not included in the plurality of joint mechanisms JE, the motion controller 33 returns the process to step S8. On the contrary, when the result in step S780 is positive, the motion controller 33 advances the process to step S782.

[0186] In step S782, the motion controller 33 changes the joint values ​​of the joint mechanism JE in the specific state to joint values ​​that satisfy the following (i) and (ii): (i) each changed value is within the motion range of the joint mechanism JE in the specific state, and (ii) the value of each changed value corresponds to a non-specific state. Then, the motion controller 33 returns the processing to step S8. After step S782, in each of the n target states (position PP and posture PS), the initial joint value of each joint mechanism JE is set to a joint value corresponding to the non-specific state.

[0187] The changed joint value in step S782 can take a value that satisfies the following (i) and (ii): (i) the changed value is within the motion range of the joint mechanism JE in a specific state, and (ii) the changed value minimizes the difference between the updated value and the value before the update and is within the range of joint values ​​corresponding to a non-specific state.

[0188] Therefore, in Figure 6 In the operation shown, a series of steps S100 to S520 (unit processing) are repeated. When one or more joint mechanisms JE in a specific state are included in the multiple joint mechanisms JE in the initial state before repeating the unit processing, the joint mechanism JE in the specific state is changed to a joint value corresponding to a non-specific state before the first unit processing. Therefore, in each of the n target states (position PP and posture PS), the initial joint value of each joint mechanism JE can be prevented from being changed to a joint value corresponding to a specific state. Therefore, it is possible to prevent the joint mechanism JE that has been changed to a specific state in the kth target state from being fixed to a specific state after the (k+1)th subsequent target state.

[0189] exist Figure 6In the operation shown, step S740 may be after step S760, or may be combined with step S760.

[0190] Reference Figure 7 , another example of the operation of the robot controller 30 by which the robot 10 changes via one or more target states to a final target state will now be given.

[0191] Figure 7 A flowchart showing another example of the operation of the robot controller 30 by which the position and posture of the hand of the robot 10 are sequentially changed to one or more target positions PP and postures PS. Figure 7 The operations shown are similar to Figure 4 However, the update process of step S140A is performed instead of Figure 4 The update process of step S140 shown in FIG. 1 is performed, and a series of steps S10 to S50 are merged into Figure 4 A main description of the series of steps S10 to S50 will be given below.

[0192] Steps S10, S12 and S50 are the same as steps S100, S120 and S500, respectively. The first update process of step S14 is given by omitting steps S300 and S320 in the update process of step S140A. Figure 8 The first update process in step S14 is described.

[0193] After step S8 , the motion controller 33 advances the process to step S10 .

[0194] In step S10, in a manner similar to step S100, the motion controller 33 calculates the difference between (i) the position and posture of the hand of the robot 10 and (ii) the target position PPk and posture PSk. Then, in step S120, in a manner similar to step S120, the motion controller 33 determines whether the difference between (i) the position and posture of the hand of the robot 10 and (ii) the target position and posture is lower than an acceptable value.

[0195] When the determination result in step S12 is positive, the motion controller 33 advances the process to step S700. On the contrary, if the determination result in step S12 is negative, the motion controller 33 advances the process to step S14.

[0196] In step S14, the motion controller 33 performs the first update process in a similar manner to a series of steps S200, S400, and S420. Through the first update process of step S14, the joint values ​​of the respective joint mechanisms JE are updated for the first time.

[0197] After the first update process in step S14 , the motion controller 33 increases the number of loops by 1 in step S50 , and advances the process to step S100 .

[0198] Reference Figure 8 , the first update process at step S14 will now be described.

[0199] Figure 8 Shows Figure 7 Flowchart of an example of the first update process shown in FIG. Figure 7 The first update process of step S14 shown in FIG. 1 is performed by the processing device 32 serving as the motion controller 33. Figure 8 The series of steps S20 to S42 shown. Figure 4 If the determination result in step S12 is negative, step S20 is executed. After step S42, Figure 7 Step S50 is shown.

[0200] In step S20, the motion controller 33 calculates the Jacobian matrix J based on the current joint values ​​of the respective joint mechanisms JE in a manner similar to step S200. The motion controller 33 then advances the process to step S40.

[0201] In step S40, in a similar manner to step S400, the motion controller 33 uses the pseudo-inverse matrix J of the Jacobian matrix J + The displacement of each joint mechanism JE is calculated. Then, the motion controller 33 advances the process to step S42.

[0202] In step S42, in a manner similar to step S420, the motion controller 33 updates the joint values ​​of each joint mechanism JE based on the displacement of each joint mechanism JE. Then, the motion controller 33 advances the processing to Figure 7 Step S50 is shown.

[0203] therefore, Figure 8 The first update process shown does not involve Figure 3 Steps S300 and S320 (fixed processing) are shown. Figure 8 In the first update process shown, the joint values ​​of each joint mechanism JE are updated regardless of whether the joint mechanism JE is in a specific state. Therefore, one or more joint values ​​of each joint mechanism JE in a specific state after step S700 in the (k-1)th target state can be updated to joint values ​​of each joint mechanism JE in a non-specific state. In this case, when the unit process (a series of steps S100 to S520) is repeated, it is possible to prevent the first unit process from starting from the joint value corresponding to the specific state.

[0204] However, in Figure 8 In the first update process shown, the joint value of each joint mechanism JE in a specific state can be updated to exceed the range of motion. Specifically, the first update process is repeated for each update of the target position PPk and the posture PSk, so that each joint value of the joint mechanism JE in a specific state can be repeatedly updated to exceed the range of motion. In this case, in the repeated first update process, the joint value of each joint mechanism JE in a specific state can be updated to exceed the range of motion.

[0205] Based on this fact, preferably, the range of the additional motion space of the joint in a specific state is greater than the displacement of the joint value change of one update. More preferably, when multiple (n) updates cause the joint value of the joint mechanism JE to exceed the motion range, the range of the additional space is greater than the sum of the displacements of the updated joint values. Or, Figure 7 In the operation shown, the following steps can be performed between step S14 and step S100: Figure 6 Steps S780 and S782 are shown to be the same steps.

[0206] Reference Figures 9 to 20 , a simulation example of setting the position and posture of the hand of the robot 10 to the target position and posture will now be given.

[0207] Fig. 9 A description of a model used in simulation is shown. Hereinafter, the model used in simulation is also referred to as a simulation model.

[0208] In order to facilitate understanding of the simulation, a model robot 10 having joint mechanisms JEe (JEe1 and JEe2) is used instead of Figure 1 The robot shown has joint mechanisms JEp (JEp1 and JEp2). When controlling the motor MO for driving each joint mechanism JE, Fig. 9 The robot 10 shown in FIG. Figure 1 In one example, the robot 10 shown in FIG. Fig. 9 In the robot 10 shown, the link LK1A is extended and retracted, thereby causing the joint mechanism JEr3 to move along the extension direction of the link LK1A. In addition, the link LK2A having both ends is extended and retracted. As a result, the end connected to the joint mechanism JEr4 moves relative to the joint mechanism JEr3 along the extension direction of the link LK2A. First, the joint mechanisms JEe1 and JEe2 will be described.

[0209] The joint mechanism JEe1 is a translation joint through which the link LK1A is extended and retracted along the axis Axe1. The joint mechanism JEe1 is an example of a "first extension mechanism". The link LK1A includes a support portion LK1a, a movable portion LK1b, and a movable portion LK1c. The joint mechanism JEe2 is a translation joint through which the link LK2A is extended and retracted along the axis Axe2. The joint mechanism JEe2 is an example of a "second extension mechanism". The link LK2A includes a support portion LK2a, a movable portion LK2b, and a movable portion LK2c. The axis Axe1 extends along the link LK1A, and the axis Axe2 extends along the link LK2A.

[0210] The link LK1A is an example of a "first link", and the link LK2A is an example of a "second link". The support portion LK1a is an example of a "first support portion" and is connected to the base body BDP via a joint mechanism JEr2. The movable portion LK1c is an example of a "first movable portion" and is connected to the support portion LK2a of the link LK2a via a joint mechanism JEr3. The support portion LK2a is an example of a "second support portion". The movable portion LK2c is an example of a "second movable portion" and is connected to the end segment TP1 via a joint mechanism JEr4.

[0211] In one example, the movable part LK1b is connected to the movable part LK1c so as to move together with the movable part LK1c. The movable part LK1b is also connected to the support part LK1a so as to move relative to the support part LK1a. The movable part LK1b moves along the axis Axe1 relative to the support part LK1a through the joint mechanism JEe1, so that the movable part LK1c moves along the axis Axe1 relative to the support part LK1a. As a result, the link LK1A is extended and retracted along the axis Axe1.

[0212] In one example, the movable part LK2b is connected to the movable part LK2c so as to move together with the movable part LK2c. The movable part LK2b is also connected to the support part LK2a so as to move relative to the support part LK2a. The movable part LK2b moves along the axis Axe2 relative to the support part LK2a through the joint mechanism JEe2, so that the movable part LK2c moves along the axis AXe2 relative to the support part LK2a. As a result, the link LK2A is extended and retracted along the axis Axe2.

[0213] like Fig. 9As shown, some coordinate systems ∑In introduced in the simulation model correspond one to one with the joint mechanisms JE. The coordinate systems ∑ are numbered in ascending order from "1" to "8" according to the distance between the base and each joint mechanism JE. The joint mechanism JEr1 is the first joint, the joint mechanism JEr2 is the second joint, and the joint mechanism JEe1 is the third joint. The joint mechanism JEr3 is the fourth joint, the joint mechanism JEe2 is the fifth joint, and the joint mechanism JEr4 is the sixth joint. The joint mechanism JEr5 is the seventh joint, and the joint mechanism JEr6 is the eighth joint.

[0214] The coordinate system ∑i of the i-th joint mechanism JE (i.e., the i-th joint) is a three-axis orthogonal coordinate system having the Xi axis, Yi axis, and Zi axis orthogonal to each other. Fig. 9 In the example shown, "i" represents a natural number from 1 to 8. The coordinate system Σ8 of the eighth joint mechanism JEr6 corresponds to the coordinate system of the end section of the robot 10. Fig. 9 , for the sake of clarity of the drawing, the Y axis of each of the coordinate systems ∑1 to ∑7 is omitted.

[0215] In one example, when the i-th joint mechanism JE is a rotational joint, the Zi axis of the coordinate system ∑i corresponds to the rotation axis of the i-th joint mechanism JE. When the i-th joint mechanism JE is a translational joint, the Zi axis corresponds to the telescopic axis of the link LK moved by the i-th joint mechanism JE. In one example, the Xi axis of the coordinate system ∑i is basically the common normal of the Zi axis and the Zi+1 axis.

[0216] The i-th joint mechanism JE and the element J of the i-th column of the Jacobian matrix J i In the Jacobian matrix J, the first column element J 1 Represents the joint mechanism JEr1, the second column element J 2 Represents the joint mechanism JEr2, the third column element J 3 Represents the joint mechanism JEe1. The fourth column element J 4 Represents the joint mechanism JEr3, the fifth column element J 5 Represents the joint mechanism JEe2, the sixth column element J 6 Represents the joint mechanism JEr4. The seventh column element J 7 Represents the joint mechanism JEr5, the eighth column element J 8 Indicates the joint mechanism JEr6.

[0217] The simulation settings are as follows: The link length L1 between the origin of the reference coordinate system ∑0 and the origin of the coordinate system ∑1 is 0.2409m. The link length L6 between the origin of the coordinate system ∑5 and the origin of the coordinate system ∑6 is 0.1m (in the simulation, the parameter of the link length L6 is -0.1m). The link length L7 between the origin of the coordinate system ∑6 and the origin of the coordinate system ∑7 is 0.1m. The link length L8 between the origin of the coordinate system ∑7 and the origin of the coordinate system ∑8 is 0.05m. The motion (extension) range of the link LK1A moved by the joint mechanism JEe1 is 0.25m to 0.5m. The motion (extension) range of the link LK2A moved by the joint mechanism JEe2 is 0.3m to 0.5m.

[0218] In the simulation, the hand of the robot 10 moves in the positive direction of the X0 axis. Fig.10 As shown, the initial joint values ​​of the joint mechanisms JE of the robot 10 are represented by θint.

[0219] Fig.10 Shows Fig. 9 Description of the initial joint values ​​θint of the simulation model shown.

[0220] Fig.10 The upper star mark shows that the initial joint value θint of the joint mechanism JEe1 is 0.5 m, which is the upper limit of the motion range of the link LK1A. Fig.10 The lower star mark of shows that the initial joint value θint of the joint mechanism JEe2 is 0.5 m, which is the upper limit of the motion range of the link LK2A. The joint mechanisms JEe1 and JEe2 are in a restricted state.

[0221] Based on this fact, Fig.16 In the embodiment shown (to be described later), among the multiple elements of the Jacobian matrix J, the element J corresponding to the joint mechanism JEe1 is 3 is zero, the element J corresponding to the joint mechanism JEe2 4 is also zero. On the contrary, Fig.12 As shown, the comparative control method without fixed processing does not involve the elements J of the elements of the Jacobian matrix J for each joint mechanism JEe1 and JEe2. 3 and J 4 Fix it.

[0222] Fig.11 A description of the displacement Δr of the hand used in the simulation is shown. In this simulation, a jog motion is performed to move the hand of the robot 10 by 0.00272 m in the positive direction of the X0 axis. Fig.11 It shows that the displacement Δr of the hand in the positive direction of the X0 axis is 0.00272 m.

[0223] In this simulation, as described above, the hand of the robot 10 moves 0.00272 m in the positive direction of the X0 axis from the limit state indicating that the links LK1A and LK2A extend to the upper limit through the joint mechanisms JEe1 and JEe2. + r(·)” calculates each joint displacement Δθ relative to the hand displacement Δr. Each joint displacement Δθ is then added to the corresponding initial joint value θint, and the final joint value θend of each joint after the hand i movement is completed is calculated.

[0224] First, refer to Figures 12 to 15 , a simulation of a comparative control method without fixed processing will now be described.

[0225] Fig.12 A description of the Jacobian matrix J used in the comparative control methods is shown. Fig.13 Shows Fig.12 The pseudo-inverse matrix J of the Jacobian matrix J shown in + Description.

[0226] based on Fig. 9 The simulation model described in Fig.10 The Jacobian matrix J is calculated from the initial joint values ​​θint shown in . A known method for calculating the Jacobian matrix J can be used, so its description is omitted. The comparative control method involves calculating the Jacobian matrix J assuming that all eight joint mechanisms JE (eight axes Ax) move. Fig.12 The elements J corresponding to the joint mechanisms JEe1 and JEe2 in the restricted state are shown. 3 and J 4 Not fixed to zero value.

[0227] According to the Jacobian matrix J (see Fig.12 ) Calculate the pseudo-inverse matrix J + (See Fig.13 ). The known method for calculating the pseudo-inverse matrix J can be used + Therefore, the description of the method is omitted. Fig.13 As shown, according to the pseudo-inverse matrix J + Formula (7) is used to calculate the joint displacement Δθ.

[0228] Fig.14 Shows the use of Fig.13 The pseudo-inverse matrix J is shown + The comparative control method does not involve a fixed process, and thus calculates the joint displacement Δθ of the joint mechanisms JEe1 and JEe2 in the restricted state (see Fig.14 If the joint displacement Δθ is used (see Fig.14) to calculate the final joint value θend after the hand movement is completed, then Fig.15 As shown, the joint mechanisms JEe1 and JEe2 are not within the range of motion.

[0229] Fig.15 Shown based on Fig.14 The final joint value θend is calculated by the joint displacement Δθ shown in the figure. Fig.14 The joint displacement Δθ shown is Fig.10 The initial joint values ​​θint shown are added to calculate the final joint values ​​θend. Fig.15 The final joint value θend shown in is given by rounding the addition result of the displacement Δθ to the initial joint value θint to the seventh decimal place.

[0230] Fig.15 The upper star mark shows that the final joint value θend of the joint mechanism JEe1 exceeds the upper limit of the motion range of the link LK1A, 0.5 m. Fig.15 The lower star mark also shows that the final joint value θend of the joint mechanism JEe2 also exceeds the upper limit of the motion range of the link LK2A, 0.5m. Therefore, the comparative control method cannot provide a correct solution for the inverse kinematics calculation (a solution that satisfies the joint mechanism JE moving within the motion range). The erroneous result of the calculation cannot allow the robot 10 to operate correctly.

[0231] Reference Figures 16 to 19 , a simulation of the fixing process according to the present embodiment will now be described.

[0232] Fig.16 A descriptive diagram of the Jacobian matrix J when the joint mechanism JE in a specific state is fixed is shown. Fig.17 Shows Fig.16 The pseudo-inverse matrix J of the Jacobian matrix J is shown + Description diagram of .

[0233] like Fig.10 As described above, the joint mechanisms JEe1 and JEe2 are in a restricted state. This means that the joint mechanisms JEe1 and JEe2 are in a specific state. Compared with the restricted state, in the specific state, the movement of each joint still has a margin. Based on this fact, in this embodiment, Fig.16 As shown, among the multiple elements of the Jacobian matrix J, the elements J of each joint mechanism JEe1 and JEe2 in a specific state are 3 and J 4 is set to zero. Otherwise, Fig.16 The Jacobian matrix J shown is Fig.12 The Jacobian matrix is ​​similar to that shown in 3 and J 4Set to zero value.

[0234] Therefore, in this embodiment, the element J 3 and J 4 is set to zero. As a result, each element J 3 and J 4 The corresponding joint mechanisms JEe1 and JEe2 are regarded as fixed joints (without displacement), so that inverse kinematics calculations can be performed.

[0235] Specifically, according to the Jacobian matrix J (see Fig.16 ) Calculate the pseudo-inverse matrix J + (See Fig.17 ). According to the pseudo-inverse matrix J + Formula (7), such as Fig.17 The joint displacement Δθ is calculated as shown.

[0236] Fig.18 Shows the use of Fig.17 The pseudo-inverse matrix J shown is the calculated joint displacement Δθ. In this embodiment, the element J of the Jacobian matrix J is 3 and J 4 is set to zero. As a result, the element J 3 and J 4 The displacement Δθ of the corresponding joint mechanisms JEe1 and JEe2 is considered to be zero (see Fig.17 ).

[0237] Therefore, in this embodiment, the displacement Δθ of the joint mechanisms JEe1 and JEe2 in the restricted state is regarded as zero. Fig.19 As shown, in use Fig.18 After the final joint value θend is calculated based on the displacement Δθ shown, the joint mechanisms JEe1 and JEe2 are within the motion range based on the calculated final joint value θend.

[0238] Fig.19 Shown based on Fig.18 The final joint value θend is calculated by the joint displacement Δθ shown in the figure. Fig.18 The joint displacement Δθ shown is Fig.10 The final joint value θend is calculated by adding the initial joint value θint shown in Fig.15 In a similar manner to the final joint values ​​θend shown in Fig.19 The final joint value θend shown in is given by rounding the addition result of the displacement Δθ to the initial joint value θint to the seventh decimal place.

[0239] Fig.19The upper star mark of shows that the final joint value θend of the joint mechanism JEe1 is the upper limit 0.5 m of the motion range of the link LK1A. This final joint value θend is the same as the initial joint value θint of the joint mechanism JEe1. Fig.19 The lower star mark also shows that the final joint value θend of the joint mechanism JEe2 is 0.5m, the upper limit of the motion range of the link LK2A. This final joint value θend is the same as the initial joint value θint of the joint mechanism JEe2. Therefore, this embodiment provides a correct solution for the inverse kinematics calculation (a solution that satisfies the joint mechanism JE moving within the motion range).

[0240] Fig. 20 Shown according to Fig.10 The descriptive diagram of the simulation results for different initial joint values ​​θint is shown.

[0241] Fig. 20 The upper star mark shows that the initial joint value θint of the joint mechanism JEe1 is 0.25 m, which is the lower limit of the movable range of the link LK1A. Fig. 20 The lower star mark also shows that the initial joint value θint of the joint mechanism JEe2 is 0.3m, the lower limit of the motion range of the link LK2A. In short, the joint mechanisms JEe1 and JEe2 are in a restricted state. In this simulation, a jog motion is performed to move the hand of the robot 10 by 0.00272m in the negative direction of the X0 axis. The displacement Δr of the hand along the X0 axis is -0.00272m, and the displacements of the remaining axes except the X0 axis are 0m.

[0242] In this simulation, the hand of the robot 10 moves by 0.00272 m in the negative direction of the axis X0 from the restricted state indicating that the links LK1A and LK2A moved by the joint mechanisms JEe1 and JEe2 are retracted to the lower limit.

[0243] Fig. 20 Two types of simulation results are shown: one obtained by the comparative control method without fixed processing (all axes are driven), and the other obtained by the control method with fixed processing according to the present embodiment (two axes are fixed).

[0244] The comparative control method involves computing the pseudo-inverse matrix J of the Jacobian matrix J assuming that all axes are driven + The method also involves using the pseudo-inverse matrix J obtained + To calculate the joint displacement Δθ. As a result, Fig. 20As shown in the "All Axes Driven" column of the final joint value θend, joint mechanisms JEe1 and JEe2 are not within the range of motion. Specifically, the final joint value θend of joint mechanism JEe1 is less than the lower limit of the motion range of link LK1A, 0.25m. The final joint value θend of joint mechanism JEe2 is less than the lower limit of the motion range of link LK2A, 0.3m.

[0245] In contrast, the control method according to the present embodiment involves setting the elements J corresponding to the respective joint mechanisms JEe1 and JEe2 in the restricted state to 3 and J 4 The control method also includes using the pseudo-inverse matrix J of the Jacobian matrix J + To calculate the joint displacement Δθ. As a result, Fig. 20 As shown in "two axes are fixed", the joint mechanisms JEe1 and JEe2 remain within the range of motion. Specifically, the final joint value θend of the joint mechanism JEe1 is 0.25m, the lower limit of the range of motion of the link LK1A, while the final joint value θend of the joint mechanism JEe2 is 0.3m, the lower limit of the range of motion of the link LK2A.

[0246] Therefore, in the jog motion of one or more joint mechanisms JE in a restricted state, performing inverse kinematics calculations on all axes (eight axes) will cause these joint mechanisms JE to exceed the range of motion. In contrast, in this embodiment, one or more joint mechanisms JE in a restricted state are regarded as fixed joints to perform inverse kinematics calculations on the remaining six axes. Therefore, the joint mechanisms JE in a restricted state remain unchanged. This result enables the jog motion to continue within the range of motion of the joint mechanisms JE.

[0247] Figures 9 to 20 A simulation of two joint mechanisms JE in a restricted state is shown; the number of joint mechanisms JE in a restricted state is not limited to two. In one example, there may be one joint mechanism JE in a restricted state. Alternatively, there may be three or more and less than m joint mechanisms JE in a restricted state. Wherein m is the total number of joint mechanisms JE. A joint mechanism JE in a specific state can be regarded as a fixed joint (there is a margin for the movement of the joint mechanism).

[0248] Some scenarios of the application of inverse kinematics calculations will now be given. The first scenario is the jog motion of the robot 10. In the jog motion, instructions are given regarding the target position of the robot 10, and inverse kinematics calculations are used to calculate the angles (displacements) of the various joints that allow the hand to move to the indicated target position. The second scenario is generating a trajectory for the robot 10. For repetitive motions of the robot 10, the robot 10 needs to store its trajectory in advance. When the trajectory is generated in advance, inverse kinematics calculations are used to calculate the joint angles at various points on the trajectory. If the number of points given for the trajectory is small, the trajectory can be generated by supplementing points during the actual operation of the robot 10. The third scenario is generating (or modifying) the trajectory of the robot 10 including a visual camera based on visual information. Instructions regarding the new target position are also given in a manner similar to the first scenario.

[0249] In the above-described embodiment, the robot system 1 includes the articulated robot 10 having seven or more mechanisms JE and the robot controller 30 that controls the operation of the robot 10 .

[0250] The method for controlling the robot 10 includes repeating unit processing, and the unit processing includes calculation processing and fixed processing. The calculation processing is used to (i) calculate the displacement of each joint mechanism JE by using inverse kinematics calculation, wherein the displacement of each joint mechanism JE causes the robot 10 to operate; and (ii) update the joint value of each joint mechanism JE based on the displacement. Fixed processing is performed on joints in a specific state in multiple joint mechanisms JE, wherein the specific state is preset and determined based on the corresponding joint value. For example, in a specific state, the constraint on the displacement is satisfied (restricted state), and there is a margin for the movement of the joint compared to the restricted state. When the fixed processing is performed, the calculation processing includes: changing the joint value of each joint mechanism JE in a non-specific state in the joint mechanism JE without substantially changing the joint value of the joint mechanism JE in the specific state.

[0251] A specific state can be set to a certain joint mechanism JE among the joint mechanisms JE. In the specific state, within the motion range of a certain joint mechanism JE, the joint value can take a value of a boundary range between inside and outside the motion range.

[0252] The robot controller 30 includes a motion controller 33 that repeats the unit process. In one example, the processing device 32 included in the robot controller 30 functions as the motion controller 33 by the control program PGr.

[0253] Therefore, in the present embodiment, one or more joint mechanisms JE in a specific state are regarded as fixed joints, wherein the state of the joint mechanism JE remains unchanged, and the remaining joint mechanisms JE are used to perform inverse kinematics calculations. Inverse kinematics calculations can be performed without moving the joint mechanism JE in a specific state. As a result, the present embodiment provides a correct solution for the inverse kinematics calculation (a solution that satisfies the joint mechanism JE moving within the range of motion). In other words, the frequency of erroneous results in the inverse kinematics calculation (there is no solution that satisfies the joint mechanism JE moving within the range of motion) can be reduced. Such a result records the continuous operation of the robot 10 within the range of motion of the joint mechanism JE.

[0254] In the present embodiment, when one or more joint mechanisms JE in a specific state are included in the plurality of joint mechanisms JE, the robot controller 30 may cancel the update of the joint values ​​of the respective joint mechanisms JE. In this case, when one or more joint mechanisms JE in a specific state are included in the plurality of joint mechanisms JE, the unit processing further includes: (i) returning the joint value updated to the first joint value by the previous unit processing to the second joint value before the update; (ii) confirming the joint mechanism JE in the specific state to be subjected to the fixing processing based on the first joint value, and (iii) performing the calculation processing after the fixing processing.

[0255] According to the present embodiment, when calculating joint values ​​by calculation processing, the calculated joint values ​​are updated for the joint values ​​of the joint mechanisms JE in the non-specific state. As a result, duplication of unit processing for the joint mechanisms JE fixed to the specific state can be prevented.

[0256] In this embodiment, when a plurality of joint mechanisms JE in an initial state include one or more joint mechanisms JE in a specific state, where the initial state is before repeated unit processing, the robot controller 30 can change the joint values ​​of the joint mechanisms JE in the specific state to joint values ​​corresponding to a non-specific state before the first unit processing in the repeated unit processing.

[0257] According to the present embodiment, in the first unit processing in repeated unit processing, it is possible to prevent the initial joint value of each joint mechanism JE from being a joint value corresponding to a specific state. As a result, even when a plurality of joint mechanisms JE in an initial state include one or more joint mechanisms JE in a specific state, where the initial state is before the repeated unit processing, it is possible to prevent these joint mechanisms JE from being fixed to the specific state.

[0258] In the present embodiment, in the calculation process, the robot controller 30 performs inverse kinematics calculations by using the Jacobian matrix J. In the fixed process, among the multiple elements of the Jacobian matrix J, the robot controller 30 sets one or more elements of the joint values ​​of each joint mechanism JE in a specific state to a value substantially zero. As a result, the joint values ​​of each joint mechanism JE in a specific state are set to fixed values. Therefore, these elements corresponding to the joint values ​​of each joint mechanism JE in a specific state in the Jacobian matrix J are set to values ​​substantially zero, so that the joint values ​​of each joint mechanism JE can be easily set to fixed values. In other words, even when there are one or more joints in a specific state, continuous calculations of inverse kinematics can be performed on the existing joint values ​​without changing the number of rows and columns of the Jacobian matrix J, and without dividing the Jacobian matrix J into multiple matrices.

[0259] In this embodiment, the plurality of joint mechanisms JE include at least one translation joint (e.g., joint mechanism JEp or JEe). Even in this case, such a translation joint in a specific state close to the upper or lower limit of the motion range can be regarded as a fixed joint, and the inverse kinematics calculation is performed by using the remaining joint mechanisms JE. Therefore, the frequency of erroneous results of inverse kinematics calculation is reduced. This embodiment provides continuous operation of various multi-joint robots with translation joints.

[0260] In the present embodiment, the robot 10 includes a base BDP, a link LK1 , a link LK2 , an end segment TP1 , a joint mechanism JEr1 , a joint mechanism JEr2 , a joint mechanism JEr3 , a joint mechanism JEr4 , a joint mechanism JEp1 , and a joint mechanism JEp2 .

[0261] The joint mechanism JEr1 is configured to rotate at least a portion of the base BDP about an axis Ax1 as a first rotation axis that forms an angle equal to or smaller than a predetermined angle with a direction Dv1 perpendicular to the bottom surface BDPbt of the base BDP.

[0262] The joint mechanism JEr2 connects the base BDP and the link LK1 to each other and is configured to rotate the link LK1 around an axis Ax2 as a second rotation axis that forms an angle greater than a predetermined angle with a direction DV1 perpendicular to the bottom surface BDPbt of the base BDP.

[0263] The joint mechanism JEr3 connects the link LK1 and the link LK2 to each other and is configured to rotate the link LK2 relative to the link LK1 about an axis Ax3 as a third rotation axis that forms an angle greater than a predetermined angle with the extending direction De1 of the link LK1.

[0264] The joint mechanism JEr4 connects the link LK2 and the end segment TP1 to each other and is configured to rotate the end segment TP2 relative to the link LK2 around the axis Ax4 as a fourth rotation axis, and the angle formed by the axis Ax4 as the fourth rotation axis and the extension direction De2 of the link LK2 is greater than a predetermined angle.

[0265] The joint mechanism JEp1 is configured so that the joint mechanism JEr3 moves relative to the link LK1 along the extending direction De1 of the link LK1.

[0266] The joint mechanism JEp2 is configured to move the link LK2 relative to the joint mechanism JEr3 along the extending direction De2 of the link LK2.

[0267] The end section TP1 includes a first portion TP11 connected to the link LK2 , a second portion TP12 connected to the first portion TP11 , a joint mechanism JEr5 , and a joint mechanism JEr6 .

[0268] The joint mechanism JEr5 connects the first part TP11 and the second part TP12 to each other and is configured to rotate the second part TP12 relative to the first part TP11 around the axis Ax5 as the fifth rotation axis, which forms an angle greater than a predetermined angle with the fourth rotation axis.

[0269] The joint mechanism JEr6 is configured to rotate at least a portion of the end segment TP1 around an axis Ax6 as a sixth rotation axis, and the axis Ax6 as the sixth rotation axis forms an angle greater than a predetermined angle with the fifth rotation axis.

[0270] The joint mechanisms include joint mechanisms JEr1, JEr2, JEr3, JEr4, JEr5, JE6, JEp1 and JEp2.

[0271] Therefore, this embodiment provides continuous operation of a multi-joint robot 10 having six rotational joints and two translational joints. In such a robot, the two translational joints act as redundant joints in some cases, and the joint values ​​are often in a specific state. Based on this fact, for a robot having translational joints, as shown in reference Figures 9 to 20 The simulation described enables efficient control of the robot by fixing the translational joints.

[0272] In this embodiment, the robot system 1 can be used in a method of manufacturing an article, wherein the manufacturing includes assembling parts or removing parts. In this case, it is possible to prevent work such as assembling or disassembling parts from being stopped due to an erroneous result of inverse kinematics calculation. In other words, this embodiment provides efficient work such as assembling or disassembling parts.

[0273] 2. Modification Example

[0274] The present invention is not limited to the above-described embodiment. Specific modified examples will be described below by way of example. Two or more modes optionally selected from the following modified examples may be combined with each other.

[0275] First Modification

[0276] In the above embodiment, an example is given in which the link LK2 and the end segment TP1 are connected to each other through the joint mechanism JEr4. However, the present disclosure is not limited to such an aspect. In one example, the joint mechanism JEr4 may be included in the link LK2.

[0277] Fig.21 A description of a robot 10 according to a first modification is shown. Figures 1 to 9 Similar elements to those described in are denoted by the same reference numerals, and a detailed description thereof will be omitted.

[0278] The robot 10 according to this modification example has joint mechanisms JEe (JEe1 and JEe2) instead of Figure 1 In one example, the robot 10 includes joint mechanisms JEr1A, JEr2, JEr3A, JEr4A, JEr5A, JE6, JEe1, and JEe2, a base BDPa, links LK1A and LK2A, and an end segment TP1A. The link LK1A is provided with a joint mechanism JEe1, and the link LK2A is provided with a joint mechanism JEe2 and a joint mechanism JEr4A.

[0279] The base body BDPa is an example of a “base.” The joint mechanism JEr1A is an example of a “first drive mechanism,” the joint mechanism JEr3A is an example of a “third drive mechanism,” and the joint mechanism JEr5A is an example of a “fifth drive mechanism.”

[0280] The base BDPa is fixed to a predetermined place (for example, a floor) via a joint mechanism JEr1A. The joint mechanism JEr1A rotates the base BDPa about a rotation axis Ax1 as a rotation axis. The rotation axis Ax1 is perpendicular to the bottom surface BDPbt of the base BDPa.

[0281] The joint mechanism JEr2 connects the base BDPa and the support portion LK1a of the link LK1a. The joint mechanism JEr2 rotates the link LK1A relative to the base BDPa around the axis Ax2 as the rotation axis. The axis Ax2 is parallel to the bottom surface BDPbt of the base BDPa.

[0282] In one example, the link LK1A is telescopic along the extension direction De1 of the link LK1A. Specifically, the link LK1A includes a support portion LK1a connected to the base BDPa, movable portions LK1b and LK1c, and a joint mechanism JEe1. In one example, the link LK2A is telescopic along the extension direction De2 of the link LK2A. Specifically, the link LK2A includes a support portion LK2a connected to the movable portion LK1c of the link LK1A, movable portions LK2b and LK2c, joint mechanisms JEe2 and JEr4A.

[0283] exist Fig. 9 The links LK (LK1A and LK2A) and the joint mechanisms JEe (JEe1 and JEe2) are described in the specification, and therefore their detailed description is omitted. In one example, the support portion LK1a is hollow. When the link LK1A is retracted, at least a portion of the movable portion LK1b is accommodated in the support portion LK1a. In one example, the support portion LK2a is also hollow. When the link LK2A is retracted, at least a portion of the movable portion LK2b is accommodated in the support portion LK2a.

[0284] The joint mechanism JEr3A connects the movable portion LK1c of the link LK1A and the support portion LK2a of the link LK2A. The joint mechanism JEr3A rotates the link LK2A relative to the link LK1A about the axis Ax3 as the rotation axis. The axis Ax3 is perpendicular to the extending direction De1 of the link LK1A.

[0285] The joint mechanism JEr4A rotates the movable part LK2c relative to the support part LK2a around the axis Ax4A as the rotation axis. The axis Ax4A is parallel to the extending direction De2 of the link LK2A. The joint mechanism JEr4A is an example of a "fourth drive mechanism", and the axis Ax4A is an example of a "fourth rotation axis".

[0286] The joint mechanism JEr5A connects the movable portion LK2c of the link LK2A with the end segment TP1A. The joint mechanism JEr5A rotates the end segment TP1A relative to the link LK2A around the axis Ax5 as a rotation axis. The axis Ax5 is perpendicular to the extending direction De2 of the link LK2A.

[0287] The end section TP1A includes a second portion TP12A connected to the movable portion LK2c of the link LK2 via a joint mechanism JEr5A and a joint mechanism JEr6. Figure 1 The joint mechanisms shown are identical.

[0288] The configuration of the robot 10 according to this modification is not limited to Fig.21 The example shown in Fig.21In the example, the joint mechanism JEr4A moves relative to the support part LK2a along the direction De2 so as to move together with the movable part LK2c of the connecting rod LK2A. However, the joint mechanism JEr4A may be fixed to the connecting rod LK2A. The joint mechanism JEr4A may cause the movable part LK2b to rotate relative to the support part LK2a around the axis Ax4A serving as the rotation axis, and the joint mechanism JEe2 may cause the movable part LK2c to move relative to the movable part LK2b. If the movable part LK2c is configured to move relative to the movable part LK2b, the movable part LK2b may be hollow. When the connecting rod LK2A contracts, at least a portion of the movable part LK2c is accommodated in the movable part LK2b. The joint mechanism JEe1 or JEe2 may be omitted.

[0289] In the above-mentioned modified example, the robot 10 includes a base BDPa, a link LK1A including a supporting part LK1a and a movable part LK1c, a link LK2A including a supporting part LK2a and a movable part LK2c, an end segment TP1A, a joint mechanism JEr1A, a joint mechanism JEr2, a joint mechanism JEr3A, a joint mechanism JEr4A, a joint mechanism JEr5A, a joint mechanism JEr6, a joint mechanism JEe1 and a joint mechanism JEe2.

[0290] The joint mechanism JEr1A is configured to rotate at least a portion of the base BDPa around an axis Ax1 as a first rotation axis that forms an angle equal to or smaller than a predetermined angle with a direction Dv1 perpendicular to the bottom surface BDPbt of the base BDPa.

[0291] The joint mechanism JEr2 connects the base BDPa and the support part LK1a to each other, and is configured to rotate the link LK1A relative to the base BDPa around the axis Ax2 as the second rotation axis, and the angle formed by the axis Ax2 as the second rotation axis and the direction Dv1 perpendicular to the bottom surface BDpbt of the base BDPa is greater than a predetermined angle.

[0292] The joint mechanism JEr3A connects the movable part LK1c and the support part LK2a to each other and is configured to rotate the link LK2A relative to the link LK1A around the axis Ax3 as a third rotation axis, and the angle formed by the axis Ax3 as the third rotation axis and the extension direction De1 of the link LK1A is greater than a predetermined angle.

[0293] The joint mechanism JEr4A is configured to rotate the movable portion LK2c relative to the support portion LK2a around an axis Ax4A as a fourth rotation axis, the angle formed by the axis Ax4A as the fourth rotation axis and the extending direction De2 of the link LK2A being equal to or smaller than a predetermined angle.

[0294] The joint mechanism JEr5A connects the movable part LK2c and the end segment TP1A to each other, and is configured to rotate the end segment TP1A relative to the connecting rod LK2A around the axis Ax5 as the fifth rotation axis, and the angle formed by the axis Ax5 as the fifth rotation axis and the extension direction De2 of the connecting rod LK2A is greater than a predetermined angle.

[0295] The joint mechanism JEr6 is configured to rotate at least a portion of the end segment TP1A relative to the link LK2A about an axis Ax6 as a sixth rotation axis, the axis Ax6 forming an angle greater than a predetermined angle with the fifth rotation axis.

[0296] The joint mechanism JEe1 is configured to extend and retract the link LK1A by moving the movable portion LK1c relative to the support portion LK1a in the extending direction De1 of the link LK1A.

[0297] The joint mechanism JEe2 is configured to extend and retract the link LK2A by moving the movable portion LK2c relative to the support portion LK2a in the extending direction De2 of the link LK2A.

[0298] The plurality of joint mechanisms JE include joint mechanisms JEr1A, JEr2, JEr3A, JEr4A, JEr5A, JEr6, JEe1, and JEe2.

[0299] This modification provides the same effects as those of the aforementioned embodiment.

[0300] Second Modification

[0301] In the above embodiment, the joint mechanism JEr4 rotates the end segment TP1 relative to the link LK2 around the axis Ax4, which is perpendicular to the extension direction De2 of the link LK2. However, the present invention is not limited to this aspect. In one example, the joint mechanism JEr4 can rotate the end segment TP1 relative to the link LK2 around an axis whose angle with the direction De2 is equal to or less than a predetermined angle.

[0302] Fig. 22 FIG. 2 shows a description of the end segment TP1B according to the second modification. Figures 1 to 21 Elements that are substantially the same as those described in are denoted by the same reference numerals, and detailed description thereof is omitted.

[0303] In one example, the robot 10 according to the modification is similar to Figure 1 However, the robot 10 according to this modification includes a link LK2B, a joint mechanism JEr4B, and an end segment TP1B, instead of the link LK2B shown in FIG. Figure 1Link LK2, joint mechanism JEr4 and end segment TP1 are shown. Link LK2B is similar to link LK2. However, link LK2B is connected to joint mechanism JEr4B instead of joint mechanism JEr4. Link LK2B is an example of a "second link" and joint mechanism JEr4B is an example of a "fourth drive mechanism".

[0304] The joint mechanism JEr4B connects the link LK2B and the end section TP1B to each other. The joint mechanism JEr4B rotates the end section TP1B relative to the link LK2B around the axis Ax4A as a rotation axis. The axis Ax4A is parallel to the direction De2. Fig.11 The rotation direction Dr4 shown indicates the rotation direction of the end section TP1B when the end section TP1B rotates around the axis Ax4A as the rotation axis. The axis Ax4A is an example of a "fourth rotation axis" and corresponds to an axis that forms an angle equal to or smaller than a predetermined angle with the extending direction De2 of the link LK2B.

[0305] With Figure 1 In a similar manner to the end segment TP1 shown in FIG. 1 , the end effector 20 is attached to the end face TP1sf of the end segment TP1B. The end segment TP1B includes a first portion TP11A connected to the link LK2B, a second portion TP12A connected to the first portion TP11A, a joint mechanism JEr5A, and a joint mechanism JEr6. The first portion TP11A is connected to the link LK2B via a joint mechanism JEr4B, so that the first portion TP11A rotates relative to the link LK2B around the axis Ax4A as the rotation axis.

[0306] The joint mechanism JEr5A connects the first part TP11A and the second part TP12A to each other. The joint mechanism JEr5A rotates the second part TP12A relative to the first part TP11A around the axis Ax5 as a rotation axis perpendicular to the axis Ax4A. Figure 1 The rotation direction Dr5 shown indicates the rotation direction of the second portion TP12A when rotating with the axis Ax5 as the rotation axis.

[0307] Joint mechanism JEr6 and Figure 1 The joint mechanisms shown are the same. In one example, the joint mechanism JEr6 rotates at least a portion of the end segment TP1B (eg, the end surface TP1sf) around the axis Ax6 as the rotation axis. The axis Ax6 is perpendicular to the axis Ax5. Fig.11 In one example shown, the front surface of the joint mechanism JEr6 is similar to Figure 1 The joint mechanism JEr6 shown corresponds to the end surface TP1sf in this manner. If the joint mechanism JEr6 is included in the second part TP12A, the end surface of the second part TP12A may be the end surface TP1sf.

[0308] In the above-mentioned modification, the joint mechanism JEr4B rotates the end segment TP1B relative to the link LK2B around the axis Ax4A as the fourth rotation axis. The angle formed by the axis Ax4A and the direction De2 is equal to or less than a predetermined angle. The end segment TP1B includes a first portion TP11A connected to the link LK2B, a second portion TP12A connected to the first portion TP11A, a joint mechanism JEr5A, and a joint mechanism JEr6. The joint mechanism JEr5A connects the first portion TP11A and the second portion TP12A to each other. The joint mechanism JEr5A rotates the second portion TP12A relative to the first portion TP11A around the axis Ax5 as the fifth rotation axis. The angle formed by the axis Ax5 and the fourth rotation axis is equal to or greater than a predetermined angle. The joint mechanism JEr6 rotates at least a portion of the end segment TP1B around the axis Ax6 as the sixth rotation axis. The angle formed by the axis Ax6 and the fifth rotation axis is equal to or greater than a predetermined angle. This modification also provides the same effect as the aforementioned embodiment.

[0309] Third Modification

[0310] In the above-mentioned embodiment and modification, the example of the multi-joint robot 10 with six rotation joints and two translation joints is given. However, the present invention is not limited to these aspects. In one example, the robot 10 can have eight axes, nine axes or more axes. This modification also provides the same effect as the above-mentioned embodiment and modification.

[0311] 3. Usage Examples

[0312] The robot system 1 including the robot 10 described in the above-mentioned embodiment and the modified example may be used in a method of manufacturing an article, wherein the manufacturing includes assembling parts or disassembling parts.

[0313] 4. Other matters

[0314] Some examples of “turning” and “turning” distinguished from each other as briefly described in the aforementioned embodiments will be given.

[0315] Fig.23 A diagram describing a "turn" is shown. Fig.23 In the description, the “turning” and “pivoting” that are distinguished from each other will be described with reference to the connection of the two links LKi and LKj in the longitudinal direction. Fig.23 As shown, the extending direction Dei indicates the extending direction of the connecting rod LKi, and the extending direction Dej indicates the extending direction of the connecting rod LKj. Fig.23 The joint mechanism JEri shown connects the link LKi and the link LKj to each other. The joint mechanism JEri rotates the link LKj relative to the link LKi around the axis Axi as the rotation axis.

[0316] exist Fig.23In the example shown, when the angle β is greater than a predetermined angle, the rotation around the axis Axi means "turning". The angle β is formed between the extension direction Dei (specific direction) of the link LKi and the axis Axi. In other words, when the angle β is equal to or less than a predetermined angle, the rotation around the axis Axi means "rotation rather than turning (rotation distinguished from turning)". Fig.23 The "rotation" shown in means "rotation rather than turning". Although the predetermined angle is not limited thereto, Fig.23 As shown, the predetermined angle can be assumed to be 45°. The angle β between the extension direction Dei and the axis Axi is greater than 0° and less than 90°. The angle β is considered to be one of the angles of the axis Axi relative to the extension direction Dei (for example, four angles formed by two mutually intersecting straight lines, or 0° and 180° formed by two mutually parallel straight lines).

[0317] In the first case, the angle β between the extension direction Dei of the connecting rod LKi and the axis Axi is 90°, which is greater than the predetermined angle (45°). In the first case, the rotation of the connecting rod LKj around the axis Axi means "turning". In addition, the extension direction Dej of the connecting rod LKj is perpendicular to the axis Axi. In the first case, when the connecting rod LKj rotates (turns) around the axis Axi as the rotation axis, the angle between the extension direction Dej of the connecting rod LKj and the extension direction Dei of the connecting rod LKi changes.

[0318] In the second case, the angle β between the extension direction Dei of the connecting rod LKi and the axis Axi is 0°, which is equal to or less than the predetermined angle (45°). In the second case, the connecting rod LKj rotates around the axis Axi by a rotation angle, which means "rotation instead of turning". In the second case, the extension direction Dej of the connecting rod LKj is parallel to both the extension direction Dei of the connecting rod LKi and the axis Axi. In other words, the angle between the extension direction Dej of the connecting rod LKj and the extension direction Dei of the connecting rod LKi is 0°. In the second case, even if the connecting rod LKj rotates around the axis Axi as the rotation axis, the angle remains at 0° and is constant.

[0319] In the third case, the angle β between the extension direction Dei of the connecting rod LKi and the axis Axi is 0°, which is equal to or less than the predetermined angle (45°). In the third case, the rotation of the connecting rod LKj around the axis Axi as the rotation axis means "rotation rather than turning". In addition, the extension direction Dej of the connecting rod LKj is perpendicular to both the extension direction Dei of the connecting rod LKi and the axis Axi. In other words, the angle between the extension direction Dej of the connecting rod LKj and the extension direction Dei of the connecting rod LKi is 90°. In the third case, even if the connecting rod LKj rotates around the axis Axi as the rotation axis, the angle remains at 90° and is constant.

[0320] In the fourth case, the angle β between the extension direction Dei of the connecting rod LKi and the axis Axi is 10°, which is equal to or less than the predetermined angle (45°). In the fourth case, the rotation of the connecting rod LKj around the axis Axi means "rotation rather than turning". In addition, the extension direction Dej of the connecting rod LKj is parallel to the axis Axi. The angle between the extension direction Dej of the connecting rod LKj and the extension direction Dei of the connecting rod LKi is 10°. In the fourth case, even if the connecting rod LKj rotates around the axis Axi as the rotation axis, the angle remains at 10° and is constant.

[0321] In the fifth case, the angle β between the extension direction Dei of the connecting rod LKi and the axis Axi is 70°, which is greater than the predetermined angle (45°). In the fifth case, the rotation of the connecting rod LKj around the axis Axi means "turning", and the extension direction Dej of the connecting rod LKj is perpendicular to the axis Axi. In the fifth case, when the connecting rod LKj rotates (turns) around the axis Axi as the rotation axis, the angle between the extension direction Dej of the connecting rod LKj and the extension direction Dei of the connecting rod LKi changes.

[0322] In the sixth case, the angle β between the extension direction Dei of the connecting rod LKi and the axis Axi is 10°, which is equal to or less than the predetermined angle (45°). In the sixth case, the rotation of the connecting rod LKj around the axis Axi as the rotation axis means "rotation rather than turning", and the extension direction Dej of the connecting rod LKj is perpendicular to the axis Axi. In the sixth case, when the connecting rod LKj rotates around the axis Axi as the rotation axis, the angle between the extension direction Dej of the connecting rod LKj and the extension direction Dei of the connecting rod LKi changes.

[0323] In the seventh case, the angle β between the extension direction Dei of the connecting rod LKi and the axis Axi is 70°, which is greater than the predetermined angle (45°). In the seventh case, the rotation of the connecting rod LKj around the axis Axi means "turning". In addition, the extension direction Dej of the connecting rod LKj is parallel to the axis Axi. The angle between the extension direction Dej of the connecting rod LKj and the extension direction Dei of the connecting rod LKi is 70°. In the seventh case, even if the connecting rod LKj rotates around the axis Axi as the rotation axis, the angle is maintained at 70° and is constant.

[0324] Therefore, in the above-mentioned embodiments and modifications, the rotation referred to as "turning" is a rotation around an axis Axi that forms an angle greater than a predetermined angle with the extension direction Dei of the connecting rod LKi, and this rotation is one of the multiple types of rotations of the connecting rod LKj relative to the connecting rod LKi. However, the definition of "turning" is not limited to these examples. For example, when the above-mentioned definition (rotation around an axis Axi that forms an angle greater than a predetermined angle with the extension direction Dei of the connecting rod LKi, i.e., "turning") is referred to as the first definition, the following second definition or third definition may be adopted to replace the first definition.

[0325] In the second definition, when the angle between the extension direction Dej of the link LKj and the extension direction Dei of the link LKi changes due to the rotation of the link LKj relative to the link LKi, such rotation means "turning". Therefore, in the second definition, when the angle is constant even if the link LKj rotates, such rotation means "turning instead of turning". In one example, in the second definition, Fig.23 The first, fifth and sixth situations shown mean "turning". The second, third, fourth and seventh situations mean "turning instead of turning".

[0326] In the third definition, when the angle between the extension direction Dej of the link LKj and the rotation axis (axis Axi) of the link LKj is greater than a predetermined angle, such rotation means "turning". Therefore, in the third definition, when the angle is equal to or less than a predetermined angle, such rotation means "turning instead of turning". In one example, in the third definition, Fig.23 The first, third, fifth and sixth situations shown mean "turning". The second, fourth and seventh situations mean "turning instead of turning".

[0327] Unlike the first, second and third definitions, the relative relationship between the two rotations of two adjacent joint mechanisms JEr can be defined based on the relationship between the rotation axes of the two joint mechanisms JEr. Specifically, when the angle between the two rotation axes is equal to or less than a predetermined angle (usually, the two rotation axes are parallel to each other), the two types of rotations can be defined as the same type of rotation. When the angle is greater than a predetermined angle (usually, the two rotation axes are perpendicular to each other), the two types of rotations can be defined as different types of rotations. The phrase "same type of rotation" means that both rotations are "turns" or both types of rotations are "turns instead of turns." The phrase "different types of rotations" means that one of the two rotations is a "turn" and the other is a "turn instead of a turn." When the definition of the relative relationship between two rotations is used, the rotation that serves as the starting point of the relative relationship can be determined based on, for example, any one of the first definition, the second definition, and the third definition. Fig.23The first situation shown corresponds to "turning" in all the first, second and third definitions. The second situation corresponds to "turning instead of turning" in all the first, second and third definitions. Thus, preferably, the first situation or the second situation is used as the turning as the starting point of the relative relationship.

[0328] A definition obtained by combining two or more of the first definition, the second definition, and the third definition may be used. For example, in this case, among all the two or more definitions to be combined, only the rotation corresponding to the turn may be "turn". Alternatively, in at least one of the two or more definitions to be combined, "rotation corresponding to the turn" may be "turn".

[0329] Reference Symbols

[0330] 1 robot system, 10 robot, 20 end effector, 30 robot controller, 32 processing device, 33 motion controller, 35 memory, 36 communicator, 37 input operation device, 38 display, 39 driver circuit, Ax1, Ax2, Ax3, Ax4, Ax4A, Ax5, Ax6, Axi... axis, BDP, BDPa... base, BDPbt... bottom surface, BDPba... base part, JEe1, JEe2, JEp1, JEp2, J Er1, JEr2, JEr3, JEr3A, JEr4, JE4A, JE5, JEr5A, JE6, JEri joint mechanism, LK1, LK1A, LK2, LK2A, LKi, LKj...connecting rod, LK1a, LK2a...support part, LK1b, LK1c, LK2b, LK2c...movable part, MOr1, MOr2, MOr3, MOr4, MOr5, MOr6, MOp1, MOp2...motor.

Claims

1. A control method for a multi-joint robot having seven or more joints, the method comprising: Repeating unit processing, the unit processing comprising: Computational processing, which is used to: calculating the displacement of each joint by applying inverse kinematics calculation, wherein the displacement of each joint causes the multi-joint robot to operate; and Updating the joint value of each of the joints based on the displacement; and Performing a fixation process on a joint in a specific state among the joints; wherein the specific state is preset and determined based on a corresponding joint value; When the fixing process is performed, the calculation process includes: changing the joint values ​​of each of the joints in the non-specific state without substantially changing the joint values ​​of the joints in the specific state.

2. The control method of the multi-joint robot according to claim 1, wherein: setting one of the joints to the specific state, When in the specific state, within the motion range of the certain joint, the joint value takes a value in the boundary range between inside and outside the motion range.

3. The control method of the multi-joint robot according to claim 1, wherein: When the joints include a joint in the specific state, the unit processing further includes: Returning the joint value updated to the first joint value by the previous unit processing to the second joint value before the update; Based on the first joint value, confirming a joint in the specific state to perform the fixing process; and The calculation process is performed after the fixing process.

4. The control method of a multi-joint robot according to claim 1 further includes, when the joints in the initial state include joints in the specific state, the initial state occurs before repeating the unit processing, changing the joint values ​​of the joints in the specific state to joint values ​​corresponding to the non-specific state before the first unit processing of the repeated unit processing.

5. The control method of a multi-joint robot according to any one of claims 1 to 4, wherein: The calculation process includes: performing the inverse kinematics calculation using a Jacobian matrix, The fixing process includes: setting the elements of the joint in the specific state among the multiple elements of the Jacobian matrix to a value substantially zero so as to keep the joint value of the joint in the specific state unchanged.

6. The control method of a multi-joint robot according to any one of claims 1 to 4, wherein: The joints include at least one translational joint.

7. A robot system comprising: Multi-jointed robots with seven or more joints; as well as A controller configured to control the operation of the multi-joint robot, wherein: The controller includes a motion controller configured to repeat a unit process, the unit process including: Computational processing, which is used to: calculating the displacement of each joint by applying inverse kinematics calculation, wherein the displacement of each joint causes the multi-joint robot to operate; and Updating the joint value of each joint based on the displacement; and Performing a fixation process on a joint in a specific state among the joints; wherein the specific state is preset and determined based on a corresponding joint value; When executing the fixing process, the motion controller changes the joint value of each of the joints in the non-specific state without substantially changing the joint value of the joint in the specific state.

8. The robot system according to claim 7, wherein The multi-joint robot comprises: base; First connecting rod; Second connecting rod; end section; a first drive mechanism configured to rotate at least a portion of the base portion about an axis as a first rotation axis, the axis as the first rotation axis forming an angle equal to or smaller than a predetermined angle with a direction perpendicular to a bottom surface of the base portion; a second driving mechanism connecting the base and the first link to each other and configured to rotate the first link around an axis as a second rotation axis, the axis as the second rotation axis forming an angle greater than the predetermined angle with a direction perpendicular to the bottom surface of the base; a third driving mechanism connecting the first link and the second link to each other and configured to rotate the second link relative to the first link around an axis as a third rotation axis, the axis as the third rotation axis forming an angle greater than the predetermined angle with an extending direction of the first link; a fourth driving mechanism connecting the second connecting rod and the end section to each other and configured to rotate the end section relative to the second connecting rod around an axis as a fourth rotation axis, the axis as the fourth rotation axis forming an angle greater than the predetermined angle with the extension direction of the second connecting rod; a first translation mechanism configured to move the third driving mechanism relative to the first connecting rod along an extension direction of the first connecting rod; as well as a second translation mechanism configured to move the second connecting rod relative to the third driving mechanism along an extending direction of the second connecting rod, The end section comprises: a first portion connected to the second link; a second portion connected to the first portion; a fifth driving mechanism connecting the first portion and the second portion to each other and configured to rotate the second portion relative to the first portion around an axis as a fifth rotation axis, the axis as the fifth rotation axis forming an angle greater than the predetermined angle with the fourth rotation axis; and a sixth drive mechanism configured to rotate at least a portion of the end segment about an axis serving as a sixth rotation axis, the axis serving as the sixth rotation axis forming an angle with the fifth rotation axis that is greater than the predetermined angle, and The joints include: the first driving mechanism; the second driving mechanism; the third driving mechanism; the fourth driving mechanism; the fifth driving mechanism; the sixth driving mechanism; the first translation mechanism; and The second translation mechanism.

9. The robot system according to claim 7, wherein: The multi-joint robot comprises: base; a first link including a first supporting portion and a first movable portion; a second connecting rod including a second supporting portion and a second movable portion; end section; a first drive mechanism configured to rotate at least a portion of the base portion about an axis as a first rotation axis, the axis as the first rotation axis forming an angle equal to or smaller than a predetermined angle with a direction perpendicular to a bottom surface of the base portion; a second driving mechanism connecting the base and the first supporting portion to each other and configured to rotate the first link relative to the base around an axis as a second rotation axis, the axis as the second rotation axis forming an angle greater than the predetermined angle with a direction perpendicular to the bottom surface of the base; a third driving mechanism connecting the first movable portion and the second supporting portion to each other and configured to rotate the second link relative to the first link about an axis as a third rotation axis, the axis as the third rotation axis forming an angle greater than the predetermined angle with an extending direction of the first link; a fourth driving mechanism configured to rotate the second movable portion relative to the second supporting portion around an axis as a fourth rotation axis, the axis as the fourth rotation axis forming an angle equal to or smaller than the predetermined angle with the extending direction of the second link; a fifth driving mechanism connecting the second movable portion and the end segment to each other and configured to rotate the end segment relative to the second link about an axis as a fifth rotation axis, the axis as the fifth rotation axis forming an angle greater than the predetermined angle with the extension direction of the second link; a sixth drive mechanism configured to rotate at least a portion of the end segment relative to the second link about an axis as a sixth rotation axis, the axis as the sixth rotation axis forming an angle greater than the predetermined angle with the fifth rotation axis; a first telescopic mechanism configured to telescope the first link by moving the first movable portion relative to the first supporting portion in an extending direction of the first link; and a second telescopic mechanism configured to telescope the second link by moving the second movable portion relative to the second supporting portion in an extending direction of the second link, and The joints include: the first driving mechanism; the second driving mechanism; the third driving mechanism; the fourth driving mechanism; the fifth driving mechanism; the sixth driving mechanism; the first telescopic mechanism; and The second telescopic mechanism.

10. The robot system according to claim 7, wherein: The multi-joint robot comprises: base; First connecting rod; Second connecting rod; end section; a first drive mechanism configured to rotate at least a portion of the base portion about an axis as a first rotation axis, the axis as the first rotation axis forming an angle equal to or smaller than a predetermined angle with a direction perpendicular to a bottom surface of the base portion; a second driving mechanism connecting the base and the first link to each other and configured to rotate the first link around an axis as a second rotation axis, the axis as the second rotation axis forming an angle greater than the predetermined angle with a direction perpendicular to the bottom surface of the base; a third driving mechanism connecting the first link and the second link to each other and configured to rotate the second link relative to the first link around an axis as a third rotation axis, the axis as the third rotation axis forming an angle greater than the predetermined angle with an extending direction of the first link; a fourth driving mechanism connecting the second connecting rod and the end section to each other and configured to rotate the end section relative to the second connecting rod around an axis as a fourth rotation axis, the axis as the fourth rotation axis forming an angle equal to or smaller than the predetermined angle with the extension direction of the second connecting rod; a first translation mechanism configured to move the third driving mechanism relative to the first connecting rod along an extending direction of the first connecting rod; and a second translation mechanism configured to move the second connecting rod relative to the third driving mechanism along an extending direction of the second connecting rod, The end section comprises: a first portion connected to the second link; a second portion connected to the first portion; a fifth driving mechanism connecting the first portion and the second portion to each other and configured to rotate the second portion relative to the first portion around an axis as a fifth rotation axis, the axis as the fifth rotation axis forming an angle greater than the predetermined angle with the fourth rotation axis; and a sixth drive mechanism configured to rotate at least a portion of the end segment about an axis serving as a sixth rotation axis, the axis serving as the sixth rotation axis forming an angle with the fifth rotation axis that is greater than the predetermined angle, and The joints include: the first driving mechanism; the second driving mechanism; the third driving mechanism; the fourth driving mechanism; the fifth driving mechanism; the sixth driving mechanism; the first translation mechanism; and The second translation mechanism.

11. A method of manufacturing an article, comprising assembling or removing components by a robotic system according to claim 7.

12. A program for controlling the operation of a multi-jointed robot having seven or more joints, the program causing a processor to function as a motion controller, the motion controller being configured to repeat unit processing, the unit processing comprising: Computational processing, which is used to: calculating the displacement of each joint by applying inverse kinematics calculation, wherein the displacement of each joint causes the multi-joint robot to operate; and updating the joint value of each joint based on the displacement; and Performing a fixation process on a joint in a specific state among the joints; wherein the specific state is preset and determined based on a corresponding joint value; When the fixing process is performed, the motion controller changes the joint values ​​of each of the joints in the non-specific state without substantially changing the joint values ​​of the joints in the specific state.