Control device, robot system, and route generation method

The control device and method for generating robot arm routes address the inefficiencies in existing technologies by calculating and setting relay positions for interference avoidance, reducing computational load and ensuring safe navigation around obstacles.

WO2025022568A1PCT designated stage expired Publication Date: 2025-01-30KAWASAKI JUKOGYO KK
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2023/027196
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-25
Publication Date
2025-01-30

AI Technical Summary

Technical Problem

Current technologies for generating routes for multi-joint robot arms to move from a starting position to a target position while avoiding collisions with obstacles are computationally intensive and inefficient, particularly in scenarios where precise interference avoidance is required.

Method used

A control device and method that determine potential interference points between the robot arm and obstacles, generating candidate positions in interference avoidance directions using specific vector calculations to set relay positions that allow the robot arm to safely navigate around obstacles, thereby reducing calculation load and avoiding collisions.

Benefits of technology

The solution effectively reduces the calculation load and probability of interference by rationally setting relay positions, ensuring efficient route generation and obstacle avoidance, even when moving a robot arm with complex joint configurations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2023027196_30012025_PF_FP_ABST
    Figure JP2023027196_30012025_PF_FP_ABST
Patent Text Reader

Abstract

This control device that controls a robot arm comprises a control unit for generating a path along which to move a hand from a starting location to a target location. The control unit determines whether interference would occur if the hand moved in a straight path linking the starting location and the target location. The control unit sets a first location, which is a location that exists on the straight path on the starting location side relative to the interference location and is immediately before the robot arm and an obstacle would interfere with each other, generates at least one candidate location in an interference avoidance direction relative to the first location, sets one among the at least one candidate location as a second location, and generates a first path arriving at the target location from the starting location via the first location and the second location. The interference avoidance direction is derived using at least one of a first direction from a base end of the hand toward a first joint and a second direction from the first joint toward a second joint.
Need to check novelty before this filing date? Find Prior Art

Description

Control device, robot system, and path generation method

[0001] The present disclosure relates to a control device, a robot system, and a path generation method.

[0002] As exemplified by JP 2022-59740 A, a technique is known for generating a path for moving a hand of a multi-joint robot arm to a target position while avoiding collision between the robot arm and an obstacle. Such a technique is applied, for example, to a robot arm that performs a picking operation to transport a workpiece from a supply container to a shipping container.

[0003] In recent years, there has been a demand for further reduction in the calculation load in technology for automatically generating a path for moving the hand of a robot arm to a target position.

[0004] The present disclosure has been made to solve at least part of the above-mentioned problems, and can be realized, for example, in the following forms.

[0005] According to a first aspect of the present disclosure, there is provided a control device for controlling a robot arm including a base, a hand, and a plurality of joints, including a first joint closest to the hand and a second joint connected to the first joint by a link and closer to the base than the first joint. The control device includes a control unit that generates a path for moving the hand from a start position to a target position. The control unit is configured to determine whether interference between the robot arm and an obstacle will occur when the hand moves along a straight path connecting the start position and the target position. If interference occurs, the control unit is configured to set a first position that is located on the straight path closer to the start position from a position where the robot arm will interfere with the obstacle and is a position immediately before the robot arm interferes with the obstacle. The control unit is configured to generate at least one candidate position in an interference avoidance direction relative to the first position, the interference avoidance direction being derived using at least one of a first direction from a base end of the hand toward the first joint and a second direction from the first joint toward the second joint. The control unit is configured to set one of the at least one candidate position as a second position. The control unit is configured to generate, as the path, a first path that travels from the start position to the target position via the first position and the second position.

[0006] According to a second aspect of the present disclosure, there is provided a robot system. The robot system includes a robot arm, a first control device, and a second control device. The robot arm includes a base, a hand, and a plurality of joints. The plurality of joints include a first joint closest to the hand and a second joint connected to the first joint by a link and closer to the base than the first joint. The first control device is configured to generate a path for moving the hand from a start position to a target position. The first control device is configured to determine whether interference between the robot arm and an obstacle will occur when the hand moves along a linear path connecting the start position and the target position. If interference will occur, the first control device is configured to set a first position that is located on the linear path closer to the start position than a position where the robot arm will interfere with the obstacle, and that is a position immediately before the robot arm interferes with the obstacle. The first control device is configured to generate at least one candidate position in an interference avoidance direction relative to the first position, the interference avoidance direction being derived using at least one of a first direction from a base end of the hand toward the first joint and a second direction from the first joint toward the second joint. The first control device is configured to set one of the at least one candidate position as a second position. The first control device is configured to generate, as the path, a first path that extends from the start position to the target position via the first position and the second position. The second control device is configured to acquire the path generated by the first control device and control the operation of the robot arm.

[0007] According to a third aspect of the present disclosure, there is provided a path generation method for generating a path for moving a hand of a robot arm having a base, a hand, and a plurality of joints including a first joint closest to the hand and a second joint connected to the first joint by a link on the base side from a start position to a target position. The path generation method is a path generation method for determining whether interference between the robot arm and an obstacle will occur when the hand moves along a straight path connecting the start position and the target position. The path generation method is a path generation method for determining, when interference will occur, a first position on the straight path that is located on the start position side of a position where the robot arm will interfere with the obstacle and is a position immediately before the robot arm interferes with the obstacle. The path generation method is a path generation method for generating at least one candidate position in an interference avoidance direction relative to the first position, the interference avoidance direction being derived using at least one of a first direction from a base end of the hand toward the first joint and a second direction from the first joint toward the second joint. The route generation method sets one of the at least one candidate position as a second position, and generates a first route as the route from the starting position to the target position via the first position and the second position.

[0008] 11 is a diagram showing a robot system. FIG. 12 is a block diagram showing the configuration of the robot system. FIG. 13 is a diagram showing a flowchart of a path generation process. FIG. 14 is a diagram showing an initial position S0 of the tip of a hand and a target position G. FIG. 15 is an image diagram of interference determination when the tip of the hand moves along a linear path. FIG. 16 is a diagram for explaining an interference avoidance direction in a robot arm. FIG. 17 is a diagram showing an example of candidate positions generated in step S50. FIG. 18 is an image diagram showing first and second positions set in the path generation process and the posture of the robot arm at each position. FIG. 19 is a diagram showing a first path from the initial position to the target position via the first and second positions. FIG. 19 is a diagram showing a second path E2 generated by performing a pruning process on the first path E1 of FIG. 9. FIG. 19 is a diagram showing a first path generated by a conventional first path generation process. FIG. 20 is a diagram showing a second path generated by pruning the first path of FIG. 11. FIG. 21 is a diagram showing a first path generated by a conventional second path generation process. FIG. 22 is a diagram showing a second path generated by pruning the first path of FIG. 13. FIG. 23 is a diagram showing an example of an interference avoidance direction in another embodiment.

[0009] <Embodiment> <Configuration of Robot System> Fig. 1 is an explanatory diagram showing an example of a robot system 10 according to an embodiment. Fig. 2 is a schematic block diagram of the robot system 10. The robot system 10 includes a robot arm 100, a control device 200, a camera 300, and an input device 400. As shown in Fig. 1, a container C1 and a container C2 are installed in a working area A of the robot arm 100. The robot system 10 of this embodiment is configured to perform a picking operation, in which a workpiece W in the container C1 is grasped and moved to the container C2.

