Operation path generation device

The motion path generation device optimizes the computation of paths for multiple robots by classifying obstacles and using previous interference results to regenerate waypoints efficiently, addressing the inefficiencies in existing systems.

JP2026121147APending Publication Date: 2026-07-23DENSO CORP
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
DENSO CORP
Filing Date
2025-01-10
Publication Date
2026-07-23

AI Technical Summary

Technical Problem

Existing motion path generation systems for multiple robots require inefficient regeneration of operation paths whenever interference occurs, leading to wasted computational effort as the number of robots increases.

Method used

A motion path generation device that classifies obstacles into static and dynamic groups, performs interference determination for each group, and uses previous interference detection results to regenerate waypoints only when necessary, optimizing the computation by omitting redundant interference checks.

Benefits of technology

This approach enhances computational efficiency by reducing unnecessary interference detection, allowing for more efficient generation of motion paths for multiple robots.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026121147000001_ABST
    Figure 2026121147000001_ABST
Patent Text Reader

Abstract

This makes it possible to make the calculations for generating motion paths for multiple robots more efficient. [Solution] The system comprises a waypoint generation unit 131 that generates waypoints, an interference determination unit 132 that performs interference determination, a classification unit 102 that creates groups that classify at least static obstacles and dynamic obstacles as the types of targets for interference determination pairs, and a path search unit 103 that generates an operating path that is determined not to interfere with any of the multiple robots for which the path is generated. The interference determination unit 132 performs interference determination for each group created by the classification unit 102 and includes a path exclusion unit 133 that stores the determination results of the interference determination for each group. If the interference determination is found to be an interference, the waypoint generation unit 131 uses the determination results of the interference determination for each group that have been determined by the interference determination unit and stored in the path exclusion unit 133 to generate new waypoints.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This disclosure relates to a motion path generation device that generates motion paths for a robot. [Background technology]

[0002] Patent Document 1 discloses a technique for teaching the movements of multiple robots to avoid obstacles and prevent interference with each other when multiple robots perform work simultaneously in a common work area. In this technique, waypoints, or teaching values, for moving a reference part of each robot from a starting point to an ending point while avoiding obstacles are generated independently for each robot. In this technique, if the passage areas of each robot intersect, an additional constraint is set that prevents any robot from passing through that area. Then, under that constraint, the teaching values ​​for moving the reference part of each robot from the starting point to the ending point while avoiding obstacles are regenerated. [Prior art documents] [Patent Documents]

[0003] [Patent Document 1] Japanese Patent Publication No. 2018-144223 [Overview of the project] [Problems that the invention aims to solve]

[0004] However, in Patent Document 1, each robot's operation path is independently regenerated each time it interferes with another robot. Therefore, as the number of robots involved increases, some robots that do not interfere also have to have their operation paths regenerated each time, resulting in wasted effort.

[0005] One objective of this disclosure is to provide a motion path generation device that enables more efficient computation for generating motion paths for multiple robots. [Means for solving the problem]

[0006] The above objectives are achieved by a combination of features described in the independent claims, and the subordinate claims provide further advantageous specific examples of the disclosure. The reference numerals in parentheses in the claims indicate correspondences with specific means described in the embodiments described later as one aspect, and do not limit the technical scope of this disclosure.

[0007] To achieve the above objective, the motion path generation device of the present disclosure is a motion path generation device that generates motion paths for multiple robots, comprising: a waypoint generation unit (131, 131b) that generates waypoints other than the start and end points that the robot passes through from the start point to the end point of its motion, representing one of the robot's poses; an interference determination unit (132, 132a, 132c, 132d) that performs interference determination to determine whether or not the robot will interfere with obstacles other than the robot when it moves from the start point to the end point via the waypoints generated by the waypoint generation unit; and at least static obstacles as the type of object of an interference determination pair, which is a pair that performs interference determination between the robot for which the motion path is generated and obstacles other than the robot. The system includes a classification unit (102) that creates groups of objects classified as and dynamic obstacles, and a path generation unit (103, 103a, 103b, 103c, 103d) that generates a path for multiple robots that is determined not to interfere with any of the target robots in the interference determination, and the interference determination unit performs interference determination for each group created by the classification unit, and includes a storage processing unit (133) that saves the determination results of the interference determination for each group performed by the interference determination unit, and the waypoint generation unit, if interference is determined to occur in the interference determination, uses the determination results of the interference determination for each group that have been determined by the interference determination unit and saved by the storage processing unit to generate new waypoints.

[0008] With the above configuration, interference detection is performed between the robot and other obstacles for each group classified into static and dynamic obstacles. If interference is detected, the results of the previously determined interference detection for each group are used to regenerate new waypoints. Therefore, when regenerating waypoints, if there is a portion of the path to the waypoint that has already been determined to have interference for a certain group, the interference detection for that group can be omitted, and the path can be searched for. Also, depending on whether the target of the interference detection pair is a static or dynamic obstacle, differences are likely to occur where interference occurs with one but not with the other. Therefore, with the above configuration, for paths that have already been determined not to interfere with some interference detection pairs, it is possible to search for non-interference paths without performing interference detection again. As a result, it becomes possible to make the calculation of generating motion paths for multiple robots more efficient. [Brief explanation of the drawing]

[0009] [Figure 1] This figure shows an example of a schematic configuration of a motion path generation device. [Figure 2] This figure shows an example of an environment in which a robot operates. [Figure 3] This is a block diagram showing the functions performed by the processor according to Embodiment 1. [Figure 4] This flowchart shows an example of the flow of the process related to generating the operation path according to Embodiment 1. [Figure 5] This flowchart shows an example of the process flow for generating waypoints, which is part of the process related to generating the operation path according to Embodiment 1. [Figure 6] This is a diagram illustrating the generation of waypoints. [Figure 7] This is a diagram illustrating the generation of waypoints. [Figure 8] This is a diagram illustrating the generation of waypoints. [Figure 9] This is a diagram illustrating the generation of waypoints. [Figure 10]This is a diagram illustrating the generation of waypoints. [Figure 11] This flowchart shows an example of the process flow for excluding routes, which is part of the process related to generating operating routes according to Embodiment 1. [Figure 12] This block diagram shows the functions performed by the processor according to Embodiment 2. [Figure 13] This flowchart shows an example of the flow of edge interference detection-related processing according to Embodiment 2. [Figure 14] This is a block diagram showing the functions performed by the processor according to Embodiment 3. [Figure 15] This figure shows an example of a path map for each robot. [Figure 16] This figure shows an example of a path tree for each robot. [Figure 17] This is a block diagram showing the functions performed by the processor according to Embodiment 4. [Figure 18] This figure shows an example of a path map for each robot. [Figure 19] This is a block diagram showing the functions performed by the processor according to Embodiment 5. [Figure 20] This diagram illustrates an example of how the 3D model list changes between the initial environment and after an environmental change. [Figure 21] This diagram illustrates an example of how interference detection pairs change between the initial environment and after environmental changes. [Modes for carrying out the invention]

[0010] Multiple embodiments for disclosure will be described with reference to the drawings. For the sake of clarity, in some embodiments, parts having the same function as those shown in the drawings used in previous descriptions will be denoted by the same reference numerals, and their descriptions may be omitted. For parts denoted by the same reference numerals, refer to the descriptions in other embodiments.

