WO2024070568A1 - 多関節ロボットの制御方法、ロボットシステム、プログラム、及び、物品の製造方法 - Google Patents

多関節ロボットの制御方法、ロボットシステム、プログラム、及び、物品の製造方法 Download PDF

Info

Publication number
WO2024070568A1
WO2024070568A1 PCT/JP2023/032690 JP2023032690W WO2024070568A1 WO 2024070568 A1 WO2024070568 A1 WO 2024070568A1 JP 2023032690 W JP2023032690 W JP 2023032690W WO 2024070568 A1 WO2024070568 A1 WO 2024070568A1
Authority
WO
WIPO (PCT)
Prior art keywords
joint
link
joints
group
robot
Prior art date
Application number
PCT/JP2023/032690
Other languages
English (en)
French (fr)
Japanese (ja)
Inventor
宏幸 小島
Original Assignee
ローレルバンクマシン株式会社
ローレル機械株式会社
ローレル精機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ローレルバンクマシン株式会社, ローレル機械株式会社, ローレル精機株式会社 filed Critical ローレルバンクマシン株式会社
Priority to JP2024549965A priority Critical patent/JPWO2024070568A1/ja
Publication of WO2024070568A1 publication Critical patent/WO2024070568A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements

Definitions

  • the present invention relates to a method for controlling an articulated robot, a robot system, a program, and a method for manufacturing an article.
  • Patent Document 1 discloses a control method for an articulated robot with seven degrees of freedom.
  • inverse kinematics calculations are performed in order to find the amount of displacement of each joint from the robot's position and posture, and the movement of each joint is controlled based on the results of the inverse kinematics calculations.
  • the calculation load tends to be greater when there are a large number of joints, compared to when there are a small number of joints. Therefore, when there are a large number of joints, the calculation time required to calculate the solution of the inverse kinematics calculation (the amount of displacement of each joint that makes the robot's position and posture the desired position and posture) increases compared to when there are a small number of joints. In this case, it may not be possible to operate the robot at the desired speed. For this reason, it is desirable to suppress the increase in calculation time required to calculate the solution of the inverse kinematics calculation.
  • a method for controlling a multi-joint robot is a method for controlling a multi-joint robot having four or more joints, the joints being divided into two groups, a first group and a second group, and the joint values of each of the joints for bringing the multi-joint robot into a desired state are calculated by repeatedly executing unit processes including: a first group process for calculating joint values representing the state of the joints for the joints belonging to the first group by performing an inverse kinematic calculation to calculate the displacement amount of the joint when the multi-joint robot is operated using the joints belonging to the first group among the joints; and a second group process for calculating the joint values of the joints belonging to the second group by performing the inverse kinematic calculation using the joints belonging to the second group among the joints.
  • a control method for a multi-joint robot is a control method for a multi-joint robot having n joints (n is a natural number equal to or greater than 5), in which the n joints are divided into k groups (k is a natural number equal to or greater than 3 and equal to or less than n/2 rounded up or down), and a unit process including a process for sequentially executing k group processes corresponding to the k groups is repeatedly executed to calculate a joint value representing each of the n joints for bringing the multi-joint robot into a target state, and in each of the k group processes of the unit process, an inverse kinematic calculation is executed to calculate the amount of displacement of the joint when the multi-joint robot is operated using a joint belonging to one of the groups among the multiple joints, thereby calculating the joint value of the joint belonging to the one group.
  • a robot system includes a multi-joint robot having four or more joints, and a control device that controls the operation of the multi-joint robot.
  • the joints are divided into two groups, a first group and a second group.
  • the control device has an operation control unit that calculates the joint values of each of the joints to bring the multi-joint robot into a desired state by repeatedly executing unit processes including: a first group process that calculates joint values representing the state of the joints for the joints belonging to the first group by performing an inverse kinematic calculation to calculate the displacement amount of the joint when the multi-joint robot is operated using the joints belonging to the first group among the joints; and a second group process that calculates the joint values of the joints belonging to the second group by performing the inverse kinematic calculation using the joints belonging to the second group among the joints.
  • a method for manufacturing an article involves assembling or removing parts using the robot system described above.
  • a program is a program for controlling the operation of a multi-joint robot having four or more joints, the joints being divided into two groups, a first group and a second group, and the processor is made to function as an operation control unit that calculates the joint values of each of the joints to bring the multi-joint robot into a desired state by repeatedly executing unit processes including: a first group process that calculates joint values representing the state of the joints for the joints belonging to the first group by performing an inverse kinematic calculation to calculate the displacement amount of the joint when the multi-joint robot is operated using the joints belonging to the first group among the joints; and a second group process that calculates the joint values of the joints belonging to the second group by performing the inverse kinematic calculation using the joints belonging to the second group among the joints.
  • the present invention makes it possible to prevent an increase in the calculation time required to calculate the solution of the inverse kinematics calculation.
  • FIG. 1 is an explanatory diagram for explaining an overview of a robot system according to an embodiment.
  • FIG. 2 is a diagram illustrating an example of a hardware configuration of the robot controller illustrated in FIG. 1 .
  • 2 is a flowchart showing an example of the operation of the robot controller shown in FIG. 1 .
  • 4 is a flowchart showing an example of a joint value calculation process shown in FIG. 3 .
  • 13 is a flowchart showing an example of a joint value calculation process according to a second modified example.
  • FIG. 13 is an explanatory diagram for explaining an example of a robot according to a third modified example.
  • FIG. 13 is an explanatory diagram for explaining an example of a tip portion according to a fourth modified example.
  • FIG. 1 is an explanatory diagram for explaining an overview of a robot system according to an embodiment.
  • FIG. 2 is a diagram illustrating an example of a hardware configuration of the robot controller illustrated in FIG. 1 .
  • 2 is a flowchart showing an example of the
  • FIG. 1 is an explanatory diagram for explaining a model used in a simulation.
  • FIG. 13 is an explanatory diagram for explaining the trajectory of the tip portion used in the simulation.
  • FIG. 11 is an explanatory diagram for explaining teaching points of each of a plurality of trajectory patterns.
  • FIG. 11 is an explanatory diagram for explaining the time required to calculate each trajectory pattern.
  • FIG. 11 is an explanatory diagram for explaining an example of turning.
  • FIG. 1 is an explanatory diagram for explaining an overview of a robot system 1 according to an embodiment.
  • a reference coordinate system ⁇ 0 fixed in real space is introduced as the base coordinate system of the robot 10.
  • the reference coordinate system ⁇ 0 is a three-axis Cartesian coordinate system having an origin at the center of the bottom surface BDPbt of the robot 10 (described later) and an X0 axis, a Y0 axis, and a Z0 axis that are mutually orthogonal.
  • the robot system 1 includes, for example, a robot 10, an end effector 20 that is detachably attached to the robot 10, and a robot controller 30 that controls the operation 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 "control device.”
  • the robot 10 and the robot controller 30 are connected to each other so that they can communicate with each other, for example, via a wired connection.
  • the connection between the robot 10 and the robot controller 30 may be a wireless connection, or a connection that uses both wires and wireless connections.
  • the robot controller 30 is also capable of communicating with the end effector 20 attached to the robot 10.
  • the robot controller 30 may be any information processing device capable of communicating with other devices.
  • the robot 10 is an articulated robot used for work in, for example, farms, factories, warehouses, etc.
  • the robot 10 is an eight-axis articulated robot that is an eight-axis articulated robot that includes six joint mechanisms JEr (JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6) that correspond to rotary joints, and two joint mechanisms JEp (JEp1 and JEp2) that correspond to linear joints.
  • the robot 10 includes six joint mechanisms JEr, two joint mechanisms JEp, a body part BDP, two links LK (LK1 and LK2), and a tip part TP1.
  • the joint mechanism JEr1 is included in the body part BDP, and the joint mechanisms JEr5 and JEr6 are included in the tip part TP1.
  • the joint mechanism JEp1 is provided in the link LK1, and the joint mechanism JEp2 is provided in the link LK2.
  • the joint mechanisms JEr and JEp are also referred to as the joint mechanism JE without any particular distinction.
  • the robot 10 further has a plurality of motors that drive the plurality of joint mechanisms JE.
  • the motors that drive the plurality of joint mechanisms JE, the reducers and encoders provided in each of the plurality of motors, and the like are omitted.
  • the plurality of joint mechanisms JE are examples of "multiple joints" and "n joints (n is a natural number equal to or greater than 5).”
  • the body part BDP is an example of a "base part.” Additionally, the link LK1 is an example of a "first link,” and the link LK2 is an example of a "second link.” For example, the links LK1 and LK2 connect the body part BDP and the tip part TP1.
  • connection of members includes both cases where two members are directly connected and cases where two members are indirectly connected.
  • Two members being directly connected includes a state where the two members are in contact with each other, and a state that can be regarded as equivalent to a state where the two members are in contact with each other.
  • a state that can be regarded as equivalent to a state where two members are in contact with each other is, for example, a state where one of the two members is fixed to the other with an adhesive or the like.
  • two members being indirectly connected means that another member is disposed between the two members.
  • Joint mechanism JEr1 is an example of a "first driving mechanism”
  • joint mechanism JEr2 is an example of a “second driving mechanism”
  • Joint mechanism JEr3 is an example of a “third driving mechanism”
  • joint mechanism JEr4 is an example of a "fourth driving mechanism.”
  • Joint mechanism JEr5 is an example of a "fifth driving mechanism”
  • joint mechanism JEr6 is an example of a “sixth driving mechanism.”
  • Joint mechanism JEp1 is an example of a "first moving mechanism”
  • joint mechanism JEp2 is an example of a "second moving mechanism.”
  • the body part BDP includes a base part BDPba that is fixed to a predetermined location such as a floor, and a joint mechanism JEr1 that is connected to the joint mechanism JEr2.
  • the joint mechanism JEr1 rotates a part of the body part BDP around an axis Ax1 that is perpendicular to the bottom surface BDPbt of the body part BDP.
  • the joint mechanism JEr1 rotates an outer wall of the joint mechanism JEr1 that includes a part that is connected to the joint mechanism JEr2, relative to the base part BDPba, around the axis Ax1 as the rotation axis.
  • the joint mechanism JEr1 rotates the joint mechanism JEr2 relative to the body part BDP, around the axis Ax1 as the rotation axis.
  • the axis Ax1 is an example of a "first rotation axis.”
  • the rotation direction Dr1 in FIG. 1 indicates the rotation direction of a portion of the body part BDP when that portion rotates around the axis Ax1 as the rotation axis.
  • Joint mechanism JEr2 connects body part BDP and link LK1, and rotates link LK1 relative to body part BDP around axis Ax2, which is parallel to the bottom surface BDPbt of body part BDP.
  • Rotation direction Dr2 in FIG. 1 indicates the rotation direction of link LK1 when link LK1 rotates around axis Ax2.
  • Axis Ax2 is an example of a "second rotation axis.”
  • the link LK1 is, for example, hollow and elongated.
  • the link LK1 also has an opening Hlk1 that extends in the direction De1 in which the link LK1 extends.
  • the direction De1 is the "extension direction of the first link.”
  • the opening Hlk1 is formed, for example, on a surface of the link LK1 that includes a portion of the link LK1 that faces the link LK2.
  • a portion of the joint mechanism JEr3 and the joint mechanism JEp1 are provided inside the link LK1.
  • a portion of the joint mechanism JEr3 is located inside the link LK1, and the other portion of the joint mechanism JEr3 protrudes from the opening Hlk1 to the outside of the link LK1.
  • the portion of the joint mechanism JEr3 that protrudes outside the link LK1, or a portion of the portion that protrudes outside the link LK1 passes through an opening Hlk2 in the link LK2 described below and is located inside the link LK2.
  • the link LK1 rotates relative to the body part BDP around the axis Ax1 by the joint mechanism JEr1, and rotates relative to the body part BDP around the axis Ax2 by the joint mechanism JEr2.
  • Joint mechanism JEr3 connects link LK1 and link LK2, and rotates link LK2 relative to link LK1 around axis Ax3, which is perpendicular to the direction De1 in which link LK1 extends.
  • the rotation direction Dr3 in FIG. 1 indicates the rotation direction of link LK2 when link LK2 rotates around axis Ax3.
  • axis Ax3 is an example of a "third rotation axis.”
  • Joint mechanism JEp1 moves joint mechanism JEr3 relative to link LK1 along direction De1.
  • link LK2 moves relative to link LK1 along direction De1.
  • the range of movement of joint mechanism JEr3 by joint mechanism JEp1 is preferably a range in which the actual length (controlled length) of link LK1 can be set to less than half the length of link LK1 to more than half the length of link LK1.
  • the link LK2 is, for example, hollow and elongated.
  • the link LK2 also has an opening Hlk2 that extends in the direction De2 in which the link LK2 extends.
  • the direction De2 is the "extension direction of the second link.”
  • the opening Hlk2 is formed, for example, in a surface of the link LK2 that includes a portion facing the link LK1.
  • a portion of the joint mechanism JEr3 and the joint mechanism JEp2 are provided inside the link LK2.
  • a portion of the joint mechanism JEr3 is located inside the link LK2, and the other portion of the joint mechanism JEr3 protrudes from the opening Hlk2 to the outside of the link LK2.
  • Joint mechanism JEp2 moves link LK2 relative to joint mechanism JEr3 along direction De2 in which link LK2 extends. As a result, link LK2 moves relative to joint mechanism JEr3 along direction De2. In other words, link LK2 moves relative to link LK1 along direction De2.
  • the range of movement of joint mechanism JEr3 by joint mechanism JEp2 is preferably a range in which the effective length (controlled length) of link LK2 can be set to less than half the length of link LK2 to more than half the length of link LK2.
  • link LK2 moves relative to link LK1 along direction De1 by joint mechanism JEp1, and moves relative to link LK1 along direction De2 by joint mechanism JEp2.
  • Joint mechanism JEr4 connects link LK2 and tip TP1, and rotates tip TP1 relative to link LK2 around axis Ax4 perpendicular to direction De2.
  • Rotation direction Dr4 in FIG. 1 indicates the rotation direction of tip TP1 when tip TP1 rotates around axis Ax4.
  • Axis Ax4 is an example of a "fourth rotation axis.”
  • an end effector 20 that grips an object is attached to the tip part TP1.
  • the end effector 20 is attached to the end face TP1sf of the tip part TP1.
  • the tip part TP1 includes a first part TP11 connected to the link LK2, a second part TP12 connected to the first part TP11, a joint mechanism JEr5, and a joint mechanism JEr6.
  • the first part TP11 is connected to the link LK2 via, for example, the joint mechanism JEr4. Therefore, the first part TP11 rotates relative to the link LK2 around the axis Ax4 as the rotation axis.
  • Joint mechanism JEr5 connects the first part TP11 and the second part TP12, and rotates the second part TP12 relative to the first part TP11 around axis Ax5 perpendicular to axis Ax4.
  • the rotation direction Dr5 in FIG. 1 indicates the rotation direction of the second part TP12 when the second part TP12 rotates around axis Ax5.
  • axis Ax5 is an example of a "fifth rotation axis.”
  • the joint mechanism JEr6 rotates at least a part of the tip part TP1 around an axis Ax6 perpendicular to the axis Ax5.
  • the joint mechanism JEr6 rotates the end face TP1sf of the tip part TP1 around the axis Ax6. That is, the joint mechanism JEr6 rotates the part of the tip part TP1 to which the end effector 20 is attached (end face TP1sf) around the axis Ax6.
  • the rotation direction Dr6 in FIG. 1 indicates the rotation direction of the end face TP1sf when the end face TP1sf rotates around the axis Ax6.
  • the axis Ax6 is an example of a "sixth rotation axis.”
  • the surface of the joint mechanism JEr6 corresponds to the end surface TP1sf. Note that in a configuration in which the joint mechanism JEr6 is included in the second part TP12, the end surface of the second part TP12 may be the end surface TP1sf.
  • the work performed by the end effector 20 is not limited to gripping an object.
  • Appropriate parts e.g., robot hands and robot fingers, etc.
  • an end effector 20 suitable for various tasks is attached to the tip TP1.
  • rotation about an axis whose angle with a specific direction is greater than a predetermined angle may be referred to as "turning" to distinguish it from rotation about an axis whose angle with a specific direction is equal to or less than the predetermined angle.
  • the predetermined angle may be, for example, 45°. Note that the predetermined angle is not limited to 45°.
  • the direction Dv1 perpendicular to the bottom surface BDPbt of the body part BDP corresponds to the specific direction.
  • axis Ax1 corresponds to an axis whose angle with direction Dv1 perpendicular to the bottom surface BDPbt of the body part BDP is equal to or smaller than a predetermined angle
  • axis Ax2 corresponds to an axis whose angle with direction Dv1 is greater than a predetermined angle. Therefore, rotation of link LK1 about axis Ax2 as the rotation axis corresponds to a turn.
  • the direction Deb in which the body part BDP extends may be the specific direction.
  • the direction De1 in which link LK1 extends corresponds to a specific direction
  • the direction De2 in which link LK2 extends corresponds to a specific direction
  • axis Ax3 corresponds to an axis that forms an angle with direction De1 in which link LK1 extends that is greater than a predetermined angle
  • axis Ax4 corresponds to an axis that forms an angle with direction De2 in which link LK2 extends that is greater than a predetermined angle. Therefore, rotation of link LK2 about axis Ax3 and rotation of first part TP11 about axis Ax4 correspond to turning.
  • the direction De11 corresponds to a specific direction
  • the direction De12 corresponds to a specific direction.
  • the direction De11 is a direction from the end of the first part TP11 opposite to a specific end to which the joint mechanism JEr5 is connected toward the specific end.
  • the direction De11 may be considered as the direction in which the first part TP11 extends.
  • the direction De12 is a direction from the end of the second part TP12 opposite to a specific end (the end including the end face TP1sf) to which the joint mechanism JEr6 is connected toward the specific end.
  • the direction De12 may be considered as the direction in which the second part TP12 extends.
  • the axis Ax5 corresponds to an axis whose angle with the direction De11 is equal to or smaller than a predetermined angle.
  • the axis Ax6 corresponds to an axis whose angle with the direction De12 is equal to or smaller than a predetermined angle.
  • the direction De11 is perpendicular to the axis Ax4
  • the direction De12 is perpendicular to the axis Ax5.
  • the axis Ax5 whose angle with the direction De11 is equal to or smaller than a predetermined angle corresponds to an axis whose angle with the axis Ax4 is larger than a predetermined angle
  • the axis Ax6 whose angle with the direction De12 is equal to or smaller than a predetermined angle corresponds to an axis whose angle with the axis Ax5 is larger than a predetermined angle.
  • each of the multiple parts of the robot 10 (body part BDP, link LK1, link LK2, tip part TP1, etc.) can rotate around each of the axes Ax1, Ax2, Ax3, Ax4, Ax5, and Ax6. This allows the robot 10 to perform the same movements as a human being.
  • the link LK1 between joint mechanism JEr2 and joint mechanism JEr3 corresponds to the upper arm
  • the link LK2 between joint mechanism JEr3 and joint mechanism JEr4 corresponds to the forearm.
  • the robot 10 can perform a motion that imitates the twisting of a human waist using joint mechanism JEr1, and can perform a motion that imitates the rotation of a shoulder using joint mechanism JEr2.
  • the robot 10 can also perform a motion that imitates the rotation of an elbow using joint mechanism JEr3, and can also perform a motion that imitates the rotation of a wrist using joint mechanism JEr4.
  • the robot 10 can also perform a motion that imitates the twisting of a wrist using joint mechanism JEr5, and can also perform a motion that imitates the twisting of a fingertip using joint mechanism JEr6.
  • the joint mechanism JEp1 provided in the link LK1 allows the link LK2 to move relative to the link LK1 along the direction De1 in which the link LK1 extends.
  • the joint mechanism JEp2 provided in the link LK2 allows the link LK2 to move relative to the link LK1 along the direction De2 in which the link LK2 extends. Therefore, in this embodiment, the joint mechanisms JEp1 and JEp2 allow the tip part TP1 of the robot 10 to be easily moved to the periphery of the body part BDP.
  • the joint mechanisms JEp1 and JEp2 allow the area reachable by the tip part TP1 (more specifically, the end surface TP1sf) to be widened, thereby widening the area reachable by the end effector 20 attached to the robot 10.
  • the configuration of the robot system 1 is not limited to the example shown in FIG. 1.
  • the robot controller 30 may be built into the robot 10.
  • FIG. 1 illustrates a case in which the robot 10 is fixed to a predetermined location such as a floor
  • the robot 10 itself may be movable without being fixed to a predetermined location.
  • the base part BDPba of the body part BDP may be fixed to a predetermined location such as a floor via a joint mechanism JEr1.
  • the body part BDP may be defined without including the joint mechanism JEr1.
  • the joint mechanism JEr1 may rotate the base part BDPba around the axis Ax1 as the rotation axis.
  • the base part BDPba may be connected to the joint mechanism JEr2.
  • one of the two joint mechanisms JEp may be omitted.
  • the joint mechanism JEr3 may be fixed to the end of the two ends of the link LK1 that is farther from the body part BDP.
  • the joint mechanism JEr3 may be fixed to the end of the two ends of the link LK2 that is farther from the tip part TP1.
  • both of the two joint mechanisms JEp may be omitted.
  • the robot controller 30 calculates joint values representing the state (state of the joint) of each joint mechanism JE, for example, to set the position and posture of the robot 10 to a target position and posture.
  • the state of the joint mechanism JE may be the state of the movement of the joint.
  • the state of the joint mechanism JE may be, for example, the position of the joint mechanism JE (position of the joint) and the rotation angle (direction of the joint) of the rotation by the joint mechanism JEr.
  • the joint value indicates, for example, the position of the joint mechanism JE (position of the joint) and the rotation angle (direction of the joint) of the rotation by the joint mechanism JEr.
  • the joint value representing the state (state of the joint) of the joint mechanism JE is also simply referred to as the joint value of the joint mechanism JE (joint).
  • the operation of the robot 10 is controlled using, for example, forward kinematics, which determines the position and orientation of the robot 10 from the displacement of the joints (e.g., rotation and linear motion, etc.), and inverse kinematics, which determines the displacement of the joints from the position and orientation of the robot 10.
  • forward kinematics which determines the position and orientation of the robot 10 from the displacement of the joints
  • inverse kinematics which determines the displacement of the joints from the position and orientation of the robot 10.
  • the relationship between the speed of the hand (e.g., the tip of the end effector 20) of the robot 10 (hereinafter also referred to as the hand speed) and the joint speed is expressed by equation (1).
  • equation (1) is used in the calculation of forward kinematics.
  • the hand velocity r( ⁇ ) is expressed by equation (2).
  • the joint velocity ⁇ ( ⁇ ) is expressed by equation (3), and the Jacobian matrix J is expressed by equation (4).
  • the Jacobian matrix J is expressed, for example, as a matrix with 6 rows and m columns, and the element in the i-th column corresponds to the element J i relating to the i-th joint.
  • the element J i relating to the i-th joint is expressed by equation (5) when the i-th joint is a rotational joint, and is expressed by equation (6) when the i-th joint is a prismatic joint. Note that 0 in equation (6) indicates, for example, that the vector value is 0.
  • a three-axis Cartesian coordinate system with the origin at a specific position of each joint is associated with each joint (each joint mechanism JE) and is used to express the state of the joint.
  • the rotation axis of the joint mechanism JEr corresponds to the Z axis
  • the axis along the movement direction of the joint mechanism JEp or the axis along the movement direction of the link LK corresponds to the Z axis.
  • the i-th joint mechanism JE counting from the body part BDP in the order of the rotary joint and the linear joint, corresponds to the i-th joint.
  • joint mechanism JEr1 corresponds to the first joint
  • joint mechanism JEr2 corresponds to the second joint
  • Joint mechanism JEr3 corresponds to the third joint
  • joint mechanism JEr4 corresponds to the fourth joint
  • Joint mechanism JEr5 corresponds to the fifth joint
  • joint mechanism JEr6 corresponds to the sixth joint.
  • Joint mechanism JEp1 corresponds to the seventh joint
  • joint mechanism JEp2 corresponds to the eighth joint.
  • the numbering method is not limited to the above example.
  • equation (7) The relationship between the hand velocity and the joint velocity of the robot 10 is expressed by the following equation (7) using the pseudo-inverse matrix J + of the Jacobian matrix J.
  • equation (7) is used in the calculation of inverse kinematics.
  • the robot controller 30 calculates the joint velocity ⁇ i (.) of each joint mechanism JE relative to the target hand velocity r (.) using equation (7), and operates each joint mechanism JE based on the calculation result. Specifically, for example, the robot controller 30 calculates the joint value of each joint mechanism JE based on the joint velocity ⁇ i (.) of each joint mechanism JE calculated using equation (7). Then, the robot controller 30 operates each joint mechanism JE based on the joint value of each joint mechanism JE. For example, the robot controller 30 operates each joint mechanism JE so that the state of each joint mechanism JE becomes a state based on the joint value of each joint mechanism JE.
  • the robot 10 can be made to perform a jog operation.
  • the jog operation is, for example, an operation in which the joints and hands of the robot 10 are moved little by little to make the posture of the robot 10 reach a target posture.
  • the joint velocity ⁇ i (.) and information indicating the state of the joint mechanism JE calculated based on the joint velocity ⁇ i (.) correspond to the joint value.
  • the calculation of the joint velocity ⁇ (.) of the joint mechanism JE is an example of an inverse kinematics calculation.
  • the pseudo-inverse matrix J + is calculated from the Jacobian matrix J
  • calculating the joint velocity ⁇ (.) of the joint mechanism JE using the formula (7) corresponds to performing an inverse kinematics calculation using the Jacobian matrix.
  • the joint velocities ⁇ i (.) are calculated for all of the multiple joint mechanisms JE. For this reason, in a control method in which the Jacobian matrix J is used without any modification (hereinafter referred to as a comparative control method), when there are a large number of joint mechanisms JE, the calculation time required to calculate the joint velocities ⁇ i (.) of each joint that change the position and posture of the robot 10 to the target position and posture increases.
  • the multiple joint mechanisms JE are divided into two groups, a first group and a second group.
  • the robot controller 30 may identify whether each of the multiple joint mechanisms JE belongs to the first group or the second group.
  • the joint mechanisms JEr (JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6) belong to the first group
  • the joint mechanisms JEp (JEp1 and JEp2) belong to the second group.
  • the robot controller 30 then repeatedly executes a unit process that includes a process of sequentially executing a first group process that calculates the joint values of each joint mechanism JE belonging to the first group, and a second group process that calculates the joint values of each joint mechanism JE belonging to the second group.
  • a matrix (e.g., a 6-row, 6-column matrix) is used that includes only the elements J1 , J2 , J3 , J4 , J5 , and J6 related to the joint mechanism JEr belonging to the first group among the multiple elements of the Jacobian matrix J.
  • a matrix (e.g., a 6-row, 2-column matrix) is used that includes only the elements J7 and J8 related to the joint mechanism JEp belonging to the second group among the multiple elements of the Jacobian matrix J.
  • the multiple elements of the Jacobian matrix J are divided into two groups and the inverse kinematics calculation is performed, so that the number of joint mechanisms JE (the number of matrix elements) used in one inverse kinematics calculation can be reduced compared to the control method of the comparative example.
  • the solution of the inverse kinematics calculation can be calculated within a desired time.
  • FIG. 2 is a diagram showing an example of the hardware configuration of the robot controller 30 shown in FIG. 1.
  • the robot controller 30 has a processing device 32 that controls each part of the robot controller 30, a memory 35 that stores various information, a communication device 36, an operation device 37 that accepts operations by an operator, etc., a display device 38, and a driver circuit 39.
  • the memory 35 includes, for example, one or both of a volatile memory such as a RAM (Random Access Memory) that functions as a working area for the processing device 32, and a non-volatile memory such as an EEPROM (Electrically Erasable Programmable Read-Only Memory) that stores various information such as the control program PGr.
  • the memory 35 may be detachable from the robot controller 30.
  • the memory 35 may be a storage medium such as a memory card that is detachable from the robot controller 30.
  • the memory 35 may also be, for example, a storage device (e.g., online storage) that is communicatively connected to the robot controller 30 via a network or the like.
  • the memory 35 shown in FIG. 2 stores the control program PGr.
  • the control program PGr is an example of a "program.”
  • the control program PGr includes, for example, an application program that causes the robot controller 30 to control the operation of the robot 10.
  • the control program PGr may also include, for example, an operating robot system program that causes the processing device 32 to control each part of the robot controller 30.
  • the memory 35 includes a computer-readable, non-transient recording medium on which the control program PGr is recorded.
  • the processing device 32 is a processor that controls the entire robot controller 30, and is configured to include, for example, one or more CPUs (Central Processing Units).
  • the processing device 32 functions as the operation control unit 33 by, for example, executing the control program PGr stored in the memory 35 and operating according to the control program PGr.
  • the operation control unit 33 repeats the unit processing described in FIG. 1 until the position and posture of the robot 10 become the target position and posture. Then, the operation control unit 33 drives the robot 10 via a driver circuit 39 described later based on the joint values of each joint mechanism JE, etc.
  • the control program PGr may be transmitted from another device via a network, etc.
  • the processing device 32 may be configured to include multiple CPUs, some or all of the functions of the processing device 32 may be realized by these multiple CPUs operating in cooperation with each other according to a program such as the control program PGr.
  • the processing device 32 may be configured to include hardware such as a GPU (Graphics Processing Unit), a DSP (Digital Signal Processor), or an FPGA (Field Programmable Gate Array) in addition to one or more CPUs, or in place of some or all of the one or more CPUs.
  • some or all of the functions of the processing device 32 may be realized by hardware such as a DSP.
  • the communication device 36 is hardware for communicating with an external device that exists outside the robot controller 30.
  • the communication device 36 has a function of communicating with an external device by short-range wireless communication.
  • the communication device 36 may further have a function of communicating with an external device via a mobile communication network or a network.
  • the operation device 37 is an input device (e.g., a keyboard, a mouse, a switch, a button, a sensor, etc.) that accepts input from the outside.
  • the operation device 37 accepts an operation by an operator and outputs operation information corresponding to the operation to the processing device 32.
  • a touch panel that detects contact with the display surface of the display device 38 may be used as the operation device 37.
  • the display device 38 is an output device such as a display that outputs to the outside.
  • the display device 38 displays images under the control of the processing device 32.
  • the operation device 37 and the display device 38 may be integrated into one structure (for example, a touch panel).
  • the driver circuit 39 is hardware that outputs signals to the robot 10 to drive the robot 10 under the control of the processing device 32 (more specifically, the operation control unit 33). For example, the driver circuit 39 outputs signals based on the joint values of each joint mechanism JE to the robot 10 as signals to drive motors MOr1, MOr2, MOr3, MOr4, MOr5, MOr6, MOp1, MOp2, etc.
  • motors MOr1, MOr2, MOr3, MOr4, MOr5, and MOr6 are motors that drive joint mechanisms JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6, respectively.
  • motors MOp1 and MOp2 are motors that drive joint mechanisms JEp1 and JEp2, respectively.
  • motors MOr1, MOr2, MOr3, MOr4, MOr5, MOr6, MOp1, and MOp2 may be collectively referred to as motor MO.
  • the robot controller 30 controls the operation of the robot 10 by controlling multiple motors MO.
  • FIG. 3 is a flow chart showing an example of the operation of the robot controller 30 shown in FIG. 1.
  • a process is performed to calculate the joint values of each joint mechanism JE (e.g., information indicating the position of the joint mechanism JE and the rotation angle of the joint mechanism JEr) for changing the position and posture of the hand of the robot 10 to the target position and posture.
  • the operation shown in FIG. 3 is executed by the processing device 32 functioning as the operation control unit 33. That is, in each step from step S100 to step S520 shown in FIG. 3, the processing device 32 functions as the operation control unit 33.
  • step S100 the operation control unit 33 calculates the difference between the position and posture of the hand of the robot 10 and the target position and posture. For example, the operation control unit 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 operation control unit 33 calculates the difference between the position and posture of the hand of the robot 10 calculated based on the current joint values of each joint mechanism JE and the target position and posture of the hand of the robot 10.
  • step S120 the operation control unit 33 determines whether the difference between the position and posture of the robot 10's hand and the target position and posture is equal to or less than a tolerance.
  • the tolerance is set to a value that indicates that the position and posture of the robot 10's hand can be regarded as matching the target position and posture if the difference between the position and posture of the robot 10's hand and the target position and posture is equal to or less than the tolerance.
  • step S120 If the result of the determination in step S120 is positive, the operation control unit 33 advances the process to step S520. On the other hand, if the result of the determination in step S120 is negative, the operation control unit 33 advances the process to step S200.
  • step S200 the operation control unit 33 executes a joint value calculation process.
  • the joint value calculation process is a process that sequentially executes the first group process and the second group process briefly described in FIG. 1. For example, the joint value calculation process calculates the joint value of each joint mechanism JE. Details of the joint value calculation process will be described later in FIG. 4. After executing the joint value calculation process, the operation control unit 33 advances the process to step S320.
  • step S300 the operation control unit 33 determines whether the state of each joint mechanism JE based on the joint values of each joint mechanism JE calculated by the joint value calculation process is within the movable range.
  • the movable range of the joint mechanism JE may include the upper and lower limits of the rotation angle of the rotation by the joint mechanism JEr.
  • the movable range of the joint mechanism JE may include the movement range (upper and lower limits) of the joint mechanism JEr3 by the joint mechanism JEp1, and the movement range (upper and lower limits) of the joint mechanism JEr3 by the joint mechanism JEp2.
  • step S300 If the result of the determination in step S300 is positive, the operation control unit 33 advances the process to step S400. On the other hand, if the result of the determination in step S300 is negative, the operation control unit 33 advances the process to step S320.
  • step S320 the operation control unit 33 changes the joint value of the joint mechanism JE that is outside the movable range to a value corresponding to the limit value (upper or lower limit) of the movable range. For example, the operation control unit 33 changes the joint value of the joint mechanism JE that has exceeded the upper limit of the movable range to a value corresponding to the upper limit of the movable range. Similarly, the operation control unit 33 changes the joint value of the joint mechanism JE that has fallen below the lower limit of the movable range to a value corresponding to the lower limit of the movable range. After executing the processing of step S320, the operation control unit 33 advances the processing to step S400.
  • the limit value upper or lower limit
  • step S400 the operation control unit 33 increments the loop count. Note that the loop count is initialized to 0 before the operation shown in FIG. 3 is executed.
  • step S420 the operation control unit 33 determines whether the loop count is equal to or less than an upper limit.
  • the upper limit is the upper limit for the number of times the series of processes from step S100 to step S520 is repeated, and is set in order to terminate the operation shown in FIG. 3 if the operation does not converge.
  • step S420 If the result of the determination in step S420 is negative, the operation control unit 33 advances the process to step S500. On the other hand, if the result of the determination in step S420 is positive, the operation control unit 33 returns the process to step S100. In this way, the series of processes from step S100 to step S420 are repeated until the joint values of each joint mechanism JE for bringing the position and posture of the hand of the robot 10 to the target position and posture are calculated, or until the loop count exceeds the upper limit. Note that the series of processes from step S100 to step S420 is an example of a "unit process".
  • step S500 the operation control unit 33 determines the joint values of each joint mechanism JE calculated in the joint value calculation process in step S200 (the latest joint values) as the joint values of each joint mechanism JE, and sets the completion flag to invalid.
  • the completion flag is a flag indicating whether or not joint values have been calculated that make the difference between the position and posture of the robot 10's hand and the target position and posture less than or equal to the tolerance. For example, an invalid completion flag indicates that joint values have not been calculated that make the difference between the position and posture of the robot 10's hand and the target position and posture less than or equal to the tolerance.
  • a valid completion flag indicates that joint values have been calculated that make the difference between the position and posture of the robot 10's hand and the target position and posture less than or equal to the tolerance.
  • the completion flag is set to valid in step S520, which is executed when the result of the determination in step S120 is positive.
  • step S520 the operation control unit 33 determines the joint values (latest joint values) of each joint mechanism JE used in calculating the position and posture of the hand of the robot 10 in step S100 as the joint values of each joint mechanism JE, and sets the completion flag to active. Note that if the series of processes from step S100 to step S520 has been repeated two or more times, the latest joint values used in the current process of step S100 are the joint values calculated in the previous joint value calculation process of step S200.
  • the operation shown in FIG. 3 ends when the processing of step S500 or S520 is executed.
  • the operation of the robot controller 30 is not limited to the example shown in FIG. 3.
  • the processes of steps S400 and S420 may be omitted.
  • the operation control unit 33 returns the process to step S100.
  • the operations shown in FIG. 3 may be terminated by interrupt processing, etc.
  • FIG. 4 is a flow chart showing an example of the joint value calculation process shown in FIG. 3.
  • the processing device 32 functioning as the motion control unit 33 executes a series of processes from step S220 to step S264 shown in FIG. 4 as the process of step S220 shown in FIG. 3. Therefore, the process of step S220 is executed when the result of the determination in step S120 shown in FIG. 3 is negative.
  • step S220 the movement control unit 33 calculates the Jacobian matrix J of the first group corresponding to the joint mechanisms JE belonging to the first group based on the current joint values of each joint mechanism JE. Specifically, for example, the movement control unit 33 calculates a 6-row, 6-column Jacobian matrix including only the elements (J 1 -J 6 ) of the columns corresponding to the joint mechanisms JEr (JEr1-JEr6) belonging to the first group as the Jacobian matrix J of the first group.
  • step S222 the motion control unit 33 calculates the displacement amount of each joint mechanism JEr belonging to the first group (for example, the joint velocity ⁇ i ( ⁇ ) of each joint mechanism JEr) using the pseudo-inverse matrix J+ of the Jacobian matrix J of the first group.
  • step S224 the operation control unit 33 updates the joint values of each joint mechanism JE based on the displacement amount of each joint mechanism JE. For example, the operation control unit 33 adds the displacement amount of each joint mechanism JEr (JEr1-JEr6) belonging to the first group to the joint value of each joint mechanism JEr (JEr1-JEr6) used to calculate the position and posture of the hand of the robot 10 in step S100 shown in FIG. 3. This updates the joint value of each joint mechanism JEr belonging to the first group. Note that the joint values of each joint mechanism JEp (JEp1 and JEp2) belonging to the second group are maintained at the joint value used in step S100 because the displacement amount has not been calculated in the series of processes in steps S220 and S222.
  • step S240 the operation control unit 33 calculates the difference between the position and posture of the hand of the robot 10 and the target position and posture. For example, the operation control unit 33 calculates the position and posture of the hand of the robot 10 based on the current joint values of each joint mechanism JE (joint values updated in step S224). Then, the operation control unit 33 calculates the difference between the position and posture of the hand of the robot 10 calculated based on the current joint values of each joint mechanism JE and the target position and posture of the hand of the robot 10.
  • step S260 the operation control unit 33 calculates a Jacobian matrix J of the second group corresponding to the joint mechanisms JE belonging to the second group based on the current joint values of each joint mechanism JE. Specifically, for example, the operation control unit 33 calculates a 6-row, 2-column Jacobian matrix including only elements ( J7 and J8 ) in the columns corresponding to the joint mechanisms JEp (JEp1 and JEp2) belonging to the second group as the Jacobian matrix J of the second group. That is, the joint values of the joint mechanisms JE belonging to the first group are fixed to the values calculated by the series of processes from step S220 to S224.
  • step S262 the motion control unit 33 calculates the displacement amount of each joint mechanism JEp belonging to the second group (for example, the joint velocity ⁇ i ( ⁇ ) of each joint mechanism JEp) using the pseudo-inverse matrix J+ of the Jacobian matrix J of the second group.
  • step S264 the operation control unit 33 updates the joint values of each joint mechanism JE based on the displacement amount of each joint mechanism JE. For example, the operation control unit 33 adds the displacement amount of each joint mechanism JEp (JEp1 and JEp2) belonging to the second group to the joint value of each joint mechanism JEp (JEp1 and JEp2) updated in step S224. That is, the operation control unit 33 adds the displacement amount of each joint mechanism JEp (JEp1 and JEp2) belonging to the second group to the joint value of each joint mechanism JEp (JEp1 and JEp2) used in step S100 shown in FIG. 3. This updates the joint value of each joint mechanism JEp belonging to the second group. In addition, the joint values of each joint mechanism JEr (JEr1-JEr6) belonging to the first group are maintained at the joint values updated in step S224, since the displacement amount has not been calculated in the series of processes in steps S260 and S262.
  • step S264 After executing the process of step S264, the operation control unit 33 advances the process to step S300 shown in FIG. 3.
  • the joint values of each joint mechanism JEr belonging to the first group are calculated by a series of processes from steps S220 to S224, and the joint values of each joint mechanism JEp belonging to the second group are calculated by a series of processes from steps S240 to S264.
  • the joint values of all joint mechanisms JE of the robot 10 are calculated.
  • the series of processes from steps S220 to S224 is an example of "first group processing”
  • the series of processes from steps S260 to S264 is an example of "second group processing”.
  • the process of step S300 may be executed after the "first group process”, and in the unit process next to the one unit process, the "second group process” may be executed if the result of the determination in step S120 is negative.
  • the joint values may be determined in step S520 and the calculation may be terminated.
  • the joint mechanism JE belonging to the first group in the "first group processing” is a joint mechanism JEr (JEr1-JEr6)
  • a Jacobian matrix J with 6 rows and 6 columns is used
  • the joint mechanism JE belonging to the second group in the "second group processing” is a joint mechanism JEp (JEp1 and JEp2)
  • a Jacobian matrix J with 6 rows and 2 columns is used, but the present invention is not limited to this.
  • the present invention can also change the number of columns of the Jacobian matrix J depending on the number of joint mechanisms JE in each group.
  • first group processing and “second group processing” may be performed using a 6-row, 8-column Jacobian matrix J based on the joint values of the eight joint mechanisms JE.
  • the calculation of the "first group processing” may be performed by setting the matrix related to the calculation of the joint mechanism JEp (JEp1 and JEp2) of the 6-row, 8-column Jacobian matrix J to 0, thereby substantially fixing the joint values of the joint mechanism JEp.
  • the calculation of the "second group processing” may be performed by setting the matrix related to the calculation of the joint mechanism JEr (JEr1-JEr6) of the 6-row, 8-column Jacobian matrix J to 0, thereby substantially fixing the joint values of the joint mechanism JEr.
  • the first is when the robot 10 is made to perform a jog operation. In the jog operation, a target position is specified for the robot 10, and the angles (movement amounts) of each joint for moving to the specified target position are calculated by inverse kinematics calculation.
  • the second is when the trajectory of the robot 10 is generated. When the robot 10 is made to perform repetitive operations, it is necessary to memorize the trajectory in advance. When generating a trajectory in advance, the angles of each joint at multiple points on the trajectory are calculated by inverse kinematics calculation. Note that, if the number of points on the trajectory is small, the trajectory between the points may be calculated and supplemented when the robot 10 is actually operated.
  • the third is when the robot 10 is equipped with a vision camera or the like, and the trajectory of the robot 10 is generated (or the trajectory is corrected) based on vision information or the like. In this case, a new target position is specified as in the first jog operation.
  • the robot system 1 includes the robot 10, which is a multi-joint robot having four or more joint mechanisms JE, and the robot controller 30 that controls the operation of the robot 10.
  • the joint mechanisms JE are divided into two groups, a first group and a second group.
  • the control method for the robot 10 is a control method that calculates the joint values of each of the multiple joint mechanisms JE for bringing the robot 10 into a desired state by repeatedly executing unit processes including a first group process that calculates joint values representing the state of the joint mechanisms JE for the joint mechanisms JE belonging to the first group by performing an inverse kinematics calculation that calculates the displacement amount of the joint mechanisms JE when the robot 10 is operated using the joint mechanisms JE belonging to the first group among the multiple joint mechanisms JE, and a second group process that calculates joint values of the joints belonging to the second group by performing an inverse kinematics calculation using the joint mechanisms JE belonging to the second group among the multiple joint mechanisms JE.
  • the robot controller 30 has an operation control unit 33 that repeatedly executes the above-mentioned unit processing.
  • the control program PGr causes the processing device 32 included in the robot controller 30 to function as the above-mentioned operation control unit 33.
  • the inverse kinematics calculation for calculating the joint values of all the joint mechanisms JE of the robot 10 is performed twice. For example, in a unit process, first, an inverse kinematics calculation for calculating the joint values of the joint mechanisms JE belonging to the first group is performed, and then an inverse kinematics calculation for calculating the joint values of the joint mechanisms JE belonging to the second group is performed. For this reason, in this embodiment, the number of joint mechanisms JE used in one inverse kinematics calculation (the number of joint mechanisms JE treated as displacing joint mechanisms JE) can be reduced compared to conventional control methods. As a result, in this embodiment, the calculation time required for one inverse kinematics calculation can be shortened.
  • the robot 10 has four or more joint mechanisms JE including one joint mechanism JEp (linear joint).
  • the second group includes one joint mechanism JEp. Even in this case, it is possible to suppress an increase in the calculation time until the solution of the inverse kinematics calculation is calculated.
  • the four or more joint mechanisms JE including one joint mechanism JEp (linear joint) may include two or more joint mechanisms JEp corresponding to the linear joints.
  • the robot 10 has eight or more joint mechanisms JE including two joint mechanisms JEp (linear joints).
  • the second group includes two joint mechanisms JEp. Even in this case, it is possible to suppress an increase in the calculation time until the solution of the inverse kinematics calculation is calculated.
  • the eight or more joint mechanisms JE including two joint mechanisms JEp (linear joints) may include three or more joint mechanisms JEp corresponding to linear joints.
  • the robot 10 includes a body part BDP, a link LK1, a link LK2, a tip part TP1, a joint mechanism JEr1 that rotates at least a part of the body part BDP around an axis Ax1 that forms an angle with a direction Dv1 perpendicular to the bottom surface BDPbt of the body part BDP of less than a predetermined angle as a first rotation axis, which connects the body part BDP and the link LK1, and rotates the link LK1 around an axis Ax2 that forms an angle with the direction Dv1 perpendicular to the bottom surface BDPbt of the body part BDP of more than a predetermined angle as a second rotation axis, which connects the link LK1 and the link LK2, and rotates the link LK1 around an axis Ax2 that forms an angle with the direction De1 in which the link LK1 extends of more than a predetermined angle as a second rotation axis, which connects
  • the tip part TP1 includes a first part TP11 connected to the link LK2, a second part TP12 connected to the first part TP11, a joint mechanism JEr5 that connects the first part TP11 and the second part TP12 and rotates the second part TP12 relative to the first part TP11 around an axis Ax5 that forms an angle with the fourth rotation axis greater than a predetermined angle as a fifth rotation axis, and a joint mechanism JEr6 that rotates at least a part of the tip part TP1 around an axis Ax6 that forms an angle with the fifth rotation axis greater than a predetermined angle as a sixth rotation axis.
  • the multiple joint mechanisms JE are joint mechanism JEr1, joint mechanism JEr2, joint mechanism JEr3, joint mechanism JEr4, joint mechanism JEr5, joint mechanism JEr6, joint mechanism JEp1, and joint mechanism JEp2.
  • the robot 10 which is a multi-joint robot including six rotational joints and two linear joints, can be operated continuously.
  • the robot system 1 may be used in a manufacturing method for an article that includes assembling or removing a part.
  • the work of assembling or removing a part can be performed efficiently.
  • the six joint mechanisms JEr (JEr1-JEr6) corresponding to the rotational joints belong to the same group (first group), but the present invention is not limited to such an embodiment.
  • the six joint mechanisms JEr (JEr1-JEr6) may be divided into two groups. Specifically, for example, among the eight joint mechanisms JE, three joint mechanisms JEr4, JEr5, and JEr6 may belong to the first group, and the remaining five joint mechanisms JEr1, JEr2, JEr3, JEp1, and JEp2 may belong to the second group.
  • the eight joint mechanisms JE may belong to the first group, and the remaining three joint mechanisms JEr4, JEr5, and JEr6 may belong to the second group. Furthermore, even in a configuration in which one or both of the two joint mechanisms JEp are omitted from the multiple joint mechanisms JE, the multiple joint mechanisms JE may be divided in the same manner as in the above-mentioned example.
  • the three joint mechanisms JEr6, JEr5, and JEr4 that are the first, second, and third from the tip of the robot 10 may belong to the first group.
  • the remaining joint mechanisms JE (JEr1, JEr2, JEr3, JEp1, and JEp2) may belong to the second group. In this case as well, the same effects as in the above-mentioned embodiment can be obtained.
  • the three joint mechanisms JEr6, JEr5, and JEr4 that are the first, second, and third from the tip of the robot 10 may belong to the second group.
  • the remaining joint mechanisms JE (JEr1, JEr2, JEr3, JEp1, and JEp2) may belong to the first group. In this case as well, the same effects as in the above-mentioned embodiment can be obtained.
  • the multiple joint mechanisms JE may be divided into three or more groups.
  • the six joint mechanisms JEr (JEr1-JEr6) corresponding to the rotary joints may be divided into two groups as in the first modified example described above, and the two joint mechanisms JEp corresponding to the linear joints may belong to the third group (third group).
  • the grouping when dividing the multiple joint mechanisms JE into three or more groups is not limited to the above-described example.
  • FIG. 5 is a flowchart showing an example of a joint value calculation process according to the second modified example. Elements similar to those described in FIGS. 1 to 4 are given the same reference numerals, and detailed description will be omitted.
  • the joint value calculation process i.e., the series of processes from step S210 to step S240 shown in FIG. 5 is also executed by the processing device 32 functioning as the operation control unit 33.
  • the series of processes from step S210 to step S240 shown in FIG. 5 is executed as the process of step S220 shown in FIG. 3, instead of the series of processes from step S220 to step S264 shown in FIG. 4. Therefore, the process of step S210 is executed when the result of the determination in step S120 shown in FIG. 3 is negative.
  • n joint mechanisms JE (n is a natural number equal to or greater than 5) are divided into k groups (k is a natural number equal to or greater than 3 and equal to or less than n/2 rounded up or down).
  • step S210 the operation control unit 33 sets the variable h to 1. Then, the operation control unit 33 advances the process to step S220.
  • step S220 the operation control unit 33 calculates the Jacobian matrix J (hereinafter also referred to as the Jacobian matrix J of the h-th group) corresponding to the joint mechanism JE belonging to the h-th group (h-th group) based on the current joint values of each joint mechanism JE.
  • the calculation process of the Jacobian matrix J of the h-th group is similar to the calculation process of the Jacobian matrix J of the first group (step S220 in FIG. 4) and the calculation process of the Jacobian matrix J of the second group (step S260 in FIG. 4) described in FIG. 4.
  • step S222 the motion control unit 33 calculates the displacement amount of each joint mechanism JE belonging to the h-th group (for example, the joint velocity ⁇ i ( ⁇ ) of each joint mechanism JE) using the pseudo-inverse matrix J + of the Jacobian matrix J of the h-th group.
  • step S224 the operation control unit 33 updates the joint value of each joint mechanism JE based on the displacement amount of each joint mechanism JE. For example, the operation control unit 33 adds the displacement amount of each joint mechanism JE belonging to the h-th group to the current joint value of each joint mechanism JE. This updates the joint value of each joint mechanism JE belonging to the h-th group.
  • the joint values of joint mechanisms JE other than the joint mechanism JE belonging to the h-th group are maintained at the latest joint value before the processing of step S224 is executed, since the displacement amount has not been calculated in the series of processing of steps S220 and S222.
  • the joint values of joint mechanisms JE other than the joint mechanism JE belonging to the h-th group are fixed to the latest joint value before the processing of step S224 is executed.
  • step S232 the movement control unit 33 determines whether the variable h is less than or equal to k (the number of groups). If the result of the determination in step S232 is negative, the movement control unit 33 ends the joint value calculation process and proceeds to step S300 shown in FIG. 3. On the other hand, if the result of the determination in step S232 is positive, the movement control unit 33 proceeds to step S240.
  • step S240 the operation control unit 33 calculates the difference between the position and posture of the hand of the robot 10 and the target position and posture. For example, the operation control unit 33 calculates the position and posture of the hand of the robot 10 based on the current joint values of each joint mechanism JE (joint values updated in step S224). Then, the operation control unit 33 calculates the difference between the position and posture of the hand of the robot 10 calculated based on the current joint values of each joint mechanism JE and the target position and posture of the hand of the robot 10.
  • step S240 After executing the process of step S240, the operation control unit 33 returns the process to step S220.
  • the joint values of each joint mechanism JE belonging to the h-th group are calculated by a series of processes from steps S220 to S224.
  • the series of processes from steps S220 to S224 and the process of step S240 are repeated the number of times (k) for the group, thereby calculating the joint values of all joint mechanisms JE of the robot 10.
  • the series of processes from steps S220 to S224 is an example of "group processing”.
  • the joint value calculation process shown in FIG. 5 may be executed as the process of step S220 shown in FIG. 3.
  • n joint mechanisms JE (n is a natural number of 5 or more) are divided into k groups (k is a natural number of 3 or more and less than or equal to n/2 rounded up).
  • the operation control unit 33 calculates joint values representing the states of the n joint mechanisms JE for bringing the robot 10 into a target state by repeatedly executing unit processes including a process of sequentially executing k group processes corresponding to the k groups.
  • the operation control unit 33 calculates the joint values of the joint mechanisms JE belonging to one group by performing an inverse kinematic calculation to calculate the displacement amount of the joint mechanism JE when the robot 10 is operated using a joint mechanism JE belonging to one group among the multiple joint mechanisms JE.
  • the same effects as those of the above-mentioned embodiment can be obtained.
  • the joint mechanism JEr3 moves relative to the link LK1 or LK2, but the present invention is not limited to this.
  • the robot 10 may have a joint mechanism JE that expands and contracts the link LK1 and a joint mechanism JE that expands and contracts the link LK2, instead of the joint mechanisms JEp1 and JEp2.
  • FIG. 6 is an explanatory diagram for explaining an example of a robot 10 according to a third modified example. Elements similar to those explained in FIGS. 1 to 5 are given the same reference numerals, and detailed explanations are omitted.
  • the robot 10 according to this modified example is, for example, an eight-axis articulated robot having a joint mechanism JEe (JEe1 and JEe2) instead of the joint mechanism JEp (JEp1 and JEp2) shown in FIG. 1.
  • the joint mechanism JEe1 is a linear joint that causes the link LK1A, which includes the support part LK1a, the movable part LK1b, and the movable part LK1c, to expand and contract along the direction De1.
  • the joint mechanism JEe2 is a linear joint that causes the link LK2A, which includes the support part LK2a, the movable part LK2b, and the movable part LK2c, to expand and contract along the direction De2.
  • the robot 10 has joint mechanisms JEr1A, JEr2, JEr3A, JEr4A, JEr5A, JEr6, JEe1, and JEe2, a body part BDPa, links LK1A and LK2A, and a tip part TP1A.
  • the joint mechanism JEe1 is provided on the link LK1A
  • the joint mechanisms JEe2 and JEr4A are provided on the link LK2A.
  • Body part BDPa is an example of a "base part.”
  • Joint mechanism JEr1A is an example of a "first drive mechanism”
  • joint mechanism JEr3A is an example of a “third drive mechanism”
  • joint mechanism JEr5A is an example of a "fifth drive mechanism.”
  • Joint mechanism JEe1 is an example of a "first telescopic mechanism”
  • joint mechanism JEe2 is an example of a “second telescopic mechanism.”
  • Link LK1A is an example of a "first link”
  • link LK2A is an example of a "second link.”
  • the body part BDPa is fixed to a predetermined location, such as the floor, via the joint mechanism JEr1A.
  • the joint mechanism JEr1A rotates the body part BDPa around an axis Ax1 that is perpendicular to the bottom surface BDPbt of the body part BDPa.
  • the joint mechanism JEr2 connects the body part BDPa and the support part LK1a of the link LK1A, and rotates the link LK1A relative to the body part BDPa around the axis Ax2 that is parallel to the bottom surface BDPbt of the body part BDPa.
  • the link LK1A is configured to be expandable and contractible, for example, along the direction De1 in which the link LK1A extends.
  • the link LK1A includes a support part LK1a connected to the body part BDPa, movable parts LK1b and LK1c, and a joint mechanism JEe1.
  • the support part LK1a is an example of a "first support part”
  • the movable part LK1c is an example of a "first movable part.”
  • the movable part LK1b is connected to the movable part LK1c so as to move integrally with the movable part LK1c, and is connected to the support part LK1a so as to be movable relative to the support part LK1a.
  • the joint mechanism JEe1 moves the movable part LK1b along the direction De1 relative to the support part LK1a, thereby moving the movable part LK1c along the direction De1 relative to the support part LK1a.
  • the link LK1A expands and contracts along the direction De1.
  • the support part LK1a is hollow. When the link LK1A contracts, at least a part of the movable part LK1b is stored inside the support part LK1a.
  • Joint mechanism JEr3A connects movable portion LK1c of link LK1A and support portion LK2a of link LK2A, and rotates link LK2A relative to link LK1A around axis Ax3 perpendicular to the direction De1 in which link LK1A extends.
  • Link LK2A is configured to be expandable and contractible, for example, along the direction De2 in which link LK2A extends.
  • link LK2A includes a support part LK2a connected to the movable part LK1c of link LK1A, movable parts LK2b and LK2c, a joint mechanism JEe2, and a joint mechanism JEr4A.
  • Support part LK2a is an example of a "second support part”
  • movable part LK2c is an example of a "second movable part.”
  • the movable part LK2b is connected to the movable part LK2c so as to move integrally with the movable part LK2c, and is connected to the support part LK2a so as to be movable relative to the support part LK2a.
  • the joint mechanism JEe2 moves the movable part LK2b along the direction De2 relative to the support part LK2a, thereby moving the movable part LK2c along the direction De2 relative to the support part LK2a.
  • the support part LK2a is hollow. When the link LK2A contracts, at least a part of the movable part LK2b is stored inside the support part LK2a.
  • the joint mechanism JEr4A rotates the movable part LK2c relative to the support part LK2a around an axis Ax4A that is parallel to the direction De2 in which the link LK2A extends.
  • the joint mechanism JEr4A is an example of a "fourth drive mechanism," and the axis Ax4A is an example of a "fourth rotation axis.”
  • the joint mechanism JEr5A connects the movable part LK2c of the link LK2A to the tip TP1A, and rotates the tip TP1A relative to the link LK2A around an axis Ax5 perpendicular to the direction De2 in which the link LK2A extends.
  • the tip part TP1A includes a second part TP12A connected to the movable part LK2c of the link LK2 via a joint mechanism JEr5A, and a joint mechanism JEr6.
  • the joint mechanism JEr6 is similar to the joint mechanism JEr6 shown in FIG. 1.
  • the end effector 20 is attached to the end surface TP1sf.
  • the configuration of the robot 10 according to this modified example is not limited to the example shown in FIG. 6.
  • the joint mechanism JEr4A moves along the direction De2 relative to the support part LK2a together with the movable part LK2c of the link LK2A, but may be fixed to the support part LK2a.
  • the joint mechanism JEr4A may rotate the movable part LK2b relative to the support part LK2a around the axis Ax4A as the rotation axis, and the joint mechanism JEe2 may move the movable part LK2c relative to the movable part LK2b.
  • the movable part LK2b In a configuration in which the movable part LK2c moves relative to the movable part LK2b, for example, the movable part LK2b is hollow. Then, when the link LK2A contracts, at least a part of the movable part LK2c is stored inside the movable part LK2b. Also, one of the joint mechanisms JEe1 and JEe2 may be omitted.
  • the robot 10 comprises a body part BDPa, a link LK1A including a support part LK1a and a movable part LK1c, a link LK2A including a support part LK2a and a movable part LK2c, a tip part TP1A, and a joint mechanism JEr1A that rotates at least a part of the body part BDPa around an axis Ax1 that forms an angle with a direction Dv1 perpendicular to the bottom surface BDPbt of the body part BDPa that is equal to or smaller than a predetermined angle as a first rotation axis, and a joint mechanism JEr1A that connects the body part BDPa and the support part LK1a.
  • a joint mechanism JEr1A that rotates at least a part of the body part BDPa around an axis Ax1 that forms an angle with a direction Dv1 perpendicular to the bottom surface BDPbt of the body part BDPa that is equal to
  • a joint mechanism JEr2 that rotates the link LK1A with respect to the body part BDPa around an axis Ax2 that forms an angle with a direction Dv1 perpendicular to the bottom surface BDPbt of the body part BDPa larger than a predetermined angle as a second rotation axis
  • a joint mechanism JEr3A that connects the movable part LK1c and the support part LK2a and rotates the link LK2A with respect to the link LK1A around an axis Ax3 that forms an angle with a direction De1 in which the link LK1A extends larger than a predetermined angle as a third rotation axis
  • a joint mechanism JEr4A that rotates the movable part LK2c relative to the support part LK2a around an axis Ax4A that forms an angle with the direction De2 of a predetermined angle or less as a fourth rotation axis
  • a joint mechanism JEr5A that connects the movable part LK
  • the joint mechanism JE includes a joint mechanism JEr6 that rotates at least a portion of the tip portion TP1A relative to the link LK2A, a joint mechanism JEe1 that moves the movable portion LK1c relative to the support portion LK1a along the extension direction (direction De1) of the link LK1A to expand and contract the link LK1A, and a joint mechanism JEe2 that moves the movable portion LK2c relative to the support portion LK2a along the extension direction (direction De2) of the link LK2A to expand and contract the link LK2A.
  • a joint mechanism JEr6 that rotates at least a portion of the tip portion TP1A relative to the link LK2A
  • a joint mechanism JEe1 that moves the movable portion LK1c relative to the support portion LK1a along the extension direction (direction De1) of the link LK1A to expand and contract the link LK1A
  • a joint mechanism JEe2 that moves the movable
  • the multiple joint mechanisms JE are joint mechanism JEr1A, joint mechanism JEr2, joint mechanism JEr3A, joint mechanism JEr4A, joint mechanism JEr5A, joint mechanism JEr6, joint mechanism JEe1, and joint mechanism JEe2.
  • joint mechanism JEr1A joint mechanism JEr2
  • joint mechanism JEr3A joint mechanism JEr4A
  • joint mechanism JEr5A joint mechanism JEr6
  • joint mechanism JEe1 joint mechanism JEr2A
  • joint mechanism JEr6 joint mechanism JEe1 joint mechanism JEr6 joint mechanism JEe1
  • joint mechanism JEe2 joint mechanism JEr1A
  • joint mechanism JEr3A joint mechanism JEr4A
  • joint mechanism JEr5A joint mechanism JEr6 joint mechanism JEe1
  • the joint mechanism JEr4 rotates the tip portion TP1 relative to the link LK2 around the axis Ax4 perpendicular to the direction De2 in which the link LK2 extends, but the present invention is not limited to this.
  • the joint mechanism JEr4 may rotate the tip portion TP1 relative to the link LK2 around an axis that forms an angle with the direction De2 in which the link LK2 extends of a predetermined angle or less.
  • FIG. 7 is an explanatory diagram for explaining an example of a tip portion TP1B according to the fourth modified example. Elements similar to those explained in FIGS. 1 to 6 are given the same reference numerals and detailed explanations are omitted.
  • the robot 10 according to this modified example is similar to the robot 10 shown in FIG. 1, except that it has a link LK2B, a joint mechanism JEr4B, and a tip part TP1B instead of the link LK2, joint mechanism JEr4, and tip part TP1 shown in FIG. 1.
  • Link LK2B is similar to link LK2, except that a joint mechanism JEr4B is connected instead of the joint mechanism JEr4.
  • link LK2B is an example of a "second link”
  • joint mechanism JEr4B is an example of a "fourth drive mechanism.”
  • Joint mechanism JEr4B connects link LK2B and tip TP1B, and rotates tip TP1B relative to link LK2B around axis Ax4A, which is parallel to direction De2.
  • Rotation direction Dr4 in FIG. 6 shows the rotation direction of tip TP1B when rotating around axis Ax4A.
  • axis Ax4A is an example of a "fourth rotation axis,” and corresponds to an axis that forms an angle with direction De2, in which link LK2B extends, that is equal to or smaller than a predetermined angle.
  • the tip part TP1B includes a first part TP11A connected to the link LK2B, a second part TP12A connected to the first part TP11A, a joint mechanism JEr5A, and a joint mechanism JEr6.
  • the first part TP11A is connected to the link LK2B, for example, via the joint mechanism JEr4B. Therefore, the first part TP11A rotates relative to the link LK2B around the axis Ax4A as the axis of rotation.
  • the joint mechanism JEr5A connects the first part TP11A and the second part TP12A, and rotates the second part TP12A relative to the first part TP11A around an axis Ax5 perpendicular to the axis Ax4A.
  • the rotation direction Dr5 in FIG. 1 indicates the rotation direction of the second part TP12A when rotating around the axis Ax5.
  • the joint mechanism JEr6 is similar to the joint mechanism JEr6 shown in FIG. 1.
  • the joint mechanism JEr6 rotates at least a portion of the tip portion TP1B (for example, end surface TP1sf) around an axis Ax6 perpendicular to the axis Ax5.
  • the surface of the joint mechanism JEr6 corresponds to the end surface TP1sf, similar to the joint mechanism JEr6 shown in FIG. 1.
  • the end surface of the second part TP12A may be the end surface TP1sf.
  • the joint mechanism JEr4B rotates the tip part TP1B relative to the link LK2B around the axis Ax4A, which forms an angle with the direction De2 that is equal to or smaller than a predetermined angle, as the fourth rotation axis.
  • the tip part TP1B includes a first part TP11A connected to the link LK2B, a second part TP12A connected to the first part TP11A, a joint mechanism JEr5A, and a joint mechanism JEr6.
  • the joint mechanism JEr5A connects the first part TP11A and the second part TP12A, and rotates the second part TP12A relative to the first part TP11A around the axis Ax5, which forms an angle with the fourth rotation axis that is greater than a predetermined angle, as the fifth rotation axis.
  • the joint mechanism JEr6 rotates at least a portion of the tip part TP1B around the axis Ax6, which forms an angle with the fifth rotation axis that is greater than a predetermined angle, as the sixth rotation axis. This modification can achieve the same effects as the above-described embodiment.
  • a multi-joint robot including six rotational joints and two linear joints is exemplified as the robot 10, but the present invention is not limited to such an embodiment.
  • the robot 10 may be a multi-joint robot with four to seven axes, or a multi-joint robot with nine or more axes.
  • the modified example can also provide the same effects as the above-described embodiment and modified example.
  • FIG. 8 is an explanatory diagram for explaining the model used in the simulation.
  • the top view of the figure shows the state of the robot 10 as viewed from the +Z0 direction
  • the front view of the figure shows the state of the robot 10 as viewed from the +Y0 direction
  • the side view of the figure shows the state of the robot 10 as viewed from the +X0 direction.
  • the +Z0 direction is the direction indicated by the arrow on the Z0 axis
  • the +Y0 direction is the direction indicated by the arrow on the Y0 axis
  • the +X0 direction is the direction indicated by the arrow on the X0 axis.
  • the origin of the reference coordinate system ⁇ 0 having the Y0 axis and the Z0 axis is the center of the bottom surface BDPbt of the robot 10, as explained in FIG. 1.
  • the model used in the simulation will also be referred to as a simulation model.
  • the length of link LK1 is, for convenience, the distance between joint mechanisms JEr2 and JEr3, and is set to 425 mm at the shortest and 625 mm at the longest.
  • the movable range of joint mechanism JEp1 is in the range of 0 to 200 mm.
  • the length of link LK2 is, for convenience, the distance between joint mechanisms JEr3 and JEr4, and is set to 399 mm at the shortest and 599 mm at the longest.
  • the movable range of joint mechanism JEp2 is in the range of 0 to 200 mm.
  • the distance between joint mechanism JEr2 and the contact surface of robot 10 is set to 78 mm.
  • the distance between axis Ax5, which is the rotation axis of joint mechanism JEr5, and end face TP1sf of tip portion TP1 is 50 mm.
  • the distance between the central axis of link LK2 and axis Ax6 in the direction along the Z0 axis is 95 mm.
  • the distance between axis Ax1, which is the rotation axis of joint mechanism JEr1, and the central axis of link LK1 is 90 mm.
  • the distance between the central axis of link LK2 and axis Ax6 in the direction along the Y0 axis is 75.5 mm, and the distance between the central axis of link LK1 and the central axis of link LK2 in the direction along the Y0 axis is 89 mm.
  • FIG. 9 is an explanatory diagram for explaining the trajectory of the tip TP1 used in the simulation.
  • the position (x, y, z) of the tip TP1 of the robot 10 at the teaching point PT is indicated by the coordinates (x, y, z) of the reference coordinate system ⁇ 0.
  • Teaching point PT0 shown in Figure 9 indicates the initial position and posture of the robot 10.
  • the position (x, y, z) of the tip part TP1 at teaching point PT0 is (450, -80, 500)
  • the posture (Rx, Ry, Rz) of the tip part TP1 at teaching point PT0 is (0, 0, 0).
  • the time required to calculate each joint value at each teaching point PT was calculated when the robot 10 is operated from teaching point PT0 (initial position and posture) to teaching points PT1, PT2, PT3, and PT4 in that order.
  • FIG. 10 is an explanatory diagram for explaining the teaching points PT for each of multiple trajectory patterns.
  • the first pattern is a trajectory that moves in sequence through the four vertices of a cube with sides of 100 mm.
  • the position (x, y, z) of tip TP1 is (400, -30, 550) and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 90, 0).
  • the position (x, y, z) of tip TP1 is (400, -30, 650) and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 90, 0).
  • the position (x, y, z) of tip TP1 is (500, -130, 650) and the orientation (Rx, Ry, Rz) is (0, 90, 0).
  • the position (x, y, z) of tip TP1 is (500, -130, 550), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 90, 0).
  • the second pattern is a trajectory that moves in sequence through the four vertices of a cube with sides of 200 mm.
  • the position (x, y, z) of tip TP1 is (350, 20, 500), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 90, 0).
  • the position (x, y, z) of tip TP1 is (350, 20, 700), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 90, 0).
  • the position (x, y, z) of tip TP1 is (550, -180, 700), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 90, 0).
  • the position (x, y, z) of tip TP1 is (550, -180, 500), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 90, 0).
  • the position (x, y, z) of tip TP1 is (400, -30, 550), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 100, 0).
  • the position (x, y, z) of tip TP1 is (400, -30, 650), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 80, 0).
  • the position (x, y, z) of tip TP1 is (500, -130, 650), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 80, 0).
  • the position (x, y, z) of tip TP1 is (500, -130, 550), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 100, 0).
  • the position (x, y, z) of tip TP1 is (350, 20, 500), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 110, 0).
  • the position (x, y, z) of tip TP1 is (350, 20, 700), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 70, 0).
  • the position (x, y, z) of tip TP1 is (550, -180, 700), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 70, 0).
  • the position (x, y, z) of tip TP1 is (550, -180, 500), and the orientation (Rx, Ry, Rz) of tip TP1 is (0, 110, 0).
  • FIG. 11 is an explanatory diagram for explaining the time required to calculate each trajectory pattern.
  • trajectory calculations are performed 100 times for each trajectory pattern, and the average time required for the calculations is shown as the calculation time.
  • the first group in step S220 of FIG. 4 is the joint mechanism JEr (JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6)
  • the second group in step S260 is the joint mechanism JEp (JEp1 and JEp2).
  • FIG. 11 also shows the calculation time when calculations are performed using the conventional calculation method for the model of robot 10 shown in FIG. 8 above.
  • FIG. 11 also shows the value of (calculation time required by the conventional calculation method)/(calculation time required by the calculation method of the present invention).
  • the conventional calculation method referred to here is a method of calculating one Jacobian matrix for the joint mechanisms JEr (JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6) and the joint mechanisms JEp (JEp1 and JEp2) and performing calculations. In other words, the conventional calculation method does not group the joint mechanisms JE.
  • the calculation time of the present invention is shorter than that of the conventional technology for each of the routes from teaching point PT0 (initial position) to teaching point PT1, from teaching point PT1 to teaching point PT2, from teaching point PT2 to teaching point PT3, and from teaching point PT3 to teaching point PT4. It can also be seen that the calculation time of the present invention is 1/45.7 of that of the conventional technology for the route from teaching point PT0 (initial position) to teaching point PT4 via teaching points PT1, PT2, and PT3.
  • the calculation time of the present invention is shorter than that of the conventional technology in each of the routes from teaching point PT0 (initial position) to teaching point PT1, from teaching point PT1 to teaching point PT2, from teaching point PT2 to teaching point PT3, and from teaching point PT3 to teaching point PT4.
  • the calculation time of the present invention is shorter than that of the conventional technology. For example, it can be seen that the calculation time of the present invention is reduced to 1/63.4 of that of the conventional technology in the second pattern, reduced to 1/39.6 of that of the third pattern, and reduced to 1/26.7 of that of the conventional technology in the fourth pattern.
  • the robot system 1 including the robot 10 described in the above embodiment and modified examples may be used in a manufacturing method for an article including assembling or removing a part.
  • FIG. 12 is an explanatory diagram for explaining an example of rotation.
  • the extension direction Dei in FIG. 12 indicates the direction in which link LKi extends
  • the extension direction Dej indicates the direction in which link LKj extends.
  • the joint mechanism JEri in FIG. 12 connects link LKi and link LKj, and rotates link LKj relative to link LKi around axis Axi as the rotation axis.
  • the rotation about the axis Axi corresponds to a "turn".
  • the angle ⁇ between the extension direction Dei of the link LKi and the axis Axi is equal to or less than a predetermined angle
  • the rotation about the axis Axi corresponds to a rotation other than a turn (a rotation other than a turn).
  • the "rotation" shown in FIG. 12 indicates a rotation other than a turn.
  • the predetermined angle is not particularly limited, but in FIG. 12, the predetermined angle is assumed to be 45°.
  • the angle ⁇ between the extension direction Dei and the axis Axi is an angle between 0° and 90° among a plurality of angles that are understood as the angle of the axis Axi with respect to the extension direction Dei (for example, four angles for two mutually intersecting straight lines, or 0° and 180° for two parallel straight lines).
  • the angle ⁇ between the extension direction Dei of the link LKi and the axis Axi is 90°, which is greater than the specified angle (45°). Therefore, in the first pattern, the rotation of the link LKj around the axis Axi is a rotation. Also, in the first pattern, the extension direction Dej of the link LKj is perpendicular to the axis Axi. Note that in the first pattern, when the link LKj rotates (pivots) around the axis Axi, the angle of the extension direction Dej of the link LKj with respect to the extension direction Dei of the link LKi changes.
  • the angle ⁇ between the extension direction Dei of the link LKi and the axis Axi is 0°, which is less than a predetermined angle (45°). Therefore, in the second pattern, the rotation of the link LKj around the axis Axi is a rotation other than a turn. Also, in the second pattern, the extension direction Dej of the link LKj is parallel to the extension direction Dei of the link LKi and the axis Axi. That is, the angle of the extension direction Dej of the link LKj relative to the extension direction Dei of the link LKi is 0°.
  • the angle ⁇ between the extension direction Dei of the link LKi and the axis Axi is 0°, which is less than a predetermined angle (45°). Therefore, in the third pattern, the rotation of the link LKj around the axis Axi is a rotation other than a turn. Also, in the third pattern, the extension direction Dej of the link LKj is perpendicular to the extension direction Dei of the link LKi and the axis Axi. That is, the angle of the extension direction Dej of the link LKj with respect to the extension direction Dei of the link LKi is 90°.
  • the angle ⁇ between the extension direction Dei of link LKi and the axis Axi is 10°, which is less than the specified angle (45°). Therefore, in the fourth pattern, the rotation of link LKj around the axis Axi is a rotation other than a turn. Also, in the fourth pattern, the extension direction Dej of link LKj is parallel to the axis Axi, and the angle of the extension direction Dej of link LKj relative to the extension direction Dei of link LKi is 10°.
  • the angle ⁇ between the extension direction Dei of the link LKi and the axis Axi is 70°, which is greater than the specified angle (45°). Therefore, in the fifth pattern, the rotation of the link LKj around the axis Axi is a rotation. Also, in the fifth pattern, the extension direction Dej of the link LKj is perpendicular to the axis Axi. Note that in the fifth pattern, when the link LKj rotates (pivots) around the axis Axi, the angle of the extension direction Dej of the link LKj with respect to the extension direction Dei of the link LKi changes.
  • the angle ⁇ between the extension direction Dei of the link LKi and the axis Axi is 10°, which is less than the specified angle (45°). Therefore, in the sixth pattern, the rotation of the link LKj around the axis Axi is a rotation other than a turn. Also, in the sixth pattern, the extension direction Dej of the link LKj is perpendicular to the axis Axi. Note that in the sixth pattern, when the link LKj rotates around the axis Axi as the rotation axis, the angle of the extension direction Dej of the link LKj with respect to the extension direction Dei of the link LKi changes.
  • the angle ⁇ between the extension direction Dei of link LKi and the axis Axi is 70°, which is greater than the specified angle (45°). Therefore, in the seventh pattern, the rotation of link LKj around the axis Axi is a rotation. Also, in the seventh pattern, the extension direction Dej of link LKj is parallel to the axis Axi, and the angle of the extension direction Dej of link LKj relative to the extension direction Dei of link LKi is 70°.
  • rotation about axis Axi which forms an angle with extension direction Dei of link LKi greater than a predetermined angle
  • turning is also referred to as turning.
  • the definition of "turning" is not limited to the above example.
  • the following second or third definition may be adopted instead of the first definition.
  • the rotation corresponds to a turn. Therefore, in the second definition, when the angle of the extension direction Dej of link LKj relative to the extension direction Dei of link LKi changes due to the rotation of link LKj relative to link LKi, the rotation corresponds to a turn. Therefore, in the second definition, when the angle of the extension direction Dej of link LKj relative to the extension direction Dei of link LKi remains constant even when rotated, the rotation corresponds to a rotation other than a turn.
  • the first, fifth, and sixth patterns shown in FIG. 12 correspond to turns, and the second, third, fourth, and seventh patterns correspond to rotation other than a turn.
  • the rotation corresponds to a turn. Therefore, in the third definition, if 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, the rotation corresponds to a turn. Therefore, in the third definition, if the angle between the extension direction Dej of the link LKj and the rotation axis (axis Axi) of the link LKj is equal to or smaller than a predetermined angle, the rotation corresponds to a rotation other than a turn.
  • the first, third, fifth, and sixth patterns shown in FIG. 12 correspond to turns, and the second, fourth, and seventh patterns correspond to rotation other than a turn.
  • the relative relationship between two rotations by two joint mechanisms JEr may be defined by focusing on the relationship between the rotation axes of the two adjacent joint mechanisms JEr. Specifically, when the angle between the two rotation axes is equal to or less than a predetermined angle (typically parallel), the two rotations may be considered to be the same type of rotation, and when the angle between the two rotation axes is greater than a predetermined angle (typically perpendicular), the two rotations may be considered to be different types of rotation.
  • the same type of rotation means that both rotations are rotations or both rotations are other than rotations, and different types of rotation means that one of the two rotations is a rotation and the other is other than rotation.
  • the rotation that is the starting point of the relative relationship may be determined based on, for example, any of the above-mentioned first, second and third definitions.
  • the first pattern shown in FIG. 12 corresponds to a rotation in the first, second, and third definitions
  • the second pattern corresponds to a rotation other than a rotation in the first, second, and third definitions. Therefore, it is preferable to set the first or second pattern as the rotation that is the starting point of the relative relationship.
  • a definition that combines two or more of the above-mentioned first, second, and third definitions may be used.
  • rotations that correspond to a turn in all of the two or more definitions being combined may be considered to be a turn, or rotations that correspond to a turn in at least one of the two or more definitions being combined may be considered to be a turn.
  • LK1, LK1A, LK2, LK2A, LKi, LKj... links LK1a, LK2a... support parts, LK1b, LK1c, LK2b, LK2c... moving parts, MOr1, MOr2, MOr3, MOr4, MOr5, MOr6, MOp1, MOp2... motors.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