[0010] The robot arm 100 includes a base 110 as the base end of the robot arm 100, a hand 130, and a plurality of joints provided between the base 110 and the hand 130. The robot arm 100 of this embodiment is a vertical articulated robot with six degrees of freedom. The base 110 is fixed to a working area A. Two adjacent joints are connected by a link. Each of the plurality of joints includes known components such as a servo motor, an encoder, and a reducer. The plurality of joints includes a first joint J1 and a second joint J2. The first joint J1 is the joint closest to the hand 130 among the plurality of joints. The second joint J2 is a joint connected to the first joint J1 by a link L. The first joint J1 is also referred to as a wrist joint. The second joint J2 is also referred to as an elbow joint. In the following description, the part of the robot arm 100 that is closer to the base 110 than the second joint J2 will also be referred to as the body part 150.

[0011] The hand 130 is attached to the arm tip 120 of the robot arm 100. The arm tip 120 also serves as a mounting portion configured to detachably attach the hand 130. The hand 130 is also called a robot hand, an end effector, or a tool. A tip 131 of the hand 130 is the free end of the robot arm 100. The hand 130 is controlled by the control device 200 to grasp a workpiece W, which is the object of the work, and also to release the grasped workpiece W. As a result, for example, the robot arm 100 can grasp and move the workpiece W. The tip 131 of the hand 130 and the vicinity of the tip 131 are also referred to as the "hand tip of the robot arm 100" or simply as the "hand tip." When the hand 130 is not grasping a workpiece W, the "hand tip" corresponds to the tip 131 of the hand 130. When the hand 130 is gripping the workpiece W, the "hand tip" includes the tip 131 of the hand 130 and the workpiece W gripped by the hand 130. An example of the hand tip 135 is shown in FIG.

[0012] When the robot arm 100 grasps and moves the workpiece W, it is relatively difficult to control the body part 150 to avoid interference between the body part 150 and obstacles present in the working area A. This is because the robot arm 100 does not have redundant degrees of freedom. Therefore, the robot arm 100 is generally positioned with respect to the working area A so that the body part 150 does not interfere with the obstacles. In this embodiment, the positional relationship between the base 110 and the containers C1 and C2 is fixed in the working area A so that the body part 150 does not interfere with the containers C1 and C2 during operation of the robot arm 100.

[0013] The camera 300 captures an image of the working area A of the robot arm 100. The camera 300 is attached to a wall, a ceiling, or the like around the robot arm 100. The camera 300 may be attached to the robot arm 100. The image captured by the camera 300 is used by the control device 200 to grasp, for example, the positions and shapes of the containers C1 and C2 and the workpiece W.

[0014] The input device 400 is configured to be able to input various instructions to the control device 200. The instructions include, for example, an instruction to start a picking operation and an instruction to start a path generation process, which will be described later. As the input device 400, for example, various input terminals such as a touch panel can be applied.

[0015] The control device 200 generates a path for moving the hand 130 of the robot arm 100 to a target position. The control device 200 also controls the robot arm 100 to move the hand 130 along the generated path. The control device 200 will be described in detail below.

[0016] 2, the control device 200 includes a CPU (Central Processing Unit) 210, which is a processor, a memory 220, and an interface circuit 230. The control device 200 is communicatively connected to peripheral devices including the robot arm 100, the camera 300, and the input device 400 via the interface circuit 230. These communications can be performed using wireless communication or wired communication according to a known communication method.

[0017] The memory 220 includes a volatile memory and a non-volatile memory. The memory 220 stores a path generation program RP and a motion control program CP. The CPU 210 functions as a first control unit 211 by expanding and executing the path generation program RP stored in the memory 220. The first control unit 211 is an example of a "control unit" in the present disclosure. The first control unit 211 executes a path generation process, which will be described later. The CPU 210 also functions as a second control unit 212 by expanding and executing the motion control program CP stored in the memory 220. The second control unit 212 controls the operation of the robot arm 100 by controlling the rotation of servo motors at each joint, etc., so as to move the hand 130 along the path generated by the first control unit 211.

[0018] The memory 220 also stores various types of information that the first control unit 211 uses to generate a path for the robot arm 100. In this embodiment, the memory 220 stores position information, robot attribute data, and obstacle data.

[0019] The position information includes information on multiple positions, such as the start position S and target position G of the hand 130. Each "position" in the position information may include the position coordinates and orientation of the hand 130, and the position coordinates and angles of each joint. The posture is also called "orientation." When the path generation process is executed, the first position Pf and the second position Pr are stored in the memory 220 as position information.

[0020] The robot attribute data includes various robot characteristics such as the configuration, singular postures, and movable range of the robot arm 100. The movable range is also referred to as the operating range limit of the robot arm 100. The robot characteristics can also be used in the path generation process to determine (i) whether the robot arm 100 will reach the operating range limit, (ii) whether the robot arm 100 will interfere with itself, and (iii) whether the robot arm 100 will reach a singular posture. The obstacle data includes attribute data indicating the type and shape of an object present in the working area A and position data indicating the position and posture of the object. In this embodiment, the obstacle data is attribute data and position data of the containers C1 and C2, and is stored in advance in the memory 220. The obstacle data may be generated by the first control unit 211 sequentially acquiring image capture results from the camera 300.

[0021] <Route Generation Process> Hereinafter, specific functions of the first control unit 211 and the route generation process executed by the first control unit 211 will be described.

[0022] 3 is a flowchart of the path generation process executed by the first control unit 211. In this embodiment, the path generated by the first control unit 211 is, for example, a path for moving the workpiece W in the container C1 to the container C2 by the robot arm 100.

[0023] In step S10, the first control unit 211 refers to the memory 220 and acquires position information for generating a linear path in step S20. Specifically, the first control unit 211 acquires a start position S, which is the starting point of the linear path, and a target position G. FIG. 4 shows the position S0 of the tip 131 of the hand 130 that grips the surface of the workpiece W, the target position G, and the linear path L1. Note that in the following figures, the shape of the hand 130 is appropriately simplified for explaining the path generation process. The start position S at the start of the path generation process is position S0. The position at the start of the path generation process is also referred to as the "initial position."

[0024] In step S20, the first control unit 211 generates a straight path L1 connecting the start position S acquired in step S10 and the target position G. In FIG. 4, the straight path L1 connecting the position S0 and the position G is shown.

[0025] In step S30, the first control unit 211 determines whether or not the robot arm 100 will interfere with an obstacle when the hand 130 is moved along the generated linear path. As described above, the robot arm 100 of this embodiment is set in the working area A so that there is no interference between the body part 150 and the containers C1 and C2, which are obstacles. Therefore, "interference" in this embodiment essentially refers to interference between the obstacle and a portion of the robot arm 100 that is further to the tip side than the second joint J2.

[0026] The processing of step S30 will be described in detail. In this embodiment, the first control unit 211 discretizes the linear path generated in step S20 into a finite number of positions (points) and determines at each point whether interference between the robot arm 100 and an obstacle occurs. The first control unit 211 calculates the posture (orientation) of the robot arm 100 at each point using a known method such as inverse kinematics analysis. The second control unit 212 determines whether interference between the robot arm 100 and an obstacle occurs at each point by referring to obstacle data stored in the memory 220. Note that the spacing between each point when discretizing the linear path is stored in advance in the memory 220. The spacing is set to be smaller than, for example, the thickness t of the side wall C1w of the containers C1 and C2 shown in FIG. 4 so that interference with an obstacle can be determined.