[0011] (Embodiment 1) The following description of this embodiment will be made with reference to the drawings. Figure 1 is a diagram showing a schematic configuration of the motion path generation device 100 according to Embodiment 1. The motion path generation device 100 is a device that generates motion paths for multiple robots R, as shown in Figure 2, to move without interfering with obstacles. The motion path of the robots R refers to the path along which the robots R move as their posture changes over time.

[0012] Each of the multiple robots R shown in Figure 2 has two axes, two joints, and one chuck. In the example in Figure 2, two robots, robot Ri and robot Rj, are shown as the multiple robots R. Hereafter, if robot Ri and robot Rj are not distinguished, they will be referred to as robot R. In the example in Figure 2, two robots R are shown as the multiple robots R, but this is not necessarily the case. The multiple robots R may be three or more robots.

[0013] Robot R comprises a first axis section 401 and a second axis section 403, a first joint section 402 and a second joint section 404, and a chuck section 405. The robot R shown in Figure 2 is a simplified configuration for illustrating an embodiment. Robot R may have three or more axes and joints. Each robot R is operable in three-dimensional space.

[0014] The first joint 402 of the robot R is provided at the end of the first shaft portion 401 and allows the first shaft portion 401 to rotate about a rotation axis perpendicular to the first shaft portion 401. The first shaft portion 401 is connected to the base, for example, by the first joint 402 so that it can rotate relative to the base. The base is installed, for example, on the floor or on a mounting platform.

[0015] The second joint 404 of robot R is located at the end of the first shaft portion 401 on the side without the first joint 402. The second joint 404 connects the end of the first shaft portion 401 to the end of the second shaft portion 403. The second joint 404 allows the second shaft portion 403 to rotate relative to the first shaft portion 401 around a rotation axis perpendicular to both the first shaft portion 401 and the second shaft portion 403. The chuck portion 405 is located at the end of the second shaft portion 403 on the side without the second joint 404. The chuck portion 215 is a pair of gripping portions with one end open, capable of gripping objects such as parts. The chuck portion 405 is rotatably mounted around the axis of the second shaft portion 403. In Figure 2, the first shaft portion 401 and the second shaft portion 403 are rod-shaped. However, the shapes of the first shaft portion 401 and the second shaft portion 403 do not have to be rod-shaped and may be changed in various ways depending on the application of the robot R.

[0016] The range of rotational angle in which the first shaft portion 401 can rotate relative to the base can be set in various ways by a mechanical or electrical mechanism. The range of rotational angle in which the second shaft portion 403 can rotate relative to the first shaft portion 401 can also be set in various ways by a mechanical or electrical mechanism.

[0017] Figure 2 also shows static obstacles SO. Static obstacles SO are objects that can obstruct the movement of robot R. Examples of static obstacles SO include the workpiece (the object that robot R is working on) and stationary objects around robot R. The shape, location, and material of static obstacles SO vary depending on the location where robot R is installed and the intended use of robot R. Furthermore, when multiple robots R are placed in close proximity and multiple robots R cooperate to perform a predetermined task, one robot R may become an obstacle to other robots R. Such robots R that can become obstacles will be referred to as dynamic obstacles below. For example, robot Rj can be a dynamic obstacle to robot Ri in Figure 2. Conversely, robot Ri can be a dynamic obstacle to robot Rj.

[0018] Returning to Figure 1, the motion path generation device 100 comprises a control device 10, an input device 20, and a display device 30. The control device 10 comprises a processor 11, a ROM 12, and a RAM 13. A motion path generation device 100 with such a configuration can also be implemented using a general-purpose computer. A motion path generation device 100 can also be implemented using a virtual machine. A motion path generation device 100 can also be implemented using a system that includes a server capable of communicating with a computer and a computer. A motion path generation device 100 can also be implemented using a system that includes a cloud or virtual machine capable of communicating with a computer and a computer.

[0019] The input device 20 receives input from the user. The input device 20 can be an operating device that receives operation input from the user. The operating device may be a keyboard or a touch switch integrated with a display. The input device 20 is not limited to an operating device that receives operation input, as long as it is a device that receives input from the user. For example, it may be a voice input device that receives voice commands from the user. The input device 20 is used to input various information used to generate the motion path. This information can be used to input the start and end points of the robot R, simulation conditions, etc. The input start and end points, simulation conditions, etc. are registered in the motion path generation device 100. The display device 30 can display the motion path generated by the control device 10. The display device 30 may also display the determination results regarding waypoints, etc., if no motion path is generated.

[0020] The ROM 12, which is a non-volatile memory, stores an operation path generation program that the processor 11 will execute. The processor 11 executes the operation path generation program stored in the ROM 12 while utilizing the temporary storage function of the RAM 13, which is a volatile memory. In this way, the processor 11 performs the processing related to the generation of the operation path. The processor 11 can be a CPU. In addition to a CPU, the processor 11 may also be an MPU, GPU, DFP (Data Flow Processor), etc. Furthermore, it is possible that some of the functions performed by the processor 11 are performed by hardware circuits.

[0021] As shown in Figure 3, the processor 11 includes a start / end point registration unit 101, a classification unit 102, and a path search unit 103 as functional blocks. The start / end point registration unit 101 registers the start and end points of the movement path of each robot R. The start / end point registration unit 101 registers the start and end points that are input as the start and end points of the movement path of each robot R by the input device 20. Hereinafter, the start and end points of the movement path of the robot R will be simply referred to as the start and end points. The start and end points correspond to the posture of the robot R. The posture of the robot R is determined by the rotational position of the movable parts, such as the rotation angle of the joints. For example, if the parameters representing the degrees of freedom of the first axis 401 and second axis 403 of the robot R are the rotation angles of the first joint 402 and second joint 404, it can be expressed as follows. The posture of robot R can be represented as the coordinates of a single point in a configuration space whose coordinate axes are the rotation angles of the first joint 402 and the second joint 404. For example, the start and end points may be the posture of the chuck unit 405, the joint angles, or their ranges. The start and end point registration unit 101 registers the start and end points in memory. This memory may be a rewritable non-volatile memory or a volatile memory.

[0022] The start / end point registration unit 101 may also be configured to register simulation conditions received as input by the input device 20. Examples of simulation conditions include the interpolation method between the start point and the end point (hereinafter referred to as start / end points), constraints on the priority of each robot R reaching the end point, and constraints on the travel time for each robot R to reach the end point. Examples of interpolation methods between start / end points include PTP (Pose To Pose) and CP (Continuous Path). The priority of each robot R reaching the end point is a constraint on which of the multiple robot Rs should reach the end point first.

[0023] The classification unit 102 creates pairs (hereinafter referred to as "interference determination pairs") that perform interference determination between the robot R that is the target of generating the motion path and obstacles other than robot R. The classification unit 102 also generates groups that classify the types of targets for the interference determination pairs. The targets for which the motion path is generated will be referred to as "path generation targets" below. The classification unit 102 creates groups that classify the types of targets for the interference determination pairs into at least static obstacles and dynamic obstacles. In this case, if there are two robots R that are dynamic obstacles, the classification unit 102 will create three sets of interference determination pairs. The first is an interference determination pair between the first robot R and a static obstacle. The second is an interference determination pair between the second robot R and a static obstacle. The third is an interference determination pair between the first robot R and the second robot R that is a dynamic obstacle.

[0024] The classification unit 102 may be configured not only to classify static obstacles and dynamic obstacles, but also to further subdivide them. For example, the classification unit 102 may further subdivide and classify dynamic obstacles by part of the robot R. The classification unit 102 may further subdivide and classify static obstacles by type of obstacle. The input device 20 may accept input for setting the further subdivided classification.

[0025] The path search unit 103 searches for an operating path that does not interfere with obstacles between the start and end points registered in the start and end point registration unit 101 for any of the multiple robots R for which path generation is targeted. The path search unit 103 generates operating paths for the multiple robots R that are determined not to interfere in the interference determination described later. Therefore, the path search unit 103 corresponds to the path generation unit. The path search unit 103 continues searching until an interfering operating path is found. The path search unit 103 may also be configured to calculate an evaluation value of the operating path and continue searching until the evaluation value satisfies specified conditions. The evaluation value may be the amount of movement of the robot R, the load amount such as the predicted amount of current consumption, etc. The specified conditions may be any value that can be set arbitrarily. The path search unit 103 includes a waypoint generation unit 131, an interference determination unit 132, and a path exclusion unit 133 as sub-function blocks.

[0026] The waypoint generation unit 131 generates waypoints other than the start and end points that the robot R passes through from the start point to the end point of its movement. A waypoint represents one of the postures of the robot R. In other words, a waypoint can be described as a parameter that identifies the posture of the robot R. The movement path of the robot R is represented by a set of waypoints from the start point to the end point. The set of waypoints can be described as a set of parameters that identify the posture of the robot R. Note that the start point and end point are also included as waypoints.

[0027] Furthermore, the waypoint generation unit 131 generates new waypoints if interference is determined in the interference determination described later. In this case, the interference determination will determine that the generated waypoints or the sections connecting the waypoints interfere with an obstacle. A waypoint can be rephrased as a node. The section between waypoints can be rephrased as an edge. The waypoint generation unit 131 generates new waypoints using the interference determination results for each group that have already been determined by the interference determination unit 132 described later.

[0028] The interference determination unit 132 determines whether or not robot R will interfere with obstacles other than robot R when it moves from the starting point to the ending point via waypoints generated by the waypoint generation unit 131. For example, the interference determination can be based on the distance between the 3D model of robot R and the 3D model of the obstacle when the 3D model of robot R is moved in the simulation. For example, interference can be determined by whether or not this distance is less than or equal to the allowable distance. The allowable distance may be 0 or a value greater than 0. If the obstacle is a dynamic obstacle, robot R, which is a dynamic obstacle, may also be moved in the simulation and this determination can be performed. The interference determination unit 132 may perform the interference determination each time a new waypoint is generated by the waypoint generation unit 131. The interference determination unit 132 may perform the interference determination after generating multiple new waypoints in the waypoint generation unit 131. For example, the interference determination unit 132 may perform the interference determination after provisionally connecting the waypoints up to the ending point. In the following section, we will continue our explanation using the example of a case where the interference determination unit 132 performs interference determination each time the waypoint generation unit 131 generates a new waypoint.

[0029] The interference determination unit 132 performs interference determination for each group created by the classification unit 102. The preferred order of interference determination is as follows: In interference determination, the interference determination pairs between each robot R targeted for path generation and static obstacles are given priority, and then interference determination is performed on the interference determination pairs between each robot R targeted for path generation and dynamic obstacles. Dynamic obstacles have a non-fixed position, so the processing load for interference determination tends to be higher than that of static obstacles. By prioritizing interference determination for static obstacles over dynamic obstacles, the interference determination results for static obstacles can be used for interference determination of dynamic obstacles. Therefore, by using the interference determination results with a lower processing load to perform interference determination with a higher processing load, it becomes possible to make the calculation for generating the motion path more efficient. Alternatively, the interference determination unit 132 may prioritize interference determination pairs between each robot R targeted for path generation and dynamic obstacles, and then perform interference determination on the interference determination pairs between each robot R targeted for path generation and static obstacles. Even in this case, it becomes possible to make the calculation for generating the motion path more efficient by using the determination results of other groups for interference determination.

[0030] The route exclusion unit 133 stores the interference determination results for each group performed by the interference determination unit 132. The route exclusion unit 133 stores the determination results for each group in a way that allows for identification of the waypoints or waypoint sections for which interference determination was performed for each group. This route exclusion unit 133 corresponds to the storage processing unit. The route exclusion unit 133 stores the determination results in memory. This memory may be a rewritable non-volatile memory or a volatile memory. The route exclusion unit 133 excludes waypoints and waypoint sections that have been determined to interfere so that they are not selected for generation of new waypoints by the waypoint generation unit 131 in subsequent times. This is done by saving them as waypoints and waypoint sections that have been determined to interfere. The route exclusion unit 133 also saves waypoints and waypoint sections that have been determined not to interfere (i.e., non-interfering) as non-interfering waypoints and waypoint sections. The route search unit 103 will generate a route that connects the starting point to the ending point with waypoints and waypoint sections that have been determined not to interfere as a non-interfering route. According to this, interference detection results are used to omit interference detection for waypoints and waypoint sections where interference detection has already been performed and no further interference detection is required.

[0031] With the above configuration, interference detection is performed between the robot being routed and other obstacles for each group classified into static and dynamic obstacles. If interference is detected, the results of the previously determined interference detection for each group are used to regenerate new waypoints. Therefore, when regenerating waypoints, if there is a portion of the path to the waypoint that has already been determined to have interference for a certain group, the interference detection for that group can be omitted, and the movement path can be searched. Also, depending on whether the partner in the interference detection pair is a static or dynamic obstacle, differences are likely to occur, such as interference with one but not with the other. Therefore, with the above configuration, for paths that have already been determined not to interfere with some interference detection pairs, it is possible to search for non-interference paths without performing interference detection again. As a result, it becomes possible to make the calculation of movement paths for multiple robots more efficient.

[0032] Next, using the flowchart in Figure 4, we will explain an example of the process related to the generation of motion paths for multiple robots R in the processor 11 (hereinafter referred to as motion path generation-related processing). Here, we will explain using the case of generating motion paths for robots Ri and Rj as an example. The flowchart in Figure 4 should be configured to start when an operation input is made, for example, by an operator to start the motion path.

[0033] First, in step S1, the start / end point registration unit 101 registers the start / end points of the operation path for each robot R. In S1, the simulation conditions received as input by the input device 20 may also be registered. Note that the flowchart in Figure 4 may be configured to start when the start / end point registration unit 101 registers the start / end points. In step S2, the classification unit 102 generates groups of interference determination pairs, which are robots R for which path generation is to be performed, and interference determination between those robots R and other obstacles.

[0034] In step S3, the waypoint generation unit 131 generates waypoints, and the process moves to step S4. Waypoints may be generated sequentially from the starting point, sequentially from the ending point, or in both directions from the starting point to the ending point. If generation starts from the starting point, the process should be as follows: When a newly generated waypoint approaches the ending point within a certain distance, the ending point is added to the waypoint, and the search is terminated when the paths are determined to be non-interfering. If generation starts from the ending point, the process should be as follows: When a newly generated waypoint approaches the starting point within a certain distance, the starting point is added to the waypoint, and the search is terminated when the paths are determined to be non-interfering. If generation starts in both directions, the process should be as follows: When the nearest waypoint on the opposite path approaches within a certain distance, that waypoint is added to the other path, and the search is terminated when the paths are determined to be non-interfering.

[0035] Hereinafter, as an example, the case of generating via points in order from the starting point will be described. Here, using the flowchart of FIG. 5 and FIGS. 6 to 10, an example of the process flow of generating via points will be described. FIG. 5 is a flowchart showing an example of the process flow of generating via points. FIGS. 6 to 10 are diagrams for explaining the generation of via points and show a route tree. In the generation of via points by the via point generation unit 131, a route tree for each robot R for which route generation is to be performed and a route tree integrated for these multiple robots R are generated. FIGS. 7 and 8 are route trees for each robot R, and FIGS. 6, 9, and 10 are route trees for multiple robots R. Hereinafter, the route tree integrated for multiple robots R will be referred to as an inter-robot route tree.

[0036] First, in step S301, a random point P is generated on the search space of each robot R for which route generation is to be performed. rand The search space may be the configuration space described above. The point P may be generated in the same manner as in the RRT (Rapidly-exploring Random Tree). n rand

[0037] In step S302, the nearest neighbor via point P is extracted on the inter-robot route tree T from the point P (see FIG. 6). The point P corresponds to the point P which is a random point P of the robot Ri and the point P which is a random point P of the robot Rj. In the example of FIG. 6, an example of the extraction of the via point P in a situation where several via points have already been generated from the starting point P is shown. In S302, when it is the first time to generate a via point, etc., the starting point P i,j rand i,j i,j nearest i,j rand n rand i rand n ​​​​​​​​​​​​i,j start If only one exists, then starting point P i,j start viapoint P i,j nearest This is the result.

[0038] In step S303, for each robot R's path tree, P n nearest From P n rand Intermediate point Q extending in the direction n child List them. P n nearest is via point P i,j nearest The path tree T of each robot R corresponding to the robot R. n This is the waypoint shown above. In this embodiment, the waypoint Q for the robot Ri is shown above. i child And the transit point Q for robot Rj j child List them.

[0039] As shown in Figure 7, the path tree T of robot R n Above, via point P n nearest If there are child nodes that extend beyond the point Q, then this child node is passed through point Q. n child They are listed as follows. Note that if there is a child node that has been determined to interfere, the other child nodes are used as intermediate point Q. n child These are listed as follows. In the example in Figure 7, as shown by the dashed circle, the waypoint Q n child Two points are listed as such. Note that the waypoint P n nearest The existence of child nodes extending beyond the first node can occur in the following situations: One example is when one of the robots R interferes with a waypoint P. i,j nearest First, a path tree T i,j Although it hasn't grown, the path tree T for each robot R n So, point P is the waypoint. n nearestThis is the case where the search has advanced further ahead. Another example is the case where a route map exists in advance as in Embodiment 3 described later. On the other hand, as shown in FIG. 8, for the route tree T of the robot R n above, if there is no child node extending beyond the via point P n nearest then, from the via point P n nearest to P n rand the branch of the route tree T n is extended in the direction of and the point P n new is set as the via point Q n child .

[0040] In step S304, from the combinations of the via point Q i child and the via point Q j child the via point P i,j new is selected. The combination of the via point Q i child and the via point Q j child is represented as Q i [[ID=4*]] child ×Q j child in FIG. 5. In FIG. 9, as an example, there are two via points Q i child and one via point Q j child ]>An example is shown. In the example of FIG. 9, with 2×1 = 2, as shown enclosed by the dashed circle, there are two candidates for the via point P i,j new . For example, if there are two via points Q i child and three via points Q j child then there are 2×3 = 6 candidates for the via point P i,j new . In S304, according to the selection conditions, the via point P i,j new can be selected from the candidates for the via point P i,j [[ID=6*]] new . The selection conditions are P i,jrand It is the point closest to the endpoint P. i,j term The selection criteria could be the point closest to the specified value. The evaluation values ​​mentioned above may also be used as selection criteria. For example, the selection criteria could be the point where the robot R moves the least, the point where the load on robot R is the least, etc.

[0041] In step S305, the waypoint P selected in S304 is used. i,j new As shown in Figure 10, the inter-robot path tree T i,j via point P n nearest Add it as a child node with the parent node, and proceed to step S4.

[0042] Returning to Figure 4, in step S4, the interference determination unit 132 performs interference determination. In this interference determination, the waypoint P newly added in S3 is determined. n new and viapoint P i,j new Furthermore, interference is determined to determine whether the added path (i.e., edge) interferes with an obstacle. An edge can be rephrased as a waypoint section. Interference between an edge and an obstacle means that the robot R interferes with the obstacle when performing the action indicated by the edge. Interference between a waypoint and an obstacle means that the robot R, in the posture indicated by the waypoint, interferes with the obstacle. Interference is determined for each group created in S2. If interference is determined (YES in S4), the process moves to step S5. On the other hand, if no interference is determined (NO in S4), the process moves to step S6. Interference is determined to be non-interference if there is no interference between robot Ri and a static obstacle, robot Rj and a static obstacle, or robot Ri and robot Rj which is a dynamic obstacle for robot Ri. In S4, if no interference is determined, the path exclusion unit 133 excludes the waypoint P newly added in S3. i,j new For the edges added by this addition, the interference detection results for each group should be saved as non-interfering.

[0043] In step S5, the route exclusion unit 133 performs the route exclusion process and proceeds to step S6. Here, an example of the flow of the route exclusion process will be explained using the flowchart in Figure 11.

[0044] First, in step S501, the waypoint P n new If it is determined in S4 that the edges up to point P interfere (YES in S501), the process proceeds to step S502. n new The edge up to point P is the intermediate point. n new This refers to the edge added by the addition of [the specified element]. On the other hand, the viapoint P n new If it is determined in S4 that the edges up to that point do not interfere (NO in S501), the process proceeds to step S504.

[0045] In step S502, the path tree T of the robot R is generated by the waypoint generation unit 131. n Therefore, the via point P of the edge that was determined to interfere in S4. n new Exclude it. In step S503, the inter-robot path tree T i,j From point P i,j nearest and viapoint P i,j new The edge between and via point P i,j new Exclude and and proceed to step S6.

[0046] In step S504, the waypoint P i,j new If it is determined in S4 that interference occurs (YES in S504), the process proceeds to step S505. Meanwhile, the process proceeds to the intermediate point P. i,j new If it is determined in S4 that there is no interference (NO in S504), the process moves to step S506. In step S505, the inter-robot path tree T i,j From point P i,j new Excluding point P, i,j new Exclude list N i,jRegister and proceed to step S6. Exclusion list N i,j This is a list of waypoints to be excluded when generating new waypoints in the waypoint generation unit 131. Exclusion List N i,j This information is registered in memory. This memory may be rewritable non-volatile memory or volatile memory.

[0047] In step S506, the waypoint P i,j new If it is determined in S4 that the edges up to point P interfere (YES in S506), the process proceeds to step S507. i,j new The edge up to point P is the intermediate point. i,j new This refers to the edge added by the addition of [the specified element]. On the other hand, the viapoint P i,j new If it is determined in S4 that the edges up to that point do not interfere (NO in S506), then the process proceeds to step S6. In step S507, the waypoint P i,j nearest and viapoint P i,j new Exclude the pair with List E i,j Register and proceed to step S503. Exclusion list E i,j This is a list of edges to be excluded when generating new waypoints in the waypoint generation unit 131. Exclusion List E i,j For example, you can register an edge as a set of waypoints that are nodes of that edge. Exclusion List E i,j The data is then registered in memory. This memory may be rewritable non-volatile memory or volatile memory. Note that in the flowchart of Figure 11, if there are three or more robots R for which path generation is to be performed, the process from S503 to S507 should be tried for all combinations of robots R.