PCT/JP2023/032690 2022-09-28 2023-09-07 多関節ロボットの制御方法、ロボットシステム、プログラム、及び、物品の製造方法 WO2024070568A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2024549965A JPWO2024070568A1 (enrdf_load_stackoverflow) 2022-09-28 2023-09-07

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022154675 2022-09-28
JP2022-154675 2022-09-28

Publications (1)

Publication Number Publication Date
WO2024070568A1 true WO2024070568A1 (ja) 2024-04-04

Family

ID=90477384

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/032690 WO2024070568A1 (ja) 2022-09-28 2023-09-07 多関節ロボットの制御方法、ロボットシステム、プログラム、及び、物品の製造方法

Country Status (2)

Country Link
JP (1) JPWO2024070568A1 (enrdf_load_stackoverflow)
WO (1) WO2024070568A1 (enrdf_load_stackoverflow)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008036742A (ja) * 2006-08-03 2008-02-21 Tokyo Institute Of Technology 逐次検索法による6自由度ロボットアームの逆運動学、およびそれを使用するロボットのシステム、制御方法、プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008036742A (ja) * 2006-08-03 2008-02-21 Tokyo Institute Of Technology 逐次検索法による6自由度ロボットアームの逆運動学、およびそれを使用するロボットのシステム、制御方法、プログラム

