Control method for multi-joint robot, teaching method for multi-joint robot, and robot system
The control method for articulated robots with L joints (L ≥ 7) addresses the limitation of single robots performing multiple tasks by using inverse kinematics calculations to adjust joint values, enabling efficient and versatile operation of multi-joint robots.
Patent Information
- Application Number
- PCT/JP2024/021407
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-20
- Filing Date
- 2024-06-12
- Publication Date
- 2024-12-26
AI Technical Summary
Industrial robots are limited in their ability to perform multiple types of tasks with a single robot, requiring multiple robots for different tasks and lacking a method to efficiently control and teach articulated robots for versatile operations.
A control method for articulated robots with L joints (L ≥ 7) that includes a computer device for selecting drive modes, executing inverse kinematics calculations, and adjusting joint values to achieve desired states, enabling the robot to perform various tasks by controlling the motion of multi-joint robots.
Enables an industrial robot to perform multiple types of operations by selecting appropriate drive modes and calculating joint values, allowing for versatile task execution and efficient operation of multi-joint robots.
Smart Images

Figure JP2024021407_26122024_PF_FP_ABST
Abstract
Description
Method for controlling articulated robot, method for teaching articulated robot, and robot system
[0001] The present invention relates to a control method for an articulated robot, a teaching method for an articulated robot, and a robot system.
[0002] Various types of industrial robots are known, such as Cartesian robots that move along two or three mutually orthogonal axes, horizontal articulated robots that move smoothly in the horizontal direction, and vertical articulated robots that perform movements similar to those of a human (see, for example, Patent Documents 1 to 3). For example, a user appropriately selects a robot to be used for a task from among multiple types of industrial robots depending on the task purpose.
[0003] JP 2013-188796 A JP 2016-215371 A JP 62-74594 A
[0004] In recent years, the applications of robots have expanded, making it necessary for a single robot to perform a variety of tasks. For this reason, there is a demand for industrial robots that can perform the operations of multiple types of robots with a single robot.
[0005] A preferred aspect of the present invention provides a control method for a multi-joint robot having L joints (L is a natural number equal to or greater than 7), wherein a computer device receives a selected drive mode from a plurality of drive modes in which at least one of the L joints is associated as a joint to be driven, and the computer device executes a calculation process including an inverse kinematics calculation to calculate a displacement amount of the joint to be driven that is identified based on the selected drive mode from among the L joints, and by executing the calculation process, the computer device calculates joint values related to the state of each of the L joints so that the multi-joint robot is in a target state, and the computer device controls the operation of the multi-joint robot based on the calculated joint values for each of the L joints.
[0006] A preferred aspect of the present invention is a teaching method for a multi-joint robot having L joints (L is a natural number equal to or greater than 7), in which a computer device receives a selected drive mode from a plurality of drive modes in which at least one of the L joints is associated as a joint to be driven, the computer device executes a calculation process including an inverse kinematics calculation to calculate a displacement amount of the joint to be driven that is identified based on the selected drive mode from among the L joints, the computer device calculates joint values related to the state of each of the L joints by executing the calculation process so that the multi-joint robot is in a target state, and the computer device generates joint state information indicating the calculated joint values for each of the L joints.
[0007] A preferred aspect of the present invention provides a robot system comprising: a multi-joint robot having L joints (L is a natural number equal to or greater than 7) and a plurality of drive modes in which at least one of the L joints corresponds to a joint to be driven; and a control device including an operation control unit that controls the operation of the multi-joint robot, wherein the operation control unit receives a drive mode selected from the plurality of drive modes and executes a calculation process including an inverse kinematics calculation that calculates the amount of displacement of the joint to be driven, which is identified based on the selected drive mode, among the L joints, and calculates joint values related to the state of each of the L joints by executing the calculation process so that the multi-joint robot is in a target state, and controls the operation of the multi-joint robot based on the calculated joint values for each of the L joints.
[0008] Another preferred aspect of the present invention provides a robot system comprising: a multi-joint robot having L joints (L is a natural number greater than or equal to 7) and a plurality of drive modes in which at least one of the L joints corresponds to a joint to be driven; and a control device including an operation control unit that controls the operation of the multi-joint robot; and a display control unit that displays on a display device a selection screen for selecting one of the plurality of drive modes, wherein the operation control unit drives the joint to be driven, which is identified based on the drive mode selected via the selection screen, and controls the operation of the multi-joint robot so that the multi-joint robot is in a desired state.
[0009] According to the present invention, an industrial robot capable of executing the operations of a plurality of types of robots can be provided.
[0010] 10 is an explanatory diagram for explaining an overview of a robot system according to an embodiment. FIG. 11 is an explanatory diagram for explaining an example of a joint mechanism. FIG. 12 is a diagram showing an example of a hardware configuration of a robot controller shown in FIG. 1. FIG. 13 is an explanatory diagram for explaining an example of a drive mode of a robot. FIG. 14 is an explanatory diagram for explaining an example of an operation screen. FIG. 15 is a flowchart showing an example of an operation of the robot controller shown in FIG. 1. FIG. 16 is a flowchart showing an example of a joint value update process shown in FIG. 6. FIG. 17 is an explanatory diagram for explaining an example of an operation of a robot system. FIG. 18 is an explanatory diagram for explaining a continuation of the operation of the robot system shown in FIG. 8. FIG. 19 is an explanatory diagram for explaining another example of the operation of the robot system. FIG. 19 is an explanatory diagram for explaining a continuation of the operation of the robot system shown in FIG. 16. FIG. 19 is an explanatory diagram for explaining a continuation of the operation of the robot system shown in FIG. 17. FIG. 20 is an explanatory diagram for explaining a continuation of the operation of the robot system shown in FIG. 28.
[0011] Hereinafter, embodiments of the present invention will be described with reference to the drawings. Note that in each drawing, the dimensions and scale of each part are appropriately different from those of the actual parts. Furthermore, the embodiments described below are preferred examples of the present invention, and therefore various technically preferable limitations are applied. However, the scope of the present invention is not limited to these embodiments unless otherwise specified in the following description to the effect that the present invention is limited.
[0012] 1. Embodiment First, an example of an outline of a robot system 1 according to an embodiment will be described with reference to FIG.
[0013] FIG. 1 is an explanatory diagram for explaining an overview of a robot system 1 according to an embodiment.
[0014] For ease of explanation, a reference coordinate system Σ0 fixed in real space is introduced below as the base coordinate system of the robot 10. For example, 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 X-axis, a Y-axis, and a Z-axis that are orthogonal to each other.
[0015] 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 operations of the robot 10 and the end effector 20. The robot 10 is an example of an "articulated robot," and the robot controller 30 is an example of a "control device" and a "computer device."
[0016] The robot 10 and the robot controller 30 are connected to each other via, for example, a wired connection so that they can communicate with each other. The connection between the robot 10 and the robot controller 30 may be a wireless connection, or a connection using both a wired and wireless connection. The robot controller 30 is also capable of communicating with the end effector 20 attached to the robot 10. Any information processing device capable of communicating with other devices can be used as the robot controller 30. The configuration of the robot controller 30 will be described later with reference to FIG. 3.
[0017] The robot 10 is an articulated robot used for work in, for example, farms, factories, warehouses, etc. Specifically, the robot 10 is an eight-axis articulated robot that includes six joint mechanisms JEr (JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6) corresponding to rotary joints, and two joint mechanisms JEp (JEp1 and JEp2) corresponding to prismatic joints. For example, 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. In the example shown in FIG. 1 , 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. Hereinafter, the joint mechanisms JEr and JEp will be referred to as the joint mechanism JE without any particular distinction. For example, the robot 10 further includes a plurality of motors MO (see FIG. 2) that drive the plurality of joint mechanisms JE. In FIG. 1, for ease of viewing, the plurality of motors MO that drive the plurality of joint mechanisms JE, the reducers and encoders provided for each of the plurality of motors MO, and the like are omitted. The plurality of joint mechanisms JE are an example of "a plurality of joints."
[0018] The body part BDP is an example of a "base part." Furthermore, the link LK1 is an example of a "first link," and the link LK2 is an example of a "second link." Therefore, the links LK1 and LK2 correspond to a plurality of links LK. For example, the links LK1 and LK2 connect the body part BDP and the tip part TP1 to each other.
[0019] Here, for example, the connection of members includes both cases where two members are directly connected and cases where two members are indirectly connected. Direct connection of two members includes a state where the two members are in contact with each other and a state that can be considered equivalent to a state where the two members are in contact with each other. A state that can be considered equivalent to a state where the 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. Furthermore, indirect connection of two members means that another member is disposed between the two members.
[0020] Joint mechanism JEr1 is an example of a "first drive mechanism," and joint mechanism JEr2 is an example of a "second drive mechanism." Joint mechanism JEr3 is an example of a "third drive mechanism," and joint mechanism JEr4 is an example of a "fourth drive mechanism." Joint mechanism JEr5 is an example of a "fifth drive mechanism," and joint mechanism JEr6 is an example of a "sixth drive mechanism." Joint mechanism JEp1 is an example of a "first moving mechanism," and joint mechanism JEp2 is an example of a "second moving mechanism."
[0021] The body part BDP includes, for example, 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 portion of the body part BDP around an axis Ax1 that is perpendicular to the bottom surface BDPbt of the body part BDP. For example, the joint mechanism JEr1 rotates an outer wall of the joint mechanism JEr1, including a portion that is connected to the joint mechanism JEr2, relative to the base part BDPba around the axis Ax1. In other words, the joint mechanism JEr1 rotates the joint mechanism JEr2 relative to the body part BDP around the axis Ax1. The axis Ax1 is an example of a "first rotation axis."
[0022] Here, "perpendicular" includes not only strict perpendicular but also substantially perpendicular (e.g., perpendicular within a margin of error). Similarly, "parallel," which will be described later, includes not only strict parallel but also substantially parallel (e.g., parallel within a margin of error). The rotation direction Dr1 in FIG. 1 indicates the rotation direction of a portion of the body part BDP when the portion rotates around the axis Ax1 as the rotation axis.
[0023] The joint mechanism JEr2 connects the body part BDP and the link LK1 to each other, and rotates the link LK1 relative to the body part BDP around an axis Ax2 that is parallel to the bottom surface BDPbt of the body part BDP. The rotation direction Dr2 in FIG. 1 indicates the rotation direction of the link LK1 when the link LK1 rotates around the axis Ax2. The axis Ax2 is an example of a "second rotation axis."
[0024] The link LK1 is, for example, hollow and elongated, and has an opening Hlk1 extending in the direction De1 along which the link LK1 extends.
[0025] The opening Hlk1 is formed, for example, on a surface of the link LK1 that includes a portion facing the link LK2. A portion of the joint mechanism JEr3 and the joint mechanism JEp1 are provided inside the link LK1. For example, a portion of the joint mechanism JEr3 is located inside the link LK1, and the other portion of the joint mechanism JEr3 protrudes outside the link LK1 through the opening Hlk1. Note that 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, which will be described later, and is located inside the link LK2.
[0026] 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.
[0027] The joint mechanism JEr3 connects the link LK1 and the link LK2 to each other, and rotates the link LK2 relative to the link LK1 about an axis Ax3 that is perpendicular to the direction De1 in which the link LK1 extends. The rotation direction Dr3 in FIG. 1 indicates the rotation direction of the link LK2 when the link LK2 rotates about the axis Ax3. The axis Ax3 is an example of a "third rotation axis."
[0028] The joint mechanism JEp1 moves the joint mechanism JEr3 relative to the link LK1 along the direction De1. When the joint mechanism JEr3 moves along the direction De1, the link LK2 moves relative to the link LK1 along the direction De1. In the example shown in FIG. 1 , when the joint mechanism JEp1 moves the joint mechanism JEr3 along the direction De1, the opening Hlk1 of the link LK1 corresponds to the movement area ARmv1 in which the joint mechanism JEr3 can move.
[0029] The link LK2 is, for example, hollow and elongated, and has an opening Hlk2 extending in the direction De2 along which the link LK2 extends.
[0030] 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. For example, a portion of the joint mechanism JEr3 is located inside the link LK2, and the other portion of the joint mechanism JEr3 protrudes outside the link LK2 through the opening Hlk2.
[0031] The joint mechanism JEp2 moves the link LK2 relative to the joint mechanism JEr3 along the direction De2 in which the link LK2 extends. As a result, the link LK2 moves relative to the joint mechanism JEr3 along the direction De2. In other words, the link LK2 moves relative to the link LK1 along the direction De2.
[0032] In this way, the link LK2 moves relative to the link LK1 along the direction De1 by the joint mechanism JEp1, and moves relative to the link LK1 along the direction De2 by the joint mechanism JEp2.
[0033] Here, the movement of the link LK2 relative to the joint mechanism JEr3 can be said to be the movement of the joint mechanism JEr3 relative to the link LK2. Therefore, the joint mechanism JEp2 can also be regarded as the joint mechanism JE that moves the joint mechanism JEr3 relative to the link LK2 along the direction De2. In the example shown in FIG. 1 , when the joint mechanism JEp2 moves the joint mechanism JEr3 along the direction De2, the opening Hlk2 of the link LK2 corresponds to the movement area ARmv2 in which the joint mechanism JEr3 can move.
[0034] The joint mechanism JEr4 connects the link LK2 and the tip end portion TP1 to each other, and rotates the tip end portion TP1 relative to the link LK2 around an axis Ax4 perpendicular to the direction De2. The rotation direction Dr4 in FIG. 1 indicates the rotation direction of the tip end portion TP1 when the tip end portion TP1 rotates around the axis Ax4. The axis Ax4 is an example of a "fourth rotation axis."
[0035] An end effector 20 that grips an object is attached to the tip portion TP1, for example. For example, the end effector 20 is attached to an end surface TP1sf of the tip portion TP1. The tip portion TP1 includes a first portion TP11 connected to the link LK2, a second portion TP12 connected to the first portion TP11, a joint mechanism JEr5, and a joint mechanism JEr6. The first portion TP11 is connected to the link LK2 via, for example, a joint mechanism JEr4. Therefore, the first portion TP11 rotates relative to the link LK2 around the axis Ax4.
[0036] The joint mechanism JEr5 connects the first part TP11 and the second part TP12 to each other and rotates the second part TP12 relative to the first part TP11 around an axis Ax5 perpendicular to the 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 the axis Ax5. The axis Ax5 is an example of a "fifth rotation axis."
[0037] The joint mechanism JEr6 rotates at least a portion of the tip portion TP1 around an axis Ax6 perpendicular to the axis Ax5. In the example shown in FIG. 1 , the joint mechanism JEr6 rotates the end face TP1sf of the tip portion TP1 around the axis Ax6. That is, the joint mechanism JEr6 rotates the portion of the tip portion TP1 to which the end effector 20 is attached (the 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."
[0038] 1, the surface of the joint mechanism JEr6 corresponds to the end surface TP1sf. 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.
[0039] Furthermore, the work performed by the end effector 20 is not limited to grasping an object. Appropriate parts (e.g., a robot hand, a robot finger, etc.) can be applied as the end effector 20 depending on the work purpose of the robot 10. In other words, an end effector 20 suitable for various work is attached to the tip portion TP1.
[0040] In this embodiment, rotation around an axis whose angle with a specific direction is greater than a predetermined angle is sometimes referred to as "turning" to distinguish it from rotation around an axis whose angle with the specific direction is equal to or less than the predetermined angle. The predetermined angle may be, for example, 45°. However, the predetermined angle is not limited to 45°.
[0041] For example, in rotation about each of the axes Ax1 and Ax2 as the rotation axis, the direction Dv1 perpendicular to the bottom surface BDPbt of the body part BDP corresponds to the specific direction. In this case, the axis Ax1 corresponds to an axis whose angle with the direction Dv1 perpendicular to the bottom surface BDPbt of the body part BDP is equal to or less than a predetermined angle, and the axis Ax2 corresponds to an axis whose angle with the direction Dv1 is greater than the predetermined angle. Therefore, rotation of the link LK1 about the axis Ax2 as the rotation axis corresponds to a turn. Note that in this embodiment, since the body part BDP extends along the direction Dv1 perpendicular to the bottom surface BDPbt, the direction Deb in which the body part BDP extends may also be considered the specific direction.
[0042] Furthermore, in rotation about the axis Ax3 as the rotation axis, the direction De1 in which the link LK1 extends corresponds to the specific direction, and in rotation about the axis Ax4 as the rotation axis, the direction De2 in which the link LK2 extends corresponds to the specific direction. In this case, the axis Ax3 corresponds to the axis that forms an angle with the direction De1 in which the link LK1 extends that is larger than a predetermined angle, and the axis Ax4 corresponds to the axis that forms an angle with the direction De2 in which the link LK2 extends that is larger than a predetermined angle. Therefore, the rotation of the link LK2 about the axis Ax3 as the rotation axis and the rotation of the first part TP11 about the axis Ax4 as the rotation axis correspond to turning.
[0043] Furthermore, in rotation about the axis Ax5 as the rotation axis, the direction De11 corresponds to a specific direction, and in rotation about the axis Ax6 as the rotation axis, the direction De12 corresponds to a specific direction. The direction De11 is a direction from an end of the first part TP11 opposite a specific end to which the joint mechanism JEr5 is connected toward the specific end. The direction De11 may also be considered to be the direction in which the first part TP11 extends. The direction De12 is a direction from an end of the second part TP12 opposite a specific end to which the joint mechanism JEr6 is connected (an end including the end face TP1sf) toward the specific end. The direction De12 may also be considered to be the direction in which the second part TP12 extends.
[0044] When the direction De11 is a specific direction, the axis Ax5 corresponds to an axis whose angle with the direction De11 is equal to or smaller than a predetermined angle. Furthermore, when the direction De12 is a specific direction, the axis Ax6 corresponds to an axis whose angle with the direction De12 is equal to or smaller than a predetermined angle. In this embodiment, it is assumed that the direction De11 is perpendicular to the axis Ax4, and the direction De12 is perpendicular to the axis Ax5. In this case, the axis Ax5 whose angle with the direction De11 is equal to or smaller than the predetermined angle corresponds to an axis whose angle with the axis Ax4 is larger than the predetermined angle, and the axis Ax6 whose angle with the direction De12 is equal to or smaller than the predetermined angle corresponds to an axis whose angle with the axis Ax5 is larger than the predetermined angle.
[0045] In this manner, in this embodiment, each of the multiple parts of the robot 10 (such as the body part BDP, the link LK1, the link LK2, and the tip part TP1) can rotate about the axes Ax1, Ax2, Ax3, Ax4, Ax5, and Ax6, respectively, which allows the robot 10 to perform movements similar to those of a human.
[0046] For example, the link LK1 between the joint mechanisms JEr2 and JEr3 corresponds to the upper arm, and the link LK2 between the joint mechanisms JEr3 and JEr4 corresponds to the forearm. The robot 10 can perform a motion that simulates a twisting of a human waist using the joint mechanism JEr1, and a motion that simulates a rotation of a shoulder using the joint mechanism JEr2. The robot 10 can also perform a motion that simulates a rotation of an elbow using the joint mechanism JEr3, and a motion that simulates a rotation of a wrist using the joint mechanism JEr4. The robot 10 can also perform a motion that simulates a twisting of a wrist using the joint mechanism JEr5, and a motion that simulates a twisting of a fingertip using the joint mechanism JEr6.
[0047] Furthermore, in this embodiment, the joint mechanism JEp1 provided within the link LK1 allows the link LK2 to move relative to the link LK1 along the direction De1 in which the link LK1 extends. Furthermore, in this embodiment, the joint mechanism JEp2 provided within 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 end portion TP1 of the robot 10 to easily move to the periphery of the body portion BDP. Furthermore, in this embodiment, the joint mechanisms JEp1 and JEp2 can widen the area reachable by the tip end portion TP1 (more specifically, the end face TP1sf), thereby widening the area reachable by the end effector 20 attached to the robot 10.
[0048] The configuration of the robot system 1 is not limited to the example shown in FIG. 1 . For example, the robot controller 30 may be built into the robot 10. While 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 BDPba of the body BDP may be fixed to a predetermined location, such as a floor, via a joint mechanism JEr1. In this case, the body BDP may be defined without including the joint mechanism JEr1. In a configuration in which the base BDPba is fixed to a predetermined location via the joint mechanism JEr1, the joint mechanism JEr1 may rotate the base BDPba around the axis Ax1 as the rotation axis. In a configuration in which the base BDPba is fixed to a predetermined location via the joint mechanism JEr1, the base BDPba may be connected to the joint mechanism JEr2.
[0049] Next, an example of the joint mechanisms JEp1 and JEp2 will be described with reference to FIG.
[0050] FIG. 2 is an explanatory diagram for explaining an example of the joint mechanism JE. In FIG. 2, the joint mechanisms JEp1 and JEp2 and the joint mechanism JEr3 will be mainly described. In this embodiment, it is assumed that the motor MOr3 that drives the joint mechanism JEr3 moves integrally with the joint mechanism JEr3. For example, the motor MOr3 may be fixed to the joint mechanism JEr3. First, the joint mechanism JEp1 will be described.
[0051] The joint mechanism JEp1 and the motor MOp1 that drives the joint mechanism JEp1 are disposed inside the link LK1. For example, the motor MOp1 is attached to the inside of the link LK1 at the end LK1ed1, which is one of the two ends LK1ed (LK1ed1 and LK1ed2) of the link LK1 and is closest to the body part BDP. The end LK1ed2 is the end LK1ed farthest from the body part BDP, out of the two ends LK1ed of the link LK1.
[0052] The joint mechanism JEp1 includes, for example, a threaded portion JEp11 extending along the direction De1, a nut JEp12, a connecting portion JEp13, and a rail JEp14.
[0053] One end of the threaded portion JEp11 is attached to the motor MOp1. For example, the threaded portion JEp11 is attached to the motor MOp1 so that the central axis of the threaded portion JEp11 (the central axis along the direction De1) coincides with the rotation axis of the motor MOp1, and is inserted into the nut JEp12. Then, as the motor MOp1 rotates, the threaded portion JEp11 rotates around the central axis along the direction De1.
[0054] The connecting portion JEp13 includes, for example, a slider portion JEp13a connected to the rail JEp14 so as to be movable along the direction De1, and a support portion JEp13b supporting the nut JEp12 and the motor MOr3. For example, the nut JEp12 is fixed to the support portion JEp13b so as not to rotate together with the threaded portion JEp11. Furthermore, the motor MOr3 is fixed to the support portion JEp13b so as not to rotate itself.
[0055] It should be noted that the slider portion JEp13a and the support portion JEp13b do not need to be strictly distinguished. For example, the motor MOr3 may be fixed to the slider portion JEp13a. The nut JEp12 may also be fixed to the motor MOr3 without the support portion JEp13b. In other words, the nut JEp12 only needs to be connected to the connection portion JEp13 or the like so that the relative position of the nut JEp12 with respect to the joint mechanism JEr3 does not change. In this way, the nut JEp12 is connected to the joint mechanism JEr3 via the connection portion JEp13 or the like.
[0056] The rail JEp14 includes two rod-shaped members JEp14a and JEp14b extending along the direction De1 and arranged parallel to each other. The shapes of the rod-shaped members JEp14a and JEp14b and the slider portion JEp13a are not particularly limited as long as the rod-shaped members JEp14a and JEp14b can movably support the slider portion JEp13a. In other words, the shape of the rail JEp14 is not particularly limited as long as it can movably support the connection portion JEp13. The rail JEp14 is disposed, for example, between the opening Hlk1 and the threaded portion JEp11 in the direction along the axis Ax2 and attached to the inside of the link LK1. Furthermore, the rail JEp14 does not have to be positioned between the opening Hlk1 and the screw portion JEp11 in the direction along the axis Ax2, as long as the joint mechanism JEr3 is capable of moving along the direction De1 with a portion of the joint mechanism JEr3 protruding from the opening Hlk1.
[0057] The nut JEp12 is fixed to the connecting portion JEp13 so as not to rotate together with the threaded portion JEp11. Therefore, as the threaded portion JEp11 rotates, the nut JEp12 moves relative to the threaded portion JEp11 in the direction De1. As described above, the nut JEp12 is fixed to the connecting portion JEp13, etc., so that its position relative to the joint mechanism JEr3 does not change. That is, the joint mechanism JEr3 moves along the direction De1 together with the nut JEp12. For example, the joint mechanism JEr3 moves relative to the link LK1 as the nut JEp12 moves. In this way, the joint mechanism JEp1 movably supports the joint mechanism JEr3. It is preferable that the movement area ARmv1 (movement range) of the joint mechanism JEr3 be movable from a region closer to the end LK1ed1 than the end LK1ed2 of the link LK1 to a region closer to the end LK1ed2 than the end LK1ed1. This allows the effective length (length under control) of the link LK1 to be set to half or more of the length of the link LK1. The effective length of the link LK1 is, for example, the length along the direction De1 from the end LK1ed1 (e.g., the intersection of the link LK1 and the axis Ax2) to the joint mechanism JEr3 (more precisely, the axis Ax3).
[0058] Here, the movement direction of the nut JEp12, i.e., the movement direction of the joint mechanism JEr3, switches between direction De1 and the direction opposite to direction De1 by switching the rotation direction of the motor MOp1. For example, when the motor MOp1 rotates in a first rotation direction, the nut JEp12 moves in direction De1, and when the motor MOp1 rotates in a second rotation direction that is opposite to the first rotation direction, the nut JEp12 moves in the direction opposite to direction De1. Next, the joint mechanism JEp2 will be described.
[0059] The joint mechanism JEp2 and the motor MOp2 that drives the joint mechanism JEp2 are disposed inside the link LK2. For example, the motor MOp2 is attached inside the link LK2 at the end LK2ed1 of the two ends LK2ed (LK2ed1 and LK2ed2) of the link LK2, which is the end LK2ed1 that is farthest from the tip end TP1. Note that the end LK2ed2 is the end LK2ed that is closest to the tip end TP1 of the two ends LK2ed of the link LK2.
[0060] The joint mechanism JEp2 includes, for example, a threaded portion JEp21 extending along the direction De2, a nut JEp22, a connecting portion JEp23, and a rail JEp24.
[0061] One end of the threaded portion JEp21 is attached to the motor MOp2. For example, the threaded portion JEp21 is attached to the motor MOp2 so that the central axis of the threaded portion JEp21 (the central axis along the direction De2) coincides with the rotation axis of the motor MOp2, and is inserted into the nut JEp22. Then, as the motor MOp2 rotates, the threaded portion JEp21 rotates around the central axis along the direction De2.
[0062] The connecting portion JEp23 includes, for example, a slider portion JEp23a connected to the rail JEp24 so as to be movable relative to the rail JEp24 along the direction De2, and a support portion JEp23b supporting the nut JEp22 and the joint mechanism JEr3. For example, the nut JEp22 is fixed to the support portion JEp23b so as not to rotate together with the threaded portion JEp21. The support portion JEp23b is also connected to the joint mechanism JEr3 so as to rotate about an axis Ax3 (not shown in FIG. 2) as the motor MOr3 rotates. That is, the joint mechanism JEr3 rotates the support portion JEp23b about the axis Ax3 as the motor MOr3 rotates.
[0063] It should be noted that the slider portion JEp23a and the support portion JEp23b do not need to be strictly distinguished. For example, the joint mechanism JEr3 may be connected to the slider portion JEp23a. The nut JEp22 may also be fixed to the slider portion JEp23a. That is, the nut JEp22 only needs to be connected to the connecting portion JEp23 or the like so that its position relative to the joint mechanism JEr3 does not change. In this way, the nut JEp22 is connected to the joint mechanism JEr3 via the connecting portion JEp23 or the like.
[0064] The rail JEp24 includes two rod-shaped members JEp24a and JEp24b extending along the direction De2 and arranged parallel to each other. The shapes of the rod-shaped members JEp24a and JEp24b and the slider portion JEp23a are not particularly limited as long as the rod-shaped members JEp24a and JEp24b can movably support the slider portion JEp23a. In other words, the shape of the rail JEp24 is not particularly limited as long as it can movably support the connection portion JEp23. The rail JEp24 is disposed, for example, between the opening Hlk2 and the threaded portion JEp21 in the direction along the axis Ax2 and attached to the inside of the link LK2. Furthermore, the rail JEp24 does not have to be positioned between the opening Hlk2 and the screw portion JEp21 in the direction along the axis Ax2, as long as the joint mechanism JEr3 is capable of moving along the direction De2 with a portion of the joint mechanism JEr3 protruding from the opening Hlk2.
[0065] The nut JEp22 is fixed to the connecting portion JEp23 so as not to rotate together with the threaded portion JEp21, and therefore moves relative to the threaded portion JEp21 in the direction De2 as the threaded portion JEp21 rotates. As described above, the nut JEp22 is fixed to the connecting portion JEp23, etc., so that its position relative to the joint mechanism JEr3 does not change. Furthermore, when the threaded portion JEp11 is not rotating, i.e., when the motor MOp1 is not rotating, the joint mechanism JEr3 is supported by the joint mechanism JEp1 so that its position relative to the link LK1 does not change. Therefore, as the nut JEp22 moves relative to the threaded portion JEp21, the link LK2 moves relative to the joint mechanism JEr3 in the direction De2. In this way, the joint mechanism JEp2 movably supports the link LK2. The movement area ARmv2 (movement range) of the joint mechanism JEr3 is preferably movable from a region closer to the end LK2ed1 of the link LK2 than the end LK2ed2 to a region closer to the end LK2ed2 than the end LK2ed1. This allows the effective length (control length) of the link LK2 to be set to a length equal to or less than half the length of the link LK2 or more than half the length of the link LK2. The effective length of the link LK2 is, for example, the length along the direction De2 from the joint mechanism JEr3 (more precisely, the axis Ax3) to the end LK2ed2 (e.g., the intersection of the link LK2 and the axis Ax4).
[0066] When the screw portion JEp21 is not rotating, i.e., when the motor MOp2 is not rotating, the joint mechanism JEr3 is supported by the joint mechanism JEp2 so that its position relative to the link LK2 does not change. The joint mechanism JEr3 can rotate the link LK2 relative to the link LK1 regardless of the position relative to the link LK1. The joint mechanism JEr3 can also rotate the link LK2 relative to the link LK1 regardless of the position relative to the link LK2.
[0067] Here, the movement direction of the nut JEp22 relative to the threaded portion JEp21, i.e., the movement direction of the link LK2, is switched between direction De2 and the direction opposite to direction De2 by switching the rotation direction of the motor MOp2. For example, when the motor MOp2 rotates in a first rotation direction, the link LK2 moves in the direction opposite to direction De2, and when the motor MOp2 rotates in a second rotation direction that is opposite to the first rotation direction, the link LK2 moves in direction De2.
[0068] The configuration of the joint mechanism JEp is not limited to the example shown in Fig. 2. For example, a ball screw having multiple balls between a threaded portion JEp11 and a nut JEp12 may be used as an element of the joint mechanism JEp1. Similarly, a ball screw having multiple balls between a threaded portion JEp21 and a nut JEp22 may be used as an element of the joint mechanism JEp2.
[0069] Also, for example, a portion of the motor MOr3 may be located inside the link LK1, another portion of the motor MOr3 may be located outside the link LK1 through the opening Hlk1, and the entire joint mechanism JEr3 may be located inside the link LK2. Also, for example, the joint mechanism JEr3 may have a storage section for storing the motor MOr3. That is, the motor MOr3 may be provided inside the joint mechanism JEr3. Alternatively, the motor MOr3 may be regarded as one element of the joint mechanism JEr3. Similarly, the motor MOp1 may be regarded as one element of the joint mechanism JEp1, and the motor MOp2 may be regarded as one element of the joint mechanism JEp2.
[0070] Next, the joint mechanisms JEr1, JEr2, JEr4, JEr5 and JEr6 will be briefly described.
[0071] The joint mechanism JEr1 has, for example, a rotating unit JEr11 and a housing JEr12 that houses the rotating unit JEr11. The rotating unit JEr11 rotates around an axis Ax1 as a rotation axis in accordance with the rotation of a motor MOr1 that drives the joint mechanism JEr1. For example, the rotating unit JEr11 is attached to the motor MOr1 so as to be rotatable relative to the base BDPba around the axis Ax1 as a rotation axis. Furthermore, the housing JEr12 rotates together with the rotating unit JEr11 relative to the base BDPba around the axis Ax1 as a rotation axis. For example, the housing JEr12 is connected to the base BDPba so as to be rotatable relative to the base BDPba around the axis Ax1 as a rotation axis. Furthermore, the housing JEr12 is connected to the joint mechanism JEr2. As a result, the joint mechanism JEr2 rotates relative to the base part BDPba around the axis Ax1 as the rotation axis in conjunction with the rotation of the rotating part JEr11.
[0072] The motor MOr1 may be regarded as one element of the joint mechanism JEr1. Alternatively, the housing JEr12 may be fixed to the base BDPba, and the joint mechanism JEr2 may be attached to the rotating part JEr11 so as to be rotatable relative to the housing JEr12 around the axis Ax1 as the rotation axis. In this case, the housing JEr12 may be regarded as one element of the base BDPba.
[0073] The joint mechanism JEr2 has, for example, a rotating unit JEr21 and a housing JEr22 that houses a motor MOr2 that drives the joint mechanism JEr2. The rotating unit JEr21 rotates around an axis Ax2 as the rotation axis in accordance with the rotation of the motor MOr2. For example, the rotating unit JEr21 is attached to the motor MOr2 so as to be rotatable relative to the housing JEr22 around the axis Ax2 as the rotation axis. Furthermore, the rotating unit JEr21 is connected to a link LK1. Furthermore, the link LK1 is connected to the housing JEr22 so as to be rotatable relative to the housing JEr22. As a result, the link LK1 rotates relative to the housing JEr22 around the axis Ax2 as the rotation axis in accordance with the rotation of the rotating unit JEr21. Furthermore, the motor MOr2 is attached inside the housing JEr22.
[0074] 2, a part of the rotating part JEr21 is located inside the link LK1, and another part of the rotating part JEr21 is located inside the housing JEr22, but the entire rotating part JEr21 may be located inside the link LK1 or the housing JEr22.
[0075] The joint mechanism JEr4 has, for example, a rotating part JEr41 and a housing JEr42 that houses the rotating part JEr41. The rotating part JEr41 rotates around an axis Ax4 as a rotation axis in accordance with the rotation of a motor MOr4 that drives the joint mechanism JEr4. For example, the rotating part JEr41 is attached to the motor MOr4 so as to be rotatable relative to the link LK2 around the axis Ax4 as a rotation axis. The motor MOr4 is attached inside the link LK2.
[0076] Furthermore, the casing JEr42 rotates together with the rotating part JEr41 relative to the link LK2 around the axis Ax4 as a rotation axis. For example, the casing JEr42 is connected to the link LK2 so as to be rotatable relative to the link LK2 around the axis Ax4 as a rotation axis. Furthermore, the casing JEr42 is connected to the first part TP11. As a result, the first part TP11 rotates together with the casing JEr42 around the axis Ax4 as a rotation axis in accordance with the rotation of the rotating part JEr41.
[0077] The motor MOr4 may be regarded as one element of the joint mechanism JEr4. In the example shown in Fig. 2, the entire rotating part JEr41 is located inside the housing JEr42, but the entire rotating part JEr41 may be located inside the link LK2. Alternatively, a portion of the rotating part JEr41 may be located inside the housing JEr42, and another portion of the rotating part JEr41 may be located inside the link LK2.
[0078] The joint mechanism JEr5 has, for example, a rotating part JEr51 and a housing JEr52 that houses a portion of the rotating part JEr51. The rotating part JEr51 rotates around an axis Ax5 as a rotation axis in accordance with the rotation of a motor MOr5 that drives the joint mechanism JEr5. For example, the rotating part JEr51 is attached to the motor MOr5 so as to be rotatable relative to the first part TP11 around the axis Ax5 as a rotation axis. The motor MOr5 is attached inside the housing JEr42 of the joint mechanism JEr4.
[0079] Furthermore, the casing JEr52 rotates together with the rotating part JEr51 relative to the first part TP11 around the axis Ax5 as a rotation axis. For example, the casing JEr52 is connected to the first part TP11 so as to be rotatable relative to the first part TP11 around the axis Ax5 as a rotation axis. Furthermore, the casing JEr52 is connected to the second part TP12. As a result, the second part TP12 rotates together with the casing JEr52 around the axis Ax5 as a rotation axis in accordance with the rotation of the rotating part JEr51.
[0080] 2, a part of the rotating part JEr51 is located inside the housing JEr52, and another part of the rotating part JEr51 is located inside the first part TP11, but the entire rotating part JEr51 may be located inside the housing JEr52 or inside the first part TP11.
[0081] The joint mechanism JEr6 has, for example, a rotating unit JEr61 and a housing JEr62 that houses a portion of the rotating unit JEr61. The rotating unit JEr61 rotates around an axis Ax6 as a rotation axis in accordance with the rotation of a motor MOr6 that drives the joint mechanism JEr6. For example, the rotating unit JEr61 is attached to the motor MOr6 so as to be rotatable relative to the second part TP12 around the axis Ax6 as a rotation axis. Furthermore, the housing JEr62 rotates together with the rotating unit JEr61 relative to the second part TP12 around the axis Ax6 as a rotation axis. For example, the housing JEr62 is connected to the second part TP12 so as to be rotatable relative to the second part TP12 around the axis Ax6 as a rotation axis. Furthermore, the housing JEr62 includes an end surface TP1sf. For example, the end surface TP1sf rotates relative to the second portion TP12 around the axis Ax6 as the rotation axis in conjunction with the rotation of the rotating part JEr61.
[0082] The motor MOr6 may be regarded as one element of the joint mechanism JEr6. Alternatively, the housing JEr62 may be fixed to the second part TP12, and the end effector 20 may be attached to the surface of the rotating part JEr61 so as to be rotatable relative to the housing JEr62. In this case, the surface of the rotating part JEr61 corresponds to the end surface TP1sf. Alternatively, when the housing JEr62 is fixed to the second part TP12, the housing JEr62 may be regarded as one element of the second part TP12.
[0083] Furthermore, the plurality of joint mechanisms JEr are not limited to the example shown in Fig. 2. For example, each of the plurality of joint mechanisms JEr may have the same configuration as a mechanism corresponding to each joint of a known articulated robot.
[0084] 2 is an upright state in which the directions De1 and De2 are parallel to the axis Ax1, and is one of the states that represent the characteristics of the robot 10 in this embodiment. Hereinafter, the state of the robot 10 shown in FIG. 2 may be referred to as a first state.
[0085] For example, the first state is a state in which the directions De1 and De2 are parallel to the axis Ax1, and the end LK2ed1 of the link LK2 is located closer to the end LK1ed1 of the link LK1 than the end LK1ed2 of the link LK1. In the first state, the joint mechanism JEr3 is preferably located in an intermediate region ARmd1 excluding both ends of the movement region ARmv1, and in an intermediate region ARmd2 excluding both ends of the movement region ARmv2. For example, when the robot 10 is placed on standby in the first state shown in FIG. 2 , the maximum movement amount of the position of the joint mechanism JEr3 relative to the link LK1 is approximately half the length of the movement region ARmv1 along the direction De1. Furthermore, the maximum movement amount of the position of the joint mechanism JEr3 relative to the link LK2 is approximately half the length of the movement region ARmv2 along the direction De2. Therefore, in this embodiment, by having the robot 10 wait in the first state shown in Figure 2, it is possible to prevent the time required for the state transition of the robot 10 from the first state to another state from becoming too long.
[0086] Furthermore, in this embodiment, by setting the links LK1 and LK2 to the first state, the robot 10 can be made compact, making it easier to carry the robot 10. Therefore, in this embodiment, it is possible to easily perform installation work when installing the robot 10 in a factory, or to easily change the installation of the robot 10 due to equipment changes or the like in the factory.
[0087] 2, the orientation of the links LK1 and LK2 is maintained so that the links LK1 and LK2 extend along the axis Ax1, as described above. In this case, the inertial force when the robot 10 is rotated about the axis Ax1 can be reduced compared to when the orientation of the links LK1 and LK2 is such that one or both of the links LK1 and LK2 extend in a direction intersecting the axis Ax1.
[0088] Therefore, in this embodiment, by setting the links LK1 and LK2 to an upright state, the inertial force due to the physical length and weight of the robot arm (links LK1 and LK2) can be reduced. As a result, in this embodiment, the robot 10 can be precisely controlled. For example, in this embodiment, the influence of vibrations (vibration damping) when the operation of the robot 10 is stopped can be reduced. Therefore, in this embodiment, when the robot 10 performs a predetermined task, the total operating time of the robot 10 can be shortened and the operating accuracy can be improved.
[0089] The state of the links LK1 and LK2 that reduces the inertial force when the robot 10 rotates about the axis Ax1 is not limited to the first state shown in FIG. 2 , as long as the links LK1 and LK2 are in a posture (upright state) in which they extend along the axis Ax1. For example, an upright state different from the first state shown in FIG. 2 may be a state in which the directions De1 and De2 are parallel to the axis Ax1 and the end LK2ed1 of the link LK2 is closer to the end LK1ed2 of the link LK1 than the end LK1ed1 of the link LK1. In this case, the links LK1 and LK2 extend along the axis Ax1, and the link LK2 is positioned so that the tip end TP1 is farther away from the link LK1. In other words, in this embodiment, by setting the robot 10 in an upright state, the inertial force when the robot 10 rotates about the axis Ax1 can be reduced. However, the robot 10 is more stable when the tip portion TP1 is closer to the link LK1 than when the tip portion TP1 is farther from the link LK1.
[0090] In this embodiment, the robot controller 30 causes the robot 10 to perform, for example, the respective operations of a Cartesian robot, a horizontal articulated robot, and a vertical articulated robot. For example, the robot 10 has a plurality of drive modes including drive modes corresponding to the respective operations of a Cartesian robot, a horizontal articulated robot, and a vertical articulated robot. The drive modes will be described later with reference to FIG. 4.
[0091] Next, the hardware configuration of the robot controller 30 will be described with reference to FIG.
[0092] FIG. 3 is a diagram showing an example of the hardware configuration of the robot controller 30 shown in FIG.
[0093] The robot controller 30 includes 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 or the like, a display device 38, and a driver circuit 39. The robot controller 30 may be realized as a single device, or may be realized as a plurality of devices configured separately from each other. For example, one or both of the operation device 37 and the display device 38 may be devices separate from the processing device 32.
[0094] The memory 35 may include, for example, one or both of a volatile memory such as a random access memory (RAM) that functions as a work area for the processing device 32, and a non-volatile memory such as an electrically erasable programmable read-only memory (EEPROM) that stores various information such as the control program PGr. The memory 35 may be detachable from the robot controller 30. Specifically, 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.
[0095] 2 stores a control program PGr. In this embodiment, the control program PGr includes, for example, an application program that the robot controller 30 uses to control the operation of the robot 10. However, the control program PGr may also include, for example, an operating robot system program that the processing device 32 uses to control each part of the robot controller 30.
[0096] The processing device 32 is a processor that controls the entire robot controller 30, and is configured to include, for example, one or more central processing units (CPUs). The processing device 32 executes, for example, a control program PGr stored in the memory 35, and operates in accordance with the control program PGr, thereby functioning as an operation control unit 33 and a display control unit 34, which will be described later. The control program PGr may be transmitted from another device via a network or the like.
[0097] Furthermore, for example, if the processing device 32 is configured to include multiple CPUs, some or all of the functions of the processing device 32 may be realized by the multiple CPUs operating cooperatively in accordance with a program such as the control program PGr. Furthermore, 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 instead of some or all of the one or more CPUs. In this case, some or all of the functions of the processing device 32 may be realized by the hardware such as the DSP. The processing device 32 may also be considered a "computer device."
[0098] The operation control unit 33 repeats the process of calculating the joint values related to the state (joint state) of each joint mechanism JE until, for example, the position and posture of the robot 10 become the target position and posture. The state of the joint mechanism JE may be the state of joint movement. Specifically, the state of the joint mechanism JE may be, for example, the position of the joint mechanism JE (joint position) and the rotation angle (joint direction) of the rotation by the joint mechanism JEr. In this case, the joint value indicates, for example, the position of the joint mechanism JE (joint position) and the rotation angle (joint direction) of the rotation by the joint mechanism JEr. Hereinafter, the joint value related to the state (joint state) of the joint mechanism JE will also be simply referred to as the joint value of the joint mechanism JE (joint).
[0099] The operation control unit 33 drives the robot 10 based on the joint values of each joint mechanism JE via a driver circuit 39, which will be described later. The display control unit 34 displays various images, such as an operation screen OPS shown in Fig. 5, which will be described later, on a display device 38.
[0100] The communication device 36 is hardware for communicating with an external device located outside the robot controller 30. For example, the communication device 36 has a function of communicating with the external device via short-range wireless communication. The communication device 36 may further have a function of communicating with the external device via a mobile communication network or a network.
[0101] The operation device 37 is an input device (for example, a keyboard, a mouse, a switch, a button, a sensor, etc.) that accepts input from the outside. For example, the operation device 37 accepts an operation by an operator and outputs operation information corresponding to the operation to the processing device 32. Note that, for example, a touch panel that detects contact with the display surface of the display device 38 may be adopted as the operation device 37.
[0102] The display device 38 is an output device such as a display that outputs to the outside. The display device 38 displays an image under the control of the processing device 32 (more specifically, the display control unit 34), for example. The operation device 37 and the display device 38 may be integrated into one device (for example, a touch panel).
[0103] The driver circuit 39 is hardware that outputs signals for driving the robot 10 to 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 for driving motors MOr1, MOr2, MOr3, MOr4, MOr5, MOr6, MOp1, MOp2, etc.
[0104] In this way, the robot controller 30 controls the operation of the robot 10 by controlling the multiple motors MO (MOr1, MOr2, MOr3, MOr4, MOr5, MOr6, MOp1, and MOp2).
[0105] The configuration of the robot controller 30 is not limited to the example shown in Fig. 3. For example, the communication device 36 may be omitted from the robot controller 30.
[0106] Next, an overview of a method for calculating the joint values of each joint mechanism JE (a method for calculating the joint values by the operation control unit 33) used when controlling the operation of the robot 10 will be described. For example, forward kinematics, which calculates the position and orientation of the robot 10 from the displacement of the joint (e.g., rotation and linear motion), and inverse kinematics, which calculates the displacement of the joint from the position and orientation of the robot 10, are used to control the operation of the robot 10. For example, the relationship between the velocity of the hand (e.g., the tip of the end effector 20) of the robot 10 (hereinafter also referred to as the hand velocity) and the joint velocity is expressed by Equation (1). For example, Equation (1) is used for calculations of forward kinematics.
[0107]
[0108] The hand velocity r(·) is expressed by equation (2). In addition, in a multi-joint robot having m joints (m is a natural number of 2 or more), the joint velocity θ(·) is expressed by equation (3), and the Jacobian matrix J is expressed by equation (4).
[0109]
[0110]
[0111]
[0112] The Jacobian matrix J is expressed as a matrix with 6 rows and m columns, for example, and the element in the i-th column is the element J relating to the i-th joint. i The element J relating to the i-th joint i When the i-th joint is a rotational joint, it is expressed by equation (5), and when the i-th joint is a prismatic joint, it is expressed by equation (6). Note that 0 in equation (6) indicates that the vector value is 0, for example.
[0113]
[0114] 1, a three-axis Cartesian coordinate system with a predetermined position of each joint as its origin is associated with each joint (each joint mechanism JE) and is used to express the state of the joint. For example, if the i-th joint is a rotary joint, the rotation axis of the joint mechanism JEr corresponds to the Z-axis, and if the i-th joint is a linear joint, the axis along the movement direction of the joint mechanism JEp or the axis along the extension / contraction direction of the link LK corresponds to the Z-axis.
[0115] Furthermore, in this embodiment, it is assumed that 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. For example, joint mechanism JEr1 corresponds to the first joint, joint mechanism JEr2 corresponds to the second joint, joint mechanism JEr3 corresponds to the third joint, and joint mechanism JEr4 corresponds to the fourth joint, joint mechanism JEr5 corresponds to the fifth joint, and joint mechanism JEr6 corresponds to the sixth joint, and joint mechanism JEp1 corresponds to the seventh joint, and joint mechanism JEp2 corresponds to the eighth joint. Note that the numbering method is not limited to the above example.
[0116] The relationship between the hand velocity and the joint velocity of the robot 10 is expressed as the pseudo-inverse matrix J of the Jacobian matrix J: + For example, equation (7) is used to calculate inverse kinematics.
[0117]
[0118] For example, the robot controller 30 calculates the joint velocity θ of each joint mechanism JE relative to the target hand velocity r(·). i (·) using the equation (7), and operates each joint mechanism JE based on the calculation result. Specifically, for example, the robot controller 30 calculates the joint velocity θ of each joint mechanism JE calculated using the equation (7). i The robot controller 30 calculates the joint value of each joint mechanism JE based on the joint value of each joint mechanism JE. 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.
[0119] As a result, in this embodiment, for example, the robot 10 can be made to perform a jog motion. Note that the jog motion is, for example, a motion in which the joints and hands of the robot 10 are moved little by little to make the position and posture of the robot 10 reach a target position and posture. i (·), and joint velocity θ i The information indicating the state of the joint mechanism JE calculated based on (·) corresponds to the joint value. The calculation of the joint velocity θ(·) of the joint mechanism JE is an example of inverse kinematics calculation. Furthermore, the pseudo-inverse matrix J + is calculated, calculating the joint velocity θ(·) of the joint mechanism JE using equation (7) corresponds to performing inverse kinematics calculation using the Jacobian matrix.
[0120] Here, when a jog operation is performed, the joint speed θ i Therefore, in a control method in which the Jacobian matrix J is used without any special measures, when the number of joint mechanisms JE is large, the joint velocity θ of each joint that makes the position and posture of the robot 10 the target position and posture is i In this case, the calculation time until the solution of the inverse kinematics calculation (the joint velocity θ of each joint that makes the position and posture of the robot the target position and posture) is increased. i (·), etc.) may not be calculated within the desired time.
[0121] In this embodiment, the drive mode of the robot 10 can be selected from a plurality of drive modes, including a drive mode in which the number of joints (joint mechanisms JE) to be operated is less than the total number of joints. For example, in a drive mode in which a specific i-th joint is not operated, the element J relating to the specific i-th joint among the multiple elements of the Jacobian matrix J is i The vector value of the element J relating to the i-th joint is fixed to 0. i The Jacobian matrix J when the vector value of is set to 0 is expressed as in Equation (8). In this case, the joint velocity θ obtained from the above-mentioned Equation (7) i (·) is the joint velocity vector expressed by equation (9).
[0122]
[0123] As shown in equation (9), the joint velocity θ of the i-th joint i (·) is 0. In this embodiment, among the multiple elements of the Jacobian matrix J, the element J relating to the i-th joint is i By fixing the vector value of the i-th joint to 0, the joint value of the i-th joint does not change, so the i-th joint among the m joints can be regarded as a fixed joint. That is, in this embodiment, the element J relating to the i-th joint of the Jacobian matrix J is i By fixing the vector value of 0, the joint velocity θ i (·) can be calculated. In this way, in this embodiment, the robot 10 can be operated by selecting a drive mode in which the number of joints to be operated is less than the total number of joints. Note that, although the vector value is fixed to 0 in this embodiment, the joint value of the i-th joint does not necessarily have to be 0 and may be a small value (substantially 0) as long as it does not affect robot control and does not substantially change. Here, "substantially 0" includes not only 0 but also a small value that can be regarded as 0. Furthermore, "not substantially changing" includes not only a case where there is no displacement strictly, but also a case where it can be regarded as not changing (for example, a small change that does not affect robot control).
[0124] Furthermore, in the above example, it is assumed that the fixed joint that is not operated is the i-th joint, but the number of fixed joints that are not operated is not limited to one. That is, the multiple drive modes may include drive modes in which the number of fixed joints that are not operated (joint mechanisms JE to be fixed) is two or more, as shown in FIG. 4 , which will be described later. In this embodiment, by appropriately selecting a drive mode for the robot 10 from the multiple drive modes, it is possible to prevent a solution to the inverse kinematics calculation from not being calculated within a desired time.
[0125] Next, the drive modes of the robot 10 will be outlined with reference to FIG.
[0126] 4 is an explanatory diagram illustrating an example of the drive modes of the robot 10. In this embodiment, it is assumed that the robot 10 has a first drive mode, a second drive mode, a third drive mode, a fourth drive mode, and a fifth drive mode as the plurality of drive modes.
[0127] Each of the multiple drive modes is associated with at least one of the multiple joint mechanisms as a driven joint mechanism. Hereinafter, the joint mechanisms other than the driven joint mechanism are also referred to as fixed joint mechanisms. The fixed joint mechanisms are joint mechanisms that do not substantially change their joint values in the process of calculating the joint values of each joint mechanism. For example, in each drive mode, the robot controller 30 controls the operation of the robot 10 by driving the driven joint mechanisms while fixing the fixed joint mechanisms among the multiple joint mechanisms. The driven joint mechanisms are an example of a "driven joint," and the fixed joint mechanisms are an example of a "fixed joint." For example, not substantially changing the joint values means substantially maintaining the joint values, and not displacing the joint values means maintaining the joint values.
[0128] In the first drive mode, of the multiple joint mechanisms JE, joint mechanisms JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6 are the joint mechanisms JE to be driven, and joint mechanisms JEp1 and JEp2 are the joint mechanisms JE to be fixed. That is, in the first drive mode, the robot 10 operates as a so-called vertical six-axis articulated robot. Hereinafter, the first drive mode may be referred to as the vertical six-axis articulated mode.
[0129] In the second drive mode, of the multiple joint mechanisms JE, joint mechanisms JEp1 and JEp2 are the joint mechanisms JE to be driven, and joint mechanisms JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6 are the joint mechanisms JE to be fixed. That is, in the second drive mode, the robot 10 operates as a so-called Cartesian robot. Hereinafter, the second drive mode may be referred to as the Cartesian mode.
[0130] In the third drive mode, of the multiple joint mechanisms JE, joint mechanisms JEr1, JEp1, and JEp2 are the joint mechanisms JE to be driven, and joint mechanisms JEr2, JEr3, JEr4, JEr5, and JEr6 are the joint mechanisms JE to be fixed. That is, in the third drive mode, the robot 10 operates as a so-called horizontal articulated robot (SCARA robot). Hereinafter, the third drive mode may be referred to as the SCARA mode.
[0131] In the fourth drive mode, of the multiple joint mechanisms JE, joint mechanisms JEr2, JEr3, JEp1, and JEp2 are the joint mechanisms JE to be driven, and joint mechanisms JEr1, JEr4, JEr5, and JEr6 are the joint mechanisms JE to be fixed. That is, in the fourth drive mode, in addition to the joint mechanisms JE (JEp1 and JEp2) to be driven in the second drive mode (orthogonal mode), joint mechanisms JEr2 and JEr3 are also associated as the joint mechanisms JE to be driven. Hereinafter, the fourth drive mode may be referred to as an extended orthogonal mode. Also, below, a robot in which only four of the eight joint mechanisms JE, namely, joint mechanisms JEr2, JEr3, JEp1, and JEp2, are driven, may be referred to as an extended orthogonal robot.
[0132] In the fifth drive mode, all of the multiple joint mechanisms JE are joint mechanisms JE to be driven. That is, in the fifth drive mode, there are no joint mechanisms JE to be fixed among the multiple joint mechanisms JE. Hereinafter, the fifth drive mode may be referred to as the standard mode.
[0133] In the following, it is assumed that the multiple drive modes are the first drive mode, second drive mode, third drive mode, fourth drive mode, and fifth drive mode shown in Fig. 4. However, the multiple drive modes are not limited to the example shown in Fig. 4. For example, the multiple drive modes may include drive modes in which joint mechanisms JEr6 and JEp2 of the multiple joint mechanisms JE are associated as the joint mechanisms JE to be driven.
[0134] Next, an overview of the operation screen OPS displayed on the display device 38 will be described with reference to FIG.
[0135] FIG. 5 is an explanatory diagram for explaining an example of the operation screen OPS.
[0136] For example, the display control unit 34 of the robot controller 30 causes the display device 38 to display an operation screen OPS as a selection screen for selecting one drive mode from a plurality of drive modes. Specifically, for example, the display control unit 34 outputs display information for displaying the operation screen OPS on the display device 38 to the display device 38. As a result, the operation screen OPS is displayed on the display device 38. The generation of the display information by the display control unit 34 may be triggered, for example, by an operation for displaying the operation screen OPS being performed on the robot controller 30, or by startup of the robot controller 30.
[0137] The operation screen OPS includes a plurality of display windows WD (WDm, WDj, WDpc, and WDpa). The display window WDm displays, for example, a moving image of the robot 10 captured by an imaging device such as a camera as a moving image showing the current state of the robot 10. The plurality of display windows WDj display the current joint values of the plurality of joint mechanisms JE (JEr1, JEr2, JEr3, JEr4, JEr5, JEr6, JEp1, and JEp2), respectively.
[0138] Furthermore, the display window WDp (WDpc and WDpa) displays information indicating the current position and posture of the hand of the robot 10. For example, the coordinates of the position of the hand of the robot 10 (for example, the center of the end face TP1sf of the tip part TP1 to which the end effector 20 is attached) are displayed in the display window WDpc. Furthermore, for example, information indicating the posture of the hand of the robot 10 is displayed in the display window WDpa. The information indicating the posture of the hand of the robot 10 may be, for example, Euler angles represented by a set of three angles, or may be three angles: a roll angle, a pitch angle, and a yaw angle.
[0139] Furthermore, the operation screen OPS displays a plurality of buttons BT (BTpc, BTpa, BTs, and BTd) for a GUI (Graphical User Interface). The plurality of buttons BT are used, for example, when teaching the robot 10 an operation, and when controlling the operation of the robot 10 in actual operations other than the teaching of the robot 10.
[0140] The buttons BTp (BTpc and BTpa) are, for example, a GUI that accepts input of information for setting target values for the position and posture of the hand of the robot 10. For example, the target position of the hand of the robot 10 is set using three buttons BTpc corresponding to the X-axis, Y-axis, and Z-axis, respectively, and the target posture of the hand of the robot 10 is set using three buttons BTpa corresponding to three angles indicating the posture of the hand of the robot 10, respectively.
[0141] More specifically, the X-axis position of the hand of the robot 10 is set using the button BTpc corresponding to the X-axis. For example, when the "+" button BTpc of the "+" and "-" buttons BTpc corresponding to the X-axis is pressed, the value displayed in the display window WDpc corresponding to the X-axis increases. When the "-" button BTpc of the "+" and "-" buttons BTpc corresponding to the X-axis is pressed, the value displayed in the display window WDpc corresponding to the X-axis decreases. When the "+" button BTpa of the "+" and "-" buttons BTpa corresponding to one of the three angles indicating the posture of the hand of the robot 10 is pressed, the value displayed in the display window WDpa corresponding to that angle increases. When the "-" button BTpa of the "+" and "-" buttons BTpa corresponding to that angle is pressed, the value displayed in the display window WDpa corresponding to that angle decreases.
[0142] In this way, the operator can set the target position and posture of the hand of the robot 10 by pressing the button BTp (BTpc and BTpa).
[0143] The buttons BTs (BTs1, BTs2, BTs3, BTs4, and BTs5) are GUIs that accept input of information for selecting the drive mode of the robot 10. For example, when button BTs1 is pressed, the first drive mode is selected as the drive mode of the robot 10, and when button BTs2 is pressed, the second drive mode is selected as the drive mode of the robot 10. For example, when button BTs3 is pressed, the third drive mode is selected as the drive mode of the robot 10, and when button BTs4 is pressed, the fourth drive mode is selected as the drive mode of the robot 10. And, for example, when button BTs5 is pressed, the fifth drive mode is selected as the drive mode of the robot 10.
[0144] In this way, the worker can select the drive mode of the robot 10 by pressing the buttons BTs (BTs1, BTs2, BTs3, BTs4, and BTs5).
[0145] The button BTd is a GUI for confirming, for example, the target position and posture input by the operator and the drive mode selected by the operator as final information to be used for teaching the robot 10. For example, when the button BTd is pressed, the position and posture based on the values displayed in the display window WDp are confirmed as the target position and posture, and the drive mode corresponding to the button BTs last pressed by the operator is confirmed as the drive mode of the robot 10. Note that the operation screen OPS may include a GUI for starting teaching the robot 10 and a GUI for ending teaching the robot 10.
[0146] Furthermore, the operation screen OPS displays, for example, multiple warning images WLj that function as warning lights to notify the operator whether the state of the robot 10 is in a specific state. The specific state is, for example, a state in which the joint value of a specific joint mechanism JE is close to a limit value that satisfies the constraints on the movement of the joint mechanism JE (for example, a value that has a predetermined margin around the limit value). Hereinafter, the state of the joint mechanism JE when the joint value of the joint mechanism JE is the limit value that satisfies the constraints on the movement of the joint mechanism JE is also referred to as a limit state. The predetermined margin is, for example, a margin set to allow the robot controller 30 to recognize that the state of the joint mechanism JE is approaching the limit state before the state of the joint mechanism JE reaches the limit state.
[0147] Here, the constraint on the movement of the joint mechanism JE may be, for example, the movement range of the joint mechanism JE (the movement range of the joint mechanism JEr3 caused by the joint mechanism JEp1, and the movement range of the joint mechanism JEr3 caused by the joint mechanism JEp2, etc.). For example, when the joint mechanism JEp1 causes the joint mechanism JEr3 to move relative to the link LK1, the movement range of the joint mechanism JEr3 is limited to the movement area ARmv1. Therefore, when the joint mechanism JEr3 is located at the end of the movement area ARmv1, the joint value of the joint mechanism JEp1 is at the limit value, and the state of the joint mechanism JEp1 is in the limit state.
[0148] Alternatively, the constraint on the movement of the joint mechanism JE may be a constraint for avoiding a singular point, or may include both a constraint for avoiding a singular point and a movement range of the joint mechanism JE. A singular point is, for example, a situation in which the posture of the robot 10 becomes uncontrollable.
[0149] In the example shown in FIG. 5 , the operation screen OPS includes multiple warning images WLj corresponding to multiple joint mechanisms JE in one-to-one correspondence. For example, when the state of the robot 10 is a specific state based on constraints for avoiding a singular point, the warning image WLj corresponding to the joint mechanism JE associated with the singular point is displayed in red. In this manner, the warning image WLj corresponding to the joint mechanism JE in the specific state is displayed in a specific color (e.g., red), and the warning image WLj corresponding to the joint mechanism JE not in the specific state is displayed in a color other than the specific color. The warning image WLj may use three or more colors, such as blue, yellow, and red, to allow the operator to recognize the state of the joint mechanism JE. For example, the warning image WLj corresponding to the joint mechanism JE not in the specific state may be displayed in blue or yellow. In this case, a yellow warning image WLj indicates that the state of the joint mechanism JE corresponding to the warning image WLj is closer to the specific state than when the warning image WLj is blue.
[0150] In this way, the operation screen OPS includes a plurality of buttons BT that function as a GUI used, for example, when teaching the robot 10 an operation and when controlling the operation of the robot 10 in actual operations other than teaching the robot 10. Furthermore, the operation screen OPS includes a plurality of display windows WD and a plurality of warning images WLj for monitoring the operation of the robot 10.
[0151] It should be noted that examples of the operation screen OPS are not limited to the example shown in Fig. 5. For example, one or both of the display window WDm and the multiple display windows WDj may not be displayed on the operation screen OPS. Also, for example, the display control unit 34 may selectively display multiple operation screens on the display device 38. In this case, some of the multiple display windows WD (WDm, WDj, WDpc, and WDpa) may be displayed on an operation screen other than the operation screen OPS.
[0152] Furthermore, for example, instead of or in addition to a color change, the warning image WLj may use a flashing pattern corresponding to the state of the joint mechanism JE to allow the worker to recognize the state of the joint mechanism JE. Furthermore, for example, instead of multiple warning images WLj, the colors or flashing patterns of multiple display windows WDj may be used to allow the worker to recognize whether the state of the robot 10 is in a specific state, etc. Alternatively, instead of or in addition to multiple warning images WLj, a warning sound may be emitted to allow the worker to recognize whether the state of the robot 10 is in a specific state, etc.
[0153] Furthermore, the number of warning images WLj included in the operation screen OPS is not limited to the example shown in Fig. 5. For example, when the operator is not particularly notified of the joint mechanisms JE related to the singular point, the operation screen OPS may include one warning image WLj that warns the operator that the posture of the robot 10 is approaching a singular point, instead of six warning images WLj corresponding to the six joint mechanisms JEr. Alternatively, instead of using six warning images WLj, the operator may be warned that the posture of the robot 10 is approaching a singular point by changing the color of the entire operation screen OPS, flashing the entire operation screen OPS, or the like.
[0154] Next, an outline of the operation of the robot controller 30 will be described with reference to FIGS.
[0155] Fig. 6 is a flowchart showing an example of the operation of the robot controller 30 shown in Fig. 1. In the operation shown in Fig. 6, 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 rotation by the joint mechanism JEr) for setting the position and posture of the hand of the robot 10 to a target position PP and posture PS. For example, the operation shown in Fig. 6 is executed by the processing device 32 functioning as the operation control unit 33. That is, in the operation shown in Fig. 6 (a series of processes from step S100 to step S780), the processing device 32 functions as the operation control unit 33.
[0156] The operation shown in FIG. 6 assumes that there are n target positions PP and orientations PS (n is a natural number equal to or greater than 1). For example, n target positions PP and orientations PS are defined as the trajectory of the robot 10 from the initial state of the robot 10 to the final target state. Hereinafter, the n target positions PP and orientations PS may be referred to as n target states. The operation shown in FIG. 6 assumes that the initial value of variable k (k is a natural number equal to or greater than 1 and equal to or less than n) is 1. Hereinafter, the position PP and orientation PS of the kth target may be referred to as position PPk and orientation PSk, respectively. For example, position PP1 and orientation PS1 are the position PP and orientation PS of the first target, and position PPn and orientation PSn are the position PP and orientation PS of the nth target (final target). The robot controller 30 sequentially updates the position PPk and orientation PSk of the target at the hand of the robot 10, for example, by sequentially changing the variable k from 1 to n.
[0157] FIG. 6 mainly explains the operation of the robot controller 30 when n target positions PP and postures PS are set in order to teach the trajectory of the robot 10 from the initial state of the robot 10 to the final target state.
[0158] First, in step S100, the operation control unit 33 selects a drive mode for the robot 10. For example, the operation control unit 33 selects the drive mode for the robot 10 based on information input via the operation screen OPS shown in FIG. 5 . Specifically, for example, the operation control unit 33 selects, as the drive mode for the robot 10, a drive mode corresponding to the button BTs pressed before the button BTd is pressed among the multiple buttons BTs. Note that if two or more buttons BTs are pressed before the button BTd is pressed, the drive mode corresponding to the button BTs pressed last among the two or more buttons BTs is selected as the drive mode for the robot 10. Also, for example, when the operation shown in FIG. 6 is started and the button BTd is pressed without pressing any of the multiple buttons BTs, a predetermined drive mode (for example, the standard mode) is selected as the drive mode for the robot 10.
[0159] Next, in step S120, the movement control unit 33 sets the position PPk and orientation PSk of the kth target of the hand of the robot 10. For example, the movement control unit 33 selects a drive mode of the robot 10 based on information input via the operation screen OPS. Specifically, for example, when button BTd is pressed, the movement control unit 33 sets the values displayed in the display window WDp (WDpc and WDpa) as the position PPk and orientation PSk of the kth target of the hand of the robot 10. After executing the process of step S120, the movement control unit 33 proceeds to the process of step S200.
[0160] In step S200, the movement control unit 33 calculates the difference between the position and orientation of the hand of the robot 10 and the target position PPk and orientation PSk. For example, the movement control unit 33 calculates the position and orientation of the hand of the robot 10 based on the current joint values of each joint mechanism JE. Then, the movement control unit 33 calculates the difference between the position and orientation of the hand of the robot 10 calculated based on the current joint values of each joint mechanism JE and the target position PPk and orientation PSk of the hand of the robot 10.
[0161] Next, in step S300, the operation control unit 33 determines whether the difference between the position and orientation of the hand of the robot 10 and the target position PPk and orientation PSk is equal to or less than a tolerance value. The tolerance value is set to, for example, a value that indicates that the position and orientation of the hand of the robot 10 are consistent with the target position PP and orientation PS if the difference between the position and orientation of the hand of the robot 10 and the target position PP and orientation PS is equal to or less than the tolerance value.
[0162] If the result of the determination in step S300 is positive, the operation control unit 33 advances the process to step S700. 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 S400.
[0163] In step S400, the movement control unit 33 executes a joint value update process to update the joint values of each joint mechanism JE. For example, in the joint value update process, the movement control unit 33 calculates the joint values of the multiple joint mechanisms JE by executing a calculation process including an inverse kinematics calculation to calculate the displacement amount of a joint mechanism JE to be driven that is identified based on the drive mode among the multiple joint mechanisms JE. Details of the joint value update process will be described later with reference to FIG. 7. After executing the joint value update process in step S400, the movement control unit 33 proceeds to step S500.
[0164] In step S500, the operation control unit 33 increments the loop count, which is initialized to 0 before the operation shown in FIG.
[0165] Next, in step S520, the operation control unit 33 determines whether the loop count is equal to or less than an upper limit value. The upper limit value is the upper limit value for the number of times the series of processes from step S200 to step S520 is repeated, and is set so as to terminate the operation shown in FIG. 6 if the series of processes from step S200 to step S520 does not converge.
[0166] If the determination result in step S520 is negative, the operation control unit 33 stops the operation of the robot 10 in step S600, determining that an error has occurred. In this case, the joint values of each joint mechanism JE calculated by the operation shown in FIG. 6 (the latest joint values of each joint mechanism JE updated in the joint value update process in step S400) may not necessarily be the joint values that will cause the position and orientation of the hand of the robot 10 to reach the target position PP and orientation PS. For this reason, the operation control unit 33 may notify an operator or the like of error information indicating that the process of calculating the joint values of each joint mechanism JE to cause the position and orientation of the hand of the robot 10 to reach the target position PP and orientation PS has not converged. For example, the operation control unit 33 may display the error information on the display device 38.
[0167] On the other hand, if the result of the determination in step S520 is positive, the operation control unit 33 returns the process to step S200. In this way, the series of processes from step S200 to step S520 is repeated until the joint values of each joint mechanism JE for setting the position and posture of the hand of the robot 10 to the target position PP and posture PS are calculated, or until the loop count exceeds the upper limit value.
[0168] Furthermore, as described above, if the result of the determination in step S300 is positive, the process of step S700 is executed. In this case, the joint values (latest joint values) of each joint mechanism JE used in calculating the position and orientation of the hand of the robot 10 in step S200 are calculated as the joint values of each joint mechanism JE for setting the position and orientation of the hand of the robot 10 to the target position PP and orientation PS. Note that if the series of processes from step S200 to step S520 has been repeated two or more times, the latest joint values used in the current process of step S200 are the joint values updated in the previous joint value update process of step S400.
[0169] In step S700, the movement control unit 33 controls each joint mechanism JE in accordance with the joint values of each joint mechanism JE updated by the joint value update process of step S400. As a result, the position and posture of the hand of the robot 10 change to the target position PPk and posture PSk. When teaching the robot 10 a movement, the movement control unit 33 stores the joint values of each joint mechanism JE updated by the joint value update process of step S400 in the memory 35 as the joint values of the target position PPk and posture PSk in step S700. For example, when teaching the robot 10 a movement, the movement control unit 33 generates joint state information indicating the joint values of the multiple joint mechanisms JE calculated in the joint value update process and stores the generated joint state information in the memory 35.
[0170] Here, for example, if the difference between the position and orientation of the hand in the initial state of the robot 10 and the target position PP1 and orientation PS1 is equal to or smaller than a tolerance, the joint value update process of step S400 is not executed even once, and the result of the determination in step S300 is positive. In this case, the above-mentioned "joint values of each joint mechanism JE updated by the joint value update process of step S400" is replaced with "joint values of each joint mechanism JE in the initial state of the robot 10." For example, if the joint value update process of step S400 is not executed even once, and the result of the determination in step S300 is positive, the operation control unit 33 maintains the joint values of each joint mechanism JE at the joint values of each joint mechanism JE in the initial state of the robot 10 in step S700.
[0171] After executing the process of step S700, the operation control unit 33 advances the process to step S720.
[0172] In step S720, the operation control unit 33 determines whether the variable k is smaller than n. If the result of the determination in step S720 is negative, that is, if the position and posture of the hand of the robot 10 have changed to the final target position PPn and posture PSn, the operation control unit 33 ends the operation shown in Fig. 6. On the other hand, if the result of the determination in step S720 is positive, the operation control unit 33 resets the loop count to 0 in step S740, and then proceeds to step S760.
[0173] In step S760, the operation control unit 33 increments the variable k (k=k+1), and then the operation control unit 33 proceeds to step S780.
[0174] In step S780, the operation control unit 33 determines whether to change the drive mode. In step S780, the processing device 32 may function as the display control unit 34 and display a message on the operation screen OPS indicating that input of information for setting the next target position PPk and orientation PSk is being accepted. The processing device 32 may also function as the operation control unit 33 and determine whether to change the drive mode when the button BTd is pressed. For example, the operation control unit 33 may determine not to change the drive mode when the button BTd is pressed without any of the buttons BTs being pressed, and may determine to change the drive mode when any of the buttons BTs is pressed before the button BTd is pressed. In addition, the operation control unit 33 may also determine not to change the drive mode when any of the buttons BTs is pressed before the button BTd is pressed, if the drive mode corresponding to the pressed button BTs is the same as the currently selected drive mode.
[0175] If the result of the determination in step S780 is positive, the operation control unit 33 returns the process to step S100. As a result, in step S100, a drive mode corresponding to the next target position PPk and orientation PSk of the hand of the robot 10 is selected, and in step S120, the next target position PPk and orientation PSk of the hand of the robot 10 are set. On the other hand, if the result of the determination in step S780 is negative, the operation control unit 33 returns the process to step S120. As a result, the drive mode is not changed, and the next target position PPk and orientation PSk of the hand of the robot 10 are set in step S120.
[0176] In this way, in the operation shown in FIG. 6, a series of processes from step S200 to step S520 is repeated for each of the n target states (positions PP and postures PS) until the difference between the position and posture of the hand of the robot 10 and the target position PPk and posture PSk becomes equal to or less than the allowable value.
[0177] The operation of the robot controller 30 is not limited to the example shown in Fig. 6. For example, the process of step S780 may be omitted. In this case, the operation control unit 33 executes the process of step S760 and then returns the process to step S100. Furthermore, the process of step S100 may be executed after the process of step S120, or may be executed in parallel with the process of step S120.
[0178] In the above description, it is assumed that information regarding n positions PP and orientations PS is input during the execution of the operation shown in Fig. 6 , but the operation shown in Fig. 6 may be started, for example, after the positions PP and orientations PS of n targets are stored in the memory 35. In this case, the drive mode of the robot 10 is stored in the memory 35 in association with the positions PP and orientations PS of the n targets. The series of processes in steps S100 and S120 are then executed based on the information (drive mode, positions PP, and orientations PS) stored in the memory 35. In this case, the process of step S780 may also be omitted.
[0179] Next, the joint value update process in step S400 will be described with reference to FIG.
[0180] Fig. 7 is a flowchart showing an example of the joint value update process shown in Fig. 6. For example, the processing device 32 functioning as the motion control unit 33 executes a series of processes from step S420 to step S490 shown in Fig. 7 as the joint value update process of step S400 shown in Fig. 6. Therefore, the process of step S420 is executed when the result of the determination in step S300 shown in Fig. 6 is negative. Furthermore, after the process of step S490 is executed, the process of step S500 shown in Fig. 6 is executed.
[0181] First, in step S420, the movement control unit 33 calculates the Jacobian matrix J based on the current joint values of each joint mechanism JE. Then, the movement control unit 33 proceeds to step S440.
[0182] In step S440, the operation control unit 33 determines whether or not a joint mechanism JE to be fixed exists among the multiple joint mechanisms JE. For example, when the drive mode of the robot 10 is the fifth drive mode, the operation control unit 33 determines that a joint mechanism JE to be fixed does not exist among the multiple joint mechanisms JE. In other words, when the drive mode of the robot 10 is a drive mode other than the fifth drive mode, the operation control unit 33 determines that a joint mechanism JE to be fixed exists among the multiple joint mechanisms JE.
[0183] If the result of the determination in step S440 is positive, the operation control unit 33 proceeds to step S460. On the other hand, if the result of the determination in step S440 is negative, the operation control unit 33 proceeds to step S480.
[0184] In step S460, the movement control unit 33 sets the value of the element corresponding to the joint mechanism JE of the fixed object, among the multiple elements of the Jacobian matrix J, to substantially 0. As a result, for example, the value of the element in the column of the Jacobian matrix J corresponding to the joint mechanism JE of the fixed object is set to substantially 0. Then, the movement control unit 33 proceeds to the process of step S480.
[0185] In step S480, the operation control unit 33 calculates the pseudo-inverse matrix J of the Jacobian matrix J. + Using the above, the displacement amount of each joint mechanism JE (for example, the joint velocity θ i (•)). Note that if a fixed joint mechanism JE is present among the multiple joint mechanisms JE, the displacement amount of the fixed joint mechanism JE is 0 or almost 0 because the element values of the columns of the Jacobian matrix J corresponding to the fixed joint mechanism JE are set to substantially 0. Note that almost 0 is, for example, a value that can be regarded as 0. After executing the process of step S480, the operation control unit 33 proceeds to the process of step S490.
[0186] In step S490, 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 updates the joint values of each joint mechanism JE by adding the displacement amount of each joint mechanism JE to the joint values of each joint mechanism JE used to calculate the position and posture of the hand of the robot 10 in step S200 shown in FIG. 6 . Note that if a fixed joint mechanism JE is included among the multiple joint mechanisms JE, the displacement amount of the fixed joint mechanism JE is zero or approximately zero, so the joint values of the fixed joint mechanism JE after updating in the processing of step S490 will be the same or approximately the same as the values before the update. Note that a value approximately the same as the value before the update is, for example, a value that can be considered the same as the value before the update. Therefore, the state of the fixed joint mechanism JE is maintained unchanged. As a result, in this embodiment, it is possible to drive only the joint mechanism JE to be driven, which is identified based on the drive mode, among the multiple joint mechanisms JE.
[0187] Here, for example, the series of processes in steps S480 and S490 is an example of a "calculation process," and the series of processes in steps S440 and S460 is an example of a "fixed process." Note that the "calculation process" may include the process of step S420 in addition to the series of processes in steps S480 and S490. Alternatively, the series of processes from step S420 to step S490 may be considered as the "calculation process." In this case, the "calculation process" includes the "fixed process."
[0188] Note that the joint value update process is not limited to the example shown in FIG. 7 . For example, in step S440, the operation control unit 33 may determine whether or not the multiple joint mechanisms JE include either a fixed joint mechanism JE or a joint mechanism JE in a specific state described in FIG. 5 . In this case, in step S460, for the joint mechanism JE in the specific state, as with the fixed joint mechanism JE, the values of the elements of the Jacobian matrix J corresponding to the joint mechanism JE in the specific state are set to substantially 0. In this aspect, the joint mechanism JE in the specific state is also treated as a fixed joint, as with the fixed joint mechanism JE, and therefore it is possible to prevent the state of the joint mechanism JE from satisfying constraints on the movement of the joint mechanism JE (for example, a state outside the range of movement).
[0189] Furthermore, in the robot 10 that has been taught an operation, for example, each joint mechanism JE operates in accordance with the taught joint value (for example, the joint value indicated by the joint state information stored in the memory 35 in step S700). However, even in the robot 10 that has been taught an operation, when the robot 10 operates by complementing the n target states (positions PP and postures PS) used in teaching the robot 10, the robot controller 30 executes operations similar to those shown in Figures 6 and 7. In this case, the drive mode of the robot 10 is stored in the memory 35 in association with, for example, the n target positions PP and postures PS.
[0190] Next, with reference to Figures 8 and 9, the operation of the robot system 1 will be described using as an example a case where the robot 10 is taught how to place an item GD placed outside the shelf RK inside the shelf RK.
[0191] Fig. 8 is an explanatory diagram for explaining an example of the operation of the robot system 1. Fig. 9 is an explanatory diagram for explaining the operation subsequent to the operation of the robot system 1 shown in Fig. 8.
[0192] 8 and 9 show the main states of the robot 10 in the operation from when the robot 10 places an item GD placed outside the shelf RK (e.g., on the floor) to when the robot 10 places the item GD inside the shelf RK. The top views in the figures schematically show the robot 10 as viewed from the +Z direction, and the side views in the figures schematically show the robot 10 as viewed from the direction Dax3. The +Z direction is the direction indicated by the arrow on the Z axis, and the direction Dax3 is the direction from link LK1 to link LK2 along axis Ax3, which is the rotation axis of joint mechanism JEr3.
[0193] Hereinafter, the +Z direction may be referred to as the upward direction, and the direction opposite to the +Z direction may be referred to as the -Z direction or downward direction. Hereinafter, the +Z direction and the -Z direction may be referred to as the Z-axis direction or the up-down direction without any particular distinction. Hereinafter, the direction indicated by the X-axis arrow may be referred to as the +X direction, and the direction opposite to the +X direction may be referred to as the -X direction. Hereinafter, the +X direction and the -X direction may be referred to as the X-axis direction without any particular distinction.
[0194] 8(a) and 8(b), in the operation of the robot 10 from picking up an item GD from the floor to transporting the picked-up item GD in front of a shelf RK, there are few restrictions on the working area, and the robot 10 assumes a complex posture. Therefore, in the above-mentioned operation, the standard mode (fifth drive mode) in which all of the multiple joint mechanisms JE are drive target joint mechanisms JE, or the vertical six-axis multi-joint mode (first drive mode) are appropriate drive modes for the robot 10.
[0195] FIG. 8 assumes that the vertical six-axis articulated mode is selected. Furthermore, in the description of FIG. 8 and subsequent figures, the operation of inputting the target position PP and orientation PS via the operation screen OPS will be omitted. For example, when teaching of the robot 10 begins, the operator presses button BTs1 shown in FIG. 5 and then button BTd. As a result, the vertical six-axis articulated mode is selected in step S100 of FIG. 6 . Furthermore, because the vertical six-axis articulated mode is selected, in step S460 of FIG. 7 , the values of the elements of the Jacobian matrix J corresponding to the joint mechanisms JEp1 and JRp2 are set to substantially 0. As a result, the robot 10 operates as a vertical six-axis articulated robot in which only six joint mechanisms JEr (JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6) of the eight joint mechanisms JE are driven.
[0196] The item GD (see FIG. 8(b)) transported in front of the shelf RK is transported to the interior of the shelf RK and placed therein, as shown in FIGS. 9(c) and 9(d). Note that in FIGS. 8 and 9, it is assumed that the posture of the robot 10 at the time when the robot 10 has completed the operation of transporting the item GD in front of the shelf RK is a posture in which the direction De1 is parallel to the axis Ax1 and the direction De2 is perpendicular to the direction De1 (hereinafter also referred to as the orthogonal posture).
[0197] In the operation of the robot 10 from transporting an item GD delivered in front of a shelf RK into the shelf RK to placing the item GD inside the shelf RK (see FIGS. 9(c) and 9(d)), the shelf PK itself becomes an obstacle to the operation of the robot 10, which places great restrictions on the working area. For this reason, if the vertical six-axis articulated mode (first drive mode) or the standard mode (fifth drive mode) is selected in the above operation, the operation of the robot 10 will be significantly restricted. Therefore, the orthogonal mode (second drive mode) is appropriate as the drive mode for the robot 10 in the above operation.
[0198] For example, after the item GD is transported in front of the shelf RK, the worker presses the button BTs2 shown in FIG. 5 , and then presses the button BTd after pressing the button BTs2. As a result, in step S780 of FIG. 6 , it is determined that the drive mode should be changed, and in step S100, the orthogonal mode is selected. Furthermore, because the orthogonal mode has been selected, in step S460 of FIG. 7 , among the multiple elements of the Jacobian matrix J, the values of the elements corresponding to each of the six joint mechanisms JEr (JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6) are set to substantially 0. As a result, the robot 10 operates as a Cartesian robot in which only two joint mechanisms JEp (JEp1 and JEp2) of the eight joint mechanisms JE are driven.
[0199] In the orthogonal mode, for example, the joint mechanisms JEp1 and JEp2 can easily move link LK2 in the Z-axis direction (up and down direction) and in a direction perpendicular to the Z-axis (for example, the X-axis direction), respectively.
[0200] For example, as shown in FIG. 9( c), the robot controller 30 drives the joint mechanism JEp2 to move the link LK2 in the +X direction. As a result, the item GD is transported inside the shelf RK. Then, as shown in FIG. 9( d), the robot controller 30 drives the joint mechanism JEp1 to move the link LK2 in the −Z direction (downward). As a result, the tip TP1 of the robot 10 moves downward together with the link LK2, and the item GD is transported inside the shelf RK. In this way, in this embodiment, the robot 10 can operate as a Cartesian robot, so the shelf PK does not become an obstacle and the robot 10 can operate smoothly. Furthermore, in this embodiment, operating the robot 10 as a Cartesian robot makes it easy to control the robot 10.
[0201] When the orthogonal mode is selected, the robot controller 30 may determine whether the posture of the robot 10 is an orthogonal posture before, for example, executing the process of step S200 in Fig. 6. If the posture of the robot 10 is not an orthogonal posture, the robot controller 30 may change the posture of the robot 10 to an orthogonal posture and then execute the process of step S200 in Fig. 6.
[0202] Next, with reference to Figures 10 to 13, the operation of the robot system 1 will be described using as an example a case in which the robot 10 is taught to place an item GD placed in area AR1 on tray TY2 via tray TY1.
[0203] Fig. 10 is an explanatory diagram for explaining another example of the operation of the robot system 1. Fig. 11 is an explanatory diagram for explaining the operation subsequent to the operation of the robot system 1 shown in Fig. 10. Fig. 12 is an explanatory diagram for explaining the operation subsequent to the operation of the robot system 1 shown in Fig. 11. Fig. 13 is an explanatory diagram for explaining the operation subsequent to the operation of the robot system 1 shown in Fig. 12.
[0204] 10 to 13 show the main states of the robot 10 in the operation from when the robot 10 places an item GD placed in area AR1 on tray TY2 via tray TY1. The top views in the figures schematically show the robot 10 as viewed from the +Z direction, and the side views in the figures schematically show the robot 10 as viewed from the direction Dax3.
[0205] 10(a) and 10(b), in the operation of the robot 10 from picking up the item GD from the area AR1 to transporting the picked-up item GD to the temporary tray TY1, there are few restrictions on the working area, and the robot 10 takes a complex posture. Therefore, in the above-mentioned operation, the vertical six-axis articulated mode (first drive mode) or the standard mode (fifth drive mode) is appropriate as the drive mode of the robot 10.
[0206] In Figure 10, since area AR1 is located close to body part BDP, it is assumed that the standard mode, which is suitable for working on an object GD located close to body part BDP, is selected. For example, when teaching of robot 10 begins, the worker presses button BTs5 shown in Figure 5 and then button BTd. This selects standard mode in step S100 of Figure 6. Also, because standard mode has been selected, the result of the determination in step S440 of Figure 7 is negative. Therefore, robot 10 operates as an eight-axis articulated robot in which all eight joint mechanisms JE are driven.
[0207] After transporting the article GD to the tray TY1, the robot 10 changes its position above the tray TY1 as shown in FIG. 11(c).
[0208] The operation of the robot 10 from placing the item GD on tray TY1 onto tray TY2 is an operation that a horizontal articulated robot (SCARA robot) excels in. For this reason, the SCARA mode (third drive mode) is appropriate as the drive mode for the robot 10 in the above-described operation.
[0209] Therefore, for example, the operator presses button BTs3 shown in FIG. 5 after the robot 10, operating in standard mode, transports an item GD to tray TY1 and changes its posture to the orthogonal posture above tray TY1. Then, after pressing button BTs3, the operator presses button BTd. As a result, a determination is made to change the drive mode in step S780 of FIG. 6 , and the SCARA mode is selected in step S100. Furthermore, because the SCARA mode is selected, the values of the elements of the Jacobian matrix J corresponding to the joint mechanisms JEr2, JEr3, JEr4, JEr5, and JEr6 are set to substantially zero in step S460 of FIG. 7 . As a result, the robot 10 operates as a horizontal articulated robot (SCARA robot) in which only three of the eight joint mechanisms JE, namely, JEr1, JEp1, and JEp2, are driven.
[0210] 11(c), the robot controller 30 causes the robot 10 to carry the item GD to the tray TY1, and then changes the posture of the robot 10 to an orthogonal posture above the tray TY1. Then, the robot controller 30 changes the drive mode of the robot 10 from the standard mode to the SCARA mode.
[0211] Next, as shown in FIG. 11(d), the robot controller 30 drives the joint mechanism JEp1 to move the link LK2 in the −Z direction (downward). As a result, the tip TP1 of the robot 10 moves downward together with the link LK2. Then, as shown in FIG. 12(e), the robot controller 30 causes the robot 10 to pick up the item GD placed on the tray TY1.
[0212] Next, as shown in Fig. 12(e), the robot controller 30 drives the joint mechanism JEp1 to move the link LK2 in the +Z direction (upward). Then, as shown in Fig. 12(f), the robot controller 30 drives the joint mechanisms JEr1 and JEp2 to move the tip portion TP1 of the robot 10 above the tray TY2. Specifically, the robot controller 30 drives the joint mechanism JEr1 to rotate the entire robot 10, and drives the joint mechanism JEp2 to move the link LK2 in a direction (direction De2) in which the tip portion TP1 moves away from the body portion BDP.
[0213] Then, as shown in FIG. 13( g), the robot controller 30 drives the joint mechanism JEp1 to move the link LK2 in the −Z direction (downward). As a result, the tip end TP1 of the robot 10 moves downward together with the link LK2, and the item GD is transported to the tray TY2. The item GD is then placed on the tray TY2. After the item GD has been placed on the tray TY2, the robot controller 30 drives the joint mechanism JEp1 to move the link LK2 in the +Z direction (upward) as shown in FIG. 13( h). As a result, the tip end TP1 of the robot 10 moves upward together with the link LK2.
[0214] As described above, in this embodiment, the robot 10 can be arbitrarily switched between a standard mode (fifth drive mode) in which all eight joint mechanisms JE are driven and a SCARA mode (third drive mode) in which only three of the eight joint mechanisms JE (JEr1, JEp1, and JEp2) are driven. This prevents the control of the robot 10 from becoming complicated. For example, when the standard mode or the vertical six-axis multi-joint mode is selected in the operation of the robot 10 to place an item GD placed on tray TY1 onto tray TY2, more joint mechanisms JE are driven than when the SCARA mode is selected. In this case, the control of the robot 10 becomes more complicated than when the SCARA mode is selected.
[0215] When the scalar mode is selected, the robot controller 30 may determine whether the posture of the robot 10 is an orthogonal posture before executing the process of step S200 in Fig. 6. If the posture of the robot 10 is not an orthogonal posture, the robot controller 30 may change the posture of the robot 10 to an orthogonal posture and then execute the process of step S200 in Fig. 6.
[0216] 14 to 16, the operation of the robot system 1 will be described using as an example a case where the robot 10 is taught an operation to place an item GD placed outside a shelf RK inside the shelf RK. Note that in the operation shown in Figs. 14 to 16, the item GD is placed further back on the shelf RK than in the operation shown in Figs. 8 and 9.
[0217] Fig. 14 is an explanatory diagram for explaining another example of the operation of the robot system 1. Fig. 15 is an explanatory diagram for explaining the operation subsequent to the operation of the robot system 1 shown in Fig. 14. Fig. 16 is an explanatory diagram for explaining the operation subsequent to the operation of the robot system 1 shown in Fig. 15.
[0218] 14 to 16 show the main states of the robot 10 in the operation from when the robot 10 places an item GD placed outside the shelf RK (e.g., on the floor) to when the robot 10 places the item GD at the back of the shelf RK. The top views of the figures schematically show the robot 10 as seen from the +Z direction, and the side views of the figures schematically show the robot 10 as seen from the direction Dax3. The top views of the figures schematically show the robot 10 as seen from the +Z direction, and the side views of the figures schematically show the robot 10 as seen from the direction Dax3.
[0219] 14(a) and 14(b), the operation of the robot 10 from picking up the item GD from the floor to transporting the picked-up item GD in front of the shelf RK is the same as that described in Figures 8(a) and 8(b). Therefore, a description of the operation of the robot 10 from picking up the item GD from the floor to transporting the picked-up item GD in front of the shelf RK will be omitted.
[0220] The item GD (see FIG. 14(b)) transported in front of the shelf RK is transported inside the shelf RK and placed at the back of the shelf RK, as shown in FIGS. 15(c) and 15(d). In the operation of the robot 10 from transporting the item GD transported in front of the shelf RK into the shelf RK and placing the item GD at the back of the shelf RK, the shelf PK itself becomes an obstacle to the operation of the robot 10, as in the operation shown in FIG. 9, which places many restrictions on the working area. For this reason, the orthogonal mode (second drive mode) or the extended orthogonal mode (fourth drive mode) is appropriate as the drive mode for the robot 10 in the above-described operation. In FIG. 15, it is assumed that the extended orthogonal mode is selected because the item GD is placed at the back of the shelf RK.
[0221] For example, after an item GD is transported in front of a shelf RK, the worker presses button BTs4 shown in FIG. 5 , and then presses button BTd after pressing button BTs4. As a result, in step S780 of FIG. 6 , it is determined that the drive mode is to be changed, and in step S100, the extended orthogonal mode is selected. Furthermore, because the extended orthogonal mode has been selected, in step S460 of FIG. 7 , the values of the elements of the Jacobian matrix J corresponding to each of the four joint mechanisms JEr1, JEr4, JEr5, and JEr6 are set substantially to 0. As a result, the robot 10 operates as an extended orthogonal robot in which only four joint mechanisms JEr2, JEr3, JEp1, and JEp2 of the eight joint mechanisms JE are driven.
[0222] In the extended orthogonal mode, the tip portion TP1 can be moved to a position farther from the body portion BDP than in the orthogonal mode. For example, in the orthogonal mode, the amount of movement of the tip portion TP1 toward the rear of the shelf RK is limited to the drive range (movement area ARmv2) of the link LK2 relative to the joint mechanism JEr3 (see FIG. 9). In contrast, in the extended orthogonal mode, by driving the joint mechanisms JEr2 and JEr3 in addition to the joint mechanisms JEp1 and JEp2, the amount of movement of the tip portion TP1 toward the rear of the shelf RK can be increased compared to the orthogonal mode.
[0223] For example, when an item GD transported to the front of a shelf RK is to be placed at the back of the shelf RK, the robot controller 30 drives the joint mechanism JEp2 to move the link LK2 in the +X direction, as shown in FIG. 15( c). As a result, the item GD is transported inside the shelf RK. Then, as shown in FIG. 15( d), the robot controller 30 drives the joint mechanisms JEr2, JEr3, JEp1, and JEp2 to move the link LK2 in the direction from the front of the shelf RK to the back (the +X direction in FIG. 15). Note that FIG. 15 assumes a case in which the link LK2 is moved while maintaining the orientation of the link LK2 relative to the shelf RK and the vertical position of the joint mechanism JEr3.
[0224] For example, the robot controller 30 drives the joint mechanism JEr2 to tilt the link LK1 so that the end LK1ed2 approaches the shelf RK. Furthermore, while tilting the link LK1, the robot controller 30 drives the joint mechanism JEp1 to move the joint mechanism JEr3 along the direction De1 so that the end LK1ed2 of the link LK1 approaches the shelf RK. This maintains the vertical position of the joint mechanism JEr3. Furthermore, while tilting the link LK1, the robot controller 30 drives the joint mechanism JEr3 to rotate the link LK2 clockwise around the axis Ax3 of the joint mechanism JEr3 as viewed from the direction Dax. This maintains the angle between the direction De2 and the Z axis, and maintains the orientation of the link LK2 relative to the shelf RK.
[0225] The robot controller 30 also drives the joint mechanism JEp2 to move the link LK2 along the direction De2 so that the position of the item GD (position on the X-axis) as viewed from the Z direction becomes the desired position. Then, as shown in FIG. 16 , the robot controller 30 drives the joint mechanisms JEr2, JEr3, JEp1, and JEp2 to move the tip end TP1 downward. This places the item GD at the back of the shelf RK.
[0226] In this manner, in this embodiment, it is possible to arbitrarily switch between a vertical six-axis articulated mode (first drive mode) and an extended orthogonal mode (fourth drive mode) in which only four joint mechanisms JEr2, JEr3, JEp1, and JEp2 out of the eight joint mechanisms JE are driven. This makes it possible to prevent the control of the robot 10 from becoming complicated and the range of movement of the tip part TP1 from becoming narrow.
[0227] In addition, in the operation of the robot 10 up to the point where the item GD transported in front of the shelf RK is transported inside the shelf RK (see FIG. 15(c)), the orthogonal mode (second drive mode) may be selected as the drive mode of the robot 10. In this case, in the operation of the robot 10 up to the point where the item GD transported inside the shelf RK is placed at the back of the shelf RK, the extended orthogonal mode (fourth drive mode) is selected as the drive mode of the robot 10.
[0228] 8 to 16, in this embodiment, by selecting a drive mode, it is possible to realize the respective operations of multiple types of robots with one robot 10. As a result, in this embodiment, it is possible to suppress, for example, an increase in costs when building a production line and a decrease in work efficiency.
[0229] For example, if a single robot 10 cannot perform the operations of a Cartesian robot, a horizontal articulated robot, and a vertical articulated robot, building a production line suited to the work content requires preparing multiple types of robots and switching between them as the work content changes. Furthermore, some of the prepared multiple types of robots may become unnecessary due to changes in the production line. In this case, the cost of building the production line increases.
[0230] Furthermore, when a single vertical six-axis articulated robot is used to perform the respective operations of multiple types of robots, the robot's links (arms) may get in the way and limit the operation, as described above. Furthermore, when a vertical six-axis articulated robot is used to perform the operation of a Cartesian robot or a horizontal articulated robot, the operation becomes more complex due to the larger number of drive axes compared to the Cartesian robot and the horizontal articulated robot. In this case, problems such as a decrease in operation speed or operation accuracy may occur. In contrast, in this embodiment, by selecting the Cartesian mode or the SCARA mode, the robot 10 can be operated as a Cartesian robot or a horizontal articulated robot. As a result, this embodiment can suppress a decrease in operation speed or operation accuracy.
[0231] As described above, in this embodiment, the robot system 1 includes the robot 10, which is a multi-joint robot having seven or more joint mechanisms JE, and the robot controller 30 that controls the operation of the robot 10. The seven or more joint mechanisms JE are also referred to as L joint mechanisms JE (L is a natural number equal to or greater than seven). The L joint mechanisms JE are an example of "L joints."
[0232] In the control method for the robot 10, the robot controller 30 receives a selected drive mode from a plurality of drive modes associated with at least one of the plurality of joint mechanisms JE as the joint mechanism JE to be driven, executes a calculation process including an inverse kinematics calculation to calculate the displacement amount of the joint mechanism JE to be driven that is identified from the plurality of joint mechanisms JE based on the selected drive mode, calculates joint values related to the state of each of the plurality of joint mechanisms JE by executing the calculation process so that the robot 10 is in a desired state, and controls the operation of the robot 10 based on the joint values calculated for each of the plurality of joint mechanisms JE.
[0233] Also, in the teaching method for the robot 10, the robot controller 30 receives a selected drive mode from a plurality of drive modes associated with at least one joint mechanism JE of a plurality of joint mechanisms JE as the joint mechanism JE to be driven, executes a calculation process including an inverse kinematics calculation to calculate the displacement amount of the joint mechanism JE to be driven that is identified from the plurality of joint mechanisms JE based on the selected drive mode, calculates joint values related to the state of each of the plurality of joint mechanisms JE by executing the calculation process so that the robot 10 is in a desired state, and generates joint state information indicating the joint values calculated for each of the plurality of joint mechanisms JE.
[0234] The robot system 1 also includes a robot 10 having seven or more joint mechanisms JE, and having multiple drive modes in which at least one of the multiple joint mechanisms JE is associated as a joint mechanism JE to be driven, and a robot controller 30 including an operation control unit 33 that controls the operation of the robot 10, wherein the operation control unit 33 accepts a selected drive mode from the multiple drive modes and executes a calculation process including an inverse kinematics calculation that calculates the displacement amount of the joint mechanism JE to be driven that is identified based on the selected drive mode from the multiple joint mechanisms JE, and calculates joint values related to the state of each of the multiple joint mechanisms JE by executing the calculation process so that the robot 10 is in a target state, and controls the operation of the robot 10 based on the joint values calculated for each of the multiple joint mechanisms JE.
[0235] In this manner, in this embodiment, one drive mode is selected from the plurality of drive modes, and the joint mechanism JE to be driven is identified from the plurality of joint mechanisms JE based on the selected drive mode. That is, in this embodiment, by selecting a drive mode for the robot 10 from the plurality of drive modes, only the joint mechanism JE to be driven that corresponds to the selected drive mode among the plurality of joint mechanisms JE is driven, thereby controlling the operation of the robot 10. Therefore, in this embodiment, by appropriately selecting a drive mode for the robot 10 from the plurality of drive modes, it is possible to realize the respective operations of multiple types of robots with a single robot 10.
[0236] Furthermore, in this embodiment, in order to calculate joint values for each of the multiple joint mechanisms so that the robot 10 reaches a desired state, the displacement of a joint mechanism selected from the multiple joint mechanisms as a joint mechanism to be driven is calculated. Therefore, in this embodiment, when the number of joint mechanisms to be driven is small, the load (calculation amount, etc.) on the inverse kinematics calculation can be reduced compared to when the number of joint mechanisms to be driven is large. That is, in this embodiment, the load on the inverse kinematics calculation can be reduced by appropriately selecting a drive mode for the robot 10 from multiple drive modes. As a result, in this embodiment, it is possible to prevent a solution to the inverse kinematics calculation from not being calculated within a desired time.
[0237] Furthermore, in this embodiment, when the plurality of joint mechanisms includes a fixed joint mechanism other than a driven joint mechanism, the robot controller 30 (more specifically, the operation control unit 33) executes a fixation process that substantially maintains the joint values of the fixed joint mechanisms calculated by the calculation process. Thus, in this embodiment, the plurality of joint mechanisms other than the driven joint mechanism are considered to be fixed joint mechanisms whose states do not change, and the inverse kinematics calculation is performed using the driven joint mechanisms without displacing the fixed joint mechanisms. As a result, in this embodiment, the operation of the robot 10 can be controlled by driving only the driven joint mechanisms among the plurality of joint mechanisms. Furthermore, in this embodiment, the inverse kinematics calculation is performed using the driven joint mechanisms among the plurality of joint mechanisms, which prevents the solution of the inverse kinematics calculation from being calculated within a desired time.
[0238] Furthermore, in this embodiment, the robot controller 30 (more specifically, the operation control unit 33) performs the inverse kinematics calculation included in the calculation process using a Jacobian matrix J having multiple elements. The fixation process is a process of maintaining the joint values of the joint mechanisms JE to be fixed by setting the values of the elements of the Jacobian matrix J related to the joint mechanisms JE to be fixed to substantially zero, among the multiple elements of the Jacobian matrix J. As described above, in this embodiment, the joint values of the joint mechanisms JE to be fixed can be easily set to fixed values by setting the values of the elements of the Jacobian matrix J related to the joint mechanisms JE to substantially zero, among the multiple elements of the Jacobian matrix J. In other words, even if a joint mechanism JE to be fixed exists among the multiple joint mechanisms JE, the inverse kinematics calculation can be performed to calculate the joint values of each joint mechanism JE without changing the number of rows and columns of the Jacobian matrix J or without dividing the Jacobian matrix J into multiple matrices.
[0239] In this embodiment, the plurality of joint mechanisms JE includes at least one linear joint (joint mechanism JEp). As described above, in this embodiment, at least one joint mechanism JEp among the plurality of joint mechanisms JE is a linear joint, which makes it possible to widen the range of movement of the tip end part TP1 of the robot 10 while preventing the control of the robot 10 from becoming complicated.
[0240] In this embodiment, the robot controller 30 further includes a display control unit 34 that displays an operation screen OPS for selecting one of the plurality of drive modes on the display device 38. This allows the operator to easily select one of the plurality of drive modes.
[0241] In this embodiment, the robot 10 includes the body part BDP, the link LK1, the link LK2, the tip part TP1, and 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 perpendicular to the bottom surface BDPbt of the body part BDP that is equal to or smaller than a predetermined angle as a first rotation axis, and an axis Ax2 that connects the body part BDP and the link LK1 to each other and rotates the link LK1 around an axis Ax2 that forms an angle with a direction perpendicular to the bottom surface BDPbt of the body part BDP that is larger than a predetermined angle as a second rotation axis. a joint mechanism JEr2 that rotates the link LK1; a joint mechanism JEr3 that connects the link LK1 and the link LK2 to each other and rotates the link LK2 relative to the link LK1 around an axis Ax3 that forms an angle with the direction in which the link LK1 extends that is larger than a predetermined angle as a third rotation axis; a joint mechanism JEr4 that connects the link LK2 and the tip end portion TP1 to each other and rotates the tip end portion TP1 relative to the link LK2 around an axis Ax4 that forms an angle with the direction in which the link LK2 extends that is larger than a predetermined angle as a fourth rotation axis; The distal end portion TP1 includes a first portion TP11 connected to the link LK2, a second portion TP12 connected to the first portion TP11, and an axis A that connects the first portion TP11 and the second portion TP12 to each other and forms an angle with the fourth rotation axis that is greater than a predetermined angle. The joint mechanism JE includes a joint mechanism JEr5 that rotates the second part TP12 relative to the first part TP11 around axis Ax5 as a fifth rotation axis, and a joint mechanism JEr6 that rotates at least a part of the tip part TP1 around axis Ax6 that forms an angle with the fifth rotation axis that is greater than a predetermined angle, and each of the multiple joint mechanisms JE is one of 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.
[0242] In this manner, in this embodiment, the robot 10, which is a multi-joint robot including six rotary joints and two linear joints, can realize the movements of a variety of robots.
[0243] In this embodiment, the plurality of drive modes include a first drive mode in which joint mechanisms JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6 are the joint mechanisms JE to be driven, a second drive mode in which joint mechanisms JEp1 and JEp2 are the joint mechanisms JE to be driven, a third drive mode in which joint mechanisms JEr1, JEp1, and JEp2 are the joint mechanisms JE to be driven, a fourth drive mode in which joint mechanisms JEr2, JEr3, JEp1, and JEp2 are the joint mechanisms JE to be driven, and a fifth drive mode in which all of the plurality of joint mechanisms JE are the joint mechanisms JE to be driven. As a result, in this embodiment, a single robot 10 can perform the operations of multiple types of robots, such as a Cartesian robot, a horizontal articulated robot, and a vertical articulated robot.
[0244] [2. Modifications] The present invention is not limited to the above-described exemplary embodiments. Specific modifications are exemplified below. Two or more modifications selected from the following examples may be combined.
[0245] [First Modification] In the above-described embodiment, the joint mechanism JEr4 rotates the tip end portion TP1 relative to the link LK2 around the axis Ax4 that is perpendicular to the direction De2 in which the link LK2 extends. However, the present invention is not limited to this. For example, the joint mechanism JEr4 may rotate the tip end portion TP1 relative to the link LK2 around an axis that forms an angle with the direction De2 in which the link LK2 extends that is equal to or smaller than a predetermined angle.
[0246] 17 is an explanatory diagram for explaining an example of a tip portion TP1A according to the first modified example. Elements similar to those explained in FIGS. 1 to 16 are given the same reference numerals, and detailed explanations thereof will be omitted.
[0247] For example, the robot 10 according to this modification is similar to the robot 10 shown in Fig. 1 except that it has a link LK2A, a joint mechanism JEr4A, and a tip portion TP1A instead of the link LK2, joint mechanism JEr4, and tip portion TP1 shown in Fig. 1. The link LK2A is similar to the link LK2 except that the joint mechanism JEr4A is connected instead of the joint mechanism JEr4.
[0248] The joint mechanism JEr4A connects the link LK2A and the tip end portion TP1A to each other, and rotates the tip end portion TP1A relative to the link LK2A around an axis Ax4A parallel to the direction De2. The rotation direction Dr4 in FIG. 17 indicates the rotation direction of the tip end portion TP1A when rotating around the axis Ax4A. The axis Ax4A corresponds to an axis whose angle with the direction De2 in which the link LK2A extends is equal to or smaller than a predetermined angle.
[0249] The tip portion TP1A also has an end effector 20 attached to the end surface TP1sf, similar to the tip portion TP1 shown in FIG. The tip portion TP1A includes a first portion TP11A connected to the link LK2A, a second portion TP12A connected to the first portion TP11A, a joint mechanism JEr5A, and a joint mechanism JEr6. The first portion TP11A is connected to the link LK2A via, for example, a joint mechanism JEr4A. Therefore, the first portion TP11A rotates relative to the link LK2A around the axis Ax4A.
[0250] The joint mechanism JEr5A connects the first part TP11A and the second part TP12A to each other, 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.
[0251] The joint mechanism JEr6 is similar to the joint mechanism JEr6 shown in FIG. 1. For example, the joint mechanism JEr6 rotates at least a portion (e.g., end surface TP1sf) of the tip portion TP1A around an axis Ax6 perpendicular to the axis Ax5 as a rotation axis. In the example shown in FIG. 17, similar to the joint mechanism JEr6 shown in FIG. 1, 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 TP12A, the end surface of the second part TP12A may be the end surface TP1sf.
[0252] As described above, in this modified example, the joint mechanism JEr4A rotates the tip end portion TP1A relative to the link LK2A around the axis Ax4A, which forms an angle with the direction De2 that is equal to or smaller than a predetermined angle. The tip end portion TP1A includes a first portion TP11 connected to the link LK2A, a second portion TP12 connected to the first portion TP11, a joint mechanism JEr5, and a joint mechanism JEr6. The joint mechanism JEr5 connects the first portion TP11 and the second portion TP12 to each other and rotates the second portion TP12 relative to the first portion TP11 around the axis Ax5, which forms an angle with the axis Ax4A that is larger than a predetermined angle. The joint mechanism JEr6 rotates a portion of the tip end portion TP1 to which the end effector 20 is attached (e.g., the end surface TP1sf) around the axis Ax6, which forms an angle with the axis Ax5 that is larger than a predetermined angle.
[0253] In this modification, the same effects as those of the above-described embodiment can be obtained. For example, in this modification, the tip portion TP1 also includes the joint mechanisms JEr5 and JEr6, and therefore the joint mechanisms JEr4, JEr5, JEr6, etc. can cause the robot 10 to perform various tasks around the body portion BDP.
[0254] [Second Modification] In the above-described embodiment and modification, the motor MOr3 that drives the joint mechanism JEr3 moves integrally with the joint mechanism JEr3, but the present invention is not limited to this. For example, the motor MOr3 may be fixed to a predetermined location on the link LK1 so that it can drive the joint mechanism JEr3 even if the relative position of the joint mechanism JEr3 with respect to the link LK1 changes. In this modification, the same effects as those of the above-described embodiment and modification can be obtained.
[0255] [Third Modification] In the above-described embodiment and modification, the robot 10 is illustrated as a vertical six-axis articulated robot to which two joint mechanisms JEp1 and JEp2 have been added. However, the present invention is not limited to such a configuration. For example, the robot 10 may be a seven-axis or more articulated robot to which two joint mechanisms JEp1 and JEp2 have been added. Specifically, one or more links LK other than the links LK1 and LK2 may be disposed between the body part BDP and the joint mechanism JEr2. Alternatively, one or more links LK other than the links LK1 and LK2 may be disposed between the joint mechanism JEr4 and the tip part TP1. In other words, the robot 10 may have three or more links LK connecting the body part BDP and the tip part TP1. In this case, the three or more links LK of the robot 10 correspond to a plurality of links LK including the links LK1 and LK2.
[0256] Alternatively, the robot 10 may be configured by adding one or both of two joint mechanisms JEp1 and JEp2 to a four-axis or more articulated robot.
[0257] As described above, in this modification, the same effects as those of the above-described embodiment and modification can be obtained.
[0258] [Fourth Modification] In the above-described embodiment and modification, a case where a joint mechanism JE to be driven is selected by selecting a drive mode has been illustrated, but the present invention is not limited to such an example. For example, a joint mechanism JE to be driven may be selected from a plurality of joint mechanisms JE without setting a plurality of drive modes for the robot 10 in which at least one of the plurality of joint mechanisms JE is associated as a joint mechanism JE to be driven. In this case, for example, the operation screen OPS shown in FIG. 5 may include a plurality of buttons BT in one-to-one correspondence with the plurality of joint mechanisms JE, instead of the buttons BTs. The robot controller 30 may select, as a joint mechanism JE to be driven, a joint mechanism JE corresponding to a button BT pressed among the plurality of buttons BT up until button BTd is pressed.
[0259] The following aspects can be understood from the description of this modified example.
[0260] A control method for a multi-joint robot having L joints (L is a natural number equal to or greater than 7), comprising the steps of: identifying at least one joint from among the L joints as a joint to be driven; executing a calculation process including an inverse kinematics calculation that calculates the amount of displacement of the identified joint to be driven among the L joints; calculating joint values related to the state of each of the L joints so that the multi-joint robot is in a target state; and controlling the operation of the multi-joint robot based on the calculated joint values for each of the L joints.
[0261] As described above, this modification can also achieve the same effects as the above-described embodiment and modification. Furthermore, this modification does not require the drive mode to be selected to be stored in advance, and the variety of selectable joint mechanisms JE can be significantly increased.
[0262] 3. Application Examples The robot system 1 including the robot 10 described in the above-described embodiment and modified examples may be used in a manufacturing method for an article that includes assembling or removing a part.
[0263] [4. Others] The distinction between the "turning" briefly explained in the above embodiment and other rotations will be explained using several examples.
[0264] FIG. 18 is an explanatory diagram illustrating an example of a rotation. In FIG. 18, the connection of two links LKi and LKj, whose longitudinal directions can be grasped, is used as an example to explain the distinction between a rotation and other rotations. The extension direction Dei in FIG. 18 indicates the direction in which the link LKi extends, and the extension direction Dej indicates the direction in which the link LKj extends. Furthermore, the joint mechanism JEri in FIG. 18 connects the link LKi and the link LKj to each other and rotates the link LKj relative to the link LKi around the axis Axi as the rotation axis.
[0265] In the example shown in FIG. 18 , when the angle β formed between the extension direction Dei (specific direction) of the link LKi and the axis Axi is greater than a predetermined angle, the rotation about the axis Axi is considered to be a "turn." That is, when the angle β formed 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 is considered to be a rotation other than a turn (a rotation other than a turn). The "rotation" shown in FIG. 18 indicates a rotation other than a turn. Furthermore, the predetermined angle is not particularly limited, but FIG. 18 assumes that the predetermined angle is 45°. The angle β formed between the extension direction Dei and the axis Axi is an angle between 0° and 90°, among multiple angles that can be understood as the angle of the axis Axi with respect to the extension direction Dei (for example, four angles for two intersecting straight lines, or 0° and 180° for two parallel straight lines).
[0266] In the first pattern, the angle β between the extension direction Dei of the link LKi and the axis Axi is 90°, which is larger than the predetermined angle (45°). Therefore, in the first pattern, the rotation of the link LKj around the axis Axi is a turn. 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 (turns) 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.
[0267] In the second pattern, 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 turning. 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 with respect to the extension direction Dei of the link LKi is 0°. Note that in the second pattern, even if 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 is maintained at 0° and is always constant.
[0268] In the third pattern, 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 turning. 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°. Note that in the third pattern, even if 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 is maintained at 90° and is always constant.
[0269] In the fourth pattern, the angle β between the extension direction Dei of the link LKi and the axis Axi is 10°, which is less than the predetermined angle (45°). Therefore, in the fourth pattern, the rotation of the link LKj around the axis Axi is a rotation other than a turn. Also, in the fourth pattern, the extension direction Dej of the link LKj is parallel to the axis Axi, and the angle of the extension direction Dej of the link LKj with respect to the extension direction Dei of the link LKi is 10°. Note that in the fourth pattern, even if 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 is maintained at 10° and is always constant.
[0270] In the fifth pattern, the angle β between the extension direction Dei of the link LKi and the axis Axi is 70°, which is larger than the predetermined angle (45°). Therefore, in the fifth pattern, the rotation of the link LKj around the axis Axi is a turn. 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 (turns) 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.
[0271] In the sixth pattern, the angle β between the extension direction Dei of the link LKi and the axis Axi is 10°, which is less than the predetermined 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, the angle of the extension direction Dej of the link LKj with respect to the extension direction Dei of the link LKi changes.
[0272] In the seventh pattern, the angle β between the extension direction Dei of the link LKi and the axis Axi is 70°, which is larger than the predetermined angle (45°). Therefore, in the seventh pattern, the rotation of the link LKj around the axis Axi is a turn. Also, in the seventh pattern, the extension direction Dej of the link LKj is parallel to the axis Axi, and the angle of the extension direction Dej of the link LKj with respect to the extension direction Dei of the link LKi is 70°. Note that in the seventh pattern, even 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 is maintained at 70° and is always constant.
[0273] As described above, in the above-described embodiment and modified example, among the rotations of the link LKj relative to the link LKi, a rotation about an axis Axi that forms an angle with the extension direction Dei of the link LKi greater than a predetermined angle is also referred to as a "turn." However, the definition of "turn" is not limited to the above example. For example, if the above-described definition of a "turn" as a rotation about an axis Axi that forms an angle with the extension direction Dei of the link LKi greater than a predetermined angle is used as the first definition, the following second or third definition may be adopted instead of the first definition.
[0274] In the second definition, when the angle of the extension direction Dej of the link LKj with respect to the extension direction Dei of the link LKi changes due to the rotation of the link LKj with respect to the extension direction Dei of the link LKi, the rotation corresponds to a turn. Therefore, in the second definition, when the angle of the extension direction Dej of the link LKj with respect to the extension direction Dei of the link LKi remains constant even when the link LKj rotates, the rotation corresponds to a rotation other than a turn. For example, in the second definition, the first, fifth, and sixth patterns shown in FIG. 18 correspond to turns, and the second, third, fourth, and seventh patterns correspond to rotations other than turns.
[0275] In the third definition, when the angle formed between the extension direction Dej of the rotating 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, when the angle formed 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. For example, in the third definition, the first, third, fifth, and sixth patterns shown in FIG. 18 correspond to turns, and the second, fourth, and seventh patterns correspond to rotation other than a turn.
[0276] Furthermore, apart from the above-described first, second, and third definitions, the relative relationship between two rotations performed 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, when they are parallel), the two rotations may be considered to be the same type of rotation. When the angle between the two rotation axes is greater than a predetermined angle (typically, when they are perpendicular), the two rotations may be considered to be different types of rotation. Note that the same type of rotation means that both rotations are rotations or both rotations are other than rotations, and different type of rotation means that one of the two rotations is a rotation and the other is other than rotation. When a definition of the relative relationship between two rotations is used, the rotation that serves as the starting point for the relative relationship may be determined based on, for example, any of the above-described first, second, and third definitions. The first pattern shown in Figure 18 corresponds to a rotation in all of the first, second, and third definitions, and the second pattern corresponds to a rotation other than a rotation in all of the first, second, and third definitions. Therefore, it is preferable to use the first pattern or the second pattern as the rotation that serves as the starting point for the relative relationship.
[0277] Furthermore, a definition may be used that combines two or more of the above-mentioned first, second, and third definitions. In this case, for example, only a rotation that corresponds to a rotation in all of the two or more definitions to be combined may be considered a rotation, or a rotation that corresponds to a rotation in at least one of the two or more definitions to be combined may be considered a rotation.
[0278] 1...Robot system, 10...Robot, 20...End effector, 30...Robot controller, 32...Processing device, 33...Movement control unit, 34...Display control unit, 35...Memory, 36...Communication device, 37...Operation device, 38...Display device, 39...Driver circuit, Ax1, Ax2, Ax3, Ax4, Ax4A, Ax5, Ax6, Axi...Axis, BDP...Body part, BDPbt...Bottom surface, BDPba...Base part, GD...Article, JEr1, JEr2, JEr3, JEr4, JEr4A, JEr5, JEr6, JEri, JEp1, JEp2...Joint mechanism, JEp11, JEp21...Screw part, JEp12, JEp2 2...nut, JEp13, JEp23...connection portion, JEp13a, JEp23a...slider portion, JEp13b, JEp23b...support portion, JEp14, JEp24...rail, JEp14a, JEp14b, JEp24a, JEp24b...rod-shaped member, JEr11, JEr21, JEr41, JEr 51, JEr61...rotating part, JEr12, JEr22, JEr42, JEr52, JEr62...housing, LK1, LK2, LK2A, LKi, LKj...links, MOr1, MOr2, MOr3, MOr4, MOr5, MOr6, MOp1, MOp2...motors, RK...shelf, TY1, TY2...tray.
Claims
1. A control method for a multi-joint robot having L joints (L is a natural number equal to or greater than 7), comprising the steps of: a computer device receives a selected drive mode from a plurality of drive modes in which at least one of the L joints is associated as a joint to be driven; the computer device executes a calculation process including an inverse kinematics calculation to calculate the amount of displacement of the joint to be driven that is identified based on the selected drive mode from among the L joints; by executing the calculation process, the computer device calculates joint values related to the state of each of the L joints so that the multi-joint robot is in a target state; and the computer device controls the operation of the multi-joint robot based on the calculated joint values for each of the L joints.
2. The method for controlling an articulated robot according to claim 1, characterized in that, when the L joints include a fixed joint other than the driven joint, the computer device executes a fixing process that substantially maintains the joint values of the fixed joints calculated by the calculation process.
3. The method for controlling a multi-joint robot according to claim 2, characterized in that the inverse kinematics calculation included in the calculation process is performed by the computer device using a Jacobian matrix having a plurality of elements, and the fixing process is a process of maintaining the joint value of the joint to be fixed by setting the value of an element related to the joint to be fixed, among the plurality of elements of the Jacobian matrix, to substantially 0.
4. The method for controlling a multi-joint robot according to claim 1, wherein the L joints include at least one linear joint.
5. A teaching method for a multi-joint robot having L joints (L is a natural number equal to or greater than 7), comprising the steps of: a computer device receives a selected drive mode from a plurality of drive modes in which at least one of the L joints is associated as a joint to be driven; the computer device executes a calculation process including an inverse kinematics calculation to calculate the amount of displacement of the joint to be driven that is identified based on the selected drive mode from among the L joints; the computer device calculates joint values relating to the state of each of the L joints by executing the calculation process so that the multi-joint robot is in a target state; and the computer device generates joint state information indicating the calculated joint values for each of the L joints.
6. The teaching method for a multi-joint robot as described in claim 5, characterized in that, when the L joints include a fixed joint other than the driven joint, the computer device executes a fixing process that substantially maintains the joint values of the fixed joints calculated by the calculation process.
7. The teaching method for a multi-joint robot as described in claim 6, characterized in that the inverse kinematics calculation included in the calculation process is executed by the computer device using a Jacobian matrix having a plurality of elements, and the fixing process is a process of maintaining the joint value of the joint to be fixed by setting the value of an element related to the joint to be fixed, among the plurality of elements of the Jacobian matrix, to substantially 0.
8. The teaching method for a multi-joint robot according to claim 5, wherein the L joints include at least one linear joint.
9. A robot system comprising: a multi-joint robot having L joints (L is a natural number equal to or greater than 7) and a plurality of drive modes in which at least one of the L joints corresponds to a joint to be driven; and a control device including an operation control unit that controls the operation of the multi-joint robot, wherein the operation control unit receives a drive mode selected from the plurality of drive modes, executes a calculation process including an inverse kinematics calculation that calculates the amount of displacement of the joint to be driven that is identified based on the selected drive mode among the L joints, calculates joint values related to the state of each of the L joints by executing the calculation process so that the multi-joint robot is in a target state, and controls the operation of the multi-joint robot based on the calculated joint values for each of the L joints.
10. A robot system comprising: a multi-joint robot having L joints (L is a natural number equal to or greater than 7) and a plurality of drive modes in which at least one of the L joints corresponds to a joint to be driven; and a control device including an operation control unit that controls the operation of the multi-joint robot, and a display control unit that displays on a display device a selection screen for selecting one of the plurality of drive modes, wherein the operation control unit drives the joint to be driven that is specified based on the drive mode selected via the selection screen, and controls the operation of the multi-joint robot so that the multi-joint robot is in a desired state.
11. The articulated robot comprises: a base, a first link, a second link, a tip, a first drive mechanism that rotates at least a part of the base around a first rotation axis that forms an angle with a direction perpendicular to a bottom surface of the base that is equal to or smaller than a predetermined angle; a second drive mechanism that connects the base and the first link to each other and rotates the first link around a second rotation axis that forms an angle with a direction perpendicular to the bottom surface of the base that is greater than the predetermined angle; a third drive mechanism that connects the first link and the second link to each other and rotates the second link relative to the first link around a third rotation axis that forms an angle with a direction in which the first link extends that is greater than the predetermined angle; and a fourth drive mechanism that connects the second link and the tip to each other and rotates the tip relative to the second link around a fourth rotation axis that forms an angle with the direction in which the second link extends that is greater than the predetermined angle.
10. The robot system according to claim 9, comprising: a first moving mechanism that moves the third driving mechanism relative to the first link along the extension direction of the first link; and a second moving mechanism that moves the second link relative to the third driving mechanism along the extension direction of the second link, wherein the tip portion includes: a first portion connected to the second link; a second portion connected to the first portion; a fifth driving mechanism that connects the first portion and the second portion to each other and rotates the second portion relative to the first portion about a fifth rotation axis that forms an angle with the fourth rotation axis greater than the predetermined angle; and a sixth driving mechanism that rotates at least a portion of the tip portion about a sixth rotation axis that forms an angle with the fifth rotation axis greater than the predetermined angle, wherein each of the L joints is any one of the first driving mechanism, the second driving mechanism, the third driving mechanism, the fourth driving mechanism, the fifth driving mechanism, the sixth driving mechanism, the first moving mechanism, and the second moving mechanism.
12. The robot system described in claim 11, characterized in that the multiple drive modes include: a first drive mode in which the first drive mechanism, the second drive mechanism, the third drive mechanism, the fourth drive mechanism, the fifth drive mechanism and the sixth drive mechanism are joints of the driven object; a second drive mode in which the first moving mechanism and the second moving mechanism are joints of the driven object; a third drive mode in which the first drive mechanism, the first moving mechanism and the second moving mechanism are joints of the driven object; a fourth drive mode in which the second drive mechanism, the third drive mechanism, the first moving mechanism and the second moving mechanism are joints of the driven object; and a fifth drive mode in which all of the L joints are joints of the driven object.
Citation Information
Patent Citations
Control system for redundancy manipulator
JP1994143172A
Method and apparatus for teaching track of robot arm
JP2009050949A
Robot control method and robot control device
JP2013223896A
Robot, robot system, control method, and program
WO2023037550A1
Cited By
Waist assembly and humanoid robot
CN119820548A
