Multiple robot control device and robot control method
The multi-robot control device optimizes work efficiency by allocating tasks and determining movement paths to minimize collisions, reducing inter-robot collisions and waiting times.
Patent Information
- Application Number
- JP2025118546
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-02-13
- Filing Date
- 2025-07-14
- Publication Date
- 2026-08-25
AI Technical Summary
When multiple robots work at the same location simultaneously, collisions can occur, leading to interlock states that prolong the total work time due to interruptions, which reduces efficiency.
A multi-robot control device and method that allocates work points to multiple robots, determines optimal movement paths, and calculates candidate direction combinations to minimize inter-robot collisions by considering the superimposed volumes and distances between robots, using a cost function to select the best movement direction.
Reduces inter-robot collisions and interlocking, thereby optimizing the work efficiency of multiple robots by minimizing waiting times and total work duration.
Smart Images

Figure 2026136048000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a multi-robot control device and a robot control method thereof.
Background Art
[0002] When performing work using multiple robots, the work can be performed faster and more efficiently than when performing the work with a single robot.
[0003] However, when multiple robots work at the same work location at the same time, collisions may occur depending on the work directions of the robots. At this time, an interlock state is entered in which the operation of the robots is interrupted to prevent collisions, and a phenomenon occurs in which the waiting time and the total work time become longer due to the interlock of the robots.
Summary of the Invention
Problems to be Solved by the Invention
[0004] One embodiment of the present disclosure aims to provide a multi-robot control device and a robot control method thereof that can minimize the interlock of robots.
Means for Solving the Problems
[0005] According to one embodiment, a multi-robot control device can control multiple robots that share and process multiple work points in a workspace, and the processor of the multi-robot control device can provide a method for controlling the multiple robots. The robot control method includes the steps of: allocating corresponding work points from the multiple work points to each of the multiple robots; determining a work point movement path for each of the multiple robots so that each robot can visit all of the allocated work points; calculating a plurality of candidate movement direction combinations based on the work point movement paths of each of the multiple robots; calculating the sum of the superimposed volumes between the robots and the sum of the distances between the robots based on the work point movement paths of each of the multiple robots for each of the plurality of candidate movement direction combinations; determining the movement direction of each of the multiple robots on the work point movement path using the sum of the superimposed volumes between the robots and the sum of the distances between the robots calculated for each of the plurality of candidate movement direction combinations; and controlling the multiple robots according to the movement direction determined for each of the multiple robots.
[0006] The step of determining the direction of movement may include the steps of: calculating the value of the movement direction selection cost function for each of the multiple candidate movement direction combinations using the sum of the superimposed volumes between the robots and the sum of the distances between the robots for each of the multiple candidate movement direction combinations; selecting one candidate movement direction combination using the value of the movement direction selection cost function for the multiple candidate movement direction combinations; and determining the direction of movement on the work point movement path for each of the multiple robots based on the selected candidate movement direction combination. The movement direction selection cost function may include a first cost function for the sum of the superimposed volumes and a second cost function for the sum of the distances between the robots.
[0007] The selection step may include selecting the candidate movement direction combination having the largest value among the values of the movement direction selection cost function for the plurality of candidate movement direction combinations, wherein the first cost function can output a larger value as the sum of the superimposed volumes decreases, and the second cost function can output a larger value as the sum of the distances between robots increases.
[0008] The step of selecting the candidate movement direction combination having the largest value may include, if there are two or more candidate movement direction combinations having the largest value, the step of selecting the candidate movement direction combination with the largest value from among the two or more candidate movement direction combinations having the largest value.
[0009] The steps for calculating the sum of the superimposed volumes between robots and the sum of the distances between robots may include, for each of the plurality of candidate movement direction combinations, the steps of calculating the volume of the multiple work point movement paths using the work point movement paths of each of the plurality of robots; the steps of calculating the superimposed volume of the robot movement path for the same movement time between work points using the volumes of the multiple work point movement paths calculated for each of the plurality of robots; and the steps of calculating the sum of the superimposed volumes between robots by summing the superimposed volumes calculated for the work point movement paths of each of the plurality of robots.
[0010] The step of calculating the volume of the movement path may include the steps of generating a cylinder for each of the multiple robots' movement paths between the multiple work points, with the line segment representing the movement path as the axis and a radius that reflects the volume of the robot, and calculating the volume of the cylinder as the volume of the movement path.
[0011] The step of calculating the sum of the superimposed volumes between robots and the sum of the distances between robots may include, for each of the plurality of candidate movement direction combinations, the step of calculating the distance between robots for the same work point movement time using the volume of the plurality of work point movement paths calculated for each of the plurality of robots, and the step of calculating the sum of the distances between robots by summing the distances between robots calculated for the work point movement paths of each of the plurality of robots.
[0012] The step of calculating the distance between robots may include calculating the distance between the surfaces of different cylinders, each representing the volume of the movement path of a different robot, as the distance between robots, based on the same movement time between work points.
[0013] The step of calculating the distance between the surfaces of the two different cylinders as the distance between the robots may include the step of calculating the minimum distance between the first line segment forming the axis of the first cylinder and the second line segment forming the axis of the second cylinder within the same working point travel time, and the step of calculating the minimum distance between the surfaces of the first cylinder and the second cylinder as the distance between the robots, taking into consideration the minimum distance and the radii of the first and second cylinders.
[0014] According to another embodiment, a multi-robot control device can be provided that controls multiple robots that share the processing of multiple work points in a workspace. The multi-robot control device includes a work assignment unit that assigns corresponding work points from the multiple work points to each of the multiple robots, a movement path determination unit that determines a work point movement path for each of the multiple robots to visit all of the assigned work points, and a movement direction determination unit that calculates a plurality of candidate movement direction combinations based on the work point movement paths of each of the multiple robots, calculates the sum of the superimposed volumes between robots and the sum of the distances between robots based on the work point movement paths of each of the multiple robots for each of the plurality of candidate movement direction combinations, and determines the movement direction of the work point movement path of each of the multiple robots using the calculated results.
[0015] The movement direction determination unit may include: an overlapping volume calculation unit that calculates the sum of the overlapping volumes between robots based on the work point movement paths of each of the plurality of robots for each of the plurality of candidate movement direction combinations; a distance calculation unit that calculates the sum of the distances between robots based on the work point movement paths of each of the plurality of robots for each of the plurality of candidate movement direction combinations; a movement direction selection unit that selects one of the plurality of candidate movement direction combinations using the sum of the overlapping volumes and the sum of the distances between robots for each of the plurality of candidate movement direction combinations; and a movement direction control unit that controls the movement direction of the plurality of robots based on the movement direction of the plurality of robots due to the selected candidate movement direction combination.
[0016] The movement direction selection unit can calculate a value of a movement direction selection cost function that includes a first cost function for the sum of the superimposed volumes and a second cost function for the sum of the distances between robots, using the sum of the superimposed volumes and the sum of the distances between robots for each of the plurality of candidate movement direction combinations. The unit can select the candidate movement direction combination that has the largest value of the movement direction selection cost function among the plurality of candidate movement direction combinations. The first cost function can output a larger value as the sum of the superimposed volumes decreases, and the second cost function can output a larger value as the sum of the distances between robots increases.
[0017] If there are two or more candidate movement direction combinations having the largest value, the movement direction selection unit can select the candidate movement direction combination with the largest value from among the two or more candidate movement direction combinations having the largest value, and the combination with the largest value having the largest value of the first cost function.
[0018] The superimposed volume calculation unit can calculate the volume of multiple inter-workpoint movement paths for each of the multiple robots' workpoint movement paths for each of the multiple candidate movement direction combinations, calculate the superimposed volume of inter-robot movement paths for the same inter-workpoint movement time using the volumes of the multiple inter-workpoint movement paths calculated for each of the multiple robots, and calculate the total inter-robot superimposed volume by summing the superimposed volumes calculated for each of the multiple robots' workpoint movement paths.
[0019] The superimposed volume calculation unit can generate a cylinder for each of the multiple robots' movement paths between the multiple work points, with the line segment representing the movement path as its axis and a radius that reflects the volume of the robot, and can calculate the volume of the cylinder as the volume of the movement path.
[0020] The distance calculation unit can calculate the distance between robots for each of the plurality of robots using the volume of the plurality of work point movement paths calculated for each of the plurality of robots for each of the plurality of candidate movement direction combinations, and can calculate the total distance between robots by summing the distances between robots calculated for the work point movement paths of each of the plurality of robots.
[0021] The distance calculation unit can calculate the distance between robots by determining the distance between the surfaces of different cylinders that represent the volume of the movement paths of different robots, based on the same travel time between work points.
[0022] The distance calculation unit can calculate the minimum distance between the first line segment forming the axis of the first cylinder and the second line segment forming the axis of the second cylinder within the same travel time between the same work points, and can calculate the minimum distance between the surfaces of the first cylinder and the second cylinder as the distance between the robots, taking into account the minimum distance and the radii of the first cylinder and the second cylinder. [Effects of the Invention]
[0023] According to at least one embodiment among the embodiments, by determining the moving direction of each of a plurality of robots in a direction that minimizes inter-robot collisions using the inter-robot overlapping volume and the inter-robot distance considering the volume of each robot in the working point movement path of each of the plurality of robots, inter-robot collisions can be reduced, and thereby, interlocking of the robots can be reduced.
Brief Description of the Drawings
[0024] [Figure 1] It is a diagram schematically showing a multi-robot system according to one embodiment. [Figure 2] It is a diagram showing the multi-robot control device shown in FIG. 1. [Figure 3] It is a diagram for explaining inter-robot collisions due to the moving direction of the working points of the robots. [Figure 4] It is a flowchart showing a method for determining the moving direction of each robot by a moving direction determination unit according to one embodiment. [Figure 5] It is a diagram showing an example of a method for calculating the volume of the working point movement path of a robot according to one embodiment. [Figure 6] It is a diagram for explaining a method for calculating the inter-robot overlapping volume with any one candidate moving direction combination. [Figure 7] It is a diagram for explaining a method for calculating the inter-robot overlapping volume with any one candidate moving direction combination. [Figure 8] It is a diagram for explaining the inter-robot distance according to one embodiment. [Figure 9] It is a diagram for explaining a method for calculating the surface distance between cylinders used as the inter-robot distance according to one embodiment. [Figure 10] It is a diagram showing a moving direction determination unit according to one embodiment. [Figure 11] It is a diagram showing the inter-robot collision area when the moving direction in the working point movement path of each robot is not considered. [Figure 12]This figure illustrates how collision avoidance between robots is achieved when the direction of movement for each robot along its work point movement path is determined by the robot movement direction determination method according to the embodiment. [Figure 13] This figure shows a multi-robot control device according to another embodiment. [Modes for carrying out the invention]
[0025] The embodiments of the present invention will be described below in detail with reference to the attached drawings, so that they can be easily implemented by a person with ordinary skill in the art to which the present invention pertains. However, the present invention can be realized in a variety of different forms and is not limited to the embodiments described herein. Furthermore, unnecessary parts have been omitted in order to clearly illustrate the present invention in the drawings, and similar parts throughout the specification are denoted by similar reference numerals.
[0026] In the flowchart explained with reference to the diagram, the order of operations can be changed, multiple operations can be merged, or certain operations can be split, and specific operations do not have to be performed.
[0027] Whenever a part of the specification or claims “includes” a component, unless otherwise stated, this means that it may include other components rather than excluding them.
[0028] Furthermore, expressions written in the singular can be interpreted as either singular or plural unless explicitly stated otherwise, such as "one" or "single."
[0029] Furthermore, while terms including ordinal numbers, such as "first," "second," etc., can be used to describe a variety of components, the components are not limited by such terms. The terms are used solely for the purpose of distinguishing one component from another. For example, without exceeding the scope of the rights of this disclosure, the first component may be named the second component, and similarly, the second component may be named the first component.
[0030] Furthermore, when one component is said to be "connected" to another, this includes not only cases where it is "directly or physically connected," but also cases where it is "indirectly or non-contactly connected" with another component in between, or where it is "electrically connected." On the other hand, when it is mentioned that one component is "directly connected" to another, it must be understood that there is no other component in between.
[0031] Figure 1 is a schematic diagram showing a multi-robot system according to one embodiment.
[0032] Referring to Figure 1, the multi-robot system 1 is a system in which multiple robots 10_1 to 10_N cooperate to perform a specific task in the same workspace 2. For example, the multi-robot system 1 can share the responsibility of welding multiple welding points (work points) in the workspace 2 and perform welding (work) simultaneously.
[0033] The workspace 2 can include multiple work points 3, which are locations where multiple robots 10_1 to 10_N must perform tasks.
[0034] The multiple robot system 1 can include multiple robots 10_1 to 10_N and a multiple robot control device 20.
[0035] The multi-robot control device 20 can distribute multiple work points 3 in the workspace 2 to multiple robots 10_1 to 10_N, and can determine the work point movement path for each of the multiple robots 10_1 to 10_N so that each robot can efficiently perform work at the work point to which it is assigned.
[0036] When multiple robots 10_1 to 10_N perform tasks simultaneously, there is a possibility of collisions between the multiple robots 10_1 to 10_N. Therefore, the multiple robot control device 20 determines the direction of movement for each of the multiple robots 10_1 to 10_N along their respective work point movement paths in a manner that minimizes inter-robot collisions. When there are two work points, a first work point and a second work point, which are the endpoints of the work point movement path, the direction of movement along the work point movement path can include a first direction (e.g., forward direction) from the first work point to the second work point and a second direction (e.g., reverse direction) from the second work point to the first work point. The multiple robot control device 20 can determine the direction of movement for each of the multiple robots 10_1 to 10_N along their work point movement paths in either the first or second direction as the direction that minimizes inter-robot collisions.
[0037] The multiple robot control device 20 can control multiple robots 10_1 to 10_N according to the work point movement path and movement direction of each of the multiple robots 10_1 to 10_N.
[0038] Figure 2 shows the multi-robot control system shown in Figure 1.
[0039] Referring to Figure 2, the multi-robot control device 20 may include a work assignment unit 22, a movement path determination unit 24, and a movement direction determination unit 26.
[0040] The work assignment unit 22 can distribute multiple work points 3 in the work space 2 to multiple robots 10_1 to 10_N. The work assignment unit 22 can distribute work points 3 to each of the multiple robots 10_1 to 10_N by considering the positions of the robots 10_1 to 10_N, the positions of the work points 3, the estimated time required to perform work at each work point, the estimated time required to move between work points, etc. For example, the work assignment unit 22 can distribute work points 3 to each of the multiple robots 10_1 to 10_N in a way that minimizes the difference in the completion times of the work of the multiple robots 10_1 to 10_N by considering the positions of the robots 10_1 to 10_N, the positions of the work points 3, the estimated time required to perform work at each work point 3, the estimated time required to move between work points 3, etc.
[0041] Once the work assignment unit 22 has completed the allocation of work points 3 to each of the multiple robots 10_1 to 10_N, the movement path determination unit 24 can determine the movement paths for each of the multiple robots 10_1 to 10_N to visit all of the allocated work points and perform the work.
[0042] In one embodiment, the movement path determination unit 24 can determine a work point movement path for each of the multiple robots 10_1 to 10_N in a direction that minimizes the movement path that visits all of the allocated work points. For example, when robot A is allocated 5 work points, the movement path for robot A can be determined in a direction that minimizes the movement distance required for robot A to visit all 5 work points.
[0043] Each of the multiple robots 10_1 to 10_N can move along a predetermined work point movement path and perform tasks at their assigned work points. However, collisions between robots may occur during this process.
[0044] The movement direction determination unit 26 can predict inter-robot collisions based on the work point movement paths of each of the multiple robots 10_1 to 10_N, and determine the movement direction of each of the work point movement paths of the multiple robots 10_1 to 10_N in a direction that minimizes inter-robot collisions.
[0045] The movement direction determination unit 26 calculates multiple candidate movement direction combinations based on each of the work point movement paths of the multiple robots 10_1 to 10_N, and for each of the multiple candidate movement direction combinations, it calculates the sum of the superimposed volumes between the robots and the sum of the distances between the robots based on each of the work point movement paths of the multiple robots 10_1 to 10_N, and uses the calculated results to determine the movement direction of each of the work point movement paths of the multiple robots 10_1 to 10_N.
[0046] Figure 3 illustrates robot-to-robot collisions based on the direction of robot work point movement.
[0047] Referring to Figure 3, the work assignment unit 22 assigns three work points 3_1, 3_2, and 3_3 to robot A, and three work points 3_4, 3_5, and 3_6 to robot B.
[0048] Furthermore, the movement path determination unit 24 determines that the work point movement path for robot A has work point 3_1 and work point 3_3 as its endpoints, and the movement path determination unit 24 determines that the work point movement path for robot B has work point 3_4 and work point 3_6 as its endpoints.
[0049] At this time, if the movement direction of robot A's work point movement path is set with work point 3_1 as the starting point and work point 3_3 as the ending point, and the movement direction of robot B's work point movement path is set with work point 3_4 as the starting point and work point 3_6 as the ending point, then there is a high probability that robot A and robot B will collide at position 30. That is, in the step where robot A moves from work point 3_1 to work point 3_2, there is a high probability that a collision will occur while robot B is moving from work point 3_4 to work point 3_5. Here, we assume that the actual work time required for robot A and robot B at each work point is the same.
[0050] The movement direction determination unit 26 according to the embodiment determines a candidate movement direction combination that minimizes collisions between robot A and robot B from among a plurality of candidate movement direction combinations for the directions that robot A can move in the work point movement path and the directions that robot B can move in the work point movement path. The movement direction of robot A in the work point movement path and the movement direction of robot B in the work point movement path can be determined by the determined candidate movement direction combination. For example, if the movement direction of robot A in the work point movement path is determined with work point 3_1 as the starting point of the work and work point 3_3 as the ending point of the work, and the movement direction of robot B in the work point movement path is determined with work point 3_6 as the starting point of the work and work point 3_4 as the ending point of the work, collisions between robot A and robot B can be avoided.
[0051] In the following section, assuming that the work assignment unit 22 has allocated work points to each of the multiple robots and the movement path determination unit 24 has determined the work point movement path for each of the multiple robots, we will explain how to determine the movement direction of each of the multiple robots.
[0052] Figure 4 is a flowchart showing how the movement direction of each robot is determined by the movement direction determination unit according to the embodiment.
[0053] Referring to Figure 4, the movement direction determination unit 26 can calculate multiple candidate movement direction combinations using the number of possible movement directions for each of the multiple robots on the work point movement path of each of the multiple robots (S402). For example, if three robots perform work in the workspace 2, there are two possible movement directions for each of the three robots on the work point movement path, namely a first direction and a second direction. In this case, eight candidate movement direction combinations can be calculated from the number of possible movement directions for the three robots on the work point movement path, as shown in Table 1.
[0054] In Table 1, "1" indicates the first direction, and "-1" indicates the second direction. [Table 1]
[0055] The movement direction determination unit 26 can calculate the volume of the work point movement path for each of the multiple robots for each of the multiple candidate movement direction combinations (S404). The movement direction determination unit 26 can calculate the work point movement path of the robot as a specific volume.
[0056] Figure 5 shows an example of a method for calculating the volume of the robot's work point movement path according to one embodiment.
[0057] Referring to Figure 5, if the robot A's work point movement path has work points 3_1 and 3_3 as endpoints and work point 3_2 as the intermediate point, the movement direction determination unit 26 can represent the distance traveled between work points 3_1 and 3_2 with a line segment 51, and generate a cylinder 52 with a predetermined radius r1 centered on the line segment 51 to reflect the robot's size (volume) and / or the safe distance between robots. Furthermore, the movement direction determination unit 26 can represent the distance traveled between work points 3_2 and 3_3 with a line segment 53, and generate a cylinder 54 with a radius r1 centered on the line segment 53 to reflect the robot's size (volume) and / or the safe distance between robots.
[0058] The movement direction determination unit 26 can calculate the volume of cylinder 52 and the volume of cylinder 54 as the moving volume formed when robot A moves along the work point movement path. Hereinafter, the moving volume formed when a robot moves along a corresponding work point movement path will be referred to as the volume of the work point movement path.
[0059] In this way, the movement direction determination unit 26 can calculate the volume of the work point movement path through cylindrical modeling that takes into account the actual size (volume) of the robot.
[0060] Cylindrical modeling can be used, for example, to calculate the volume of a work point's movement path when the robot is cylindrical or its movement path is linear, and different modeling can be used depending on the robot's morphology and movement path pattern.
[0061] Referring again to Figure 4, the movement direction determination unit 26 can calculate the superimposed volume, which is the volume of the overlapping movement paths of the robots for each of the multiple candidate movement direction combinations, and calculate the sum of the superimposed volumes (S406). At this time, the sum of the superimposed volumes can be defined as the first parameter.
[0062] The movement direction determination unit 26 can store the sum of the superimposed volumes as the value of the first parameter for each of the multiple candidate movement direction combinations (S408).
[0063] Figures 6 and 7 illustrate methods for calculating the inter-robot superposition volume for any one of the candidate movement direction combinations.
[0064] Referring to Figure 6, in any one of the candidate movement direction combinations, the movement direction of robot A's work point movement path starts at work point 3_1 and ends at work point 3_3, while the movement direction of robot B's work point movement path starts at work point 3_4 and ends at work point 3_6.
[0065] With the candidate movement direction combinations shown in Figure 6, the movement direction determination unit 26 can calculate the volume of the movement paths of robot A and robot B for the same amount of time.
[0066] First, the movement direction determination unit 26 generates cylinders 52 and 62 that represent the time it takes for robot A and robot B to move from the starting point to the next work point, which is the intermediate point, that is, the volume of the path for robot A and robot B to move from the starting point to the intermediate point in the first step, and checks if there is any overlapping portion between the cylinders 52 and 62 calculated for robot A and robot B, respectively.
[0067] Next, the movement direction determination unit 26 generates cylinders 54 and 64 that represent the time it takes for robot A and robot B to move from the intermediate point to the next work point, which is the endpoint, that is, the volume of the path for robot A and robot B to move from the intermediate point to the endpoint in the second step, and checks if there is any overlapping portion between the cylinders 54 and 64 calculated for robot A and robot B, respectively.
[0068] In this manner, the movement direction determination unit 26 calculates the volume of the movement path between work points for each work point movement path of robot A and robot B at each step, and can check whether there is any overlapping portion between the volumes of the movement paths calculated for each robot at each step.
[0069] The movement direction determination unit 26 can calculate the sum of the superimposed volumes calculated in the first step and the superimposed volumes calculated in the second step for the candidate movement direction combinations shown in Figure 6. In the case of Figure 6, there is no superimposed portion between the cylinders 52 and 62 calculated for robot A and robot B respectively in the first step, so the superimposed volume is 0. However, there is a superimposed portion 60 between the cylinders 54 and 64 calculated for robot A and robot B respectively in the second step, and the superimposed volume of the superimposed portion 60 can be calculated.
[0070] The movement direction determination unit 26 can store the sum of the superimposed volume calculated in the first step and the superimposed volume calculated in the second step as the value of the first parameter for the candidate movement direction combination.
[0071] On the other hand, referring to Figure 7, in any one combination of candidate movement directions, the movement direction of robot A's work point movement path starts at work point 3_1 and ends at work point 3_3, while the movement direction of robot B's work point movement path differs from that in Figure 6, starting at work point 3_6 and ending at work point 3_4.
[0072] With the candidate movement direction combinations shown in Figure 7, the movement direction determination unit 26 can calculate the volume of the movement paths of robot A and robot B for the same amount of time.
[0073] First, in the first step, the movement direction determination unit 26 generates cylinders 52 and 64 for robot A and robot B respectively, which represent the volume of the path from the starting point to the midpoint, and checks whether there is any overlap between the calculated cylinders 52 and 64 for robot A and robot B.
[0074] Next, in the second step, the movement direction determination unit 26 generates cylinders 54 and 62 for robot A and robot B respectively, which represent the volume of the path from the midpoint to the endpoint, and checks whether there is any overlap between the calculated cylinders 54 and 62 for robot A and robot B.
[0075] The movement direction determination unit 26 can calculate the sum of the superimposed volumes calculated in the first step and the superimposed volumes calculated in the second step for the candidate movement direction combinations shown in Figure 7. In the case of Figure 7, there are no superimposed parts between the cylinders 52 and 64 for robot A and robot B respectively in the first step, and there are no superimposed parts between the cylinders 54 and 62 for robot A and robot B respectively in the second step, so the sum of the superimposed volumes for the candidate movement direction combinations shown in Figure 7 may be 0.
[0076] The movement direction determination unit 26 can store the sum of the superimposed volume calculated in the first step and the superimposed volume calculated in the second step as the value of the first parameter for the candidate movement direction combination.
[0077] On the other hand, comparing Figure 6 and Figure 7, it can be seen that the total superimposed volume changes depending on the direction of movement of the work point movement paths of robot A and robot B.
[0078] In other words, depending on the direction of movement of the work point movement paths of robot A and robot B, there may or may not be an overlapping portion between the movement paths of robot A and robot B. Therefore, the movement direction determination unit 26 calculates the sum of the overlapping volumes between robots using the volume of the robot's work point movement path for all candidate movement direction combinations, stores this as the value of the first parameter, and can use the value of the first parameter to determine the movement direction.
[0079] In Figures 6 and 7, only two robots are shown, so in the first and second steps, the sum of the superimposed volumes between robot A and robot B is calculated as the value of the first parameter for the candidate movement direction combination. However, if robots A, B, and C are present, the superimposed volumes between robot A and robot B, robot A and robot C, and robot B and robot C can be calculated in the first step, and the superimposed volumes between robot A and robot B, robot A and robot C, and robot B and robot C can also be calculated in the second step, and the sum of these can be stored as the value of the first parameter for the candidate movement direction combination.
[0080] In this way, the movement direction determination unit 26 can calculate the volume of the work point movement paths of multiple robots in the work space 2 for each of the multiple candidate movement direction combinations, and calculate the sum of the superimposed volumes between the multiple robots.
[0081] Referring again to Figure 4, the movement direction determination unit 26 can calculate the distance between robots for each of the multiple candidate movement direction combinations using the volume of the work point movement paths of multiple robots in the same time (step), and can calculate the sum of the distances between robots calculated in each time (step) (S410). At this time, the sum of the distances between robots calculated for one candidate movement direction combination is defined as the second parameter.
[0082] The movement direction determination unit 26 can store the sum of the distances between robots calculated at each time step for each of the multiple candidate movement direction combinations as the value of the second parameter (S412).
[0083] Figure 8 illustrates the distance between robots in one embodiment.
[0084] Referring to Figure 8, the robot-to-robot distance can be defined as the distance between the surfaces of a cylinder representing the volume of the travel distance. The distance between the axes of the cylinder does not reflect the actual size (volume) of the robots and / or the safe distance between robots. Therefore, in the embodiment, the distance between the surfaces of the cylinder is used as the robot-to-robot distance to reflect the actual size (volume) of the robots and / or the safe distance between robots, in order to prevent robot-to-robot collisions and optimize the robots' travel paths.
[0085] For example, as shown in Figure 8, in any one combination of candidate movement directions, the movement direction of robot A's work point movement path starts at work point 3_1 and ends at work point 3_3, while the movement direction of robot B's work point movement path starts at work point 3_4 and ends at work point 3_6.
[0086] With the candidate movement direction combinations shown in Figure 8, the movement direction determination unit 26 can calculate the distance between robot A and robot B in the same amount of time (steps).
[0087] In one embodiment, the movement direction determination unit 26 calculates the volume distance between the movement paths of robot A and robot B in the same amount of time (steps), and can use this as the distance between the robots.
[0088] First, in the first step, the movement direction determination unit 26 can calculate the distance between robots 82, which is the distance between the surfaces of cylinders 52 and 62 that represent the volume of the path from the starting point to the midpoint for robots A and B respectively.
[0089] Next, in the second step, the movement direction determination unit 26 can calculate the distance between the surfaces of cylinders 54 and 64, which represent the volume of the path from the midpoint to the endpoint for robot A and robot B respectively, as the distance between robots. In Figure 8, since parts of cylinders 54 and 64 overlap each other, the distance between the surfaces of cylinders 54 and 64 is calculated to be 0.
[0090] The movement direction determination unit 26 calculates the sum of the distances between robots calculated in the first step and the distances between robots calculated in the second step as the value of the second parameter for the candidate movement direction combination, and can store the value of the second parameter for the candidate movement direction combination.
[0091] In Figure 8, only two robots are shown, so there is one robot-to-robot distance calculated in the first step and one robot-to-robot distance calculated in the second step. However, if robots A, B, and C exist, the robot-to-robot distances in the first step can be calculated as the distance between robot A and robot B, the distance between robot A and robot C, and the distance between robot B and robot C. Similarly, the robot-to-robot distances in the second step can be calculated as the distance between robot A and robot B, the distance between robot A and robot C, and the distance between robot B and robot C. The sum of these can be stored as the value of the second parameter for the given candidate movement direction combination.
[0092] Referring again to Figure 4, the movement direction determination unit 26 can determine one candidate movement direction combination from a plurality of candidate movement direction combinations using a movement direction selection cost function consisting of a first cost function for the first parameter and a second cost function for the second parameter (S414).
[0093] In one embodiment, the movement direction selection function is defined as shown in Equation 1.
number
number
number
[0094] In one embodiment, the movement direction determination unit 26 can calculate the value of the movement direction selection cost function for each of the multiple candidate movement direction combinations using the values of the first parameter and the second parameter calculated for each of the multiple candidate movement direction combinations, and can select the candidate movement direction combination having the largest value among the movement direction selection cost function values calculated for each of the multiple candidate movement direction combinations as the optimal movement direction combination.
[0095] In one embodiment, the movement direction determination unit 26 can select the candidate movement direction combination with the largest value of the first cost function if there are two or more of the largest values of the movement direction selection cost function calculated for each of the multiple candidate movement direction combinations. In this case, if there are two or more of the largest values of the first cost function, the unit can select the candidate movement direction combination with the largest value of the second cost function.
[0096] The movement direction determination unit 26 can control the movement direction of each robot based on the movement direction of each robot in the selected combination of candidate movement directions (S416).
[0097] Figure 9 illustrates a method for calculating the distance between the surfaces of cylinders used as the distance between robots in one embodiment.
[0098] Referring to Figure 9, the movement direction determination unit 26 calculates the minimum distance between line segment P generated when robot A moves from one work point to another work point and line segment Q generated when robot B moves from one work point to another work point in the same amount of time (step) (S902).
[0099] In other words, when the volume of the distance a robot moves from one work point to another in any one step is represented by a cylinder, the movement direction determination unit 26 calculates the minimum distance between the line segment P that forms the axis of the first cylinder representing the volume of the distance robot A moves and the line segment Q that forms the axis of the second cylinder representing the volume of the distance robot B moves.
[0100] The movement direction determination unit 26 calculates the nearest nearest point of tangency between line segment P and line segment Q (S904).
[0101] A vector is defined by line segments P and Q as shown in equation 4.
number
[0102] At this point, the scalar value is calculated as shown in equation 5.
number
[0103] The denominator is calculated as shown in equation 6. When line segments P and Q are not parallel, the parameters s and t can be expressed as shown in equation 7. When line segments P and Q are parallel, the parameters s and t can be expressed as shown in equation 8.
number
number
number
[0104] The movement direction determination unit 26 can calculate the nearest point of tangency at line segment P and the nearest point of tangency at line segment Q using parameters s and t. The nearest points of tangency at line segment P and the nearest point of tangency at line segment Q are calculated as shown in equation 9.
number
[0105] Next, the movement direction determination unit 26 can calculate the distance between the nearest point of tangency on line segment P and the nearest point of tangency on line segment Q (S906). The distance between the nearest point of tangency on line segment P and the nearest point of tangency on line segment Q can be calculated as shown in equation 10, and the distance between the nearest point of tangency on line segment P and the nearest point of tangency on line segment Q is the minimum distance between line segment P and line segment Q.
number
[0106] Next, the movement direction determination unit 26 can calculate the actual distance between the surfaces of the cylinders by considering the distance between the nearest point of tangency on line segment P and the nearest point of tangency on line segment Q, and the radii of the first cylinder with line segment P as its axis and the second cylinder with line segment Q as its axis (S908). The distance between the surfaces of the two cylinders is calculated as shown in equation 11.
number
[0107] According to equation 11, if the two cylinders overlap or touch, d-(r1+r2)≦0, so the distance between the surfaces of the two cylinders is set to 0.
[0108] The distance between the surfaces of the two cylinders, calculated from equation 11, is used as the robot-to-robot distance when calculating the value of the second parameter.
[0109] Figure 10 shows a movement direction determination unit according to one embodiment.
[0110] Referring to Figure 10, the movement direction determination unit 26 may include a candidate movement direction calculation unit 261, a movement path volume calculation unit 262, an overlapping volume calculation unit 263, a distance calculation unit 264, a movement direction selection unit 265, and a movement direction control unit 266. The movement direction determination unit 26 may further include a storage unit 267.
[0111] The candidate movement direction calculation unit 261 can calculate multiple candidate movement direction combinations that correspond to the number of possible movement directions for each of the multiple robots on the movement path of each of the multiple robots' work points.
[0112] The movement path volume calculation unit 262 can calculate the volume of each robot's movement path in multiple steps for each of the multiple candidate movement direction combinations.
[0113] The superimposed volume calculation unit 263 can calculate the superimposed volume for each of the multiple candidate movement direction combinations by using the volume of each robot's movement path calculated in each of the multiple steps. The superimposed volume calculation unit 263 can also calculate the total superimposed volume for each of the multiple candidate movement direction combinations by summing up the superimposed volumes calculated in each of the multiple steps.
[0114] The superimposed volume calculation unit 263 can store the sum of the superimposed volumes calculated for each of the multiple candidate movement direction combinations in the storage unit 267.
[0115] The distance calculation unit 264 can calculate the distance between robots in each of the multiple steps, using cylinders that represent the volume of the movement paths of each of the multiple robots calculated in each of the multiple steps for each of the multiple candidate movement direction combinations, and then sum up the distances between robots calculated in each of the multiple steps to calculate the total distance between robots for that candidate movement direction combination.
[0116] The distance calculation unit 264 can store the sum of the distances between robots for each of the multiple candidate movement direction combinations in the storage unit 267.
[0117] The movement direction selection unit 265 can calculate the value of the movement direction selection cost function using the sum of the superimposed volumes and the sum of the distances between robots calculated for each of the multiple candidate movement direction combinations. The movement direction selection cost function can include a first cost function for the sum of superimposed volumes, which corresponds to the first parameter, and a second cost function for the sum of the distances between robots, which corresponds to the second parameter, as shown in Equation 1.
[0118] The movement direction selection unit 265 can select the candidate movement direction combination having the largest value among the movement direction selection cost function values calculated for each of the multiple candidate movement direction combinations as the optimal movement direction combination. If there are two or more of the largest values among the movement direction selection cost function values calculated for each of the multiple candidate movement direction combinations, the movement direction selection unit 265 can select a candidate movement direction combination with an even larger value for the first cost function.
[0119] The movement direction control unit 266 can control the movement direction of each robot based on the movement direction of each robot in the selected candidate movement direction combination.
[0120] Figure 11 shows the robot-to-robot collision region when the direction of movement in the work point movement path of each robot is not considered, and Figure 12 is a diagram illustrating robot-to-robot collision avoidance when the direction of movement in the work point movement path of each robot is determined by the robot movement direction determination method according to the embodiment.
[0121] In Figures 11 and 12, robots C, D, and E have no probability of colliding with other robots, so the explanations for robots C, D, and E are omitted.
[0122] Referring to Figure 11, robot A performs the task while moving from work point P1 through work point P2 to work point P3, while robot B performs the task while moving from work point P4 through work point P5 to work point P6.
[0123] In time t1, robot A moves from work point P1 to work point P2, and robot B moves from work point P4 to work point P5. At this time, there is no overlap between the volume of robot A's movement path and the volume of robot B's movement path.
[0124] Meanwhile, in time t2, robot A moves from work point P2 to work point P3, and robot B moves from work point P5 to work point P6. At this time, there is a region where the volume of robot A's movement path and the volume of robot B's movement path overlap. That is, a collision between robot A and robot B may occur in the region where the volumes of robot A's movement path and robot B's movement path overlap.
[0125] However, according to the robot movement direction determination method of the embodiment, the movement direction of robot A and the movement direction of robot B are determined such that the superimposed volume between the volume of robot A's movement path and the volume of robot B's movement path is small, and the distance between the surfaces of the cylinder representing the volume of robot A's movement path and the cylinder representing the volume of robot B's movement path, i.e., the distance between the robots, is large.
[0126] As a result, as shown in Figure 12, the direction of movement of robot B is determined to be different from that in Figure 11, moving from work point P6 through work point P5 to work point P4.
[0127] In this case, in time t1, robot A moves from work point P1 to work point P2, and robot B moves from work point P6 to work point P5. At this time, there is no overlap between the volume of robot A's movement path and the volume of robot B's movement path.
[0128] Furthermore, in time t2, robot A moves from work point P2 to work point P3, and robot B moves from work point P5 to work point P4. At this time, there is no overlapping portion between the volume of robot A's movement path and the volume of robot B's movement path.
[0129] In other words, by determining the direction of movement of robot B to be different from that shown in Figure 11, a collision between robot A and robot B can be avoided at time t2.
[0130] Figure 13 shows a diagram illustrating a multi-robot control device according to another embodiment.
[0131] Referring to Figure 13, the multiple robot control device 100 can be shown as a computing device in which the above-described multiple robot control method and / or robot movement direction determination method are implemented.
[0132] The multiple robot control device 100 includes a processor 110, memory 120, storage device 130, communication interface 140, and bus 150. The multiple robot control device 100 may further include other general-purpose components of a computing device.
[0133] The processor 110 can control the overall operation of each component of the multi-robot control device 100. The processor 110 can be implemented using at least one of various processing units such as a microprocessor, CPU (Central Processing Unit), GPU (Graphic Processing Unit), MPU (microprocessor unit), and MCU (microcontroller unit), and can also be implemented using a parallel processing unit. Furthermore, the processor 110 can perform calculations for the program that executes the aforementioned multi-robot control method and / or robot movement direction determination method.
[0134] In one embodiment, the processor 110 can store a computer program in the memory 120 for implementing at least some functions of the multi-robot control device 20 shown in Figure 2 and / or at least some functions of the movement direction determination unit 26 shown in Figure 10.
[0135] Memory 120 can store various data, command words, and / or information.
[0136] Memory 120 can load computer programs from storage device 130 to execute the aforementioned multiple robot control method and / or robot movement direction determination method. Storage device 130 can store programs non-temporarily. Storage device 130 can be implemented with non-volatile memory.
[0137] The communication interface 140 can support wireless internet communication of the multiplex robot control device 100. Furthermore, the communication interface 140 can also support a variety of communication methods other than internet communication.
[0138] Bus 150 can provide communication functions between the components of the multiple robot control device 100. Bus 150 can be implemented as various types of buses, such as an address bus, a data bus, and a control bus.
[0139] A computer program can include instructions that, when loaded into memory 120, cause the processor 110 to perform a multi-robot control method and / or a robot movement direction determination method. That is, the processor 110 can perform actions for the multi-robot control method and / or robot movement direction determination method by executing the instructions.
[0140] In one embodiment, a multiple robot control method and / or a robot movement direction determination method can be implemented as a computer program on a computer-readable storage medium. In one embodiment, the computer-readable recording medium may be a mobile recording medium or a fixed recording medium. In one embodiment, the computer program recorded on the computer-readable recording medium can be transferred to another computing device via a network such as the Internet, installed on the other computing device, and executed.
[0141] Although embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto. Various modifications and improvements by those skilled in the art, using the basic concepts of the present invention as defined in the following claims, also fall within the scope of the present invention. [Explanation of Symbols]
[0142] 20. Multiple Robot Control Systems 22. Work Assignment Department 24 Movement path determination unit 26 Movement direction determination unit
Claims
1. A multi-robot control device that controls multiple robots that share and process multiple work points in a workspace, wherein the processor of the multi-robot control device controls the multiple robots, The step of assigning a corresponding work point from among the multiple work points to each of the multiple robots, For each of the aforementioned multiple robots, the step of determining a work point travel path so that each robot can visit all of the allocated work points, A step of calculating multiple candidate movement direction combinations based on the work point movement paths of each of the aforementioned multiple robots, For each of the above-mentioned combinations of candidate movement directions, the step of calculating the sum of the superimposed volumes between robots and the sum of the distances between robots based on the work point movement paths of each of the above-mentioned robots, A step in which the movement direction of each of the multiple robots in the work point movement path is determined using the sum of the superimposed volumes between the robots and the sum of the distances between the robots calculated for each of the multiple candidate movement direction combinations, and A step of controlling the plurality of robots according to the direction of movement determined for each of the plurality of robots. A robot control method, including the above.
2. The step of determining the direction of movement is: A step in which the value of the movement direction selection cost function for each of the multiple candidate movement direction combinations is calculated using the sum of the superimposed volumes between robots and the sum of the distances between robots for each of the multiple candidate movement direction combinations. A step of selecting one candidate movement direction combination using the value of the movement direction selection cost function for the aforementioned multiple candidate movement direction combinations, and The step includes determining the movement direction in the work point movement path of each of the multiple robots based on the selected candidate movement direction combination, The robot control method according to claim 1, wherein the movement direction selection cost function includes a first cost function for the sum of the superimposed volumes and a second cost function for the sum of the distances between the robots.
3. The aforementioned selection step is, The step includes selecting the candidate movement direction combination that has the largest value among the values of the movement direction selection cost function for the plurality of candidate movement direction combinations, The robot control method according to claim 2, wherein the first cost function outputs a larger value as the sum of the superimposed volumes decreases, and the second cost function outputs a larger value as the sum of the distances between robots increases.
4. The step of selecting the candidate movement direction combination having the largest value is: The robot control method according to claim 3, further comprising the step of selecting a candidate movement direction combination from among the two or more candidate movement direction combinations having the largest value that the first cost function has a large value, if there are two or more candidate movement direction combinations having the largest value.
5. The step of calculating the sum of the overlapping volumes between the robots and the sum of the distances between the robots is as follows: For each of the above-mentioned combinations of candidate movement directions, the step of calculating the volume of the movement path between multiple work points in the movement path of each of the above-mentioned robots, A step of calculating the superimposed volume of the inter-robot movement paths for the same movement time between work points using the volume of the inter-robot movement paths calculated for each of the multiple robots, and The robot control method according to claim 1, further comprising the step of calculating the total superimposed volume between the robots by summing the superimposed volumes calculated for the work point movement paths of each of the plurality of robots.
6. The step of calculating the volume of the aforementioned movement path is: The steps include: generating a cylinder with a radius that reflects the volume of the robot, with the line segment representing the movement path as the axis, and for each of the movement paths between the multiple work points of each of the multiple robots; and The robot control method according to claim 5, further comprising the step of calculating the volume of the cylinder as the volume of the movement path.
7. The step of calculating the sum of the overlapping volumes between the robots and the sum of the distances between the robots is as follows: For each of the above-mentioned combinations of multiple candidate movement directions, the step of calculating the distance between robots with the same movement time between work points using the volume of the above-mentioned movement path between work points calculated for each of the above-mentioned robots, and The robot control method according to claim 5, further comprising the step of calculating the sum of the robot distances calculated for each of the work point movement paths of the plurality of robots.
8. The step of calculating the distance between the robots is, The robot control method according to claim 7, further comprising the step of calculating the distance between robots, which is the distance between the surfaces of different cylinders representing the volumes of the movement paths of different robots, for the same movement time between the same work points.
9. The step of calculating the distance between the surfaces of the two different cylinders as the distance between the robots is, The steps include: calculating the minimum distance between the first line segment forming the axis of the first cylinder and the second line segment forming the axis of the second cylinder within the same time travel between the same working points; and The robot control method according to claim 8, further comprising the step of calculating the minimum distance between the surfaces of the first cylinder and the second cylinder as the robot-to-robot distance, taking into consideration the minimum distance and the radii of the first cylinder and the second cylinder.
10. In a multi-robot control device that controls multiple robots that share the processing of multiple work points in a workspace, Memory for storing one or more instruction words; and Includes a processor that executes one or more instruction words, The processor executes one or more instruction words, Each of the aforementioned multiple robots is assigned a corresponding work point from among the aforementioned multiple work points, For each of the aforementioned multiple robots, a work point travel path is determined so that each robot can visit all of the allocated work points. Multiple candidate movement direction combinations are calculated based on the work point movement paths of each of the aforementioned multiple robots. For the above-mentioned combination of candidate movement directions, the sum of the superimposed volumes between robots and the sum of the distances between robots are calculated based on the work point movement paths of each of the above-mentioned robots. Using the results of the above calculations, the direction of movement of the work point movement path for each of the multiple robots is determined. The plurality of robots are controlled by the direction of movement of the work point movement path of each of the plurality of robots. Multiple robot control system.
11. The aforementioned processor, For each of the above-mentioned combinations of candidate movement directions, the sum of the inter-robot superposition volumes based on the work point movement paths of each of the above-mentioned robots is calculated. For each of the above-mentioned combinations of candidate movement directions, the sum of the distances between robots based on the work point movement paths of each of the above-mentioned robots is calculated. Using the sum of the superimposed volumes of each of the plurality of candidate movement direction combinations and the sum of the distances between robots, one candidate movement direction combination is selected from the plurality of candidate movement direction combinations. The multiple robot control device according to claim 10, wherein the movement directions of the multiple robots are controlled by the movement directions of the multiple robots based on the selected combination of candidate movement directions.
12. The aforementioned processor, Using the sum of the superimposed volumes between robots and the sum of the distances between robots for each of the plurality of candidate movement direction combinations, a value of a movement direction selection cost function is calculated, which includes a first cost function for the sum of the superimposed volumes and a second cost function for the sum of the distances between robots. The candidate movement direction combination having the largest value of the movement direction selection cost function among the plurality of candidate movement direction combinations is then selected. The multi-robot control device according to claim 11, wherein the first cost function outputs a larger value as the sum of the superimposed volumes decreases, and the second cost function outputs a larger value as the sum of the distances between robots increases.
13. The aforementioned processor, The multi-robot control device according to claim 12, wherein if there are two or more candidate movement direction combinations having the largest value, the candidate movement direction combination with the largest value is selected from among the two or more candidate movement direction combinations having the largest value, wherein the value of the first cost function is large.
14. The aforementioned processor, The multiple robot control device according to claim 11, wherein for each of the multiple candidate movement direction combinations, the volume of the multiple work point movement paths is calculated using the work point movement paths of each of the multiple robots, the superimposed volume of the robot movement paths for the same movement time between work points is calculated using the volumes of the multiple work point movement paths calculated for each of the multiple robots, and the sum of the superimposed volumes between robots is calculated by summing the superimposed volumes calculated for the work point movement paths of each of the multiple robots.
15. The aforementioned processor, The multi-robot control device according to claim 14, wherein for each of the multiple robots, a cylinder is generated with a radius that reflects the volume of the robot, with the line segment representing the movement path as the axis, and the volume of the cylinder is calculated as the volume of the movement path.
16. The aforementioned processor, The multiple robot control device according to claim 15, wherein for each of the multiple candidate movement direction combinations, the robot-to-robot distance is calculated using the volume of the multiple work point movement path calculated for each of the multiple robots, with the same work point movement time, and the robot-to-robot distances calculated for each of the work point movement paths of the multiple robots are added together to calculate the total robot-to-robot distance.
17. The aforementioned processor, The multi-robot control device according to claim 16, wherein the distance between the surfaces of different cylinders representing the volumes of the movement paths of different robots is calculated as the distance between the robots during the same movement time between the same work points.
18. The aforementioned processor, The multi-robot control device according to claim 17, wherein, in the same travel time between the same work points, the minimum distance between the first line segment forming the axis of the first cylinder and the second line segment forming the axis of the second cylinder is calculated, and the minimum distance between the surfaces of the first cylinder and the second cylinder is calculated as the distance between the robots, taking into consideration the minimum distance and the radii of the first cylinder and the second cylinder.