Also Published As

Publication number Publication date
JPWO2024070568A1 (enrdf_load_stackoverflow) 2024-04-04

Similar Documents

Publication Publication Date Title
JP3207728B2 (ja) 冗長マニピュレータの制御方法
JP3972854B2 (ja) ロボットの運動制御装置
JP4682791B2 (ja) 操作空間物理量算出装置及び操作空間物理量算出方法、並びにコンピュータ・プログラム
JP5547626B2 (ja) 7軸多関節ロボットの制御装置および教示方法
JP7635442B2 (ja) 情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法
KR101498835B1 (ko) 7축 다관절 로봇의 제어방법, 제어 프로그램 및 로봇 제어장치
US20140031982A1 (en) Robotic system and robot control device
JP5580850B2 (ja) シリアルロボットのための迅速な把持接触計算
Kabanov et al. The modeling of an anthropomorphic robot arm
Ren et al. Parameterization-based trajectory planning for an 8-DOF manipulator with multiple constraints
WO2024262397A1 (ja) 多関節ロボットの制御方法、多関節ロボットの教示方法、及び、ロボットシステム
Mishra et al. Dynamic modelling of an elephant trunk like flexible bionic manipulator
WO2024070568A1 (ja) 多関節ロボットの制御方法、ロボットシステム、プログラム、及び、物品の製造方法
JP2009050949A (ja) ロボットアームの軌道教示方法および軌道教示装置
WO2024048286A1 (ja) 多関節ロボットの制御方法、ロボットシステム、プログラム、及び、物品の製造方法
JP2024035061A (ja) 多関節ロボットの制御方法、ロボットシステム、プログラム、及び、物品の製造方法
Aboelnasr et al. Novel use of the Monte-Carlo methods to visualize singularity configurations in serial manipulators
JP2025008408A (ja) 多関節ロボットの制御方法、多関節ロボットの教示方法、及び、ロボットシステム
JP2025015958A (ja) 多関節ロボット、多関節ロボットの制御方法、ロボットシステム、及び、物品の製造方法
JP3146463B2 (ja) 冗長軸マニピュレータの肘移動制御装置
JP7352267B1 (ja) 多関節ロボット、多関節ロボットの制御方法、ロボットシステム、及び、物品の製造方法
JP2024035977A (ja) 多関節ロボットのオフラインティーチング方法、プログラム、多関節ロボット、および、情報処理装置
Hsu et al. Fabrication and Image Servo Tracking Study of a Continuum Robot Prototype
Staicu Kinematics of a translation-rotation hybrid parallel robot
WO2023079809A1 (ja) 軌道計画装置、軌道計画方法および軌道計画プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23871806

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2024549965

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE