Robot controller, robot system, robot control method, robot control program, and recording medium
The robot controller uses PTP and spherical linear interpolation with quaternions to simplify the setup of robot arm operations, ensuring precise and tilting-free movement of end effectors by separating position and posture control, addressing the complexity of existing CP control methods.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-03
- Publication Date
- 2026-03-12
AI Technical Summary
Existing robot arm control methods, such as CP control, require complex path settings to suppress tilting of an end effector during movement, making it difficult to easily set the operation for moving an end effector from a start point to an end point without tilting.
A robot controller that uses PTP control for position setting and spherical linear interpolation with quaternions for posture control, allowing easy setup of end effector movement by generating first and second commands based on start and end point pose information, with N1 degrees of freedom for position control and N2 degrees of freedom for posture control.
Enables easy and effective suppression of end effector tilting during movement by simplifying the operation setup, allowing for precise control of both position and posture using PTP and CP control techniques.
Smart Images

Figure JP2024031551_12032026_PF_FP_ABST
Abstract
Description
Robot controller, robot system, robot control method, robot control program, and recording medium
[0001] The present invention relates to a technique for controlling a robot arm having six or more degrees of freedom to move an end effector attached to the tip of the robot arm from a start point to an end point.
[0002] As shown in Patent Documents 1 to 4, a multi-joint robot arm can change the position and orientation of an end effector attached to the tip using multiple degrees of freedom. Also, as shown in these documents, constraints can be set on the operation of the robot arm that moves the end effector.
[0003] Japanese Patent Publication No. 2014-124761 Japanese Patent Publication No. 7114709 Japanese Patent Publication No. 2012-139762 WO2020 / 075423A1
[0004] For example, a robot arm can be configured to move an end effector from a starting point to an end point to transport a workpiece held by the end effector. Furthermore, when transporting a delicate workpiece, it is preferable to suppress changes in the end effector's posture between the starting point and the end point, thereby preventing the workpiece from tilting. Such end effector movement can be controlled using CP (Continuous Path) control. However, CP control requires the path of the end effector from the starting point to the end point to be set. In other words, compared to PTP (Pose-To-Pose) control, which requires only the setting of the starting point and the end point, CP control requires more complex settings.
[0005] The present invention has been made in consideration of the above-mentioned problems, and aims to make it possible to easily set the operation of a robot arm for moving an end effector from a starting point to an end point while suppressing tilting of the end effector's posture.
[0006] A robot controller according to the present invention is a robot controller that controls the robot arm to move the end effector of a robot that includes a robot arm having N degrees of freedom (N is an integer of 6 or more) and an end effector attached to one end of the robot arm from a start point to an end point, and includes an information acquisition unit that acquires start point pose information that indicates the position and orientation of the end effector at the start point and end point pose information that indicates the position and orientation of the end effector at the end point, and an information acquisition unit that acquires, from the other end opposite to the one end of the robot arm, N1 degrees of freedom (N1 is an integer of 3 or more and (N-3) or less) of the N degrees of freedom, to move the robot arm from the position indicated by the start point pose information to the position indicated by the end point pose information. a first command generation unit that generates a first command by PTP control to move the end effector to a position where the end effector is to be moved; and a second command generation unit that generates a second command to control the attitude of the end effector using N2 degrees of freedom from one end of the robot arm (N2 is an integer of 3 or more and (N-N1) or less) out of N degrees of freedom, wherein the second command generation unit calculates an intermediate posture of the end effector while it is moving from a position indicated by the start pose information to a position indicated by the end pose information, based on the posture indicated by the start pose information and the posture indicated by the end pose information, and generates a second command based on the operation of the robot arm in accordance with the first command and the intermediate posture of the end effector.
[0007] A robot system according to the present invention comprises a robot having a robot arm with N degrees of freedom (N is an integer greater than or equal to 6) and an end effector attached to one end of the robot arm, and the above-described robot controller.
[0008] The robot control method according to the present invention is a robot controller that controls a robot arm to move an end effector attached to one end of the robot arm having N degrees of freedom (N is an integer of 6 or more) from a start point to an end point, and includes the steps of acquiring start point pose information indicating the position and posture of the end effector at the start point and end point pose information indicating the position and posture of the end effector at the end point, and moving the end effector from the position indicated by the start point pose information to the position indicated by the end point pose information using N1 degrees of freedom (N1 is an integer of 3 or more and (N-3) or less) from the other end opposite to the one end of the robot arm. and generating a second command to control the posture of the end effector using N2 degrees of freedom (N2 is an integer of 3 or more and (N-N1) or less) from one end of the robot arm out of N degrees of freedom. In the second command generating step, a mid-movement posture, which is the posture of the end effector during movement from a position indicated by the start pose information to a position indicated by the end pose information, is calculated based on the posture indicated by the start pose information and the posture indicated by the end pose information, and the second command is generated based on the operation of the robot arm according to the first command and the mid-movement posture of the end effector.
[0009] A robot control program according to the present invention causes a computer to execute the robot control method described above.
[0010] A recording medium according to the present invention records the robot control program in a computer-readable manner.
[0011] In the present invention (robot controller, robot system, robot control method, robot control program, and recording medium) configured as described above, start point pose information and end point pose information are acquired to move an end effector attached to one end of a robot arm from a start point to an end point. The start point pose information indicates the position and orientation of the end effector at the start point, and the end point pose information indicates the position and orientation of the end effector at the end point. Then, a first command is generated to move the end effector from the position indicated by the start point pose information to the position indicated by the end point pose information using N1 degrees of freedom (N1 is an integer greater than or equal to 3 and less than or equal to (N-3)) of the N degrees of freedom possessed by the robot arm from the other end opposite the one end of the robot arm. In particular, this first command is generated by PTP control. In this way, the movement of the end effector from the position indicated by the start point pose information to the position indicated by the end point pose information can be easily set by PTP control of the N1 degrees of freedom from the other end of the robot arm. Furthermore, a second command is generated to control the posture of the end effector using N2 degrees of freedom (N2 is an integer greater than or equal to 3 and less than or equal to (N-N1)) from one end of the robot arm out of the N degrees of freedom. Specifically, a mid-travel posture, which is the posture of the end effector during movement from the position indicated by the start pose information to the position indicated by the end pose information, is calculated based on the posture indicated by the start pose information and the posture indicated by the end pose information. Then, a second command is generated based on the operation of the robot arm in accordance with the first command and the mid-travel posture of the end effector. Therefore, the posture of the end effector moving from the start point to the end point follows the second command for the N2 degrees of freedom. As a result, the position of the end effector moving from the start point to the end point can be easily set by PTP control for the N1 degrees of freedom, while the posture of the end effector moving from the start point to the end point can be appropriately controlled using the N2 degrees of freedom. In this way, it is possible to easily set the operation of the robot arm for moving the end effector from the starting point to the end point while suppressing tilting of the end effector's posture.
[0012] The robot controller may be configured so that N1 degrees of freedom are provided between the other end of the robot arm and a predetermined portion of the robot arm, and N2 degrees of freedom are provided between the predetermined portion of the robot arm and one end of the robot arm, and the second command generator calculates a trajectory indicating the position and orientation of the predetermined portion when the robot arm operates in accordance with the first command, and generates a second command based on the trajectory of the predetermined portion and the orientation of the end effector during movement. With this configuration, the second command is generated to absorb changes in the orientation of the trajectory of the predetermined portion of the robot arm that moves based on PTP control, thereby effectively suppressing tilting of the orientation of the end effector.
[0013] The robot controller may be configured such that the second command generator calculates the mid-movement posture by interpolating between the posture indicated by the start pose information and the posture indicated by the end pose information. With this configuration, an appropriate mid-movement posture can be easily calculated.
[0014] The robot controller may be configured so that the interpolation performed by the second command generator is spherical linear interpolation, which is effective in suppressing tilting of the posture of the end effector.
[0015] The robot controller may be configured such that the second command generator performs spherical linear interpolation using quaternions, which is effective in suppressing tilt of the posture of the end effector.
[0016] The robot controller may further include a user interface that accepts user input operations, and a command analysis unit that, upon analyzing the content of the input operation on the user interface and identifying a command requesting constraining the posture of the end effector between the start point and the end point, causes the first command generation unit to generate a first command and the second command generation unit to generate a second command. With this configuration, the user can constrain the posture of the end effector moving from the start point to the end point simply by inputting the start point and the end point and entering a predetermined command. In other words, it is possible to provide the user with usability similar to that of PTP control.
[0017] According to the present invention, it is possible to easily set the operation of a robot arm for moving an end effector from a start point to an end point while suppressing tilting of the posture of the end effector.
[0018] 1 is a diagram schematically showing an example of a robot system according to the present invention. FIG. 2 is a block diagram showing an example of the electrical configuration of a robot controller. FIG. 3 is a flowchart showing an example of posture constrained motion generation executed by a calculation unit in accordance with a motion generation program. FIG. 4 is a diagram schematically showing an example of a profile generated by the posture constrained motion of FIG. 3. FIG. 5 is a diagram schematically showing an example of a trajectory of an end effector moved by a robot arm that executes the motion generated by the posture constrained motion generation of FIG. 3. FIG. 6 is a diagram schematically showing another example of a trajectory of an end effector moved by a robot arm that executes the motion generated by the posture constrained motion generation of FIG. 3. FIG. 7 is a diagram schematically showing an example of a command description program. FIG. 8 is a diagram schematically showing an example of a command description program.
[0019] 1 is a diagram schematically illustrating an example of a robot system according to the present invention. In this embodiment, the X direction, which is a horizontal direction, the Y direction, which is a horizontal direction perpendicular to the X direction, and the Z direction, which is a vertical direction, are appropriately indicated. The robot system 1 in FIG. 1 includes a robot 2 and a robot controller 6 that controls the robot 2.
[0020] The robot 2 includes a multi-joint robot arm 3. The robot arm 3 has a tip E2 and a base E1 opposite the tip E2, in other words, the robot arm 3 extends from the base E1 to the tip E2. The base E1 of the robot arm 3 is fixed to a base B, thereby supporting the robot arm 3.
[0021] The robot 2 also has an end effector 4 attached to the tip E2, and the end effector 4 performs a predetermined task on the workpiece W. The end effector 4 may be a robot hand that grips the workpiece W with its claws, a suction gripper that attracts the workpiece W by vacuum or magnetic force, or a processing unit that performs processing such as welding or polishing. Note that FIG. 1 illustrates an example of the end effector 4 (suction gripper) that attracts the workpiece W.
[0022] The robot arm 3 is an N-axis robot arm having N joints J(n) between the base end E1 and the tip end E2 (n = 1, 2, ..., N). N is an integer equal to or greater than 6, and in the example of FIG. 1, N is 6. Furthermore, the robot arm 3 has M links L(m) between the base end E1 and the tip end E2 (m = 1, 2, ..., M). In the example of FIG. 1, the number M of links L(m) is one more than the number N of joints J(n). The N joints J(n) and the M links L(m) are arranged in series so that one joint J and one link L are arranged alternately. Here, the count value n of a joint J(n) is a positive integer and is a value obtained by counting the joints J in order from the base end E1 to the tip end E2. The count value m of a link L(m) is a positive integer and is a value obtained by counting the links L in order from the base end E1 to the tip end E2.
[0023] The first link L(1) stands upright on the base B, and the base end (lower end) of link L(1) corresponds to the base end E1 of the robot arm 3. Two joints J(m-1) and a joint J(m) are attached to both ends of the second to (M-1)-th links L(m). That is, a joint J(m-1) is attached to the end of the base end E1 of the link L(m), and a joint J(m) is attached to the end of the tip E2 of the link L(m). In this way, the N joints J(n) are connected in series via the link L. The Mth link L(M) protrudes from the Nth joint J(N) toward the tip E2. The tip of this link L(M) corresponds to the tip E2 of the robot arm 3. Each of the N joints J(n) has a degree of freedom in a predetermined direction (rotational direction / linear direction). This robot arm 3 can move the end effector 4 with N degrees of freedom by displacing each of the N joints J(n). The joint J may be either a rotary joint or a prismatic joint. When the joint J is a rotary joint, the rotation angle of the joint J is the displacement amount of the joint J. When the joint J is a prismatic joint, the prismatic distance of the joint J is the displacement amount of the joint J.
[0024] In the posture constraint motion generation ( FIG. 3 ) described below, the fourth link L(4) is referred to as the wrist link Lw. This wrist link Lw is a link L between the N1 joints J(1) to J(3) that control the position of the end effector 4 and the N2 joints J(4) to J(6) that control the posture of the end effector 4. Here, N1 is an integer greater than or equal to 3 and less than or equal to (N−3), and N2 is an integer greater than or equal to 3 and less than or equal to (N−N1). In other words, the robot arm 3 has N1 joints J (in other words, N1 degrees of freedom) on the base end E1 side of the wrist link Lw, and N2 joints J (in other words, N2 degrees of freedom) on the tip end E2 side of the wrist link Lw.
[0025] FIG. 2 is a block diagram showing an example of the electrical configuration of the robot controller. The robot controller 6 has a calculation unit 61, a storage unit 62, a UI 63, and a communication unit 64. The calculation unit 61 is a processor such as a CPU (Central Processing Unit). The storage unit 62 is a storage device such as an SSD (Solid State Drive). The UI 63 is a user interface having input devices such as a keyboard or a mouse and an output device such as a display. The input device and the output device do not need to be configured separately, but may be configured integrally using a touch panel display or the like. The communication unit 64 communicates with the robot 2 or other external devices.
[0026] The storage unit 62 stores a command description program 621 in which commands that define the movements of the robot 2 are written in a predetermined language. The calculation unit 61 generates the command description program 621 in response to a user's input operation accepted by the UI 63, and stores the command description program 621 in the storage unit 62. Furthermore, the storage unit 62 stores a movement generation program 622 that generates movements of the robot 2 based on the commands written in the command description program 621. This movement generation program 622 is downloaded by the communication unit 64 from, for example, an external server (recording medium), and stored in the storage unit 62.
[0027] The calculation unit 61 executes the motion generation program 622 read from the storage unit 62, thereby configuring a data acquisition unit 611, a first command generation unit 612, a second command generation unit 613, a command integration unit 614, and a data analysis unit 615 within the calculation unit 61. The calculation unit 61 executes the posture constraint motion generation shown in FIG. 3 in accordance with the motion generation program 622.
[0028] Figure 3 is a flowchart showing an example of posture constraint motion generation executed by a calculation unit according to a motion generation program, Figure 4 is a diagram showing a schematic example of a profile generated by the posture constraint motion of Figure 3, Figure 5A is a diagram showing a schematic example of a trajectory of an end effector moved by a robot arm executing the motion generated by the posture constraint motion generation of Figure 3, and Figure 5B is a diagram showing a schematic example of another example of a trajectory of an end effector moved by a robot arm executing the motion generated by the posture constraint motion generation of Figure 3.
[0029] 3 generates a motion of the robot arm 3 that moves the end effector 4 from the start point Ps to the end point Pe while constraining the posture of the end effector 4. Here, generating a motion of the robot arm 3 corresponds to creating a command to be sent to the robot arm 3 to execute the motion. In other words, the joints J(n) of the robot arm 3 are displaced in accordance with the command, thereby moving the end effector 4 from the start point Ps to the end point Pe.
[0030] In step S101, the data acquisition unit 611 acquires start point data Ds described in the command description program 621. This start point data Ds indicates the position (x coordinate, y coordinate, z coordinate) and orientation (roll angle, pitch angle, yaw angle) of the end effector 4 at the start point Ps. Note that the start point data Ds that gives the position and orientation of the end effector 4 at the start point Ps may also be data indicating the displacement amount of each joint J(n). In other words, the position and orientation of the end effector 4 expressed in the XYZ coordinate system and the position and orientation of the end effector 4 expressed by the displacement amount of the joint J(n) are associated by a kinematic calculation. Therefore, providing the latter data is essentially equivalent to providing the former data.
[0031] In step S102, the data acquisition unit 611 acquires the end point data De described in the command description program 621. This end point data De indicates the position (x coordinate, y coordinate, z coordinate) and orientation (roll angle, pitch angle, yaw angle) of the end effector 4 at the end point Pe. Note that, for the same reason as in the case of the start point Ps, the end point data De that gives the position and orientation of the end effector 4 at the end point Pe may also be data indicating the displacement amount of each joint J(n).
[0032] In step S103, the first command generator 612 calculates the displacement amount of each of the N1 joints J(n) (i.e., joints J(1) to J(N1)) for positioning the end effector 4 at the position and orientation indicated by the start point data Ds. Specifically, the displacement amount (start point displacement amount) of each of the N1 joints J(n) is calculated by performing an inverse kinematics calculation on the position and orientation indicated by the start point data Ds. Note that if data indicating the displacement amount of each joint J(n) is acquired as the start point data Ds in step S101, then calculation using inverse kinematics is not necessary.
[0033] In step S104, the first command generator 612 calculates the displacement amount of each of the N1 joints J(n) (i.e., joints J(1) to J(N1)) for positioning the end effector 4 at the position and orientation indicated by the end point data De. Specifically, the displacement amount (end point displacement amount) of each of the N1 joints J(n) is calculated by performing an inverse kinematics calculation on the position and orientation indicated by the end point data De. Note that if data indicating the displacement amount of each joint J(n) is acquired as the end point data De in step S102, then the calculation using inverse kinematics is not necessary.
[0034] In step S105, the first command generator 612 calculates a profile F of the joint J(n) when the joint J(n) is displaced from the starting displacement amount calculated in step S103 to the end displacement amount calculated in step S104. This profile F indicates the time change of a physical quantity (the position, velocity, or acceleration of the joint J(n)) related to the displacement amount of the joint J(n). In the example of FIG. 4, the profile F indicates the time change of the velocity of the joint J(n). In particular, the profile F is calculated for each of the N1 joints J(n) by PTP control. In other words, without considering the coordinated movement of the N1 joints J(n), the profile F for displacing one joint J(n) from the displacement amount corresponding to the starting point Ps (starting displacement amount) to the displacement amount corresponding to the end point Pe (end displacement amount) is calculated individually for each of the N1 joints J(n).
[0035] In step S106, the first command generator 612 generates commands (PTP joint commands) for each of the N1 joints J(n) by sampling, at a predetermined sampling period, each of the profiles F for each of the N1 joints J(n) obtained by PTP control. In the example of FIG. 3 , a velocity command requesting the joint J(n) to displace at the velocity indicated by the profile F is generated as the PTP joint command. Note that if the profile F indicates a change in acceleration over time, an acceleration command is generated as the PTP joint command, and if the profile F indicates a change in position over time, a position command is generated as the PTP joint command. In this way, N1 PTP joint commands corresponding to the N1 joints J(n) are generated.
[0036] In step S107, the second command generator 613 calculates the trajectory of the wrist link Lw that moves by PTP control of the N1 joints J(1) to J(N1) in steps S101 to S106. That is, a wrist trajectory is calculated that indicates the change over time in the position and posture of the wrist link Lw when the N1 joints J(1) to J(N1) are displaced in accordance with the PTP joint command. This wrist trajectory can be calculated by performing a calculation using forward kinematics on the displacement amounts of the N1 joints J(1) to J(N1) that are displaced in accordance with the PTP joint command.
[0037] Furthermore, when data acquisition unit 611 acquires start point data Ds and end point data De (steps S101 and S102), second command generation unit 613 executes steps S108 to S110 in parallel with execution of steps S103 to S106 by first command generation unit 612. That is, the period during which first command generation unit 612 executes steps S103 to S106 and the period during which second command generation unit 613 executes steps S108 to S110 at least partially overlap. However, it is not essential that these periods overlap.
[0038] In step S108, the second command generation unit 613 calculates a mid-movement posture Tm, which is the posture of the end effector 4 during movement from the start point Ps to the end point Pe. Specifically, the second command generation unit 613 calculates the mid-movement posture Tm of the end effector 4 by performing spherical linear interpolation using quaternions on the posture (roll angle, pitch angle, yaw angle) of the end effector 4 indicated by the start point Ps and the posture (roll angle, pitch angle, yaw angle) of the end effector 4 indicated by the end point Pe. This mid-movement posture Tm indicates the posture of the end effector 4 moving from the start point Ps to the end point Pe at each time.
[0039] In step S109, the second command generator 613 generates a profile F for each of the N2 joints J(n) (i.e., joints J(N-N2+1) to J(N)) from the mid-movement posture Tm. That is, as described above, the mid-movement posture Tm indicates the posture of the end effector 4 at each time. In response to this, an inverse kinematics calculation is performed on the posture of the end effector 4 indicated by the mid-movement posture Tm to calculate the displacement amount of each of the N2 joints J(n) at each time, thereby calculating the profile F for each of the N2 joints J(n). In other words, the profile F for each of the N2 joints J(n) is calculated by CP control.
[0040] In step S110, the second command generator 613 generates commands (CP joint commands) for each of the N2 joints J(n) by sampling, at a predetermined sampling period, each of the profiles F for each of the N2 joints J(n) obtained by CP control. As described above, if the profile F indicates a time change in velocity, a velocity command is generated as the CP joint command; if the profile F indicates a time change in acceleration, an acceleration command is generated as the CP joint command; and if the profile F indicates a time change in position, a position command is generated as the CP joint command. In this way, N2 CP joint commands corresponding to the N2 joints J(n) are generated.
[0041] In step S111, the second command generator 613 generates joint commands (posture constraint joint commands) corresponding to the N2 joints J(n) based on the wrist trajectory of the wrist link Lw calculated in step S107 and the CP joint command generated in step S110. That is, in steps S108 to S110, CP joint commands are calculated for the N2 joints J(n) so that the end effector 4 maintains the mid-movement posture Tm using the N2 joints J(n) located on the tip E2 side of the wrist link Lw. However, the posture of the wrist link Lw holding the N2 joints J(n) changes as the N1 joints J(n) holding the wrist link Lw are displaced in accordance with the PTP joint command. In contrast, the wrist trajectory calculated in step S107 indicates this change in posture of the wrist link Lw. Therefore, a posture constraint joint command is generated by offsetting the posture of the wrist link Lw indicated by the wrist trajectory from the CP joint command. By displacing the N2 joints J(n) in accordance with these posture constraint joint commands, it is possible to move the end effector 4 along the mid-movement posture Tm, regardless of the posture change of the wrist link Lw due to PTP control. In this way, N2 posture constraint joint commands corresponding to the N2 joints J(n), respectively, are generated.
[0042] In step S112, the command integration unit 614 generates an integrated joint command by integrating the PTP joint commands for the N1 joints J(n) generated in step S106 and the posture constraint joint commands for the N2 joints J(n) generated in step S111. In this way, integrated joint commands are generated for all of the N joints J(n) of the robot arm 3. Then, each joint J(n) of the robot arm 3 is displaced in accordance with the integrated joint command, causing the end effector 4 to move as shown in FIG. 5A or 5B .
[0043] In Figures 5A and 5B, the orientations Ts and Te of the end effector 4 are indicated by dashed lines. In the example of Figure 5A, the orientation Ts of the end effector 4 at the start point Ps and the orientation Te of the end effector 4 at the end point Pe are the same. Therefore, the mid-movement orientation Tm of the end effector 4 moving from the start point Ps to the end point Pe does not change and is the same as the orientation Ts and the orientation Te. In the example of Figure 5B, the orientation Ts of the end effector 4 at the start point Ps is inclined at an angle α with respect to the Z direction, and the orientation Te of the end effector 4 at the end point Pe is inclined at an angle β with respect to the Z direction, which is different from the angle α. Therefore, the mid-movement orientation Tm of the end effector 4 moving from the start point Ps to the end point Pe changes from the orientation Ts to the orientation Te, and the angle γ of the mid-movement orientation Tm changes from the angle α to the angle β. In this case, the magnitude of the angle γ falls within the range between the angles α and β.
[0044] In the embodiment described above, to move the end effector 4 attached to the tip E2 (one end) of the robot arm 3 from the start point Ps to the end point Pe, start point data Ds (start point pose information) and end point data De (end point pose information) are acquired (steps S101 and S102). The start point data Ds indicates the position and orientation of the end effector 4 at the start point Ps, and the end point data De indicates the position and orientation of the end effector 4 at the end point Pe. Then, of the N degrees of freedom (joints J(n)) possessed by the robot arm 3, N1 degrees of freedom (joints J(1) to J(N1)) from the base end E1 (the other end) of the robot arm 3 are used to generate a PTP joint command (first command) for moving the end effector 4 from the position indicated by the start point data Ds to the position indicated by the end point data De (steps S103 to S106). In particular, this PTP joint command is generated by PTP control. In this way, movement of the end effector 4 from the position indicated by the start point data Ds to the position indicated by the end point data De can be easily set by PTP control of the N1 degrees of freedom (joints J(1) to J(N1)) from the base end E1 of the robot arm 3. Furthermore, a posture constraint joint command (second command) is generated to control the posture of the end effector 4 using N2 degrees of freedom (joints J(N-N2+1) to J(N)) from the tip E2 of the robot arm 3 out of the N degrees of freedom (joint J(n)) (steps S107, S108 to S111). Specifically, a mid-travel posture Tm, which is the posture of the end effector 4 during movement from the position indicated by the start point data Ds to the position indicated by the end point data De, is calculated based on the posture indicated by the start point data Ds and the posture indicated by the end point data De (step S108). Then, a posture constraint joint command is generated based on the operation of the robot arm 3 according to the PTP joint command and the mid-movement posture Tm of the end effector 4 (step S111). Therefore, the posture of the end effector 4 moving from the start point Ps to the end point Pe follows the posture constraint joint commands for the N2 degrees of freedom (joints J(N-N2+1) to J(N)).As a result, the position of the end effector 4 moving from the start point Ps to the end point Pe can be easily set using PTP control for N1 degrees of freedom (joints J(1) to J(N1)), while the posture of the end effector 4 moving from the start point Ps to the end point Pe can be appropriately controlled using N2 degrees of freedom (joints J(N-N2+1) to J(N)). In this way, it is possible to easily set the operation of the robot arm 3 for moving the end effector 4 from the start point Ps to the end point Pe while suppressing tilt in the posture of the end effector 4.
[0045] Furthermore, N1 degrees of freedom (joints J(1) to J(N1)) are provided between the base end E1 of the robot arm 3 and the wrist link Lw (a predetermined portion) of the robot arm 3, and N2 degrees of freedom (joints J(N-N2+1) to J(N)) are provided between the wrist link Lw of the robot arm 3 and the tip E2 of the robot arm 3. In response to this, the second command generator 613 calculates a wrist trajectory indicating the position and posture of the wrist link Lw when the robot arm 3 operates in accordance with the PTP control command (step S107), and generates a posture constraint joint command based on the wrist trajectory and the mid-movement posture Tm of the end effector 4 (step S111). With this configuration, the posture constraint joint command is generated to absorb changes in the posture of the trajectory of the wrist link Lw of the robot arm 3 that moves based on PTP control, thereby effectively suppressing tilting of the posture of the end effector 4.
[0046] The second command generator 613 also calculates the mid-movement posture Tm by interpolating between the posture indicated by the start point data Ds and the posture indicated by the end point data De (step S108). With this configuration, it is possible to easily calculate an appropriate mid-movement posture Tm that suppresses changes in the posture of the end effector 4.
[0047] The interpolation performed by the second command generator 613 is spherical linear interpolation. This configuration is effective in suppressing tilting of the posture of the end effector 4.
[0048] Furthermore, the second command generator 613 performs spherical linear interpolation using quaternions. This configuration is effective in suppressing tilting of the posture of the end effector 4.
[0049] The command description program 621 is created by a user's operation on the UI 63 and is stored in the storage unit 62. Figures 6A and 6B are diagrams schematically showing examples of the command description program. In particular, Figure 6A shows the command description program 621 that requests the generation of a robot arm movement without executing the posture constraint movement generation of Figure 3, and Figure 6B shows the command description program 621 that requests the generation of a robot arm movement by executing the posture constraint movement generation of Figure 3.
[0050] 6A and 6B have in common the commands on lines 1 to 3. The command on line 1 requests the generation of pose_targ_1, which indicates a position and posture given by the coordinates (x1, y1, z1, r1, p1, y1), as the start point Ps. The command on line 2 requests the generation of pose_targ_2, which indicates a position and posture given by the coordinates (x2, y2, z2, r2, p2, y2), as the end point Pe. The command on line 3 requests the generation of an operation of the robot arm 3 that moves the end effector 4 to the start point Ps using PTP control.
[0051] 6A requests the generation of an operation of the robot arm 3 that moves the end effector 4 to the end point Pe by PTP control. That is, according to the command description program 621 in Fig. 6A, joint commands for N joints J(n) that move the end effector 4 from the start point Ps to the end point Pe are generated by PTP control.
[0052] On the other hand, the command (robot.move_ptp_with_rotation_constraint(pose_targ_2)) on the fourth line of the command description program 621 in Fig. 6B requests the generation of a motion for the robot arm 3 that moves the end effector 4 to the end point Pe by the posture constrained motion generation shown in Fig. 3. That is, according to the command description program 621 in Fig. 6B, joint commands for N joints J(n) that move the end effector 4 from the start point Ps to the end point Pe are generated by the posture constrained motion generation.
[0053] When the data analysis unit 615 analyzes the command description program 621 and confirms that the command on the fourth line in Fig. 6A is included in the command description program 621, it generates a joint command by PTP control. On the other hand, when the data analysis unit 615 analyzes the command description program 621 and confirms that the command on the fourth line in Fig. 6B is included in the command description program 621, it generates a joint command by posture constraint operation generation.
[0054] That is, the robot controller 6 includes a UI 63 that accepts user input operations and a data analysis unit 615 that analyzes a command description program 621 input through the UI 63. When the data analysis unit 615 analyzes the command description program 621 and finds a command requesting that the posture of the end effector 4 be constrained between the start point Ps and the end point Pe (the command on the fourth line in FIG. 6B ), the data analysis unit 615 causes the calculation unit 61 to execute the posture constraining operation generation shown in FIG. 3 . With this configuration, the user can constrain the posture of the end effector 4 moving from the start point Ps to the end point Pe simply by inputting the start point Ps and the end point Pe and entering a predetermined command. In other words, it is possible to provide the user with usability similar to that of PTP control.
[0055] As described above, in the above embodiment, the robot arm 3 corresponds to an example of a "robot arm" of the present invention, the tip E2 corresponds to an example of a "one end" of the present invention, the end effector 4 corresponds to an example of an "end effector" of the present invention, the robot 2 corresponds to an example of a "robot" of the present invention, the start point Ps corresponds to an example of a "start point" of the present invention, the end point Pe corresponds to an example of an "end point" of the present invention, the robot controller 6 corresponds to an example of a "robot controller" of the present invention, the start point data Ds corresponds to an example of "start point pose information" of the present invention, the end point data De corresponds to an example of "end point pose information" of the present invention, the data acquisition unit 611 corresponds to an example of an "information acquisition unit" of the present invention, the PTP joint command corresponds to an example of a "first command" of the present invention, and the first command generation unit 612 corresponds to an example of a "robot controller" of the present invention. the posture constraint joint command corresponds to an example of a "second command" of the present invention; the second command generation unit 613 corresponds to an example of a "second command generation unit" of the present invention; the mid-movement posture Tm corresponds to an example of a "mid-movement posture" of the present invention; the wrist link Lw corresponds to an example of a "predetermined portion" of the present invention; the wrist trajectory corresponds to an example of a "trajectory" of the present invention; the UI 63 corresponds to an example of a "user interface" of the present invention; the data analysis unit 615 corresponds to an example of a "command analysis unit" of the present invention; the robot system 1 corresponds to an example of a "robot system" of the present invention; the motion generation program 622 corresponds to an example of a "robot control program" of the present invention; and the external server or the memory unit 62 corresponds to an example of a "recording medium" of the present invention.
[0056] The present invention is not limited to the above-described embodiment, and various modifications can be made to the above-described embodiment without departing from the spirit of the present invention. For example, the specific configuration of the robot arm 3 may be modified as appropriate. Therefore, the number of joints J(n) and degrees of freedom of the robot 2 may be modified as appropriate, as long as they are six or more.
[0057] Furthermore, the specific location of the wrist link Lw is not limited to the above example. In other words, the location of the wrist link Lw can be freely changed as long as it satisfies the condition that there are three or more degrees of freedom on the base end E1 side of the wrist link Lw and three or more degrees of freedom on the tip end E2 side of the wrist link Lw.
[0058] Furthermore, it is not essential to use quaternions in the spherical linear interpolation for determining the mid-movement posture Tm. Alternatively, the mid-movement posture Tm may be determined by a method other than the spherical linear interpolation.
[0059] REFERENCE SIGNS LIST 1...Robot system 2...Robot 3...Robot arm 4...End effector 6...Robot controller 611...Data acquisition unit 612...First command generation unit 613...Second command generation unit 615...Data analysis unit 62...Storage unit 622...Movement generation program 63...UI De...End point data Ds...Start point data E2...Tip Lw...Wrist link Pe...End point Ps...Start point Tm...Posture during movement
Claims
1. A robot controller for controlling a robot arm having N degrees of freedom (N is an integer of 6 or more) and an end effector attached to one end of the robot arm to move the end effector from a start point to an end point, the robot controller comprising: an information acquisition unit that acquires start pose information indicating the position and posture of the end effector at the start point and end pose information indicating the position and posture of the end effector at the end point; a first command generation unit that generates a first command by PTP control to move the end effector from a position indicated by the start pose information to a position indicated by the end pose information, using N1 degrees of freedom (N1 is an integer of 3 or more and (N-3) or less) from the other end opposite to the one end of the robot arm out of the N degrees of freedom; and a second command generation unit that generates a second command to control the posture of the end effector using N2 degrees of freedom (N2 is an integer of 3 or more and (N-N1) or less) from the one end of the robot arm out of the N degrees of freedom. The second command generation unit calculates an in-progress posture of the end effector while it is moving from the position indicated by the start pose information to the position indicated by the end pose information, based on the posture indicated by the start pose information and the posture indicated by the end pose information, and generates the second command based on the movement of the robot arm in response to the first command and the in-progress posture of the end effector.
2. A robot controller as described in claim 1, wherein the N1 degrees of freedom are provided between the other end of the robot arm and a predetermined portion of the robot arm, the N2 degrees of freedom are provided between the predetermined portion of the robot arm and the one end of the robot arm, and the second command generation unit calculates a trajectory indicating the position and posture of the predetermined portion when the robot arm operates in accordance with the first command, and generates the second command based on the trajectory of the predetermined portion and the mid-movement posture of the end effector.
3. A robot controller as described in claim 1 or 2, wherein the second command generation unit calculates the mid-movement posture by interpolating between the posture indicated by the start point pose information and the posture indicated by the end point pose information.
4. A robot controller according to claim 3, wherein the interpolation performed by the second command generating unit is spherical linear interpolation.
5. A robot controller according to claim 4, wherein the second command generating unit performs the spherical linear interpolation using a quaternion.
6. A robot controller as described in any one of claims 1 to 5, further comprising: a user interface that accepts input operations from a user; and a command analysis unit that, upon analyzing the content entered by the input operation on the user interface and confirming a command requesting constraint on the posture of the end effector between the starting point and the ending point, causes the first command generation unit to generate the first command and the second command generation unit to generate the second command.
7. A robot system comprising: a robot arm having N degrees of freedom (N is an integer equal to or greater than 6), an end effector attached to one end of the robot arm; and a robot controller according to any one of claims 1 to 6.
8. A robot controller for controlling a robot arm having N degrees of freedom (N is an integer of 6 or more) to move an end effector attached to one end of the robot arm from a starting point to an end point, comprising: a step of acquiring starting point pose information indicating the position and orientation of the end effector at the starting point, and end point pose information indicating the position and orientation of the end effector at the end point; a step of generating a first command by PTP control to move the end effector from the position indicated by the starting point pose information to the position indicated by the end point pose information, using N1 degrees of freedom (N1 is an integer of 3 or more and (N-3) or less) from the other end opposite to the one end of the robot arm, out of the N degrees of freedom; and a step of generating a second command to control the orientation of the end effector, using N2 degrees of freedom (N2 is an integer of 3 or more and (N-N1) or less) from the one end of the robot arm, out of the N degrees of freedom. In the step of generating the second command, a mid-movement posture of the end effector while it is moving from the position indicated by the start pose information to the position indicated by the end pose information is calculated based on the posture indicated by the start pose information and the posture indicated by the end pose information, and the second command is generated based on the movement of the robot arm in response to the first command and the mid-movement posture of the end effector.
9. A robot control program that causes a computer to execute the robot control method according to claim 8.
10. A recording medium on which the robot control program according to claim 9 is recorded so as to be readable by a computer.
Citation Information
Patent Citations
Control method for seven-shaft multi-joint robot, control program, and robot control device
JP2012139762A
Articulated robot, conveyance system, and control method of articulated robot
JP2014124761A
Robot, robot control apparatus, and robot system
JP2017170571A