[0027] 5 shows an image diagram of interference determination when the tip 131 of the hand 130 moves along the linear path L1. As shown in FIG. 5, when the tip 131 of the hand 130 moves to position S2 on the linear path L1, the container C1 interferes with the end effector 135 of the robot arm 100. If interference occurs, the first control unit 211 makes a positive determination in step S30 and proceeds to step S40. Note that the position (point) on the linear path where interference between the robot arm 100 and an obstacle occurs is also referred to as the "interference position." In FIG. 5, the interference position is position S2.

[0028] Returning to FIG. 3 , in step S40, the first control unit 211 acquires (sets) a first position Pf, which is the position immediately before interference. The first position Pf is a position on the linear path where the tip 131 of the hand 130 is retracted toward the start position S from the interference position. In this embodiment, the first position Pf is a position (point) on the linear path that is one position (point) away from the interference position toward the start position S. In FIG. 5 , the first position Pf corresponds to position S1 on the linear path L1. The first control unit 211 stores the acquired first position Pf in the memory 220 as position information.

[0029] Next, in step S50, the first control unit 211 generates at least one candidate position Pc. The at least one candidate position Pc is located in the interference avoidance direction relative to the first position Pf. The distance from the first position Pf to the at least one candidate position Pc is calculated. The distance between the first position Pf and the candidate position Pc is also referred to as the "movement amount." The interference avoidance direction and the movement amount for generating the at least one candidate position Pc will be described below.

[0030] Fig. 6 is a diagram for explaining the interference avoidance direction. Fig. 6 shows the position P0 of the arm tip 120 of the robot arm 100, the center position P1 of the joint J1, and the center position P2 of the joint J2. Position P0 is also the position of the base end of the hand 130. In this embodiment, positions P1 and P2 are the origins of the coordinates of the joints J1 and J2, respectively.

[0031] The interference avoidance direction is a direction based on at least one of a first direction D1 and a second direction D2. The first direction D1 is the direction from position P0 to position P1, i.e., the direction from the base end of the hand 130 toward the wrist joint J1. The second direction D2 is the direction from position P1 to position P2, i.e., the direction from the wrist joint J1 toward the elbow joint J2. Note that in FIG. 6 , the second direction D2 is illustrated starting from position P0. Because the first direction D1 and the second direction D2 are defined as described above, the interference avoidance direction in this embodiment is not affected by the shape of the hand 130. Note that the first direction D1 and the second direction D2 are also directions, as viewed from the hand 130, toward which any of the components constituting the robot arm 100, such as the joints J1 and J2, the link L, or the body part 150, are located.

[0032] In this embodiment, the interference avoidance direction further includes a third direction D3 based on the first direction D1 and the second direction D2. The third direction D3 is the direction of a resultant vector V1V2 generated based on a first vector V1 that connects positions P0 and P1 and has the first direction D1 as its vector direction, and a second vector V2 that connects positions P1 and P2 and has the second direction D2 as its vector direction. Here, if the unit vector of the first vector V1 is Ve1 and the unit vector of the second vector V2 is Ve2, the third vector V3 having the third direction D3 is expressed by the following equation (1) using coefficients α and β.

[0033] V3=αVe1+βVe2 Formula (1) where α>0, β>0, and α+β=1 are satisfied.

[0034] The first control unit 211 generates a plurality of third vectors V3a, V3b, V3c, etc., by calculating the above formula (1). Combinations of coefficients α and β for calculating formula (1) may be stored in advance in the memory 220. The direction of the third vector V3 (third direction D3) expressed by the above formula (1) is a plurality of directions between the direction D1 of the first vector V1 and the direction D2 of the second vector V2, such as arrows D3a, D3b, D3c, D3d, etc., shown in FIG. 6 . Similar to the first direction D1 and the second direction D2, the third direction D3 is a direction in which, as viewed from the hand 130, any of the components constituting the robot arm 100, such as the joints J1 and J2, the link L, or the body part 150, exists.

[0035] Next, the amount of movement in the interference avoidance direction will be described. FIG. 6 further illustrates a fourth vector V4 connecting positions P3 and P1, with a fourth direction D4 extending from position P3 of the tip 131 of the hand 130 toward position P1. Position P3 is the position of the tip 131 of the hand 130 that is farthest from the body part 150 among the multiple tips 131 of the hand 130. The amount of movement is calculated by the dot product of the fourth vector V4 and the vector of the interference avoidance direction. For example, the amount of movement from the first position Pf in the first direction D1 is calculated by the dot product of the first vector V1 and the fourth vector V4. Furthermore, the amount of movement from the first position Pf in the second direction D2 is calculated by the dot product of the second vector V2 and the fourth vector V4. Furthermore, the movement amount from the first position in the third direction D3 (D3a, D3b, D3c, D3d, . . . ) is calculated by the dot product of the third vectors V3a, V3b, V3c, V3d, . . . and the fourth vector V4. The movement amount calculated by this dot product is greater than the amount of the length of the hand 130 projected in the movement direction of the hand 130. Therefore, with respect to the portion of the robot arm 100 closer to the tip 131 than the wrist joint J1, the overlap between the area (occupied area in space) in which this portion exists immediately before interference and the area in which this portion exists after movement in the movement direction is smaller than, for example, a mode in which the hand 130 is moved the length of the hand 130 in the movement direction. Therefore, interference between the hand 130 and an obstacle on the linear path toward the target position G can be suppressed. The movement amount can be set in this manner because the interference avoidance direction is the direction in which one of the components constituting the robot arm 100 was located immediately before interference, and movement in the interference avoidance direction is likely to prevent new interference. The amount of movement may vary depending on the shape of the robot arm 100, but the amount of movement in this embodiment is greater than the height h of the side wall C1w shown in FIG. 4, for example.

[0036] As described above, in step S50, the first control unit 211 performs calculations using the interference avoidance direction and the movement amount to generate a plurality of candidate positions Pc to which the hand 130 should be moved from the first position Pf. The first control unit 211 stores the generated plurality of candidate positions Pc in the memory 220.

[0037] 7 shows two candidate positions Pc1a and Pc1b as examples of the candidate position Pc generated in step S50. Positions Pc1a and Pc1b are candidate positions generated using a first direction D1 and a second direction D2, respectively, as interference avoidance directions. Furthermore, in FIG. 7, the postures of the robot arm 100 at positions Pc1a and Pc1b are shown by dashed lines X1 and X2. As shown in FIG. 7, candidate positions Pc1a and Pc1b are relatively far from position S1 immediately before interference and are outside container C1.

[0038] Returning to FIG. 3 , in step S60, the first control unit 211 selects one of at least one candidate position Pc and sets it as the second position Pr. In this embodiment, the first control unit 211 selects one candidate position that is closest to the target position G from among the multiple candidate positions Pc generated in step S50. In the example shown in FIG. 7 , the candidate position that is closest to the target position G is position Pc1a. The first control unit 211 sets the selected position Pc1a as the second position Pr and stores it in the memory 220. The second position Pr becomes the new start position S in the next processing routine. Note that when the processes of steps S10 to S60 of the path generation process are repeatedly executed, multiple candidate positions generated in the past are stored in the memory 220. In this case, in step S50, the first control unit 211 selects one candidate position from the newly generated candidate position and the previously generated candidate positions that has not been set as the second position Pr in the past and is closest to the target position G.

[0039] In step S60, the first control unit 211 may determine whether interference occurs on a straight-line path from the first position Pf to the selected candidate position Pc. For example, if no interference occurs, the first control unit 211 sets the selected candidate position Pc as the second position Pr and stores the selected candidate position Pc in the memory 220. If interference occurs, the first control unit 211 selects the candidate position Pc next closest to the target position G from the multiple candidate positions Pc and determines whether interference occurs on a straight-line path from the first position Pf to the candidate position Pc. In this manner, the first control unit 211 may determine whether interference occurs for one selected candidate position and set the candidate position Pc from the multiple candidate positions Pc that does not cause interference and is closest to the target position G as the second position Pr. Note that the multiple candidate positions Pc are located in the direction in which the robot arm 100 is located, so there is a high possibility that interference between the robot arm 100 and an obstacle will not occur even if the hand 130 moves from the first position Pf to the candidate position Pc.

[0040] Returning to FIG. 3 , upon completion of step S60, the first control unit 211 returns the path generation process to step S10 and acquires position information again. The first control unit 211 acquires a position not used in generating the linear path as the start position S. Specifically, the first control unit 211 acquires the second position Pr set in step S60 as the start position S. In step S20, the first control unit 211 generates a new linear path from the second position Pr to the target position G, and in step S30, determines whether interference between the robot arm 100 and an obstacle occurs at each point on the linear path newly generated in step S20. If interference occurs on the newly generated linear path, the first control unit 211 acquires a first position Pf2 corresponding to the newly generated linear path in step S40. Next, in step S50, the first control unit 211 generates a new candidate position Pc2 corresponding to the first position Pf2. As described above, when the process from step S10 to step S60 of the route generation process has been executed two or more times, in step S50, the first control unit 211 selects one candidate position from among the newly generated candidate position and previously generated candidate positions that has not been set as the second position Pr in the past and is closest to the target position G, and sets this candidate position as the second position Pr2. In this way, the first control unit 211 repeats the process from step S10 to step S60 until a negative determination is made in step S30.

[0041] If no interference occurs between the robot arm 100 and an obstacle in step S30, the first control unit 211 proceeds to step S70, where it generates a path from the initial position S0 to the target position G using the position information stored in the memory 220 in the path generation process. If the position information includes a first position Pf and a second position Pr, the first control unit 211 generates a path that passes through the initial position S0, the first position Pf, and the second position Pr in sequence to reach the target position G by linear interpolation of each position. The first position Pf and the second position Pr serve as intermediate positions from the initial position S0 to the target position G. If the processes of steps S10 to S60 are repeated multiple times, the position information includes multiple first positions Pf and multiple second positions Pr corresponding to the multiple first positions Pf. The second control unit 212 acquires the path generated by the first control unit 211 and controls the operation of the robot arm 100 along the path. As a result, the workpiece W in the container C1 is moved to the container C2 while avoiding interference with obstacles.

[0042] FIG. 8 is an image diagram showing the first positions Pf1 and Pf2 and the second positions Pr1 and Pr2 set in the path generation process, and the posture of the robot arm 100 at each position. FIG. 8 also shows candidate positions Pc1a, Pc1b, Pc2a, and Pc2b. In the example shown in FIG. 8, the positions Pf1, Pf2, Pr1, and Pr2 are set as follows: First, in the first processing routine of the path generation process, a straight path L1 connecting the initial position S0 and the target position G is generated (step S20). Because interference occurs on the straight path L1 (step S30, YES), a first position Pf1 immediately before the interference is set (step S40). Furthermore, multiple candidate positions Pc1a and Pc1b located in the interference avoidance direction relative to the first position Pf1 are generated (step S50). Of the multiple candidate positions Pc1a and Pc1b, the candidate position Pc1a that is closest to the target position G is set as the second position Pr1 (step S60).

[0043] In the second processing routine, a straight path L2 is generated connecting the second position Pr1 set in the first processing routine with the target position G (step S20). Because interference occurs on the straight path L2 (step S30, YES), a first position Pf2 immediately before the interference is set (step S40). Furthermore, multiple candidate positions Pc2a and Pc2b located in the interference avoidance direction relative to the first position Pf2 are newly generated (step S50). Of the previously generated candidate positions Pc1a, Pc1b, Pc2a, and Pc2b, the candidate positions Pc that have not yet been set as the second position Pr are positions Pc1b, Pc2a, and Pc2b, and the candidate position Pc closest to the target position G is position Pc2b. Therefore, candidate position Pc2a is set as the second position Pr2 (step S60).

[0044] In the third processing routine, a straight path L3 is generated connecting the second position Pr2 set in the second processing routine with the target position G (step S20). No interference occurs on the straight path L3 (step S30, NO). Therefore, positions Pf1, Pr1, Pf2, and Pr2 serve as intermediate positions from the start position S0 to the target position G. In FIG. 9 , a path E1 is shown with an outline arrow, which starts from the start position S0 and passes through positions Pf1, Pr1, Pf2, and Pr2 in this order to reach the target position G. The straight path connecting all of the first positions Pf and second positions Pr from the initial position S0 to the target position G in the set order is also referred to as the first path E1.

[0045] 9 , the hand 135 of the robot arm 100 moves by linear interpolation of the tip 131. Therefore, for example, an operator or manager can visually recognize, as the operation of the robot system 10, the hand 135 moving in a straight line from the initial position S0 toward the target position G, significantly retracting in the direction of the wrist joint J1 just before interfering with the container C1, and then moving in a straight line again from the retracted position Pr1 toward the target position G.

[0046] The first control unit 211 may perform pruning processing on the first route E1 in step S70 of FIG. 3 . In FIG. 10 , a second route E2 generated by performing pruning processing on the first route E1 shown in FIG. 9 is indicated by an outline arrow. The pruning processing is a type of processing for reducing parameters. In this embodiment, the parameters correspond to relay positions. In the pruning processing, the first control unit 211 extracts any two positions from among the multiple positions included in the first route E1 and generates a straight route connecting the two extracted positions, similar to step S20 described above. Similarly to step S30, the first control unit 211 determines whether interference occurs on the straight route. If no interference occurs, the first control unit 211 connects the two positions with a straight line and deletes all first positions Pf and second positions Pr that exist between the two positions. The first control unit 211 generates a second route E2 that travels from the start position S0 via positions that remain after the pruning process to the target position G as the final route. In the example shown in FIG. 10 , because no interference occurs on the straight route connecting the position S0 and the position Pr2, the first control unit 211 deletes positions Pf1 and Pr1 between the position S0 and the position Pr2. Furthermore, because no interference occurs on the straight route connecting the position Pr2 and the position G, the first control unit 211 deletes position Pf2 between the position Pr2 and the position G. This generates a route E2 that has fewer relay positions than the first route E1. This allows the route to be further optimized.

[0047] The effects of this embodiment will be described below. According to this embodiment, when the hand 130 moves along a linear path connecting the start position S and the target position G and interference between the robot arm 100 and an obstacle occurs, the first control unit 211 sets a first position Pf and a second position Pr and generates a first path E1 passing through these positions. The interference avoidance direction is derived using at least one of a first direction D1 from the arm tip 120, which is the base end of the hand 130, toward the first joint J1 and a second direction D2 from the first joint J1 toward the second joint J2. Therefore, the interference avoidance direction is a direction in which components of the robot arm 100, such as the joints J1 and J2 and the link L connecting the joints, may be present. Therefore, the first position Pf immediately before interference and the second position Pr located in the interference avoidance direction are positions where interference with the obstacle can be reasonably avoided. As a result, the computational load for generating a path is effectively reduced. Note that the computational load includes at least one of the calculation time and the amount of calculation required for path generation. The computational load is also called the computational cost.

[0048] The interference avoidance direction is expressed by the above-mentioned formula (1) and includes the direction of a third vector V3 (third direction D3) based on a resultant vector V1V2 of a first vector V1 based on a first direction D1 and a second vector V2 based on a second direction D2. Therefore, since multiple candidate positions are generated, the possibility that an appropriate relay position (second position Pr) does not exist when interference occurs can be effectively reduced. Therefore, the possibility that interference with an obstacle becomes unavoidable during the path generation process can be effectively reduced.

[0049] Furthermore, as described above, in the path generation process of this embodiment, a relatively large movement amount can be set because movement in the interference avoidance direction is likely to prevent new interference. Therefore, for example, when the movement amount is less than the length of the hand 130, the repeated determination of whether interference with the container C1 will occur, the acquisition of the first position Pf, the generation of the candidate position Pc, and the setting of the second position Pr due to a small movement amount can be prevented. In other words, the repeated processing of steps S10 to S60 for one obstacle can be prevented. As a result, according to this embodiment, the calculation load for generating a path is effectively reduced.

[0050] The effects of the first embodiment will be further described with reference to a conventional path generation process. FIG. 11 illustrates a first path E1a generated by a random sampling process, which is a conventional first path generation process. FIG. 12 illustrates a second path E2a obtained by pruning the first path E1a. The path generation process using random sampling randomly samples a large number of positions of the hand 135 of the robot arm 100 and uses several positions among the sampled positions as relay positions. The second path E2a after pruning shown in FIG. 12 appears to be a reasonable shortest path from the start position S0 to the target position G. However, as shown in FIG. 11, the first path E1a for generating the second path E2a requires randomly sampling a large number of positions of the hand 135 of the robot arm 100. Therefore, the first path E1a of the conventional example is more redundant and takes more time to generate than the first path E1 of the present embodiment shown in FIG. 9. As described above, it can be seen that the route generation process of this embodiment can effectively reduce the calculation load compared to the conventional route generation process using random sampling.

[0051] Furthermore, a conventional second path generation process includes a process for generating a path that follows the surface of an obstacle. FIG. 13 illustrates a first path E1b generated by the second path generation process, and FIG. 14 illustrates a second path E2b obtained by performing a pruning process on the first path E1b. The conventional second path generation process is a process for acquiring the extension direction of the obstacle's surface and setting relay positions along the extension direction. In the second path generation process, relay positions are set along the extension direction of the obstacle's surface, so it is necessary to acquire the extension direction of the obstacle, which takes time to set the relay positions. Furthermore, the relay positions are set near the surface of the obstacle. Therefore, even after the pruning process, as shown in FIG. 14, the second path E2b may pass near the obstacle. Therefore, if there is an error between the obstacle data used to generate the path and the position of an obstacle actually existing in the working area A, interference with the obstacle may occur when the hand 130 moves along the generated path.

[0052] Among the relay positions set in this second path generation process in this embodiment, the first position Pf is a position immediately before interference with an obstacle, and the second position Pr is a position from the first position Pf in a direction toward a component of the robot arm 100. The amount of movement from the first position Pf to the second position Pr is the dot product of vectors V1, V2, and V3 in the interference avoidance direction and a fourth vector V4 extending from the tip 131 of the hand 130 toward the first joint J1. Therefore, according to this embodiment, relay positions that can rationally avoid interference with an obstacle can be set early. Furthermore, the possibility of interference with an obstacle when the hand 130 moves along the generated path can be significantly reduced.

[0053] <Other Embodiments> FIG. 15 is a diagram illustrating an example of an interference avoidance direction in another embodiment. The interference avoidance direction may further include a fifth direction D5. The fifth direction D5 is the direction of a fifth vector V5 extending from a position P3 of the tip 131 of the hand 130 to a position P0 of the arm tip 120, which is the base end of the hand 130. Position P3 is the position of the tip 131 farthest from the body part 150 among the multiple tips 131 of the hand 130. The first control unit 211 may generate a candidate position Pc by calculating the inner product of a vector V1 in the fifth direction D5 and a fourth vector V4 as the movement amount of the first position Pf. In this embodiment, the fifth vector V5 reflects the hand 130, thereby increasing the variety of the multiple candidate positions Pc generated in the path generation process. This effectively reduces the possibility of unavoidable interference with an obstacle.

[0054] In the above embodiment, the first control unit 211 may use the robot attribute data of the robot arm 100 to determine whether the robot arm 100 reaches the first state when the hand 130 moves along a linear path from the first position Pf to the second position Pr. The first state includes at least one of the following: (i) a state in which the robot arm 100 reaches a limit of its operating range; (ii) a state in which the robot arm 100 interferes with itself; and (iii) a state in which the robot arm 100 reaches a singular posture. For example, the first control unit 211 selects one of multiple candidate positions Pc in step S60 of FIG. 3 and generates a linear path from the first position Pf to the candidate position Pc (second position Pr). Next, if the robot arm 100 reaches the first state along the linear path, the first control unit 211 may add the position of the hand 130 on the linear path that is on the first position Pf side of the position of the hand 130 when the first state is reached and immediately before the hand 130 reaches the first state to the candidate positions. This configuration allows for generation of a path according to the characteristics of the robot arm 100. Furthermore, the first control unit 211 can continue the path generation process even when the robot arm 100 reaches the first state.

[0055] In the above embodiment, the movement amount is calculated as the dot product of a vector based on one of the interference avoidance directions and the fourth vector V4. Therefore, depending on the position of the workpiece W and the position (orientation) of the hand 130, the movement amount may be 0. In response to this, a first value that is the minimum value of the movement amount and is greater than 0 (zero) may be predetermined, and the first control unit 211 may apply the first value as the movement amount and generate a candidate position Pc when the dot product is 0 (zero), i.e., when the movement amount is 0. According to this embodiment, when the value of the dot product is 0, the first control unit 211 generates a candidate position Pc using the first value. This increases the variety of candidate positions Pc. Therefore, a path that can avoid interference with an obstacle can be effectively generated.

[0056] In the above embodiment, the first control unit 211 may generate a path by setting the posture of the robot arm 100 so that the orientation (posture) of the hand 130 at the first position Pf is maintained until the hand 130 reaches the second position Pr. The first control unit 211 may generate a path from the first position Pf to the second position Pr in which the posture is fixed. In the example shown in FIG. 7 , the hand 130 is moved from the first position Pf1 to the candidate positions Pc1a and Pc1b in a state in which the posture is fixed. This configuration effectively prevents interference caused by changing the posture of the hand 130.