[0048] Returning to Figure 4, in step S6, if the search for the motion path is complete (YES in S6), the searched motion path is generated as the motion path for multiple robots R, and the motion path generation related processing is terminated. The search for the motion path is completed when it is possible to connect the waypoints that are determined not to interfere by interference detection from the start point to the end point. On the other hand, if the search for the motion path is not complete (NO in S6), the process returns to S3 and is repeated.

[0049] (Embodiment 2) The configuration is not limited to the above-described embodiment, but may also be that of Embodiment 2 described below. Below, an example of the configuration of Embodiment 2 will be explained with reference to a diagram. Below, the operation path generation device 100 according to Embodiment 2 will be explained with reference to a diagram. The operation path generation device 100 according to Embodiment 2 is the same as the operation path generation device 100 of Embodiment 1, except that it includes a processor 11a instead of a processor 11.

[0050] Here, an example of the schematic configuration of the processor 11a will be explained using Figure 12. As shown in Figure 12, the processor 11a includes a start / end point registration unit 101, a classification unit 102, and a path search unit 103a as functional blocks. The processor 11a is the same as the processor 11 of Embodiment 1, except that it includes a path search unit 103a instead of a path search unit 103.

[0051] The path search unit 103a includes a waypoint generation unit 131, an interference determination unit 132a, and a path exclusion unit 133 as sub-functional blocks. The path search unit 103 is the same as the path search unit 103 of Embodiment 1, except that it includes an interference determination unit 132a instead of an interference determination unit 132.

[0052] The interference determination unit 132a is the same as the interference determination unit 132 of Embodiment 1, except that some processing differs. These differences will be explained below. The interference determination unit 132a includes a determination pair selection unit 1321 and an interference determination update unit 1322 as sub-functional blocks.

[0053] The judgment pair selection unit 1321 selects a pair to perform interference judgment from among the multiple interference judgment pairs created by the classification unit 102. The pair selection should prioritize interference judgment pairs between each robot R and static obstacles over interference judgment pairs between robot Rs themselves (i.e., between dynamic obstacles). If there are three robot Rs, there will be at least three interference judgment pairs for static obstacles and three interference judgment pairs between robot Rs for dynamic obstacles. The order in which robot Rs select interference judgment pairs can follow, for example, the order determined by the identification information assigned to each robot R. Examples include the order of robot R names or the order of robot R numbers. Alternatively, the order in which robot Rs select interference judgment pairs may be random. The order in which robot Rs select interference judgment pairs may also prioritize pairs with a high interference probability. Regarding interference probability, if there are interference judgment pairs that have progressed partway through the past, the probability can be estimated according to the progress of the interference judgment. For example, pairs with a high percentage of consecutive "no interference" judgments should have a lower estimated interference probability.

[0054] The interference detection update unit 1322 performs interference detection on the edges that form the paths between the waypoints where interference detection is required. Interference detection of edges is not like interference detection between waypoints (nodes) where interference is detected between a single orientation, so the calculation takes time. Therefore, the interference detection update unit 1322 uses binary search for interference detection of edges. The binary search can be performed as follows: First, interference detection is performed on the midpoint of the edge. Then, if there is no interference, interference detection is performed on the midpoint of the interval of the edge separated by that midpoint. The binary search repeats this process. The binary search terminates when interference is detected. In the binary search, each time interference detection is performed on a point on the edge, the interference detection result is saved to memory. This memory may be rewritable non-volatile memory or volatile memory. In other words, the interference detection update unit 1322 (i.e., the interference detection unit 132a) maintains the progress of the binary search. The progress of this binary search provides information that allows for the resumption of interference testing for sections where interference testing has not yet been performed for edges where interference testing has been partially completed. The progress of the binary search for an edge should be stored in association with a search key corresponding to the set of waypoints that will become nodes of that edge. The search key should be a unique seed value for that set of waypoints, created from the set of waypoints that will become nodes of that edge.

[0055] The interference detection update unit 1322 (i.e., the interference detection unit 132a) performs interference detection using binary search for each group created by the classification unit 102 and maintains the progress of the binary search for each group. The interference detection update unit 1322 can, for example, alternately perform interference detection using binary search for each pair of interference detection pairs for each group created by the classification unit 102. By performing binary search for at least each group classified into static obstacles and dynamic obstacles, the interference detection process is reduced. The details are as follows: If an edge of robot R interferes with either a static obstacle or a dynamic obstacle, that edge is unsuitable for the movement path. Therefore, if interference is determined to occur with either a static obstacle or a dynamic obstacle, the interference detection for the other obstacle can be terminated, thus avoiding unnecessary interference detection and reducing processing load. For example, if the interference detection update unit 1322 determines that an edge interferes with a static obstacle, it can simply erase the progress of the binary search for the dynamic obstacle for that edge. On the other hand, if the interference determination update unit 1322 determines that a dynamic obstacle and an edge interfere, it only needs to continue to maintain the progress of the binary search for static obstacles for that edge. This is because it is still uncertain whether or not that edge and the static obstacle interfere, and the progress of the binary search for static obstacles for that edge may be available.

[0056] Then, if the interference detection update unit 1322 decides to perform interference detection on the same edge again, it resumes the binary search interference detection from where it left off, based on the retained progress. This reduces the processing load for interference detection by allowing the binary search to be resumed from where it left off. As a result, interference detection can be made more efficient. Interference detection for edges may be performed each time a waypoint is added by the waypoint generation unit 131, or it may be performed all at once after connecting the waypoints to the start point. In order to make interference detection even more efficient, it is preferable to connect the waypoints to the start point and then perform interference detection for edges all at once. In this case, interference detection is performed only on waypoints while searching for waypoints, and interference detection for edges between waypoints is performed only when a path connecting the start point and the end point is found.

[0057] Here, using the flowchart in Figure 13, we will explain an example of the flow of processing related to edge interference detection in processor 11a (hereinafter referred to as edge interference detection-related processing). The flowchart in Figure 13 should be configured to start when edge interference detection becomes necessary.

[0058] First, in step S21, the interference detection update unit 1322 creates the aforementioned search key from the waypoint pair, which is a set of waypoints that become nodes of the edge requiring interference detection. In step S22, the interference detection update unit 1322 obtains the detection status using the search key created in S21. Specifically, it obtains the progress of the binary search, which is linked to and held in relation to the search key, as the detection status.

[0059] In step S23, if interference determination is still in progress (YES in S23) and it is not yet determined whether the target edge interferes, the process proceeds to step S24. On the other hand, if interference determination is not in progress (NO in S23), the edge interference determination-related processing is terminated. In step S24, the interference determination update unit 1322 updates the edge interference determination. The edge interference determination is updated by resuming the interference determination using binary search from where it left off, based on the progress obtained in S22.

[0060] In step S25, if the result of the interference determination updated in S24 is no interference (YES in S25), the process proceeds to step S27. On the other hand, if the result of the interference determination updated in S24 is interference (NO in S25), the process proceeds to step S26. In step S26, the path exclusion unit 133 saves the target edge as having interference in memory. In other words, it registers the target edge as having interference. Then, the edge interference determination-related processing is terminated.

