Control method for multi-joint robot, teaching method for multi-joint robot, and robot system
The method for controlling a multi-joint robot with inverse kinematics calculations allows a single robot to mimic the operations of multiple types, addressing the need for versatile task performance in industrial settings.
Patent Information
- Application Number
- JP2023100645
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-06-20
- Publication Date
- 2025-01-08
AI Technical Summary
There is a demand for industrial robots capable of performing a variety of tasks traditionally handled by multiple types of robots with a single robot, as the uses of robots have expanded and require versatility in operations.
A method for controlling a multi-joint robot with seven or more joints, involving setting drive modes where joints are associated, selecting a drive mode, and executing inverse kinematics calculations to achieve desired states through joint value calculations and motion control, enabling the robot to mimic the operations of multiple types of robots.
Enables a single robot to perform the operations of multiple types of robots, enhancing versatility and efficiency in task performance.
Smart Images

Figure 2025001190000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a control method for an articulated robot, a teaching method for an articulated robot, and a robot system. [Background technology]
[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 humans (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. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2013-188796 A [Patent Document 2] JP 2016-215371 A [Patent Document 3] Japanese Patent Application Publication No. 62-74594 Summary of the Invention [Problem to be solved by the invention]
[0004] In recent years, the applications of robots have expanded, making it necessary for one 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 one robot. [Means for solving the problem]
[0005] A control method for a multi-joint robot according to a preferred embodiment of the present invention is a control method for a multi-joint robot having seven or more joints, wherein a plurality of drive modes are set for the multi-joint robot, in which at least one of the plurality of joints corresponds to a joint to be driven, and one drive mode from the plurality of drive modes is selected, and a calculation process is executed including an inverse kinematics calculation that calculates the displacement amount of the joint to be driven that is identified based on the one selected drive mode from the plurality of joints, thereby calculating joint values related to the state of each of the plurality of joints so that the multi-joint robot is in a target state, and controlling the operation of the multi-joint robot based on the joint values of the plurality of joints calculated in the calculation process.
[0006] A teaching method for a multi-joint robot according to a preferred embodiment of the present invention is a teaching method for a multi-joint robot having seven or more joints, wherein a plurality of drive modes are set for the multi-joint robot, in which at least one of the plurality of joints corresponds to a joint to be driven, and one of the plurality of drive modes is selected, and a calculation process is executed including an inverse kinematics calculation to calculate a displacement amount of the joint to be driven that is identified based on the one selected drive mode among the plurality of joints, thereby calculating joint values related to the state of each of the plurality of joints so that the multi-joint robot is in a target state, and generating joint state information indicating the joint values of the plurality of joints calculated in the calculation process.
[0007] A robot system according to a preferred embodiment of the present invention comprises a multi-joint robot having seven or more joints and having a plurality of drive modes set in which at least one of the plurality of joints is associated as 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 selects one of the plurality of drive modes and executes a calculation process including an inverse kinematics calculation that calculates the displacement amount of the joint to be driven, which is identified among the plurality of joints based on the selected one drive mode, thereby calculating joint values related to the state of each of the plurality of joints so that the multi-joint robot is in a target state, and controls the operation of the multi-joint robot based on the joint values of the plurality of joints calculated in the calculation process.
[0008] Another preferred embodiment of the robot system of the present invention comprises a multi-joint robot having seven or more joints, 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 a plurality of drive modes in which at least one of the plurality of joints is associated as a joint to be driven, and the operation control unit drives the joint to be driven, which is identified based on the one 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. Effect of the Invention
[0009] According to the present invention, it is possible to provide an industrial robot capable of executing the respective operations of a plurality of types of robots. [Brief description of the drawings]
[0010] [Figure 1] FIG. 1 is an explanatory diagram for explaining an overview of a robot system according to an embodiment. [Diagram 2] FIG. 2 is an explanatory diagram for explaining an example of a joint mechanism. [Diagram 3]2 is a diagram illustrating an example of a hardware configuration of a robot controller illustrated in FIG. 1. [Figure 4] FIG. 2 is an explanatory diagram for explaining an example of a drive mode of the robot. [Diagram 5] FIG. 11 is an explanatory diagram for explaining an example of an operation screen. [Figure 6] 2 is a flowchart showing an example of the operation of the robot controller shown in FIG. 1. [Figure 7] 7 is a flowchart showing an example of a joint value update process shown in FIG. 6. [Figure 8] FIG. 2 is an explanatory diagram for explaining an example of an operation of the robot system. [Figure 9] 9 is an explanatory diagram for explaining a sequel to the operation of the robot system shown in FIG. 8. FIG. [Figure 10] FIG. 11 is an explanatory diagram for explaining another example of the operation of the robot system. [Figure 11] 11 is an explanatory diagram for explaining a sequel to the operation of the robot system shown in FIG. 10. FIG. [Figure 12] 12 is an explanatory diagram for explaining a sequel to the operation of the robot system shown in FIG. 11. FIG. [Figure 13] 13 is an explanatory diagram for explaining a sequel to the operation of the robot system shown in FIG. 12. FIG. [Figure 14] FIG. 11 is an explanatory diagram for explaining another example of the operation of the robot system. [Figure 15] 15 is an explanatory diagram for explaining a sequel to the operation of the robot system shown in FIG. 14. FIG. [Figure 16] 16 is an explanatory diagram for explaining a sequel to the operation of the robot system shown in FIG. 15. FIG. [Figure 17] FIG. 11 is an explanatory view for explaining an example of a tip portion according to a first modified example. [Figure 18] FIG. 11 is an explanatory diagram for explaining an example of turning. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] Hereinafter, the embodiments of the present invention will be described with reference to the drawings. In each drawing, the dimensions and scale of each part are appropriately different from the actual ones. In addition, the embodiments described below are preferred examples of the present invention, and therefore various technically preferable limitations are attached, but 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 overview 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 a 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 a 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 a "multi-joint robot," and the robot controller 30 is an example of a "control device."
[0016] The robot 10 and the robot controller 30 are connected to each other so as to be able to communicate with each other, for example, by a wired connection. 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 capable of communicating with the end effector 20 attached to the robot 10. The robot controller 30 may be any information processing device capable of communicating with other devices. The 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 in which two joint mechanisms JEp (JEp1 and JEp2) corresponding to linear joints are added to a six-axis articulated robot having six joint mechanisms JEr (JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6) corresponding to rotary joints. For example, the robot 10 has 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 are also 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, in order to make the drawing easier to see, the motors MO that drive the plurality of joint mechanisms JE, the reducers and encoders provided in 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.
[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. Two members being directly connected includes a state where two members are in contact with each other, and a state that can be regarded as equivalent to a state where two members are in contact with each other. A state that can be regarded as equivalent to a state where two members are in contact with each other is, for example, a state where one of the two members is fixed to the other by an adhesive or the like. Also, two members being indirectly connected means that another member is disposed between the two members.
[0020] Joint mechanism JEr1 is an example of a "first driving mechanism," and joint mechanism JEr2 is an example of a "second driving mechanism." Joint mechanism JEr3 is an example of a "third driving mechanism," and joint mechanism JEr4 is an example of a "fourth driving mechanism." Joint mechanism JEr5 is an example of a "fifth driving mechanism," and joint mechanism JEr6 is an example of a "sixth driving 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 fixed to a predetermined location such as a floor, and a joint mechanism JEr1 connected to the joint mechanism JEr2. The joint mechanism JEr1 rotates a part of the body part BDP around an axis Ax1 perpendicular to the bottom surface BDPbt of the body part BDP as a rotation axis. For example, the joint mechanism JEr1 rotates an outer wall including a part of the joint mechanism JEr1 connected to the joint mechanism JEr2, relative to the base part BDPba, around the axis Ax1 as a rotation axis. That is, the joint mechanism JEr1 rotates the joint mechanism JEr2 relative to the body part BDP, around the axis Ax1 as a rotation axis. The axis Ax1 is an example of a "first rotation axis."
[0022] Here, "vertical" includes not only strict vertical but also substantial vertical (e.g., vertical within a margin of error). Similarly, "parallel" described below includes not only strict parallel but also substantial 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 of the body part BDP rotates around the axis Ax1 as a rotation axis.
[0023] The joint mechanism JEr2 connects the body part BDP and the link LK1, and rotates the link LK1 relative to the body part BDP around an axis Ax2 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 a direction De1 along which the link LK1 extends.
[0025] The opening Hlk1 is formed, for example, in a surface of the link LK1 that includes a portion facing the link LK2. A part of the joint mechanism JEr3 and the joint mechanism JEp1 are provided inside the link LK1. For example, a part of the joint mechanism JEr3 is located inside the link LK1, and the other part of the joint mechanism JEr3 protrudes from the opening Hlk1 to the outside of the link LK1. Note that the part of the joint mechanism JEr3 protruding outside the link LK1 or a part of the part protruding outside the link LK1 passes through an opening Hlk2 of the link LK2 described later and is located inside the link LK2.
[0026] The link LK1 rotates relative to the body part BDP about an axis Ax1 as a rotation axis by the joint mechanism JEr1, and rotates relative to the body part BDP about an axis Ax2 as a rotation axis by the joint mechanism JEr2.
[0027] The joint mechanism JEr3 connects the link LK1 and the link LK2, and rotates the link LK2 relative to the link LK1 about an axis Ax3 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. The link LK2 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 part of the joint mechanism JEr3 and the joint mechanism JEp2 are provided inside the link LK2. For example, a part of the joint mechanism JEr3 is located inside the link LK2, and the other part of the joint mechanism JEr3 protrudes from the opening Hlk2 to the outside of the link LK2.
[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. That is, 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 be regarded as a 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 movable movement area ARmv2 of the joint mechanism JEr3.
[0034] The joint mechanism JEr4 connects the link LK2 and the tip TP1, and rotates the tip 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 TP1 when the tip TP1 rotates around the axis Ax4. The axis Ax4 is an example of a "fourth rotation axis."
[0035] For example, an end effector 20 that grips an article is attached to the tip part TP1. For example, the end effector 20 is attached to an end face TP1sf of the tip part TP1. The tip part TP1 includes a first part TP11 connected to the link LK2, a second part TP12 connected to the first part TP11, a joint mechanism JEr5, and a joint mechanism JEr6. The first part TP11 is connected to the link LK2 via, for example, a joint mechanism JEr4. Therefore, the first part TP11 rotates relative to the link LK2 around the axis Ax4 as a rotation axis.
[0036] The joint mechanism JEr5 connects the first part TP11 and the second part TP12, and rotates the second part TP12 relative to the first part TP11 around 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 the "fifth rotation axis."
[0037] The joint mechanism JEr6 rotates at least a part of the tip part 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 part TP1 around the axis Ax6. That is, the joint mechanism JEr6 rotates a part (end face TP1sf) of the tip part TP1 to which the end effector 20 is attached 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 gripping an object. As the end effector 20, an appropriate part (e.g., a robot hand, a robot finger, etc.) can be applied depending on the work purpose of the robot 10. That is, an end effector 20 suitable for various works is attached to the tip portion TP1.
[0040] In this embodiment, a rotation about an axis whose angle with a specific direction is greater than a predetermined angle is sometimes referred to as a "turn" to distinguish it from a rotation about an axis whose angle with a specific direction is equal to or smaller than the predetermined angle. The predetermined angle may be, for example, 45°. Note that the predetermined angle is not limited to 45°.
[0041] For example, in the 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 smaller than a predetermined angle, and the axis Ax2 corresponds to an axis whose angle with the direction Dv1 is greater than a predetermined angle. Therefore, the 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 be the specific direction.
[0042] In addition, in the rotation about the axis Ax3, the direction De1 in which the link LK1 extends corresponds to a specific direction, and in the rotation about the axis Ax4, the direction De2 in which the link LK2 extends corresponds to a specific direction. In this case, the axis Ax3 corresponds to an 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 an 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 and the rotation of the first part TP11 about the axis Ax4 correspond to turning.
[0043] In addition, in the rotation about the axis Ax5, the direction De11 corresponds to a specific direction, and in the rotation about the axis Ax6, the direction De12 corresponds to a specific direction. The direction De11 is a direction from an end of the first part TP11 opposite to a specific end to which the joint mechanism JEr5 is connected toward the specific end. The direction De11 may be regarded as a direction in which the first part TP11 extends. The direction De12 is a direction from an end of the second part TP12 opposite to a specific end (end including the end face TP1sf) to which the joint mechanism JEr6 is connected toward the specific end. The direction De12 may be regarded as a 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. 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 a predetermined angle corresponds to an axis whose angle with the axis Ax4 is larger than a predetermined angle, and the axis Ax6 whose angle with the direction De12 is equal to or smaller than a predetermined angle corresponds to an axis whose angle with the axis Ax5 is larger than a predetermined angle.
[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 each of the axes Ax1, Ax2, Ax3, Ax4, Ax5, and Ax6 as a rotation axis, thereby enabling the robot 10 to perform the same movements as a human being.
[0046] For example, the link LK1 between the joint mechanism JEr2 and the joint mechanism JEr3 corresponds to the upper arm, and the link LK2 between the joint mechanism JEr3 and the joint mechanism JEr4 corresponds to the forearm. The robot 10 can perform an action simulating the twisting of a human waist by the joint mechanism JEr1, and can perform an action simulating the rotation of a shoulder by the joint mechanism JEr2. The robot 10 can perform an action simulating the rotation of an elbow by the joint mechanism JEr3, and can perform an action simulating the rotation of a wrist by the joint mechanism JEr4. The robot 10 can perform an action simulating the twisting of a wrist by the joint mechanism JEr5, and can perform an action simulating the twisting of a fingertip by the joint mechanism JEr6.
[0047] Furthermore, in this embodiment, the joint mechanism JEp1 provided in the link LK1 can move the link LK2 relative to the link LK1 along the direction De1 in which the link LK1 extends. Also, in this embodiment, the joint mechanism JEp2 provided in the link LK2 can move the link LK2 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 can easily move the tip part TP1 of the robot 10 to the periphery of the body part BDP. Also, in this embodiment, the joint mechanisms JEp1 and JEp2 can widen the area that the tip part TP1 (more specifically, the end face TP1sf) can reach, and therefore the area that the end effector 20 attached to the robot 10 can reach can be widened.
[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. Although FIG. 1 assumes a case where the robot 10 is fixed to a predetermined location such as a floor, the robot 10 itself may be movable without being fixed to a predetermined location. The base part BDPba of the body part BDP may be fixed to a predetermined location such as a floor via a joint mechanism JEr1. In this case, the body part BDP may be defined without including the joint mechanism JEr1. In a configuration in which the base part BDPba is fixed to a predetermined location via the joint mechanism JEr1, the joint mechanism JEr1 may rotate the base part BDPba around the axis Ax1 as a rotation axis. In a configuration in which the base part BDPba is fixed to a predetermined location via the joint mechanism JEr1, the base part 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 inside the link LK1 at the end LK1ed1, which is closer to the body part BDP, of the two ends LK1ed (LK1ed1 and LK1ed2) of the link LK1. Note that the end LK1ed2 is the end LK1ed farthest from the body part BDP, of the two ends LK1ed of the link LK1.
[0052] The joint mechanism JEp1 includes, for example, a screw portion JEp11 extending along a 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 a nut JEp12. Then, the threaded portion JEp11 rotates around the central axis along the direction De1 as the rotation axis of the motor MOp1.
[0054] The connection part JEp13 includes, for example, a slider part JEp13a connected to the rail JEp14 so as to be movable along the direction De1, and a support part JEp13b supporting the nut JEp12 and the motor MOr3. For example, the nut JEp12 is fixed to the support part JEp13b so as not to rotate together with the screw part JEp11. In addition, the motor MOr3 is fixed to the support part JEp13b so as not to rotate itself.
[0055] It is not necessary to strictly distinguish between the slider portion JEp13a and the support portion JEp13b. For example, the motor MOr3 may be fixed to the slider portion JEp13a. The nut JEp12 may be fixed to the motor MOr3 without the support portion JEp13b. That is, 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 part JEp13a are not particularly limited as long as the rod-shaped members JEp14a and JEp14b can movably support the slider part JEp13a. In other words, the shape of the rail JEp14 is not particularly limited as long as the rod-shaped members JEp14a and JEp14b can movably support the connection part JEp13. For example, the rail JEp14 is disposed between the opening Hlk1 and the screw part JEp11 in the direction along the axis Ax2, and is attached to the inside of the link LK1. Note that the rail JEp14 does not have to be disposed between the opening Hlk1 and the screw part JEp11 in the direction along the axis Ax2, as long as the joint mechanism JEr3 can move along the direction De1 with a part of the joint mechanism JEr3 protruding from the opening Hlk1.
[0057] The nut JEp12 is fixed to the connection part JEp13 so as not to rotate together with the threaded part JEp11, and therefore moves relative to the threaded part JEp11 along the direction De1 as the threaded part JEp11 rotates. As described above, the nut JEp12 is fixed to the connection part JEp13, etc. so that the relative position 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 is 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 substantial length of the link LK1 (the length under control) to be set to half or less of the length of the link LK1 or more than half of the length of the link LK1. The substantial length of the link LK1 is, for example, the length along the direction De1 from the end LK1ed1 (for example, the intersection of the link LK1 and the axis Ax2) to the joint mechanism JEr3 (more precisely, the axis Ax3).
[0058] Here, the moving direction of the nut JEp12, i.e., the moving direction of the joint mechanism JEr3, is switched between the direction De1 and the opposite direction to the 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 the direction De1, and when the motor MOp1 rotates in a second rotation direction that is the opposite rotation to the first rotation direction, the nut JEp12 moves in the opposite direction to the 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, which is the farthest from the tip TP1, of the two ends LK2ed (LK2ed1 and LK2ed2) of the link LK2. Note that the end LK2ed2 is the end LK2ed closest to the tip TP1, of the two ends LK2ed of the link LK2.
[0060] The joint mechanism JEp2 includes, for example, a screw 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, the threaded portion JEp21 rotates around the central axis along the direction De2 as the rotation axis of the motor MOp2.
[0062] The connection part JEp23 includes, for example, a slider part JEp23a connected to the rail JEp24 so as to be relatively movable along the direction De2, and a support part JEp23b supporting the nut JEp22 and the joint mechanism JEr3. For example, the nut JEp22 is fixed to the support part JEp23b so as not to rotate together with the screw part JEp21. In addition, the support part JEp23b is connected to the joint mechanism JEr3 so as to rotate about an axis Ax3 (not shown in FIG. 2) as the rotation axis in accordance with the rotation of the motor MOr3. That is, the joint mechanism JEr3 rotates the support part JEp23b about the axis Ax3 as the rotation axis in accordance with the rotation of the motor MOr3.
[0063] It is not necessary to strictly distinguish between the slider portion JEp23a and the support portion JEp23b. For example, the joint mechanism JEr3 may be connected to the slider portion JEp23a. The nut JEp22 may be fixed to the slider portion JEp23a. That is, the nut JEp22 only needs to be connected to the connection portion JEp23 or the like so that the relative position of the nut JEp22 with respect to the joint mechanism JEr3 does not change. In this way, the nut JEp22 is connected to the joint mechanism JEr3 via the connection portion JEp23 or the like.
[0064] The rail JEp24 includes two rod-shaped members JEp24a and JEp24b that extend along the direction De2 and are 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 the rod-shaped members JEp24a and JEp24b can movably support the connection portion JEp23. For example, the rail JEp24 is disposed between the opening Hlk2 and the screw portion JEp21 in the direction along the axis Ax2, and is attached to the inside of the link LK2. Note that the rail JEp24 does not have to be disposed between the opening Hlk2 and the screw portion JEp21 in the direction along the axis Ax2, as long as the joint mechanism JEr3 can move along the direction De2 with a part of the joint mechanism JEr3 protruding from the opening Hlk2.
[0065] The nut JEp22 is fixed to the connection part JEp23 so as not to rotate together with the threaded part JEp21, and therefore moves relative to the threaded part JEp21 along the direction De2 as the threaded part JEp21 rotates. As described above, the nut JEp22 is fixed to the connection part JEp23 and the like so that the relative position to the joint mechanism JEr3 does not change. In addition, when the threaded part JEp11 is not rotating, that is, when the motor MOp1 is not rotating, the joint mechanism JEr3 is supported by the joint mechanism JEp1 so that the relative position of the joint mechanism JEr3 to the link LK1 does not change. Therefore, the link LK2 moves relative to the joint mechanism JEr3 along the direction De2 as the nut JEp22 moves relative to the threaded part JEp21. In this way, the joint mechanism JEp2 movably supports the link LK2. It is preferable that the movement area ARmv2 (movement range) of the joint mechanism JEr3 is movable from an area closer to the end LK2ed1 than the end LK2ed2 of the link LK2 to an area closer to the end LK2ed2 than the end LK2ed1. This makes it possible to set the substantial length (length under control) of the link LK2 to a length equal to or less than half the length of the link LK2 to a length equal to or more than half the length of the link LK2. The substantial 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 (for example, 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 the relative position with respect to the link LK2 does not change. The joint mechanism JEr3 can rotate the link LK2 with respect to the link LK1 regardless of the relative position with respect to the link LK1. The joint mechanism JEr3 can rotate the link LK2 with respect to the link LK1 regardless of the relative position with respect to the link LK2.
[0067] Here, the moving direction of the nut JEp22 relative to the threaded portion JEp21, i.e., the moving direction of the link LK2, is switched between the direction De2 and the direction opposite to the 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 the 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 the 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 screw part 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 screw part JEp21 and a nut JEp22 may be used as an element of the joint mechanism JEp2.
[0069] Also, for example, a part of the motor MOr3 may be located inside the link LK1, another part of the motor MOr3 may be located outside the link LK1 from 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 that stores 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 part JEr11 and a housing JEr12 that houses the rotating part JEr11. The rotating part JEr11 rotates around the axis Ax1 as a rotation axis with the rotation of the motor MOr1 that drives the joint mechanism JEr1. For example, the rotating part JEr11 is attached to the motor MOr1 so as to be rotatable around the base part BDPba around the axis Ax1 as a rotation axis. In addition, the housing JEr12 rotates around the axis Ax1 as a rotation axis with the rotating part JEr11 as a rotation axis with the base part BDPba. For example, the housing JEr12 is connected to the base part BDPba so as to be rotatable around the axis Ax1 as a rotation axis with the base part BDPba. Furthermore, the housing JEr12 is connected to the joint mechanism JEr2. As a result, the joint mechanism JEr2 rotates around the axis Ax1 as a rotation axis with the rotation of the rotating part JEr11 as a rotation axis with the base part BDPba.
[0072] The motor MOr1 may be regarded as one element of the joint mechanism JEr1. 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 with respect to the housing JEr12 about 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 part JEr21 and a housing JEr22 that houses a motor MOr2 that drives the joint mechanism JEr2. The rotating part JEr21 rotates around an axis Ax2 as a rotation axis with the rotation of the motor MOr2. For example, the rotating part JEr21 is attached to the motor MOr2 so as to be rotatable with respect to the housing JEr22 around the axis Ax2 as a rotation axis. Furthermore, the rotating part JEr21 is connected to a link LK1. Furthermore, the link LK1 is connected to the housing JEr22 so as to be rotatable with respect to the housing JEr22. As a result, the link LK1 rotates with respect to the housing JEr22 around the axis Ax2 as a rotation axis with the rotation of the rotating part JEr21. Furthermore, the motor MOr2 is attached inside the housing JEr22.
[0074] The motor MOr2 may be regarded as one element of the joint mechanism JEr2. In the example shown in Fig. 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 inside 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 with respect to the link LK2 around the axis Ax4 as a rotation axis. The motor MOr4 is attached inside the link LK2.
[0076] Furthermore, the housing JEr42 rotates with the rotating part JEr41 relative to the link LK2 around the axis Ax4 as a rotation axis. For example, the housing JEr42 is connected to the link LK2 so as to be rotatable with respect to the link LK2 around the axis Ax4 as a rotation axis. Furthermore, the housing JEr42 is connected to the first part TP11. As a result, the first part TP11 rotates with the housing 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 part of the rotating part JEr41 may be located inside the housing JEr42, and the other part 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 part 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 with respect 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 housing JEr52 rotates with respect to the first part TP11 together with the rotating part JEr51, with the axis Ax5 as the rotation axis. For example, the housing JEr52 is connected to the first part TP11 so as to be rotatable with respect to the first part TP11 around the axis Ax5 as the rotation axis. Furthermore, the housing JEr52 is connected to the second part TP12. As a result, the second part TP12 rotates with the housing JEr52 together with the axis Ax5 as the rotation axis in accordance with the rotation of the rotating part JEr51.
[0080] The motor MOr5 may be regarded as one element of the joint mechanism JEr5. In the example shown in Fig. 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 part JEr61 and a housing JEr62 that houses a part of the rotating part JEr61. The rotating part JEr61 rotates around the axis Ax6 as a rotation axis with the rotation of the motor MOr6 that drives the joint mechanism JEr6. For example, the rotating part JEr61 is attached to the motor MOr6 so as to be rotatable with respect to the second part TP12 around the axis Ax6 as a rotation axis. In addition, the housing JEr62 rotates with respect to the second part TP12 around the axis Ax6 as a rotation axis together with the rotating part JEr61. For example, the housing JEr62 is connected to the second part TP12 so as to be rotatable with respect to the second part TP12 around the axis Ax6 as a rotation axis. In addition, the housing JEr62 includes an end face TP1sf. For example, the end face TP1sf rotates with respect to the second part TP12 around the axis Ax6 as a rotation axis with the rotation of the rotating part JEr61.
[0082] The motor MOr6 may be regarded as one element of the joint mechanism JEr6. 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. 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 multiple joint mechanisms JEr are not limited to the example shown in Fig. 2. For example, each of the multiple joint mechanisms JEr may have the same configuration as a mechanism corresponding to each joint of a known articulated robot.
[0084] 2 is one of the standing states 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 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 is located in an intermediate region ARmd2 excluding both ends of the movement region ARmv2. For example, when the robot 10 is made to wait 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 about half the length along the direction De1 of the movement region ARmv1. Also, the maximum movement amount of the position of the joint mechanism JEr3 relative to the link LK2 is about half the length along the direction De2 of the movement region ARmv2. Therefore, in this embodiment, by making the robot 10 wait in the first state shown in FIG. 2, it is possible to suppress an increase in the time required for state transition to transition the state of the robot 10 from the first state to another state.
[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 facilitate installation work when installing the robot 10 in a factory, or work to change the installation of the robot 10 due to equipment changes in the factory, etc.
[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 rotating the robot 10 about the axis Ax1 can be made smaller than when the orientation of the links LK1 and LK2 is such that one or both of the links LK1 and LK2 extend along a direction intersecting the axis Ax1.
[0088] Therefore, in this embodiment, by setting the links LK1 and LK2 in an upright state, the inertial force caused by 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 vibration (vibration damping) when the operation of the robot 10 is stopped can be reduced. Therefore, in this embodiment, it is possible to reduce the total operation time of the robot 10 when the robot 10 performs a predetermined task, improve the operation accuracy, and the like.
[0089] The state of the links LK1 and LK2 that reduces the inertial force when the robot 10 is rotated around 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 (standing 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 located closer to the end LK1ed2 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 located so that the tip TP1 is away from the link LK1. That is, in this embodiment, by setting the state of the robot 10 to an upright state, the inertial force when the robot 10 is rotated around the axis Ax1 can be reduced. However, the robot 10 is more stable when the tip TP1 is closer to the link LK1 than when the tip TP1 is farther from the link LK1.
[0090] In this embodiment, the robot controller 30 causes the robot 10 to execute, for example, each of the operations of a Cartesian robot, a horizontal articulated robot, and a vertical articulated robot. For example, a plurality of drive modes including drive modes corresponding to each of the operations of a Cartesian robot, a horizontal articulated robot, and a vertical articulated robot are set in the robot 10. 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 illustrating an example of a hardware configuration of the robot controller 30 illustrated 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 includes, for example, one or both of a volatile memory such as a random access memory (RAM) that functions as a working 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 causes the robot controller 30 to control the operation of the robot 10. However, the control program PGr may also include, for example, an operating robot system program that causes the processing device 32 to control each part of the robot controller 30.
[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 CPUs (Central Processing Units). 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, when 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 in cooperation with each other according to 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 hardware such as a DSP.
[0098] The operation control unit 33 repeats the process of calculating the joint value related to the state (state of the joint) 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 the motion of the joint. Specifically, the state of the joint mechanism JE may be, for example, the position of the joint mechanism JE (position of the joint) and the rotation angle (direction of the joint) of the rotation by the joint mechanism JEr. In this case, the joint value indicates, for example, the position of the joint mechanism JE (position of the joint) and the rotation angle (direction of the joint) of the rotation by the joint mechanism JEr. Hereinafter, the joint value related to the state (state of the joint) of the joint mechanism JE is also simply referred to as the joint value of the joint mechanism JE (joint).
[0099] The operation control unit 33 drives the robot 10 based on the joint values of each joint mechanism JE, etc., 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 that exists outside the robot controller 30. For example, the communication device 36 has a function of communicating with the external device by 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 (e.g., 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 (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 motion control unit 33). For example, the driver circuit 39 outputs signals based on the joint values, etc. 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 manner, the robot controller 30 controls the movement of the robot 10 by controlling a plurality of 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 used when controlling the operation of the robot 10 (a method for calculating the joint values by the operation control unit 33) will be described. For example, forward kinematics that calculates the position and posture of the robot 10 from the displacement of the joint (e.g., rotation and linear motion, etc.) and inverse kinematics that calculates the displacement of the joint from the position and posture of the robot 10 are used to control the operation of the robot 10. For example, the relationship between the speed of the hand (e.g., the tip of the end effector 20) of the robot 10 (hereinafter also referred to as the hand speed) and the joint speed is expressed by Equation (1). For example, Equation (1) is used for calculation of forward kinematics.
[0107]
number
[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 equal to or greater than 2), the joint velocity θ(·) is expressed by equation (3), and the Jacobian matrix J is expressed by equation (4).
[0109]
number
[0110]
number
[0111]
number
[0112] The Jacobian matrix J is represented by, for example, a matrix with 6 rows and m columns, and the element in the i-th column is the element J relating to the i-th joint. i The element J related to the i-th joint corresponds to i is expressed by equation (5) when the i-th joint is a rotational joint, and is expressed by equation (6) when the i-th joint is a prismatic joint. Note that 0 in equation (6) indicates that the vector value is 0, for example.
[0113]
number
[0114] Although not shown in Fig. 1, a three-axis Cartesian coordinate system with a predetermined position of each joint as the 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] 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, the joint mechanism JEr1 corresponds to the first joint, and the joint mechanism JEr2 corresponds to the second joint. The joint mechanism JEr3 corresponds to the third joint, and the joint mechanism JEr4 corresponds to the fourth joint. The joint mechanism JEr5 corresponds to the fifth joint, and the joint mechanism JEr6 corresponds to the sixth joint. The joint mechanism JEp1 corresponds to the seventh joint, and the joint mechanism JEp2 corresponds to the eighth joint. The numbering method is not limited to the above example.
[0116] The relationship between the hand speed and the joint speed 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]
number
[0118] For example, the robot controller 30 calculates the joint velocity θ of each joint mechanism JE with respect to the target hand velocity r(·). i (·) using equation (7), and operates each joint mechanism JE based on the calculation result. Specifically, for example, the robot controller 30 calculates the joint velocity θ i Based on (·), the robot controller 30 calculates 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] In this embodiment, for example, the robot 10 can be made to perform a jog motion. The jog motion is, for example, a motion in which the joints and the hands of the robot 10 are moved little by little to make the position and posture of the robot 10 reach the 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 an inverse kinematics calculation. In addition, the pseudo-inverse matrix J + Therefore, calculating the joint velocity θ(·) of the joint mechanism JE using equation (7) corresponds to performing inverse kinematics calculation using the Jacobian matrix.
[0120] When a jog motion is performed, the joint velocity θ i Therefore, in a control method in which the Jacobian matrix J is used without any modification, 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(·), etc., the calculation time increases. In this case, the solution of the inverse kinematics calculation (the joint velocities θ of each joint that make the robot's position and posture the target position and posture) 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 among 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 is fixed to 0. The element J related to the i-th joint i The Jacobian matrix J when the vector value of is set to 0 is expressed as equation (8). In this case, the joint velocity θ obtained from the above equation (7) i (·) is the joint velocity vector expressed by equation (9).
[0122]
number
[0123] As shown in equation (9), the joint velocity θ of the i-th joint i (·) is 0. In this manner, in this embodiment, among the multiple elements of the Jacobian matrix J, the element J related to the i-th joint i By fixing the vector value of i to 0, the joint value of the i-th joint does not change, so that 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 i By fixing the vector value of to 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, if the joint value of the i-th joint does not affect the robot control and does not substantially change, it does not necessarily have to be 0, and may be a small value (substantially 0). Here, "substantially 0" includes not only 0, but also a small value that can be regarded as 0. Also, "not substantially displaced" includes not only the case where there is no displacement strictly, but also the case where it can be regarded as not displaced (for example, a small change that does not affect the robot control).
[0124] In the above example, it is assumed that the fixed joint that is not operated is one 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 a drive mode 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 described later. In this embodiment, by appropriately selecting the drive mode of the robot 10 from the multiple drive modes, it is possible to prevent the solution of 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 for explaining an example of the drive modes of the robot 10. In this embodiment, it is assumed that the robot 10 is set to a first drive mode, a second drive mode, a third drive mode, a fourth drive mode, and a fifth drive mode as a plurality of drive modes.
[0127] At least one joint mechanism JE among the joint mechanisms JE is associated with each of the drive modes as a joint mechanism JE to be driven. In the following, among the joint mechanisms JE, the joint mechanisms JE other than the joint mechanism JE to be driven are also referred to as fixed joint mechanisms JE. The fixed joint mechanism JE is a joint mechanism JE that does not substantially displace the joint value in the process of calculating the joint value of each joint mechanism JE. For example, the robot controller 30 controls the operation of the robot 10 by driving the joint mechanism JE to be driven in a state in which the fixed joint mechanism JE among the joint mechanisms JE is fixed in each drive mode. The joint mechanism JE to be driven is an example of a "joint to be driven", and the joint mechanism JE to be fixed is an example of a "joint to be fixed".
[0128] In the first drive mode, among the multiple joint mechanisms JE, the joint mechanisms JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6 are the joint mechanisms JE to be driven, and the 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 multi-joint robot. Hereinafter, the first drive mode may be referred to as a vertical six-axis multi-joint mode.
[0129] In the second drive mode, among the multiple joint mechanisms JE, the joint mechanisms JEp1 and JEp2 are the joint mechanisms JE to be driven, and the 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 orthogonal mode.
[0130] In the third drive mode, among the multiple joint mechanisms JE, the joint mechanisms JEr1, JEp1, and JEp2 are the joint mechanisms JE to be driven, and the 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 multi-joint robot (SCARA robot). Hereinafter, the third drive mode may be referred to as the SCARA mode.
[0131] In the fourth drive mode, among the multiple joint mechanisms JE, the joint mechanisms JEr2, JEr3, JEp1, and JEp2 are the joint mechanisms JE to be driven, and the 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), the joint mechanisms JEr2 and JEr3 are 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 the four joint mechanisms JEr2, JEr3, JEp1, and JEp2 out of the eight joint mechanisms JE are driven may be referred to as an extended orthogonal robot.
[0132] In the fifth drive mode, all of the joint mechanisms JE are drive targets. That is, in the fifth drive mode, there is no fixed target joint mechanism JE among the joint mechanisms JE. Hereinafter, the fifth drive mode may be referred to as a standard mode.
[0133] In the following, it is assumed that the multiple drive modes are the first drive mode, the second drive mode, the third drive mode, the fourth drive mode, and the 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 among the multiple joint mechanisms JE are associated as 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 the 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 may be triggered by the start-up of the robot controller 30.
[0137] The operation screen OPS includes a plurality of display windows WD (WDm, WDj, WDpc, and WDpa). In the display window WDm, for example, a moving image of the robot 10 captured by an imaging device such as a camera is displayed as a moving image showing the current state of the robot 10. In the plurality of display windows WDj, the current joint values of the plurality of joint mechanisms JE (JEr1, JEr2, JEr3, JEr4, JEr5, JEr6, JEp1, and JEp2) are displayed, respectively.
[0138] Also, in the display window WDp (WDpc and WDpa), information indicating the current position and posture of the hand of the robot 10 is displayed. 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. Also, 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, namely, a roll angle, a pitch angle, and a yaw angle.
[0139] Furthermore, a plurality of buttons BT (BTpc, BTpa, BTs, and BTd) for a GUI (Graphical User Interface) are displayed on the operation screen OPS. The plurality of buttons BT are used, for example, when teaching the robot 10 an action, and when controlling the action of the robot 10 in an actual action 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, a 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 a 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 angle 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 the angle increases. When the "-" button BTpa of the "+" and "-" buttons BTpa corresponding to the angle is pressed, the value displayed in the display window WDpa corresponding to the angle decreases.
[0142] In this way, the operator can set a 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 the button BTs1 is pressed, the first drive mode is selected as the drive mode of the robot 10, and when the button BTs2 is pressed, the second drive mode is selected as the drive mode of the robot 10. Also, for example, when the button BTs3 is pressed, the third drive mode is selected as the drive mode of the robot 10, and when the button BTs4 is pressed, the fourth drive mode is selected as the drive mode of the robot 10. And, for example, when the button BTs5 is pressed, the fifth drive mode is selected as the drive mode of the robot 10.
[0144] In this manner, the operator can select the drive mode of the robot 10 by pressing the button BTs (BTs1, BTs2, BTs3, BTs4, and BTs5).
[0145] The button BTd is a GUI for confirming, for example, a target position and posture input by an operator and a drive mode selected by the operator as final information 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. 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, a plurality of warning images WLj functioning as warning lights that allow the operator to recognize whether the state of the robot 10 is in a specific state or not. The specific state is, for example, a state in which the joint value of a specific joint mechanism JE is a value close to a limit value that satisfies the constraints on the movement of the joint mechanism JE (for example, a value with a predetermined margin from the limit value). Hereinafter, the state of the joint mechanism JE when the joint value of the joint mechanism JE is a limit value that satisfies the constraints on the movement of the joint mechanism JE is also referred to as a limit state. In addition, 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 by the joint mechanism JEp1, and the movement range of the joint mechanism JEr3 by the joint mechanism JEp2, etc.). For example, when the joint mechanism JEr3 moves relative to the link LK1 by the joint mechanism JEp1, 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 the limit value, and the state of the joint mechanism JEp1 is 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. The singular point is, for example, a state in which the robot 10 becomes unable to be controlled.
[0149] In the example shown in FIG. 5, the operation screen OPS includes a plurality of warning images WLj that correspond one-to-one to a plurality of joint mechanisms JE. For example, when the state of the robot 10 is a specific state based on a constraint for avoiding a singular point, the warning image WLj corresponding to the joint mechanism JE related to the singular point is displayed in red. In this way, the warning image WLj corresponding to the joint mechanism JE that is in the specific state is displayed in a specific color (for example, red), and the warning image WLj corresponding to the joint mechanism JE that is not in the specific state is displayed in a color other than the specific color. Note that 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 that is not in the specific state may be displayed in blue or yellow. In this case, a yellow warning image WLj means that, for example, 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 the teaching of 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] Note that an example of the operation screen OPS is 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] Also, for example, instead of or in addition to a change in color of the warning image WLj, a blinking pattern according to the state of the joint mechanism JE may be used to allow the worker to recognize the state of the joint mechanism JE. Also, for example, instead of a plurality of warning images WLj, the colors or blinking patterns of a plurality of display windows WDj may be used to allow the worker to recognize whether the state of the robot 10 is in a specific state or not. Alternatively, instead of or in addition to a plurality of warning images WLj, a warning sound may be used to allow the worker to recognize whether the state of the robot 10 is in a specific state or not.
[0153] In addition, 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 joint mechanism JE related to the singular point is not particularly notified to the operator, 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 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, blinking the entire operation screen OPS, or the like.
[0154] Next, an overview 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 bringing the position and posture of the hand of the robot 10 into the 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] In the operation shown in FIG. 6, it is assumed that there are n positions PP and postures PS of multiple targets (n is a natural number of 1 or more). For example, the positions PP and postures PS of n targets are defined as the trajectory of the robot 10 from the initial state of the robot 10 to the final target state. Hereinafter, the positions PP and postures PS of n targets may be referred to as n target states. In addition, in the operation shown in FIG. 6, it is assumed that the initial value of the variable k (k is a natural number of 1 to n) is 1. Hereinafter, the position PP and posture PS of the kth target may be referred to as the position PPk and posture PSk, respectively. For example, the position PP1 and posture PS1 are the position PP and posture PS of the first target, and the position PPn and posture PSn are the position PP and posture PS of the nth target (final target). The robot controller 30 sequentially updates the positions PPk and postures PSk of the targets at the hand of the robot 10, for example, by sequentially changing the variable k from 1 to n.
[0157] FIG. 6 mainly describes the operation of the robot controller 30 when n target positions PP and postures PS are set in sequence 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 the drive mode of the robot 10. For example, the operation control unit 33 selects the drive mode of 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 the drive mode of the robot 10, which corresponds to the button BTs pressed before the button BTd is pressed among the multiple buttons BTs. Note that, when 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 of 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, a standard mode) is selected as the drive mode of the robot 10.
[0159] Next, in step S120, the movement control unit 33 sets the position PPk and the posture PSk of the k-th 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, the movement control unit 33 sets the values displayed in the display window WDp (WDpc and WDpa) when the button BTd is pressed as the position PPk and the posture PSk of the k-th target of the hand of the robot 10. After executing the process of step S120, the movement control unit 33 advances the process to step S200.
[0160] In step S200, the movement control unit 33 calculates the difference between the position and posture of the hand of the robot 10 and the target position PPk and posture PSk. For example, the movement control unit 33 calculates the position and posture of the hand of the robot 10 based on the current joint values of each joint mechanism JE. Then, the movement control unit 33 calculates the difference between the position and posture of the hand of the robot 10 calculated based on the current joint values of each joint mechanism JE and the target position PPk and posture PSk of the hand of the robot 10.
[0161] Next, in step S300, the operation control unit 33 judges whether or not the difference between the position and posture of the hand of the robot 10 and the target position PPk and posture PSk is equal to or less than a tolerance. For example, the tolerance is set to a value that allows the position and posture of the hand of the robot 10 to be regarded as being consistent with the target position PP and posture PS if the difference between the position and posture of the hand of the robot 10 and the target position PP and posture PS is equal to or less than the tolerance.
[0162] If the result of the determination in step S300 is positive, the operation control section 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 section 33 advances the process to step S400.
[0163] In step S400, the motion control unit 33 executes a joint value update process for updating the joint values of each joint mechanism JE. For example, in the joint value update process, the motion control unit 33 calculates the joint values of the multiple joint mechanisms JE by executing a calculation process including an inverse kinematics calculation for calculating the displacement amount of a joint mechanism JE to be driven that is specified based on a drive mode among the multiple joint mechanisms JE. Details of the joint value update process will be described later in FIG. 7. After executing the joint value update process in step S400, the motion control unit 33 advances the process to step S500.
[0164] In step S500, the operation control unit 33 increments the loop count. Note that the loop count 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 an upper limit value for the number of times the series of processes from step S200 to step S520 is repeated, and is set in order 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 result of the determination in step S520 is negative, the operation control unit 33 stops the operation of the robot 10 as an error in step S600. 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) are not necessarily joint values that make the position and posture of the hand of the robot 10 the target position PP and posture 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 for making the position and posture of the hand of the robot 10 the target position PP and posture PS has not converged. For example, the operation control unit 33 may cause the display device 38 to display the error information.
[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 manner, the series of processes from step S200 to step S520 is repeated until the joint values of each joint mechanism JE for bringing the position and posture of the hand of the robot 10 into the target position PP and posture PS are calculated, or until the loop count exceeds the upper limit.
[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 posture of the hand of the robot 10 in step S200 are calculated as the joint values of each joint mechanism JE for making the position and posture of the hand of the robot 10 the target position PP and posture PS. Note that, if a series of processes from step S200 to step S520 are repeated two or more times, the latest joint values used in the process of this step S200 are the joint values updated in the previous joint value update process of step S400.
[0169] In step S700, the operation control unit 33 controls each joint mechanism JE according to the joint values of each joint mechanism JE updated by the joint value update process in 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 operation control unit 33 stores in the memory 35 in step S700 the joint values of each joint mechanism JE updated by the joint value update process in step S400 as the joint values of the target position PPk and posture PSk. For example, when teaching the robot 10 a movement, the operation 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 posture of the hand in the initial state of the robot 10 and the target position PP1 and posture PS1 is equal to or smaller than the allowable value, 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 read as "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 judges whether or not the variable k is smaller than n. If the result of the judgment 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 judgment in step S720 is positive, the operation control unit 33 resets the loop count to 0 in step S740, and then proceeds to the process in step S760.
[0173] In step S760, the operation control unit 33 increments the variable k (k=k+1). Then, the operation control unit 33 advances the process to step S780.
[0174] In step S780, the operation control unit 33 determines whether or not 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 position PPk and attitude PSk of the next target is accepted. The processing device 32 may function as the operation control unit 33 and determine whether or not to change the drive mode when the button BTd is pressed. For example, the operation control unit 33 determines that the drive mode is not changed when the button BTd is pressed without pressing any of the multiple buttons BTs, and determines that the drive mode is changed when any of the multiple buttons BTs is pressed before the button BTd is pressed. In addition, the operation control unit 33 may determine that the drive mode is not changed when any of the multiple 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 drive mode currently selected, even if any of the multiple buttons BTs is pressed before the button BTd is pressed.
[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 position PPk and orientation PSk of the next target of the hand of the robot 10 is selected, and in step S120, the position PPk and orientation PSk of the next target 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 in step S120, the position PPk and orientation PSk of the next target of the hand of the robot 10 are set.
[0176] Thus, 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 returns the process to step S100 after executing the process of step S760. 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 on the n positions PP and postures PS is input during the operation shown in Fig. 6, but the operation shown in Fig. 6 may be started after the n target positions PP and postures PS 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 n target positions PP and postures PS. The series of processes in steps S100 and S120 are then executed based on the information (drive mode, position PP, and posture PS) stored in the memory 35. In this case, the process in step S780 may 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. 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 advances the process to step S440.
[0182] In step S440, the operation control unit 33 determines whether or not a joint mechanism JE to be fixed is present 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 is not present 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 is present among the multiple joint mechanisms JE.
[0183] If the result of the determination in step S440 is positive, the operation control unit 33 advances the process to step S460. On the other hand, if the result of the determination in step S440 is negative, the operation control unit 33 advances the process to step S480.
[0184] In step S460, the movement control unit 33 sets the value of an 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 an element in a 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 advances the process to 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 of each joint mechanism JE (for example, the joint velocity θ i (·) is calculated. Note that, when a fixed joint mechanism JE exists among the multiple joint mechanisms JE, the displacement amount of the fixed joint mechanism JE is 0 or almost 0 because the element value of the column of the Jacobian matrix J corresponding to the fixed joint mechanism JE is set substantially to 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 advances the process to step S490.
[0186] In step S490, the operation control unit 33 updates the joint value of each joint mechanism JE based on the displacement amount of each joint mechanism JE. For example, the operation control unit 33 updates the joint value of each joint mechanism JE by adding the displacement amount of each joint mechanism JE to the joint value of each joint mechanism JE used in calculating the position and posture of the hand of the robot 10 in step S200 shown in FIG. 6. Note that, when a fixed joint mechanism JE exists among the multiple joint mechanisms JE, the displacement amount of the fixed joint mechanism JE is 0 or almost 0, so that the joint value of the fixed joint mechanism JE after the update by the process of step S490 becomes the same or almost the same value as the value before the update. Note that the value almost the same as the value before the update is, for example, a value that can be considered to be the same as the value before the update. Therefore, the state of the fixed joint mechanism JE is maintained without change. As a result, in this embodiment, it is possible to drive only the joint mechanism JE of the drive object 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 regarded as the "calculation process". In this case, the "calculation process" includes the "fixed process".
[0188] 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 joint mechanism JE of the fixed object and the joint mechanism JE of the specific state described in FIG. 5 are present among the multiple joint mechanisms JE. In this case, in step S460, the value of the element corresponding to the joint mechanism JE of the specific state among the multiple elements of the Jacobian matrix J is set to substantially 0 for the joint mechanism JE of the specific state, similar to the joint mechanism JE of the fixed object. In this aspect, the joint mechanism JE of the specific state is also treated as a fixed joint, similar to the joint mechanism JE of the fixed object, so that it is possible to prevent the state of the joint mechanism JE from being in a state that does not satisfy the constraints on the movement of the joint mechanism JE (for example, a state outside the movable range).
[0189] Furthermore, in the robot 10 whose movement has been taught, for example, each joint mechanism JE operates according to 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 whose movement has been taught, 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 the same operation as that shown in Fig. 6 and Fig. 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, the operation of the robot system 1 will be described with reference to FIGS. 8 and 9, taking as an example a case where the robot 10 is taught an operation for placing 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 main states of the robot 10 in the operation until the robot 10 places an item GD placed outside the shelf RK (for example, on the floor) inside the shelf RK. The top view in the figure shows the robot 10 as viewed from the +Z direction, and the side view in the figure shows the robot 10 as viewed from the direction Dax3. The +Z direction is the direction indicated by the arrow of the Z axis, and the direction Dax3 is the direction from link LK1 to link LK2 along the axis Ax3, which is the rotation axis of the joint mechanism JEr3.
[0193] Hereinafter, the +Z direction may be referred to as the upward direction, and the opposite direction of 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 opposite direction of 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), for example, in the operation of the robot 10 from picking up an article GD from the floor to transporting the picked-up article GD to the front of a shelf RK, there are few restrictions on the working area, and the robot 10 takes a complex posture. For this reason, 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] In FIG. 8, it is assumed that the vertical six-axis multi-joint mode is selected. In addition, in the description of FIG. 8 and subsequent figures, the description of the operation of inputting the target position PP and posture PS via the operation screen OPS is omitted. For example, when teaching of the robot 10 is started, the operator presses the button BTs1 shown in FIG. 5 and then presses the button BTd. As a result, in step S100 of FIG. 6, the vertical six-axis multi-joint mode is selected. Also, since the vertical six-axis multi-joint mode is selected, in step S460 of FIG. 7, the values of the elements corresponding to the joint mechanisms JEp1 and JRp2 among the multiple elements of the Jacobian matrix J are set to substantially 0. As a result, the robot 10 operates as a vertical six-axis multi-joint robot in which only six joint mechanisms JEr (JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6) among 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 inside of the shelf RK and placed therein, as shown in FIG. 9(c) and FIG. 9(d). Note that in FIG. 8 and FIG. 9, it is assumed that the posture of the robot 10 at the time when the robot 10 finishes the operation of transporting the item GD to the 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 the item GD transported in front of the shelf RK to the inside of the shelf RK to placing the item GD inside the shelf RK (see Figures 9(c) and 9(d)), the shelf PK itself becomes an obstacle to the operation of the robot 10, so the working area is greatly restricted. For this reason, if the vertical six-axis multi-joint mode (first drive mode) or the standard mode (fifth drive mode) is selected in the above-mentioned operation, the operation of the robot 10 is greatly restricted. Therefore, in the above-mentioned operation, the orthogonal mode (second drive mode) is appropriate as the drive mode of the robot 10.
[0198] Therefore, for example, after the article GD is transported in front of the shelf RK, the worker presses the button BTs2 shown in FIG. 5, presses the button BTs2, and then presses the button BTd. As a result, in step S780 of FIG. 6, it is determined that the drive mode is changed, and in step S100, the orthogonal mode is selected. Also, since the orthogonal mode is 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 an orthogonal 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, moving link LK2 in the Z-axis direction (up and down direction) and moving link LK2 in a direction perpendicular to the Z-axis (for example, the X-axis direction) can be easily achieved by joint mechanisms JEp1 and JEp2, 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 article 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 article GD is transported inside the shelf RK. In this way, in this embodiment, the robot 10 can operate as an orthogonal robot, so that the shelf PK does not become an obstacle and the robot 10 can be operated smoothly. Also, in this embodiment, the robot 10 can be easily controlled by operating the robot 10 as an orthogonal robot.
[0201] When the orthogonal mode is selected, the robot controller 30 may determine whether or not the posture of the robot 10 is an orthogonal posture before, for example, executing the process of step S200 in Fig. 6. Then, when 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, the operation of the robot system 1 will be described with reference to FIGS. 10 to 13, taking as an example a case where the robot 10 is taught an operation of placing an item GD placed in an area AR1 on a tray TY2 via a 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 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 of the figures show the robot 10 as viewed from the +Z direction, and the side views of the figures show the robot 10 as viewed from the direction Dax3.
[0205] 10(a) and 10(b), for example, 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 placement 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 multi-joint mode (first drive mode) or the standard mode (fifth drive mode) is appropriate as the drive mode of the robot 10.
[0206] In FIG. 10, since the area AR1 is located near the body part BDP, it is assumed that the standard mode suitable for working on the object GD located near the body part BDP is selected. For example, when teaching of the robot 10 is started, the worker presses the button BTs5 shown in FIG. 5 and then presses the button BTd. As a result, the standard mode is selected in step S100 in FIG. 6. Also, since the standard mode has been selected, the result of the determination in step S440 in FIG. 7 is negative. Therefore, the 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 posture above the tray TY1 as shown in FIG. 11(c).
[0208] The operation of the robot 10 from placing the object GD placed on the tray TY1 to placing it on the tray TY2 is an operation that a horizontal articulated robot (SCARA robot) is good at. Therefore, in the above-mentioned operation, the SCARA mode (third drive mode) is appropriate as the drive mode of the robot 10.
[0209] Therefore, for example, the worker presses the button BTs3 shown in FIG. 5 after the robot 10 operating in the standard mode conveys the article GD to the tray TY1 and changes its posture to an orthogonal posture above the tray TY1. Then, the worker presses the button BTd after pressing the button BTs3. 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 SCARA mode is selected. In addition, since the SCARA mode is selected, in step S460 of FIG. 7, the values of the elements corresponding to the joint mechanisms JEr2, JEr3, JEr4, JEr5, and JEr6 among the multiple elements of the Jacobian matrix J are set to substantially 0. As a result, the robot 10 operates as a horizontal multi-joint robot (SCARA robot) in which only three joint mechanisms JEr1, JEp1, and JEp2 out of the eight joint mechanisms JE are driven.
[0210] For example, as shown in Fig. 11(c), the robot controller 30 causes the robot 10 to carry the article 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, the robot controller 30 drives the joint mechanism JEp1 to move the link LK2 in the -Z direction (downward) as shown in Fig. 11(d). This causes the tip TP1 of the robot 10 to move downward together with the link LK2. Then, the robot controller 30 causes the robot 10 to pick up the item GD placed on the tray TY1 as shown in Fig. 12(e).
[0212] Next, the robot controller 30 drives the joint mechanism JEp1 to move the link LK2 in the +Z direction (upward) as shown in Fig. 12(e). Then, the robot controller 30 drives the joint mechanisms JEr1 and JEp2 to move the tip part TP1 of the robot 10 above the tray TY2 as shown in Fig. 12(f). 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 part TP1 moves away from the body part BDP.
[0213] Then, the robot controller 30 drives the joint mechanism JEp1 to move the link LK2 in the -Z direction (downward), as shown in FIG. 13(g). As a result, the tip end TP1 of the robot 10 moves downward together with the link LK2, and the article GD is transported to the tray TY2. The article GD is then placed on the tray TY2. After the article 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] In this manner, in this embodiment, it is possible to arbitrarily switch between a standard mode (fifth drive mode) in which all of the eight joint mechanisms JE are driven, and a SCARA mode (third drive mode) in which only three joint mechanisms JEr1, JEp1, and JEp2 out of the eight joint mechanisms JE are driven. As a result, in this embodiment, it is possible to prevent 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 until the article GD placed on the tray TY1 is placed on the tray TY2, the number of joint mechanisms JE to be driven is greater 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 or not 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] Next, the operation of the robot system 1 will be described with reference to Fig. 14 to Fig. 16, taking as an example a case where the robot 10 is taught an operation for placing an item GD placed outside the shelf RK inside the shelf RK. Note that in the operation shown in Fig. 14 to Fig. 16, the item GD is placed further back on the shelf RK than in the operation shown in Fig. 8 and Fig. 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 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 the back of the shelf RK. The top views of the figures show the robot 10 as viewed from the +Z direction, and the side views of the figures show the robot 10 as viewed from the direction Dax3. The top views of the figures show the robot 10 as viewed from the +Z direction, and the side views of the figures show the robot 10 as viewed from the direction Dax3.
[0219] As shown in Figures 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 FIG. 15(c) and FIG. 15(d). In the operation of the robot 10 from transporting the item GD transported in front of the shelf RK inside the shelf RK to 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, so that the working area is greatly restricted. For this reason, in the above-mentioned operation, the orthogonal mode (second drive mode) or the extended orthogonal mode (fourth drive mode) is appropriate as the drive mode of the robot 10. 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 the article GD is transported in front of the shelf RK, the worker presses the button BTs4 shown in FIG. 5, and then presses the button BTd after pressing the button BTs4. As a result, in step S780 of FIG. 6, it is determined that the drive mode is changed, and in step S100, the extended orthogonal mode is selected. In addition, since the extended orthogonal mode is 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 four joint mechanisms JEr1, JEr4, JEr5, and JEr6 are set to substantially 0. As a result, the robot 10 operates as an extended orthogonal robot in which only the four joint mechanisms JEr2, JEr3, JEp1, and JEp2 of the eight joint mechanisms JE are driven.
[0222] In the extended orthogonal mode, the tip part TP1 can be moved to a position farther from the body part BDP than in the orthogonal mode. For example, in the orthogonal mode, the amount of movement of the tip part TP1 toward the back of the shelf RK is limited to the driving range (movement area ARmv2) of the link LK2 relative to the joint mechanism JEr3 (see FIG. 9). In contrast, in the extended orthogonal mode, the joint mechanisms JEr2 and JEr3 are driven in addition to the joint mechanisms JEp1 and JEp2, so that the amount of movement of the tip part TP1 toward the back of the shelf RK can be increased compared to the orthogonal mode.
[0223] For example, when an item GD transported in 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, 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) as shown in FIG. 15(d). Note that FIG. 15 assumes a case in which the link LK2 is moved while maintaining the attitude 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, the robot controller 30 drives the joint mechanism JEp1 while tilting the link LK1 to move the joint mechanism JEr3 along the direction De1 so that the end LK1ed2 of the link LK1 approaches. This maintains the vertical position of the joint mechanism JEr3. Furthermore, the robot controller 30 drives the joint mechanism JEr3 while tilting the link LK1 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 attitude 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 article GD as viewed from the Z direction (position on the X-axis) becomes the desired position. Then, the robot controller 30 drives the joint mechanisms JEr2, JEr3, JEp1, and JEp2 to move the tip part TP1 downward, as shown in Fig. 16. As a result, the article GD is placed 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 multi-joint 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 moving range of the tip part TP1 from becoming narrow.
[0227] In addition, in the operation of the robot 10 up to the time when the article 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 time when the article 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 each of the operations of a plurality of types of robots with one robot 10. As a result, in this embodiment, it is possible to suppress, for example, an increase in cost when constructing a production line and a decrease in work efficiency.
[0229] For example, if the respective operations of a Cartesian robot, a horizontal articulated robot, and a vertical articulated robot cannot be realized by a single robot 10, in order to construct a production line suitable for the work content, it is necessary to prepare multiple types of robots and replace the robots according to changes in the work content. Also, some of the multiple types of robots prepared may become unnecessary due to changes in the production line. In this case, the cost of constructing the production line increases.
[0230] Furthermore, when one vertical six-axis articulated robot is used to realize the respective movements of a plurality of types of robots, as described above, the links (arms) of the robot may get in the way and limit the movement. Furthermore, when the vertical six-axis articulated robot is used to execute the movement of an orthogonal robot or a horizontal articulated robot, the movement becomes complicated because the vertical six-axis articulated robot has more drive axes than the orthogonal robot and the horizontal articulated robot. In this case, problems such as a decrease in movement speed or movement accuracy occur. In contrast, in this embodiment, by selecting the orthogonal mode or the SCARA mode, the robot 10 can be operated as an orthogonal robot or a horizontal articulated robot. As a result, in this embodiment, a decrease in movement speed or movement accuracy can be suppressed.
[0231] As described above, in this embodiment, the robot system 1 includes the robot 10, which is an articulated robot having seven or more joint mechanisms JE, and the robot controller 30 that controls the operation of the robot 10.
[0232] In the control method for the robot 10, a plurality of drive modes are set for the robot 10, in which at least one joint mechanism JE among the plurality of joint mechanisms JE is associated as the joint mechanism JE to be driven, and the robot controller 30 selects one of the plurality of drive modes and 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 based on the selected one of the plurality of joint mechanisms JE, thereby calculating joint values related to each state of the plurality of joint mechanisms JE so that the robot 10 is in a desired state, and controls the operation of the robot 10 based on the joint values of the plurality of joint mechanisms JE calculated in the calculation process.
[0233] Also in the teaching method for the robot 10, a plurality of drive modes are set for the robot 10 in which at least one of the plurality of joint mechanisms JE is associated as the joint mechanism JE to be driven, and the robot controller 30 selects one of the plurality of drive modes and 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 based on the selected one of the plurality of joint mechanisms JE, thereby calculating joint values related to the states of the plurality of joint mechanisms JE so that the robot 10 is in a desired state, and generates joint state information indicating the joint values of the plurality of joint mechanisms JE calculated in the calculation process.
[0234] The robot system 1 also includes a robot 10 having seven or more joint mechanisms JE and having multiple drive modes set 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. The operation control unit 33 selects one of 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 one drive mode among the multiple joint mechanisms JE, thereby calculating joint values related to each state of the multiple joint mechanisms JE so that the robot 10 is in a desired state, and controls the operation of the robot 10 based on the joint values of the multiple joint mechanisms JE calculated in the calculation process.
[0235] In this manner, in this embodiment, one of the drive modes is selected, and the joint mechanism JE to be driven is identified from the joint mechanisms JE based on the selected drive mode. That is, in this embodiment, by selecting the drive mode of the robot 10 from the drive modes, only the joint mechanism JE to be driven that corresponds to the selected drive mode among the joint mechanisms JE can be driven to control the operation of the robot 10. Therefore, in this embodiment, by appropriately selecting the drive mode of the robot 10 from the drive modes, each operation of a plurality of types of robots can be realized by one robot 10.
[0236] In addition, in this embodiment, in order to calculate joint values related to the respective states of the plurality of joint mechanisms JE so that the robot 10 is in a target state, the displacement amount of the joint mechanism JE selected from the plurality of joint mechanisms JE as the joint mechanism JE to be driven is calculated. Therefore, in this embodiment, when the number of joint mechanisms JE 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 JE to be driven is large. That is, in this embodiment, the load on the inverse kinematics calculation can be reduced by appropriately selecting the drive mode of the robot 10 from the plurality of drive modes. As a result, in this embodiment, it is possible to suppress the solution of the inverse kinematics calculation from not being calculated within a desired time.
[0237] In addition, in this embodiment, when a fixed joint mechanism JE other than the driven joint mechanism JE is present among the multiple joint mechanisms JE, the robot controller 30 (more specifically, the operation control unit 33) executes a fixing process that does not substantially displace the joint value of the fixed joint mechanism JE calculated in the calculation process. In this manner, in this embodiment, the joint mechanisms JE other than the driven joint mechanism JE among the multiple joint mechanisms JE are regarded as fixed joint mechanisms JE whose states do not change, and the inverse kinematic calculation is executed using the driven joint mechanism JE without displacing the fixed joint mechanism JE. As a result, in this embodiment, the operation of the robot 10 can be controlled by driving only the driven joint mechanism JE among the multiple joint mechanisms JE. In addition, in this embodiment, the inverse kinematic calculation is executed using the driven joint mechanism JE among the multiple joint mechanisms JE, so that it is possible to suppress the solution of the inverse kinematic calculation not being calculated within a desired time.
[0238] In addition, in this embodiment, the robot controller 30 (more specifically, the operation control unit 33) performs an inverse kinematic calculation using the Jacobian matrix J in the calculation process, and in the fixing process, the value of an element related to the joint mechanism JE of the fixed object among the multiple elements of the Jacobian matrix J is set to substantially 0, thereby not displacing the joint value of the joint mechanism JE of the fixed object. In this way, in this embodiment, the value of an element related to the joint mechanism JE of the fixed object among the multiple elements of the Jacobian matrix J is set to substantially 0, thereby making it possible to easily set the joint value of the joint mechanism JE of the fixed object to a fixed value. In other words, even if a joint mechanism JE of the fixed object exists among the multiple joint mechanisms JE, it is possible to perform an inverse kinematic calculation to calculate the joint value 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 multiple joint mechanisms JE include at least one linear joint (joint mechanism JEp). As described above, in this embodiment, at least one joint mechanism JEp among the multiple joint mechanisms JE is a linear joint, so that the movement range of the tip part TP1 of the robot 10 can be widened 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 multiple drive modes on the display device 38. This allows the operator to easily select one of the multiple drive modes.
[0241] In this embodiment, the robot 10 includes a body part BDP, a link LK1, a link LK2, a tip part TP1, and a joint mechanism JEr1 that rotates at least a part of the body part BDP around an axis Ax1 that is a first rotation axis and that forms an angle with a direction perpendicular to the bottom surface BDPbt of the body part BDP or less that a predetermined angle, and that connects the body part BDP and the link LK1, and rotates the link LK2 around an axis Ax2 that is a second rotation axis and that forms an angle with a direction perpendicular to the bottom surface BDPbt of the body part BDP that is greater than a predetermined angle. a joint mechanism JEr2 that rotates the link LK1 and the link LK2; a joint mechanism JEr3 that connects the link LK1 and the link LK2 and rotates the link LK2 relative to the link LK1 around an axis Ax3 that forms an angle with the extension direction of the link LK1 larger than a predetermined angle as a third rotation axis; a joint mechanism JEr4 that connects the link LK2 and the tip portion TP1 and rotates the tip portion TP1 relative to the link LK2 around an axis Ax4 that forms an angle with the extension direction of the link LK2 larger than a predetermined angle as a fourth rotation axis; a joint mechanism JEp1 that moves the joint mechanism JEr3 relative to the link LK1 along the extension direction of the link LK1, and a joint mechanism JEp2 that moves the link LK2 relative to the joint mechanism JEr3 along the extension direction of the link LK2, and the tip part TP1 has a first part TP11 connected to the link LK2, a second part TP12 connected to the first part TP11, and a fourth rotation axis that connects the first part TP11 and the second part TP12 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 an axis Ax5 as a fifth rotation axis, and a joint mechanism JEr6 that rotates at least a part of the tip part TP1 around an axis Ax6 as a sixth rotation axis, the angle between which the axis Ax6 forms with the fifth rotation axis is greater than a predetermined angle. The multiple joint mechanisms JE are joint mechanism JEr1, joint mechanism JEr2, joint mechanism JEr3, joint mechanism JEr4, joint mechanism JEr5, joint mechanism JEr6, joint mechanism JEp1 and joint mechanism JEp2.
[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 respective movements of a plurality of types of robots.
[0243] In the present embodiment, the plurality of drive modes include a first drive mode in which the joint mechanisms JEr1, JEr2, JEr3, JEr4, JEr5, and JEr6 are the joint mechanisms JE to be driven, a second drive mode in which the joint mechanisms JEp1 and JEp2 are the joint mechanisms JE to be driven, a third drive mode in which the joint mechanisms JEr1, JEp1, and JEp2 are the joint mechanisms JE to be driven, a fourth drive mode in which the 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 the present embodiment, one robot 10 can perform the respective operations of a plurality of types of robots, such as a Cartesian robot, a horizontal multi-joint robot, and a vertical multi-joint robot.
[0244] [2. Modifications] The present invention is not limited to the above-described embodiments. Specific modified embodiments are exemplified below. Two or more embodiments selected from the following examples may be combined.
[0245] [First Modification] In the above embodiment, the joint mechanism JEr4 rotates the tip part TP1 relative to the link LK2 around the axis Ax4 perpendicular to the direction De2 in which the link LK2 extends, but the present invention is not limited to this. For example, the joint mechanism JEr4 may rotate the tip part 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] Fig. 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 Fig. 1 to Fig. 16 are given the same reference numerals, and detailed explanations 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 the robot 10 has a link LK2A, a joint mechanism JEr4A, and a tip part TP1A instead of the link LK2, joint mechanism JEr4, and tip part 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 TP1A, and rotates the tip TP1A relative to the link LK2A around an axis Ax4A parallel to the direction De2. The rotation direction Dr4 in Fig. 17 shows the rotation direction of the tip 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] In the tip part TP1A, the end effector 20 is attached to the end surface TP1sf in the same manner as in the tip part TP1 shown in FIG. 1. The tip part TP1A includes a first part TP11A connected to the link LK2A, a second part TP12A connected to the first part TP11A, a joint mechanism JEr5A, and a joint mechanism JEr6. The first part TP11A is connected to the link LK2A via, for example, a joint mechanism JEr4A. Therefore, the first part TP11A rotates with respect to the link LK2A about the axis Ax4A as the rotation axis.
[0250] The joint mechanism JEr5A connects the first part TP11A and the second part TP12A, and rotates the second part TP12A relative to the first part TP11A around an axis Ax5 perpendicular to the axis Ax4A. The rotation direction Dr5 in FIG. 1 indicates the rotation direction of the second part TP12A when rotating around the axis Ax5.
[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 part (for example, end face TP1sf) of the tip part TP1A around an axis Ax6 perpendicular to the axis Ax5 as a rotation axis. In the example shown in Fig. 17, the surface of the joint mechanism JEr6 corresponds to the end face TP1sf, similar to the joint mechanism JEr6 shown in Fig. 1. Note that in a configuration in which the joint mechanism JEr6 is included in the second part TP12A, the end face of the second part TP12A may be the end face TP1sf.
[0252] As described above, in this modified example, the joint mechanism JEr4A rotates the tip part TP1A relative to the link LK2A around the axis Ax4A, which forms an angle with the direction De2 equal to or smaller than a predetermined angle. The tip part TP1A includes a first part TP11 connected to the link LK2A, a second part TP12 connected to the first part TP11, a joint mechanism JEr5, and a joint mechanism JEr6. The joint mechanism JEr5 connects the first part TP11 and the second part TP12, and rotates the second part TP12 relative to the first part TP11 around the axis Ax5, which forms an angle with the axis Ax4A greater than a predetermined angle, as the rotation axis. The joint mechanism JEr6 rotates a part of the tip part TP1 to which the end effector 20 is attached (for example, the end face TP1sf) around the axis Ax6, which forms an angle with the axis Ax5 greater than a predetermined angle, as the rotation axis.
[0253] In this modified example, the same effects as those of the above-described embodiment can be obtained. For example, in this modified example, the tip part TP1 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 part BDP.
[0254] [Second modified example] In the above-described embodiment and modified example, the motor MOr3 that drives the joint mechanism JEr3 moves integrally with the joint mechanism JEr3, but the present invention is not limited to such an embodiment. For example, the motor MOr3 may be fixed to a predetermined location of the link LK1 so as to be able to drive the joint mechanism JEr3 even if the relative position of the joint mechanism JEr3 with respect to the link LK1 changes. In this modified example, the same effects as those of the above-described embodiment and modified example can be obtained.
[0255] [Third Modification] In the above-described embodiment and modified example, the robot 10 is exemplified as a vertical six-axis articulated robot to which two joint mechanisms JEp1 and JEp2 are added, but the present invention is not limited to such an embodiment. For example, the robot 10 may be a seven-axis or more articulated robot to which two joint mechanisms JEp1 and JEp2 are added. Specifically, one or more links LK different from the links LK1 and LK2 may be disposed between the body part BDP and the joint mechanism JEr2. Alternatively, one or more links LK different from the links LK1 and LK2 may be disposed between the joint mechanism JEr4 and the tip part TP1. That is, 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 the two joint mechanisms JEp1 and JEp2 to a four or more axis articulated robot.
[0257] As described above, in this modified example as well, the same effects as those of the above-described embodiment and modified example can be obtained.
[0258] [Fourth Modification] In the above-described embodiment and modified example, a case where a joint mechanism JE to be driven is selected by selecting a drive mode has been exemplified, but the present invention is not limited to such an aspect. 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 in which at least one of the plurality of joint mechanisms JE corresponds to the joint mechanism JE to be driven, to the robot 10. In this case, for example, the operation screen OPS shown in FIG. 5 may include a plurality of buttons BT corresponding one-to-one to the plurality of joint mechanisms JE, instead of the button BTs. The robot controller 30 may select, as a joint mechanism JE to be driven, a joint mechanism JE corresponding to a pressed button BT among the plurality of buttons BT, before the 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 seven or more joints, comprising the steps of: identifying at least one joint from the plurality of joints as a joint to be driven; and executing a calculation process including an inverse kinematics calculation to calculate a displacement amount of the identified joint to be driven among the plurality of joints, thereby calculating joint values related to the state of each of the plurality of joints so that the multi-joint robot is in a target state; and controlling the operation of the multi-joint robot based on the joint values of the plurality of joints calculated in the calculation process.
[0261] As described above, in this modified example, the same effects as those of the above-mentioned embodiment and modified example can be obtained. Furthermore, in this modified example, it is not necessary to set and store in advance the drive mode to be selected, 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-mentioned embodiment and modified examples may be used in a manufacturing method of an article including assembling or removing a part.
[0263] [4.Other] The distinction between the "turning" briefly explained in the above embodiment and other rotations will be described with some examples.
[0264] FIG. 18 is an explanatory diagram for explaining an example of turning. In FIG. 18, the distinction between turning and other rotations will be explained using the connection of two links LKi and LKj whose longitudinal directions can be grasped as an example. 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. In addition, the joint mechanism JEri in FIG. 18 connects the link LKi and the link LKj, 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 β 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 corresponds to a "turn". In other words, when the angle β between the extension direction Dei of the link LKi and the axis Axi is equal to or less than a predetermined angle, the rotation about the axis Axi corresponds to a rotation other than a turn (a rotation other than a turn that is distinguished from a turn). The "rotation" shown in FIG. 18 indicates a rotation other than a turn. In addition, the predetermined angle is not particularly limited, but in FIG. 18, the predetermined angle is assumed to be 45°. The angle β between the extension direction Dei and the axis Axi is an angle between 0° and 90° among a plurality of angles that are understood as the angle of the axis Axi with respect to the extension direction Dei (for example, four angles for two straight lines that intersect with each other, 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 greater than a 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 as the rotation axis, the angle of the extension direction Dej of the link LKj with respect to the extension direction Dei of the link LKi changes.
[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 turning. 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, 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 greater 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 if 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 is maintained at 70° and is always constant.
[0273] In this way, in the above-described embodiment and modified example, among the rotations of the link LKj with respect to the link LKi, the rotation about the axis Axi, which forms an angle with the extension direction Dei of the link LKi larger 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 definition that defines a turn as a rotation about the axis Axi, which forms an angle with the extension direction Dei of the link LKi larger than a predetermined angle, 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 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 is always constant even if 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 rotation other than a turn.
[0275] In the third definition, when the angle 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 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] In addition to the above-mentioned first, second and third definitions, the relative relationship between two rotations by two joint mechanisms JEr may be defined by focusing on the relationship between the rotation axes of the two joint mechanisms JEr adjacent to each other. Specifically, when the angle between the two rotation axes is equal to or less than a predetermined angle (typically parallel), the two rotations may be regarded as the same type of rotation, and when the angle between the two rotation axes is greater than a predetermined angle (typically perpendicular), the two rotations may be regarded as different types of rotation. The same type of rotation means that both rotations are rotations or both rotations are other than rotations, and the different type of rotation means that one of the two rotations is rotation and the other is other than rotation. When the definition of the relative relationship between two rotations is used, the rotation that is the starting point of the relative relationship may be determined based on, for example, any of the above-mentioned first, second and third definitions. The first pattern shown in Fig. 18 corresponds to a rotation in any of the first, second, and third definitions, and the second pattern corresponds to a rotation other than a rotation in any of the first, second, and third definitions. Therefore, it is preferable to set the first pattern or the second pattern as the rotation that is the starting point of the relative relationship.
[0277] Also, a definition that combines two or more of the above-mentioned first, second, and third definitions may be used. 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 as 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 as a rotation. [Explanation of symbols]
[0278] 1...robot system, 10...robot, 20...end effector, 30...robot controller, 32...processing device, 33...motion 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 part, JEp13a, JEp23a...slider part, JEp13b, JEp23b...support part, JEp14, JEp24...rail, JEp14a, JEp14b, JEp24a, JEp24b...rod-shaped member, JEr11, JEr21, JEr41, JEr51, JEr61...rotating part, JEr12, JEr22, JEr42, JEr52, JEr62...housing, LK1, LK2, LK2A, LKi, LKj...link, MOr1, MOr2, MOr3, MOr4, MOr5, MOr6, MOp1, MOp2...motor, RK...shelf, TY1, TY2...tray.
Claims
1. A method for controlling a multi-joint robot having seven or more joints, comprising the steps of: a plurality of drive modes are set in the articulated robot, in which at least one of the plurality of joints is associated with a joint to be driven; Selecting one of the plurality of driving modes; Executing a calculation process including an inverse kinematics calculation for calculating a displacement amount of the joint to be driven that is specified based on the one drive mode selected from the plurality of joints, thereby calculating joint values related to the states of the plurality of joints so that the articulated robot is in a target state; controlling an operation of the articulated robot based on the joint values of the plurality of joints calculated in the calculation process; A method for controlling an articulated robot.
2. When a fixed joint, which is a joint other than the driven joint, is present among the plurality of joints, a fixing process is executed in which the joint value of the fixed joint calculated in the calculation process is not substantially displaced.
2. The method for controlling an articulated robot according to claim 1.
3. In the calculation process, the inverse kinematics calculation is performed using a Jacobian matrix; In the fixing process, a value of an element related to the joint to be fixed among a plurality of elements of the Jacobian matrix is set to substantially 0, thereby not displacing the joint value of the joint to be fixed.
3. The method for controlling an articulated robot according to claim 2.
4. The plurality of joints includes at least one prismatic joint.
2. The method for controlling an articulated robot according to claim 1.
5. A teaching method for a multi-joint robot having seven or more joints, comprising: a plurality of drive modes are set in the articulated robot, in which at least one of the plurality of joints is associated with a joint to be driven; Selecting one of the plurality of driving modes; Executing a calculation process including an inverse kinematics calculation for calculating a displacement amount of the joint to be driven that is specified based on the one drive mode selected from the plurality of joints, thereby calculating joint values related to the states of the plurality of joints so that the articulated robot is in a target state; generating joint state information indicating the joint values of the plurality of joints calculated in the calculation process; A teaching method for an articulated robot comprising:
6. When a fixed joint, which is a joint other than the driven joint, is present among the plurality of joints, a fixing process is executed in which the joint value of the fixed joint calculated in the calculation process is not substantially displaced.
6. The teaching method for an articulated robot according to claim 5.
7. In the calculation process, the inverse kinematics calculation is performed using a Jacobian matrix; In the fixing process, a value of an element related to the joint to be fixed among a plurality of elements of the Jacobian matrix is set to substantially 0, thereby not displacing the joint value of the joint to be fixed.
7. The teaching method for an articulated robot according to claim 6.
8. The plurality of joints includes at least one prismatic joint.
6. The teaching method for an articulated robot according to claim 5.
9. a multi-joint robot having seven or more joints, and having a plurality of drive modes set in which at least one of the joints is associated with a joint to be driven; A control device including an operation control unit that controls the operation of the articulated robot; Equipped with The operation control unit is Selecting one of the plurality of driving modes; Executing a calculation process including an inverse kinematics calculation for calculating a displacement amount of the joint to be driven that is specified based on the one drive mode selected from the plurality of joints, thereby calculating joint values related to the states of the plurality of joints so that the articulated robot is in a target state; controlling an operation of the articulated robot based on the joint values of the plurality of joints calculated in the calculation process; A robot system comprising:
10. A multi-joint robot having seven or more joints; a control device including an operation control unit that controls an operation of the articulated robot, and a display control unit that displays on a display device a selection screen for selecting one of a plurality of drive modes in which at least one of the plurality of joints is associated as a joint to be driven; Equipped with The operation control unit is driving the joint of the drive target specified based on the one drive mode selected via the selection screen, and controlling the operation of the multi-joint robot so that the multi-joint robot is in a target state; A robot system comprising:
11. The articulated robot comprises: A base and A first link; A second link; A tip portion, a first drive mechanism that rotates at least a portion of the base about 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 and rotates the first link about an axis that forms an angle with a direction perpendicular to a bottom surface of the base that is larger than the predetermined angle as a second rotation axis; a third drive mechanism that connects the first link and the second link and rotates the second link relative to the first link about a third rotation axis that forms an angle with a direction in which the first link extends that is larger than the predetermined angle; a fourth drive mechanism that connects the second link and the tip end portion, and rotates the tip end portion relative to the second link about a fourth rotation axis that forms an angle with a direction in which the second link extends that is greater than the predetermined angle; a first moving mechanism that moves the third drive mechanism relative to the first link along an extension direction of the first link; a second moving mechanism that moves the second link relative to the third driving mechanism along an extension direction of the second link; Equipped with The tip portion is a first portion connected to the second link; a second portion connected to the first portion; a fifth drive mechanism that connects the first portion and the second portion and rotates the second portion relative to the first portion about a fifth rotation axis that is an axis that forms an angle with the fourth rotation axis greater than the predetermined angle; a sixth drive mechanism that rotates at least a portion of the tip portion about a sixth rotation axis that is an axis that forms an angle with the fifth rotation axis greater than the predetermined angle; Including, the plurality of joints are the first drive mechanism, the second drive mechanism, the third drive mechanism, the fourth drive mechanism, the fifth drive mechanism, the sixth drive mechanism, the first moving mechanism, and the second moving mechanism; The robot system according to claim 9 .
12. The plurality of driving 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 the joints to be driven; a second drive mode in which the first moving mechanism and the second moving mechanism are joints of the drive target; a third drive mode in which the first drive mechanism, the first moving mechanism, and the second moving mechanism are joints of the drive target; 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 drive target; a fifth drive mode in which all of the plurality of joints are the drive target joints; Including, The robot system according to claim 11 .
Citation Information
Patent Citations
Method of calibrating force sensor for robot device
JP1987074594A
Orthogonal robot
JP2013188796A
Horizontal articulated robot
JP2016215371A