[0057] The first control unit 211 may generate candidate positions using at least one of the first direction D1, the second direction D2, the third direction D3, and the fifth direction D5 as the interference avoidance direction. For example, the first control unit 211 may use the first direction D1 and the second direction D2 as the interference avoidance directions and generate candidate positions that exist in the first direction D1 from the first position and candidate positions that exist in the second direction D2 from the first position. Alternatively, the first control unit 211 may generate one candidate position using only the first direction D1 and set the candidate position as the second position Pr. This configuration can further reduce the calculation load for generating a path.

[0058] In the above embodiment, the first position Pf was a position that was moved one position toward the start position S on the linear path from the position where the obstacle contacted the hand 135 of the robot arm 100. However, the first position Pf may be acquired in various ways other than the above embodiment, as long as it is a position immediately before interference. For example, the first position Pf may be a position that was moved a predetermined distance toward the start position S on the linear path from the interference position. The distance may be determined appropriately using obstacle data. Furthermore, when a position moved toward the start position S on the linear path is acquired as the first position as in the above embodiment, the degree of movement from the interference position toward the start position S may be changed appropriately. For example, the first position Pf may be a position that was moved two or more positions toward the start position S on the linear path from the interference position. The degree of movement may be determined in advance by simulation depending on the characteristics of the robot arm 100, the arrangement of obstacles in the working area A, the spacing between each point when discretizing the linear path, and the like, and may be stored in the memory 220.

[0059] In the above embodiment, the first control unit 211 selected a position closest to the target position G from among the plurality of candidate positions and set it as the second position Pr in step S60 of Fig. 3. Alternatively, the first control unit 211 may select one candidate position from among the plurality of candidate positions using the results of learning. The learning may be, for example, learning about the generated routes E1 and E2 and the plurality of candidate positions Pc, the presence or absence of interference, the length of the routes, etc.

[0060] In the above embodiment, a hand capable of gripping a workpiece W has been exemplified as the hand 130 of the robot arm 100. However, the hand 130 of the robot arm 100 may be various hands 130 depending on the work to be performed by the robot system 10.

[0061] In the above embodiment, the robot system 10 has a single control device 200 that has the functions of the first control unit 211 and the second control unit 212. However, the robot system 10 may have a first control device that has the functions of the first control unit 211 and a second control device that has the second control unit 212, as separate devices. In this embodiment, the first control device may output a path to the second control device, and the second control device may control the robot arm 100 along the output path.

[0062] Additionally, the functions of the elements disclosed herein can be performed using circuits or processing circuits, including general-purpose processors, special-purpose processors, integrated circuits, ASICs (Application Specific Integrated Circuits), conventional circuits, and / or combinations thereof, configured or programmed to perform the disclosed functions. A processor is considered a processing circuit or circuit because it includes transistors and other circuitry. In this disclosure, a circuit, unit, or means is hardware that performs the recited functions or hardware that is programmed to perform the recited functions. The hardware may be hardware disclosed herein or other known hardware that is programmed or configured to perform the recited functions. In the case of a processor, where the hardware is considered a type of circuit, the circuit, means, or unit is a combination of hardware and software, and the software is used to configure the hardware and / or processor.

[0063] The present disclosure is not limited to the above-described embodiments and can be realized in various forms without departing from the spirit thereof. For example, the present disclosure can also be realized in the following aspects. The technical features in the above embodiments corresponding to the technical features in each aspect described below can be appropriately replaced or combined to solve some or all of the problems of the present disclosure or to achieve some or all of the effects of the present disclosure. Furthermore, if a technical feature is not described as essential in this specification, it can be appropriately deleted.

[0064] <1> According to a first aspect of the present disclosure, there is provided a control device for controlling a robot arm having a base, a hand, and a plurality of joints including a first joint closest to the hand and a second joint connected to the first joint by a link and closer to the base than the first joint. The control device includes a control unit that generates a path for moving the hand from a start position to a target position. The control unit is configured to determine whether interference between the robot arm and an obstacle occurs when the hand moves along a linear path connecting the start position and the target position. When interference occurs, the control unit is configured to set a first position that is located on the linear path closer to the start position than a position where the robot arm interferes with the obstacle and is a position immediately before the robot arm interferes with the obstacle. The control unit is configured to generate at least one candidate position in an interference avoidance direction relative to the first position, the interference avoidance direction being derived using at least one of a first direction from a base end of the hand toward the first joint and a second direction from the first joint toward the second joint. The control unit is configured to set one of the at least one candidate position as a second position. The control unit is configured to generate, as the path, a first path that travels from the start position to the target position via the first position and the second position. According to this embodiment, when the robot arm interferes with an obstacle on a straight-line path connecting the start position and the target position, the control unit sets a first position immediately before the interference and a second position selected from at least one candidate position that exists in an interference avoidance direction from the first position. The interference avoidance direction is a direction derived using at least one of a first direction from the base end of the hand toward the first joint and a second direction from the first joint toward the second joint. Therefore, the interference avoidance direction is a direction in which components of the robot arm, such as joints that constitute the robot arm and parts connecting the joints, may be present. Therefore, the first position and the second position are positions that allow for rational avoidance of interference with the obstacle.The control unit generates a first route that travels from the starting position to the target position via the first and second positions, and therefore, according to this embodiment, a control device is provided that can reduce the calculation load for generating a route.

[0065] <2> In the above aspect, the interference avoidance direction may include the first direction, the second direction, and a third direction. The third direction may be the direction of a third vector based on a composite vector of a first vector based on the first direction and a second vector based on the second direction. According to this aspect, the third direction is based on the first direction and the second direction, and is therefore a direction in which components of the robot arm may be present. Furthermore, the second position is a position where interference with an obstacle can be reasonably avoided. Since the control unit generates a first path that extends from a start position to a target position via the first position and the second position, this aspect provides a control device that can reduce the calculation load for path generation.

[0066] <3> In the above embodiment, the third vector may be expressed by the following formula: V3=α×Ve1+β×Ve2 (1) where V3 is the third vector, Ve1 is a unit vector of the first vector, Ve2 is a unit vector of the second vector, and α and β satisfy the relationships α>0, β>0, and α+β=1. According to this embodiment, redundancy can be provided in the interference avoidance direction.

[0067] <4> In the above aspect, the control unit may generate each of the at least one candidate position at a position obtained by moving from the first position in the interference avoidance direction, using a movement amount calculated by the dot product of a vector based on the interference avoidance direction and a fourth vector based on a fourth direction extending from the hand end of the robot arm to the first joint. Generally, the movement amount of the hand to avoid interference with an obstacle is set small to prevent new interference between the moved hand and the obstacle. In this case, a path is generated by gradually moving the hand to reach the target position, which results in a relatively large computational load. However, according to this aspect, the interference avoidance direction is a direction in which components of the robot arm may exist and is a direction in which interference with the obstacle can be reasonably avoided. Therefore, interference between the robot arm and the obstacle can be avoided even if a relatively large movement amount calculated by the dot product of the fourth vector based on the fourth direction extending from the hand end of the robot arm to the first joint and the vector based on the interference avoidance direction is applied. Therefore, the control unit can set the second position to a position that is a relatively large movement from the first position immediately before interference, i.e., a position that is relatively far from the obstacle, and can suppress repeated calculations to avoid interference with one obstacle. As a result, the calculation load for path generation is reduced. In this embodiment, when the hand is not holding a workpiece, the end effector of the robot arm may be the tip of the hand. When the hand is holding a workpiece, the end effector of the robot arm may be the tip of the hand, or may be a predetermined position (point) on the surface of the workpiece held by the hand.