[0061] In step S27, if the binary search interference check for the target edge is completed (YES in S27), the process proceeds to step S28. On the other hand, if the binary search interference check for the target edge is not completed (NO in S27), the interference check update unit 1322 maintains the progress of the binary search and terminates the edge interference check-related processing. In step S28, the path exclusion unit 133 saves the target edge as having no interference in memory. In other words, it registers the target edge as having no interference. Then, the edge interference check-related processing is terminated.

[0062] (Embodiment 3) The configuration is not limited to the above-described embodiment, but may also be that of Embodiment 3 described below. Below, an example of the configuration of Embodiment 3 will be explained with reference to a diagram. Below, the operation path generation device 100 according to Embodiment 3 will be explained with reference to a diagram. The operation path generation device 100 according to Embodiment 3 is the same as the operation path generation device 100 of Embodiment 1, except that it includes a processor 11b instead of a processor 11.

[0063] Here, an example of the schematic configuration of processor 11b will be explained using Figure 14. As shown in Figure 14, processor 11b includes a start / end point registration unit 101b, a classification unit 102, a route search unit 103b, and a route map registration unit 104 as functional blocks. Processor 11b includes a start / end point registration unit 101b instead of a start / end point registration unit 101. Processor 11b includes a route search unit 103b instead of a route search unit 103. Processor 11b includes a route map registration unit 104. Except for these points, processor 11b is the same as processor 11 of Embodiment 1.

[0064] The route map registration unit 104 acquires a route map. This route map registration unit 104 corresponds to the route map acquisition unit. The route map registration unit 104 then registers the acquired route map in memory. This memory may be a rewritable non-volatile memory or a volatile memory. The route map is pre-generated for an environment (hereinafter referred to as the initial environment) in which multiple robots R and obstacles other than those robots R are placed. In the initial environment, the route map shows the route with links that are waypoints and waypoint intervals, which have been determined to be able to move without interfering with obstacles, including other robots. Note that links in the route map and edges in the route tree are the same in that they are waypoint intervals. The route map may be pre-generated, for example, by a simulation in which 3D models of robots R and obstacles placed in a virtual space are operated in the virtual space. The route map may be generated by a method such as PRM (Probabilistic Roadmap). The route map may also be generated based on a route created by a method such as RRT. The route map includes the route map M of each robot R. n And, a path map M integrated for multiple robots R. i,j There is.

[0065] The start / end point registration unit 101b is the same as the start / end point registration unit 101 of Embodiment 1, except that some processing differs. The differences will be explained below. When the route map registration unit 104 obtains a route map, the start / end point registration unit 101b registers the registered start / end points on the route map. The start / end point registration unit 101b registers the route map M n and route map M i,j Register the start and end points for each of them.

[0066] If the route map acquired by the route map registration unit 104 does not include a waypoint that corresponds to the start point, which is at least one of the start and end points, the start / end point registration unit 101b should do the following: The start / end point registration unit 101b updates the route map by adding the start / end point to it. The start / end point registration unit 101b corresponds to the map update unit. After adding the start / end point to the route map, the start / end point registration unit 101b also creates links connecting the waypoints on the route map to the start / end point. It is not necessary to create links with all waypoints that the start / end point can connect to; it is sufficient to create links with one or more waypoints. For example, a link can be created with the waypoint with the shortest travel distance, or with the waypoint with the highest evaluation value mentioned above.

[0067] The path search unit 103b includes a waypoint generation unit 131b, an interference determination unit 132, and a path exclusion unit 133 as sub-functional blocks. The path search unit 103b is the same as the path search unit 103 of Embodiment 1, except that it includes a waypoint generation unit 131b instead of a waypoint generation unit 131.

[0068] The waypoint generation unit 131b is the same as the waypoint generation unit 131 of Embodiment 1, except that some processing differs. The differences will be explained below. If the waypoint generation unit 131b can obtain a route map from the route map registration unit 104, it uses the route map obtained from the route map registration unit 104 to generate waypoints. This makes it possible to use a pre-generated route map to generate the operation route, thus making the calculation for generating the operation route even more efficient. For example, by using a route on the route map, the calculation for generating the operation route can be made more efficient compared to searching for an operation route while newly generating all waypoints.

[0069] As an example, the path map can be used as follows. This will be explained using Figures 15 and 16. Figure 15 shows the path map M for each robot R. n This figure shows an example. Figure 16 shows the path tree T of each robot R. n This is a diagram showing an example. P in Figures 15 and 16 nstart The starting point is indicated by P in Figure 15. n term The endpoint is indicated by P in Figures 15 and 16. n nearest This indicates the most recently extracted waypoint, as shown in Figure 16, Q n child viapoint P n nearest This shows child nodes that extend further than the root node. As shown in Figures 15 and 16, the waypoint generation unit 131b generates the path tree T n The waypoint P extracted n nearest Same route map M n The upper waypoint P n nearest Obtain the waypoints that have a link relationship with the path tree T as child nodes. n P n nearest From starting point P n start Waypoints that exist along the path to the destination are excluded from the child nodes to avoid processing cycles. The waypoints enclosed by dashed circles in Figure 16 are the path tree T. n P n nearest From starting point P n start There is no waypoint P on the route to [the destination]. n nearest These are waypoints that are linked to each other. The waypoints enclosed by dashed circles in Figure 15 correspond to these waypoints in the route map M. n The above is a waypoint. The waypoint generation unit 131b generates the path tree T as explained in Embodiment 1. n You can also use a path map to enumerate the child nodes of the parent node, as shown above.

[0070] Alternatively, if the route map includes both the start and end points, the waypoint generation unit 131b may generate waypoints at each node of the shortest path connecting the start and end points on the route map. The shortest path can be found using an algorithm such as A-star. The interference detection unit 132 performs interference detection on each waypoint that is a node of this shortest path. If there are any interfering waypoints or edges, the unit may regenerate waypoints from the shortest path on the route map excluding the interfering portion and repeat the interference detection.

[0071] If the route map does not include at least one of the start and end points, the routes on the route map alone cannot generate the motion paths of multiple robots R. Therefore, in such cases, the following should be done: The waypoint generation unit 131b should randomly generate waypoints for routes that are not included in the route map acquired by the route map registration unit 104. Random waypoints should be generated in the same way as in RRT. On the other hand, the waypoint generation unit 131b should use the route map to generate waypoints for routes that are included in that route map. Any of the examples described above can be used for using the route map. The waypoint generation unit 131b should randomly regenerate waypoints if interference is determined in the interference check for routes not included in that route map, or if interference is determined in the interference check for routes included in that route map. This makes it possible to streamline the calculation of generating motion paths by using the route map, even when at least one of the start and end points is not included in the route map.

[0072] Preferably, the start / end point registration unit 101b also updates the route map by adding to it any route points newly generated by the waypoint generation unit 131b that were not determined to interfere in the interference determination and were not included in the route map acquired by the route map registration unit 104. Furthermore, it is preferable that the start / end point registration unit 101b saves the updated route map, which is the updated map. The updated map can be registered in memory. This memory may be a rewritable non-volatile memory or a volatile memory.

[0073] (Embodiment 4) The configuration is not limited to the above-described embodiment, but may also be that of the following embodiment 4. Below, an example of the configuration of embodiment 4 will be described with reference to a diagram. Below, the operation path generation device 100 according to embodiment 4 will be described with reference to a diagram. The operation path generation device 100 according to embodiment 4 is the same as the operation path generation device 100 of embodiment 3, except that it includes a processor 11c instead of a processor 11b.

[0074] Here, an example of the schematic configuration of the processor 11c will be explained using Figure 17. As shown in Figure 17, the processor 11c is equipped with a start / end point registration unit 101c, a classification unit 102, a route search unit 103c, and a route map registration unit 104 as functional blocks. The processor 11c is the same as the processor 11b of Embodiment 3, except that it is equipped with a start / end point registration unit 101c and a route search unit 103c instead of a start / end point registration unit 101b and a route search unit 103b.

[0075] The start / end point registration unit 101c is the same as the start / end point registration unit 101b of Embodiment 3, except that some processing differs. The differences will be explained below. The start / end point registration unit 101c assigns labels to links connecting waypoints and start / end points on the route map, distinguishing between links that were included in the route map acquired by the route map registration unit 104 (hereinafter referred to as the initial map) (hereinafter referred to as the initial link) and newly added links. A newly added link is a link that is newly created when a start / end point is added to the initial map because either the start point or the end point was not included in the initial map. A newly added link is a link that connects a start / end point that was not included in the initial map with a waypoint that is included in the initial map.

[0076] Here, we will explain an example of initial links and newly added links using Figure 18. Figure 18 shows the path map M of each robot R. n This figure shows an example. In Figure 18, the initial links are shown with solid lines, and newly added links are shown with dashed lines. In Figure 18, the starting point P n start and the final stop P n term This shows an example where neither of these was included in the initial map. Starting point P n start and the final stop P n term If neither of these is included in the initial map, then, as shown in Figure 18, the starting point P n start Links connected to and terminus P n term All of the links connected to this will be newly added links.

[0077] The path search unit 103c includes a waypoint generation unit 131b, an interference determination unit 132c, and a path exclusion unit 133 as sub-functional blocks. The path search unit 103c is the same as the path search unit 103b of Embodiment 3, except that it includes an interference determination unit 132c instead of an interference determination unit 132.

[0078] The interference determination unit 132c is the same as the interference determination unit 132 of Embodiment 1, except that some processing differs. These differences will be explained below. If the initial map does not include a waypoint that corresponds to the start-end point, which is at least one of the start point and the end point, the interference determination unit 132c will do the following. Here, the start-end point refers to a point among the start point and the end point that is not included in the initial map.

[0079] The interference detection unit 132c only needs to perform interference detection on the paths connecting its start / end point and the waypoints on the initial path map (i.e., newly added links). The interference detection unit 132c can distinguish between newly added links and initial links using the aforementioned labels. If there are no environmental changes from the initial environment, it is possible to accurately generate the operation paths of multiple robots R by performing interference detection on at least the newly added links. Therefore, it is possible to accurately generate the operation paths of multiple robots R even if interference detection on the initial links is omitted. Accordingly, with the above configuration, even if the start / end point is not included in the initial map, if there are no environmental changes from the initial environment, it is possible to generate operation paths for multiple robots R with greater efficiency and accuracy.

[0080] The interference detection unit 132c may be configured to prioritize interference detection on paths connecting its start / end point and waypoints on the initial path map (i.e., newly added links). Prioritization here means performing interference detection on newly added links before interference detection on initial links. Even if there are environmental changes from the initial environment, newly added links are more likely to cause interference than initial links. Therefore, by prioritizing interference detection on newly added links, it becomes possible to detect interference earlier if interference exists. As a result, even if the start / end point is not included in the initial map, and even if there are environmental changes from the initial environment, it becomes possible to generate motion paths for multiple robots R with greater efficiency and accuracy in the calculations used to generate motion paths.

[0081] (Embodiment 5) The configuration is not limited to the above-described embodiment, but may also be that of Embodiment 5 described below. Below, an example of the configuration of Embodiment 5 will be explained with reference to a diagram. Below, the operation path generation device 100 according to Embodiment 5 will be explained with reference to a diagram. The operation path generation device 100 according to Embodiment 5 is the same as the operation path generation device 100 of Embodiment 3, except that it includes a processor 11d instead of a processor 11b.

[0082] Here, we will explain an example of the schematic configuration of the processor 11d using Figure 19. As shown in Figure 19, the processor 11d is equipped with a start / end point registration unit 101b, a classification unit 102, a path search unit 103d, a path map registration unit 104, and an obstacle change registration unit 105 as functional blocks. The processor 11d is the same as the processor 11b of Embodiment 3, except that it is equipped with a path search unit 103d instead of a path search unit 103b, and it is equipped with an obstacle change registration unit 105.

[0083] The obstacle change registration unit 105 registers the changed obstacles when the environment changes from the initial environment, that is, when there is a change in the obstacles. Examples of obstacle changes include changes in the gripping workpiece, the addition of static obstacles, changes in the arrangement of static obstacles, and changes in the arrangement of the robot R, which is a dynamic obstacle. A gripping workpiece is a static obstacle that is the object that the robot R grips. An obstacle change may also be a change in parameters such as the distance threshold at which interference with an obstacle is determined. If there is a change in a static obstacle including a gripping workpiece, the obstacle change registration unit 105 can register it by saving the identification information of that static obstacle to memory. This memory may be a rewritable non-volatile memory or a volatile memory. If there is a change in the robot R, which is a dynamic obstacle, the obstacle change registration unit 105 can register it by saving the identification information of the robot R to memory. The following explanation continues assuming that the 3D models and position / orientation on the simulator of static and dynamic obstacles that have changed from the initial environment are registered in the memory of the motion path generation device 100 in advance. This registration may be based on sensing results from sensors such as cameras, or it may be performed based on input from an operator.

[0084] The path search unit 103d includes a waypoint generation unit 131b, an interference determination unit 132d, and a path exclusion unit 133 as sub-functional blocks. The path search unit 103d is the same as the path search unit 103b of Embodiment 3, except that it includes an interference determination unit 132d instead of an interference determination unit 132.

[0085] The interference determination unit 132d is the same as the interference determination unit 132 of Embodiment 1, except that some processing differs. The differences are described below. If the environment has changed since the initial map was generated, the interference determination unit 132d acts as follows. It can be determined that the environment has changed since the initial map was generated by registering the 3D models of static and dynamic obstacles and their positions and orientations on the simulator that have changed from the initial environment.

[0086] The interference determination unit 132d only needs to perform interference determination for interference determination pairs that have changed in the change of environment. The interference determination unit 132d can determine that the interference determination pairs that have changed are those that contain the obstacles indicated by the identification information registered by the obstacle change registration unit 105. For interference determination pairs that have not changed, it is highly likely that they will not interfere, as this is guaranteed by the path map. Therefore, by focusing interference determination on interference determination pairs that have changed, it becomes possible to generate motion paths for multiple robots R with greater efficiency and accuracy in the calculations used to generate motion paths.

[0087] Here, using Figures 20 and 21, we will explain an example of performing interference detection only on interference detection pairs that have changed in response to environmental changes. Figure 20 is a diagram illustrating an example of the change in the 3D model list between the initial environment and after the environmental change. Figure 21 is a diagram illustrating an example of the change in interference detection pairs between the initial environment and after the environmental change. Here, the robots R targeted for path generation are assumed to be two robots, robot Ri and robot Rj. Also, there are two static obstacles, obstacle A and obstacle B. Robots Ri and Rj are dynamic obstacles to each other.