[0068] <5> In the above aspect, the control unit may generate the path in which a posture of the hand is set. The control unit may fix the posture of the hand on the path from the first position to the second position. According to this aspect, it is possible to effectively suppress interference caused by changing the posture of the hand.

[0069] <6> In the above aspect, the at least one candidate position may be a plurality of candidate positions. The control unit may set one of the plurality of candidate positions as the second position. According to this aspect, the control unit can set a plurality of candidate positions in a plurality of directions relative to the first position. This effectively reduces the possibility of unavoidable interference with an obstacle on the route. Note that, in the process of selecting one candidate position from the plurality of candidate positions and setting it as the second position, the control unit may determine whether the interference occurs on a straight-line route connecting the first position and the selected candidate position. The control unit may select a candidate position that does not interfere with the obstacle on a straight-line route connecting the first position and the selected candidate position, and set it as the second position.

[0070] <7> In the above aspect, the control unit may set, as the second position, a candidate position among the plurality of candidate positions that is closest to the target position. According to this aspect, interference with an obstacle can be avoided and a short route can be generated. The control unit may determine whether or not the interference occurs on a straight-line route connecting the first position and the selected candidate position. The control unit may select, on the straight-line route connecting the first position and the selected candidate position, a candidate position that does not interfere with the obstacle and is closest to the target position, and set the candidate position as the second position.

[0071] <8> In the above aspect, the control unit may determine whether the robot arm reaches a predetermined first state when the hand moves along a linear path from the first position to the second position. When the robot arm reaches the first state, the at least one candidate position may be located on the first position side of the linear path from the first position to the second position with respect to the position of the hand when the first state is reached, and may include a position of the hand immediately before the robot arm reaches the first state. The first state may include at least one of a state in which the robot arm is at the limit of its operating range, a state in which the robot arm interferes with itself, and a state in which the robot arm is in a singular posture. This aspect provides a control device capable of generating a path according to the characteristics of a robot arm.

[0072] <9> In the above aspect, the base may be installed with respect to the working area of ​​the robot arm so that its positional relationship with the obstacle is fixed. The interference may be interference between the obstacle and a portion of the robot arm from the second joint to a tip of the hand. According to this aspect, since the positional relationship between the base and the obstacle with respect to the working area is fixed, the interference avoidance direction is a direction toward a component of the robot arm. Since the control unit sets the second position in the interference avoidance direction, this aspect provides a control device that can effectively avoid interference with an obstacle.

[0073] <10> In the above aspect, the control unit may generate a second route by pruning the first route. According to this aspect, a route having fewer relay positions than the first route is generated. Therefore, the route can be further optimized.

[0074] <11> In the above aspect, the control unit may repeatedly execute a first process of determining whether interference will occur when the hand moves along the linear path connecting the start position and the target position, a second process of setting the first position if the interference will occur, a third process of generating at least one candidate position in the interference avoidance direction relative to the first position, and a fourth process of setting one of the at least one candidate position as the second position until the interference no longer occurs in the first process. In the first process executed after the fourth process, the control unit may generate the linear path using the second position as the start position. In the fourth process, the control unit may set one of the at least one candidate position generated in the past that has not been set as the second position in the past as the second position. If the interference will not occur in the first process, the control unit may generate the first path that passes through the first position and the second position that were previously set. According to this embodiment, the control unit can generate a path that can avoid interference with an obstacle by repeatedly executing the first process, the second process, the third process, and the fourth process until interference no longer occurs. The first process may be the process of steps S10 to S30 in the above embodiment. The second process, the third process, and the fourth process may be the process of steps S40, S50, and S60 in the above embodiment, respectively.

[0075] <12> In the above aspect, in the fourth process, the control unit may set, as the second position, a candidate position that is the shortest distance from the target position among the at least one candidate position that was previously generated and that has not been set as the second position. According to this aspect, the number of candidate positions that the control unit can select in the fourth process is increased. Therefore, it is possible to effectively reduce the possibility of unavoidable interference with an obstacle.

[0076] <13> According to a second aspect of the present disclosure, there is provided a robot system. The robot system includes a robot arm, a first control device, and a second control device. The robot arm includes a base, a hand, and a plurality of joints. The plurality of joints include a first joint closest to the hand and a second joint connected to the first joint by a link and closer to the base than the first joint. The first control device is configured to generate a path for moving the hand from a start position to a target position. The first control device is configured to determine whether interference between the robot arm and an obstacle occurs when the hand moves along a linear path connecting the start position and the target position. When interference occurs, the first control device is configured to set a first position that is located on the linear path closer to the start position than a position where the robot arm and the obstacle interfere, and that is a position immediately before the robot arm and the obstacle interfere. The first control device is configured to generate at least one candidate position in an interference avoidance direction relative to the first position, the interference avoidance direction being derived using at least one of a first direction from a base end of the hand toward the first joint and a second direction from the first joint toward the second joint. The first control device is configured to set one of the at least one candidate position as a second position. The first control device generates, as the path, a first path that starts from the start position, passes through the first position and the second position, and reaches the target position. The second control device is configured to acquire the path generated by the first control device and control the operation of the robot arm.

[0077] <14> According to a third aspect of the present disclosure, there is provided a path generation method for generating a path for moving a hand of a robot arm having a base, a hand, and a plurality of joints including a first joint closest to the hand and a second joint connected to the first joint by a link and closer to the base than the first joint, from a start position to a target position. The path generation method is a path generation method for determining whether interference between the robot arm and an obstacle will occur when the hand moves along a straight path connecting the start position and the target position. When interference will occur, the path generation method sets a first position that is on the straight path closer to the start position than a position at which the robot arm will interfere with the obstacle and is a position immediately before the robot arm interferes with the obstacle. The path generation method is a path generation method for generating at least one candidate position in an interference avoidance direction relative to the first position, the interference avoidance direction being derived using at least one of a first direction from a base end of the hand toward the first joint and a second direction from the first joint toward the second joint. The route generation method is a route generation method for setting one of the at least one candidate position as a second position, and for generating a first route as the route from the start position to the target position via the first position and the second position.

[0078] <15> According to a fourth aspect of the present disclosure, there is provided a program for generating a path for moving a hand of a robot arm having a base, a hand, a first joint closest to the hand, and a plurality of joints including a second joint connected to the first joint by a link and closer to the base than the first joint, from a start position to a target position. The program causes a computer to execute the following steps: determine whether interference between the robot arm and an obstacle will occur when the hand moves along a straight-line path connecting the start position and the target position; if interference will occur, set a first position that is on the start position side of the straight-line path with respect to a position where the robot arm and the obstacle will interfere and is a position immediately before the interference between the robot arm and the obstacle; generate at least one candidate position in an interference avoidance direction with respect to the first position, the interference avoidance direction being derived using at least one of a first direction from the base end of the hand toward the first joint and a second direction from the first joint toward the second joint; set one of the at least one candidate position as a second position; and generate, as the path, a first path that reaches the target position from the start position via the first position and the second position.

[0079] The present disclosure may be realized in various forms other than those described above, such as a non-transitory storage medium on which a computer program for implementing the functions of the control device 200, the first control unit 211, and the second control unit 212 is recorded.

[0080] 10: Robot system 100: Robot arm 110: Base 120: Arm tip 130: Hand 131: Tip 135: Fingertip 150: Body part 200: Control device 210: CPU 211: First control unit 212: Second control unit 220: Memory 230: Interface circuit 300: Camera 400: Input device A: Working area C1, C2: Container C1w: Side wall t: Container thickness h: Container height CP: Motion control program RP: Path generation program D1: First direction D2: Second direction D3, D3a, D3b, D3c, D3d: Third direction D4: Fourth direction D5: Fifth direction E1: First path E1a, E1b: First path E2: Second path E2a, E2b: Second path S: Starting position S0: Initial position G: Target position L1, L2, L3: Straight path P0, P1, P2, P3, P4: Positions on the robot arm Pc, Pc1a, Pc1b, Pc2a, Pc2b: Candidate positions Pf, Pf1, Pf2: First position Pr, Pr1, Pr2: Second position V1: First vector V2: Second vector V3, V3a, V3b, V3c, V3d: Third vector V4: Fourth vector V5: Fifth vector J1: First joint J2: Second joint L: Link W: Workpiece

Claims

1. A control device for controlling a robot arm having a base, a hand, and a plurality of joints including a first joint closest to the hand and a second joint connected to the first joint by a link and closer to the base than the first joint, comprising a control unit that generates a path for moving the hand from a start position to a target position, wherein the control unit: determines whether or not interference between the robot arm and an obstacle will occur when the hand moves along a straight path connecting the start position and the target position; if interference will occur, sets a first position that is on the start position side of the straight path with respect to a position where the robot arm and the obstacle interfere, and is a position immediately before the robot arm and the obstacle interfere; generates at least one candidate position in an interference avoidance direction with respect to the first position, the interference avoidance direction being derived using at least one of a first direction from the base end of the hand toward the first joint and a second direction from the first joint toward the second joint; and sets one of the at least one candidate position as a second position; a control device that generates, as the path, a first path that reaches the target position from the start position via the first position and the second position; 2. A control device as described in claim 1, wherein the interference avoidance direction includes the first direction, the second direction, and a third direction, and the third direction is the direction of a third vector based on a composite vector of a first vector based on the first direction and a second vector based on the second direction.

3. The control device according to claim 2, wherein the third vector is expressed by the following formula: V3 = α × Ve1 + β × Ve2 ... formula (1) where V3 is the third vector, Ve1 is a unit vector of the first vector, Ve2 is a unit vector of the second vector, and α and β satisfy the relationships α > 0, β > 0, and α + β = 1.

4. A control device as described in claim 1, wherein the control unit generates each of the at least one candidate position at a position moved from the first position in the interference avoidance direction, using the dot product of a vector based on the interference avoidance direction and a fourth vector based on a fourth direction from the tip of the robot arm to the first joint as a movement amount.

5. A control device as described in claim 1, wherein the control unit generates the path in which the posture of the hand is set, and fixes the posture of the hand on the path from the first position to the second position.

6. A control device according to claim 1, wherein the at least one candidate position is a plurality of candidate positions, and the control unit sets one of the plurality of candidate positions as the second position.

7. A control device according to claim 6, wherein the control unit sets, as the second position, a candidate position among the plurality of candidate positions that is closest to the target position.

8. A control device as described in claim 1, wherein the control unit determines whether or not the robot arm reaches a predetermined first state when the hand moves along a straight path from the first position to the second position, and the at least one candidate position is on the first position side of the straight path from the first position to the second position with respect to the position of the hand when the first state is reached, and includes a position of the hand immediately before the first state is reached, and the first state includes at least one of a state in which the robot arm is at the limit of its operating range, a state in which the robot arm interferes with itself, and a state in which the robot arm is in a singular posture.

9. A control device as described in claim 1, wherein the base is installed with respect to the working area of ​​the robot arm so that the positional relationship with the obstacle is fixed, and the interference is between the obstacle and a portion of the robot arm from the second joint to the tip of the hand including the tip.

10. A control device according to claim 1, wherein the control unit generates a second route by pruning the first route as the route.

11. A control device as described in claim 1, wherein the control unit repeatedly executes the following steps until the interference does not occur in the first process: a first process of determining whether or not the interference will occur when the hand moves along the straight-line path connecting the start position and the target position; a second process of setting the first position if the interference occurs; a third process of generating at least one candidate position in the interference avoidance direction relative to the first position; and a fourth process of setting one of the at least one candidate position as the second position; and in the fourth process, the control unit sets one of the at least one candidate position generated in the past that has not been set as the second position as the second position; and in the first process executed after the fourth process, the control unit generates the straight-line path with the second position as the start position; and when the interference does not occur in the first process, the control unit generates the first path that passes through the first position set in the past and the second position set in the past.

12. A control device according to claim 11, wherein in the fourth process, the control unit sets, as the second position, a candidate position that is the shortest distance from the target position among the at least one candidate position that has been generated in the past and that has not been set as the second position.

13. A robot system comprising: a robot arm having a base, a hand, and a plurality of joints including a first joint closest to the hand and a second joint connected to the first joint by a link and closer to the base than the first joint; and a first control device that generates a path for moving the hand from a start position to a target position, the first control device determining whether or not interference between the robot arm and an obstacle will occur when the hand moves along a straight path connecting the start position and the target position; if interference occurs, setting a first position that is on the start position side of the straight path with respect to a position where the robot arm interferes with the obstacle and is a position immediately before the robot arm interferes with the obstacle; generating at least one candidate position in an interference avoidance direction for the first position, the interference avoidance direction being derived using at least one of a first direction from the base end of the hand toward the first joint and a second direction from the first joint toward the second joint; and setting one of the at least one candidate position as a second position; a first control device that generates, as the path, a first path that travels from the start position to the target position via the first position and the second position; and a second control device that acquires the path generated by the first control device and controls an operation of the robot arm.

14. A path generation method for generating a path for moving a hand of a robot arm having a base, a hand, and a plurality of joints including a first joint closest to the hand and a second joint connected to the first joint by a link and closer to the base than the first joint, from a start position to a target position, comprising: determining whether or not interference between the robot arm and an obstacle will occur when the hand moves along a straight path connecting the start position and the target position; if interference occurs, setting a first position that is on the start position side of the straight path with respect to a position where the robot arm interferes with the obstacle and is a position immediately before the robot arm interferes with the obstacle; generating at least one candidate position in an interference avoidance direction with respect to the first position, the interference avoidance direction being derived using at least one of a first direction from the base end of the hand toward the first joint and a second direction from the first joint toward the second joint; and setting one of the at least one candidate position as a second position; a first route that travels from the start position to the target position via the first position and the second position,

Citation Information

Patent Citations

  • Interference determination device, robot control system, and interference determination method

    JP2022100030A

  • Speech Recognition System Using Composite Grammar Network

    JP3049235B2

  • Path generation device, path generation method, and path generation program

    WO2022153374A1