[0088] As shown in Figure 20, in the initial environment, the 3D model list includes 3D models of robot Ri, robot Rj, obstacle A, and obstacle B. In the initial environment, as shown in Figure 21, interference detection pairs are created for robot Ri: one with static obstacles A and B, and another with the dynamic obstacle robot Rj. Similarly, for robot Rj, an interference detection pair is created with static obstacles A and B.

[0089] On the other hand, as shown in Figure 20, if the robot Rj is repositioned as an environmental change from the initial environment, the interference detection pairs change as a result of this change. As shown in Figure 21, the interference detection pairs between robot Rj and obstacles A and B change to the interference detection pairs between the repositioned robot Rj and obstacles A and B. The interference detection pairs between robot Ri and robot Rj change to the interference detection pairs between robot Ri and the repositioned robot Rj. However, the interference detection pairs between robot Ri and obstacles A and B do not change between the initial environment and after the environmental change. The interference detection unit 132d performs interference detection only for the interference detection pairs enclosed by the dashed lines in Figure 21 that have changed due to the environmental change.

[0090] Furthermore, the interference determination unit 132d may be configured to prioritize interference determination for interference determination pairs that have changed in the environmental changes from the initial environment. Prioritization here means performing interference determination before interference determination for interference determination pairs that have not changed in the environmental changes from the initial environment. When there is an environmental change from the initial environment, the interference determination pairs that have changed are more likely to be in contact than those that have not changed. Therefore, by prioritizing interference determination for interference determination pairs that have changed in the environmental changes, it becomes possible to detect interference earlier if there are areas of interference. As a result, even when there is an environmental change from the initial environment, it becomes possible to generate motion paths for multiple robots R with greater efficiency and accuracy in the calculations for generating motion paths.

[0091] According to the configuration of Embodiment 5, as described above, it becomes possible to reduce the processing of unnecessary interference detection. Furthermore, according to the configuration of Embodiment 5, it becomes possible to reduce the number of types of path maps that need to be created in advance. Details are as follows. According to the configuration of Embodiment 5, even if there is a change in the environment from the initial environment, it becomes possible to generate an operating path with higher accuracy while making the calculation for generating the operating path more efficient, without changing the path map. Therefore, it becomes possible to generate an operating path with higher accuracy while making the calculation for generating the operating path more efficient, without having to create multiple types of maps in advance to match the changes in the environment.

[0092] (Embodiment 6) In the embodiment described above, the motion path generation device 100 was shown to generate a motion path for a robot arm, but the invention is not limited to this configuration. For example, the motion path generation device 100 may be configured to generate a motion path for a multi-link mechanism other than a robot arm.

[0093] This disclosure is not limited to the embodiments described above, and various modifications are possible within the scope of the claims. Embodiments obtained by appropriately combining the technical means disclosed in different embodiments are also included in the technical scope of this disclosure. Furthermore, the control unit and method described in this disclosure may be implemented by a dedicated computer comprising a processor programmed to execute one or more functions embodied by a computer program. Alternatively, the apparatus and method described in this disclosure may be implemented by a dedicated hardware logic circuit. Alternatively, the apparatus and method described in this disclosure may be implemented by one or more dedicated computers comprising a combination of a processor that executes a computer program and one or more hardware logic circuits. Furthermore, the computer program may be stored as instructions executed by the computer on a computer-readable non-transitional tangible recording medium. [Explanation of symbols]

[0094] 11,11a,11b,11c,11d Processor, 100 Path generation device, 101b Start / end point registration unit (map update unit), 102 Classification unit, 103,103a,103b,103c,103d Path search unit (path generation unit), 104 Path map registration unit (path map acquisition unit), 131,131b Waypoint generation unit, 132,132a,132c,132d Interference determination unit, 133 Path exclusion unit (save processing unit)

Claims

1. A motion path generation device that generates motion paths for multiple robots, A waypoint generation unit (131, 131b) generates waypoints that represent one of the robot's poses, other than the start and end points, that the robot passes through from the start point to the end point of its movement, When the robot moves from the starting point to the ending point, passing through the waypoints generated by the waypoint generation unit, the interference determination unit (132, 132a, 132c, 132d) performs interference determination to determine whether or not it will interfere with obstacles other than the robot. A classification unit (102) creates groups that classify at least static obstacles and dynamic obstacles as the types of targets for the interference determination pair, which is a pair that performs interference determination between the robot that is the target of generating the motion path and the obstacles other than the robot, The system includes a path generation unit (103, 103a, 103b, 103c, 103d) that generates a path for each of the multiple robots for which the aforementioned path is to be generated, which is determined not to interfere in the interference determination, as the path for each of the multiple robots. The interference determination unit performs the interference determination for each group created by the classification unit. The system includes a storage processing unit (133) that stores the results of the interference determination for each group performed by the interference determination unit, The aforementioned waypoint generation unit is an operation path generation device that, when interference is determined in the interference determination, uses the interference determination results for each group that have been determined by the interference determination unit and saved in the storage processing unit, to generate new waypoints.

2. An operating path generation device according to claim 1, The interference determination unit (132a) uses binary search to determine the interference of edges, which are sections connecting the intermediate points including the starting point and the ending point. The unit performs the interference determination using binary search for each group created by the classification unit and maintains the progress of the binary search for each group. If it becomes necessary to perform the interference determination for the same edge again, the operation path generation device restarts the interference determination using binary search from where the binary search had progressed, based on the maintained progress.

3. An operating path generation device according to claim 1 or 2, The system includes a path map acquisition unit (104) that acquires a path map in which a path is shown in advance for an environment in which multiple robots to be generated and obstacles other than those robots are arranged, and it has been determined that in that environment the multiple robots can operate without interfering with obstacles, including other robots, using waypoints and waypoint sections. The waypoint generation unit (131b) is an operation route generation device that generates waypoints using the route map acquired by the route map acquisition unit when the route map can be acquired by the route map acquisition unit.

4. An operating path generation device according to claim 3, If the route map acquired by the route map acquisition unit does not include a waypoint which is at least one of the start point and the end point, the map update unit (101b) updates the route map by adding the start point to the route map. The waypoint generation unit randomly generates waypoints for routes not included in the route map acquired by the route map acquisition unit, while generating waypoints using the route map for routes included in the route map. The operation route generation device randomly regenerates waypoints if the interference determination determines that a route not included in the route map is interfering, or if the interference determination determines that a route included in the route map is interfering.

5. An operating path generation device according to claim 4, The map update unit also updates the route map by adding to it any route points newly generated by the route point generation unit that were not determined to interfere in the interference determination and were not included in the route map acquired by the route map acquisition unit, and saves the updated route map, which is the updated route map.

6. An operating path generation device according to claim 3, The interference determination unit (132c) is an operation path generation device that, if the route map acquired by the route map acquisition unit does not include a waypoint which is at least one of the start point and the end point, performs the interference determination only for the route connecting the start point and the waypoint on the route map, or prioritizes the route connecting the start point and the waypoint on the route map.

7. An operating path generation device according to claim 3, The interference determination unit (132d) is an operation path generation device that, if the environment has changed since the generation of the route map acquired by the route map acquisition unit, performs interference determination only for the interference determination pairs that have changed in the change of the environment, or prioritizes those interference determination pairs.