Route optimization device, route optimization method, and program
The route optimization device and method optimize routes for multiple agents by assigning tasks and considering collision avoidance times, efficiently minimizing collision and congestion in dynamic environments.
Patent Information
- Application Number
- JP2024131910
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-08
- Publication Date
- 2026-02-20
AI Technical Summary
Existing route optimization methods for multiple agents do not adequately optimize routes to minimize collisions and congestion, even when collisions are minimized.
A route optimization device and method that includes a task allocation unit and a route optimization unit, which assign tasks to agents and optimize routes to minimize collision avoidance times, using meta-solving to generate multiple route patterns and consider collision avoidance times for each agent.
The method efficiently optimizes routes for multiple agents to execute tasks in the shortest time possible while minimizing collision avoidance, adapting to changing circumstances and reducing detours.
Smart Images

Figure 2026029163000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a route optimization device, a route optimization method, and a program. [Background technology]
[0002] Multi-agent path finding (MAPF) is a well-known technique that calculates collision-free paths for multiple agents on a graph. This technique is widely used and applied in various fields, including logistics, automobiles, robotics, and artificial intelligence, such as robotic baggage transport in warehouses and autonomous driving, and is the subject of active research.
[0003] For example, Patent Document 1 discloses a technique for optimizing routes so as to minimize collisions between agents such as robots and traffic congestion. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Publication No. 2022-82419 Summary of the Invention [Problem to be solved by the invention]
[0005] However, even if collisions between agents are minimized as in the above-mentioned conventional technology, it is not necessarily possible to optimize the route.
[0006] The present disclosure has been made in consideration of the above circumstances, and aims to provide a new method for optimizing the routes of multiple agents. [Means for solving the problem]
[0007] One aspect of the route optimization device of the present disclosure includes a task allocation unit that assigns to each of a plurality of agents a task of reaching a destination point via one or more work points, and a route optimization unit that optimizes a route for each of the plurality of agents to execute the assigned task in the shortest time possible, taking into account a first avoidance time required to avoid a collision when encountering another agent.
[0008] One aspect of the route optimization method of the present disclosure includes a task allocation step in which a task allocation unit assigns to each of a plurality of agents a task of reaching a destination point via one or more work points, and a route optimization step in which a route optimization unit optimizes a route for each of the plurality of agents to execute the assigned task in the shortest time possible, taking into account a first avoidance time required to avoid a collision when encountering another agent.
[0009] One aspect of the program of the present disclosure is to cause a computer to function as a task allocation unit that assigns to each of a plurality of agents a task of reaching a destination point via one or more work points, and a route optimization unit that optimizes a route for each of the plurality of agents to execute the assigned task in the shortest time possible, taking into account a first avoidance time required to avoid a collision when encountering another agent. [Effects of the Invention]
[0010] According to the present disclosure, a new method for optimizing routes for multiple agents can be provided. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 is a block diagram showing an example of the configuration of a route optimization system according to this embodiment. [Figure 2] FIG. 2 is an explanatory diagram illustrating an example of an outline of route optimization by the route optimization device of this embodiment. [Figure 3] FIG. 3 is a block diagram showing an example of the hardware configuration of the route optimization device of this embodiment. [Figure 4] FIG. 4 is a block diagram showing an example of the functional configuration of the route optimization system of this embodiment. [Figure 5] FIG. 5 is an explanatory diagram for explaining an example of the meta solution process of this embodiment. [Figure 6] FIG. 6 is an explanatory diagram for explaining an example of the meta-solution process of this embodiment. [Figure 7] FIG. 7 is an explanatory diagram for explaining an example of the overlap length in this embodiment. [Figure 8] FIG. 8 is an explanatory diagram for explaining an example of the route optimization process of this embodiment. [Figure 9] FIG. 9 is a flowchart showing an example of processing performed by the route optimization device of this embodiment. [Figure 10] FIG. 10 is a flowchart showing an example of the task allocation and route optimization process performed in step S107 of the flowchart shown in FIG. [Figure 11] FIG. 11 is a block diagram showing an example of the configuration of a route optimization system according to the first modification. [Figure 12] FIG. 12 is an explanatory diagram illustrating an example of an outline of route optimization by the route optimization device of the first modification. DETAILED DESCRIPTION OF THE INVENTION
[0012] Hereinafter, an embodiment of the present disclosure (hereinafter simply referred to as "the present embodiment") will be described in detail with reference to the drawings. Note that the present disclosure is not limited to the following embodiment. Furthermore, the following embodiment and modified examples can be combined as appropriate.
[0013] The route optimization system of this embodiment will be described below using picking work in a warehouse by an autonomous mobile robot as an example. However, the application of the route optimization system of this embodiment is not limited to this. The route optimization system of this embodiment can be applied to any technology to which Multi-Agent Path Finding (MAPF) can be applied, and can also be applied to manual picking work, for example.
[0014] First, the configuration of the route optimization system of this embodiment will be described.
[0015] FIG. 1 is a block diagram showing an example of the configuration of a route optimization system 1 according to this embodiment. As shown in FIG. 1, the route optimization system 1 includes robots 10-1 to 10-s (s is a natural number), detectors 20-1 to 20-t (t is a natural number), and a route optimization device 30. The robots 10-1 to 10-s, detectors 20-1 to 20-t, and route optimization device 30 are connected via a network 2. The network 2 can be realized by a wireless network such as a wireless LAN (Local Area Network) or short-range wireless communication. In the following description, when it is not necessary to distinguish between the robots 10-1 to 10-s, they may be simply referred to as robots 10. Similarly, when it is not necessary to distinguish between the detectors 20-1 to 20-t, they may be simply referred to as detectors 20.
[0016] The robot 10 (an example of an agent) is an autonomous mobile robot that performs picking work in a warehouse. The robot 10 of this embodiment executes a task assigned by the route optimization device 30 along a route instructed by the route optimization device 30. A task refers to the work of picking one or more items to be picked at a predetermined work point (picking point) and transporting them to a destination point. The items may be any goods stored in a warehouse, such as products or parts.
[0017] Furthermore, when the robot 10 encounters another robot 10 or an obstacle on its path, it can move while avoiding collision with them. Specifically, when the robot 10 detects another robot 10 or an obstacle using an obstacle sensor provided in the robot 10, it can autonomously slow down and move to avoid them. The obstacle sensor may be any sensor capable of detecting other robots 10 or obstacles, such as an ultrasonic sensor, an optical sensor, or a radar sensor. Note that obstacles include, for example, packages placed on aisles in a warehouse, workers working in a warehouse, and robots 10 undergoing maintenance (robots 10 not performing picking work), but are not limited to these.
[0018] The detection device 20 is a device that detects the above-mentioned obstacles, and may be, for example, a camera installed in a warehouse, but is not limited to this. For example, the detection device 20 may be realized with a configuration similar to that of the above-mentioned obstacle sensor.
[0019] The route optimization device 30 optimizes routes of multiple robots 10 executing a task, and can be realized by, for example, a workstation or a PC (Personal Computer). Specifically, the route optimization device 30 optimizes routes of the multiple robots 10 executing a task based on the positions of the multiple robots 10 and the positions of obstacles detected by the detection device 20. In particular, in this embodiment, the route optimization device 30 optimizes routes of the multiple robots 10 when one of the multiple robots 10 executing a task picks up an item or when one of the robots 10 completes a task and executes a new task.
[0020] 2 is an explanatory diagram illustrating an example of an outline of route optimization by the route optimization device 30 of this embodiment. The example shown in FIG. 2 illustrates the layout of the warehouse, the aisles in the warehouse, and routes R1 to R3 of the robots 10-1 to 10-3 optimized by the route optimization device 30.
[0021] Specifically, the layout of the warehouse shows the arrangement of shelves S1 to S4 and workbench WB. Different items to be picked are stored on shelves S1 to S4, respectively. The workbench WB is where a worker who receives one or more items picked by the robot 10 performs tasks such as packaging.
[0022] Also shown are a plurality of nodes N1 to N14 and P0 to P12 arranged around shelves S1 to S4 and workbench WB as aisles within the warehouse, as well as edges connecting adjacent nodes. In the example shown in FIG. 2, edges are indicated by dotted lines and indicate aisles along which the robot 10 can move. Nodes N1 to N14 and P0 to P12 indicate base points (passing points) on the aisles. In particular, nodes P1 to P12 indicate work points where items are picked from shelves S1 to S4, and node P0 indicates the destination point to which the picked items are to be transported. Note that, although the nodes are arranged at equal intervals in the example shown in FIG. 2, the arrangement of the nodes is not limited to this and they may be arranged at uneven intervals.
[0023] The robot 10-1 is assigned the task of picking items at nodes P1, P9, and P10, and at the time shown in Figure 2, it is assumed that picking at node P1 has just been completed and the route for the remaining picking in this task has been optimized to route R1. Route R1 is a route that is determined to move from node P1, which is the current location of the robot 10-1, to nodes N1, N4, N7, N10, N13, P9, P10, and P0 in this order.
[0024] The robot 10-2 is assigned a task of picking up an item at node P3, and at the time shown in Fig. 2, the route for executing this task at node N3, which is the current location of the robot 10-2, is optimized to route R2. Route R2 is a route that is determined to move from node N3, which is the current location of the robot 10-2, to nodes P4, P3, N2, N5, N8, N11, and P0 in this order.
[0025] The robot 10-3 is assigned a task of picking an item at node P11, and at the time shown in Figure 2, the route for performing the remaining picking in this task at node N9, which is the current location of the robot 10-3, is optimized to route R3. Route R3 is a route that is determined to move from node N9, which is the current location of the robot 10-3, to nodes N12, N14, P12, P11, and P0 in this order.
[0026] The path optimization device 30 of this embodiment optimizes paths so that the robots 10-1 to 10-3 can execute assigned tasks in the shortest time, based on the positions of workers W1 and W2, which are obstacles located on the aisles in the warehouse, and the positions of each robot 10. As a result, the paths of the robots 10-1 to 10-3 become paths R1 to R3, respectively.
[0027] The route optimization device 30 basically optimizes a route so that each robot 10 does not encounter obstacles or other robots 10, but there may be cases where moving around the obstacle to avoid a collision when an encounter occurs results in less time loss than making a detour to avoid such an encounter. For this reason, the route optimization device 30 of this embodiment does not necessarily optimize a route so that each robot 10 does not encounter obstacles or other robots 10.
[0028] In addition, the route optimization device 30 of this embodiment optimizes the routes of the multiple robots 10 when one of the multiple robots 10 executing a task picks up an item or when one of the robots 10 completes a task and executes a new task.
[0029] 2, the route optimization device 30 optimizes the route when the robot 10-1 picks up an item at node P1. After this, the route optimization device 30 optimizes the route of each robot 10 when the robot 10-1 picks up an item at node P9, when the robot 10-2 picks up an item at node P3, and when the robot 10-3 picks up an item at node P11. Therefore, according to this embodiment, even under constantly changing circumstances, the route of each robot 10 can be optimized by following the changes in the situation.
[0030] In the example shown in FIG. 2, the route optimization device 30 optimizes the route to the destination node P0 as the route of each robot 10, but this is not limited to this, and the route to the next work point to be reached or the destination point may also be optimized.
[0031] Furthermore, when each robot 10 reaches node P0 and completes a task, the route optimization device 30 of this embodiment assigns a new task to the robot 10 and has that robot 10 execute the task. The route optimization device 30 optimizes the route of each robot 10 at the timing when the robot 10 executes the newly assigned task. Therefore, according to this embodiment, even in an environment in which a large number of tasks are executed and a new task is assigned to each robot 10 each time it completes a task, the route of each robot 10 can be optimized every time each robot 10 executes a new task. In other words, according to this embodiment, even in an environment in which a large number of tasks are executed, the route of each robot 10 can be optimized continuously, rather than temporarily.
[0032] Fig. 3 is a block diagram showing an example of the hardware configuration of the route optimization device 30 of this embodiment. As shown in Fig. 3, the route optimization device 30 includes a control device 31, a main storage device 32, an auxiliary storage device 33, a communication device 34, and various buses 35. The control device 31, the main storage device 32, the auxiliary storage device 33, and the communication device 34 are connected via the various buses 35. In this way, the route optimization device 30 of this embodiment has a general hardware configuration using a normal computer.
[0033] The control device 31 controls the overall operation of the route optimization device 30. The control device 31 may be, for example, at least one of a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit), but is not limited to these. There may be any number of CPUs or GPUs as long as they are one or more, and they may be single-core or multi-core.
[0034] Examples of the main memory device 32 include, but are not limited to, a ROM (Read Only Memory) and a RAM (Random Access Memory). The ROM stores various programs such as a program for controlling the route optimization device 30 and a program (solver) for optimizing the route. The RAM is used as a working area when the control device 31 performs various controls based on the programs stored in the ROM.
[0035] The auxiliary storage device 33 stores the various programs and various data such as master information. The master information is basic information required for route optimization, such as warehouse layout information, robot 10 identification information, and shelf storage information indicating items stored on shelves in the warehouse. The various programs may be stored in at least one of the main storage device 32 and the auxiliary storage device 33. Examples of the auxiliary storage device 33 include, but are not limited to, existing storage devices capable of magnetic, electrical, or optical storage, such as a hard disk drive (HDD), a solid state drive (SSD), and a digital versatile disc (DVD). The auxiliary storage device 33 may be built into the route optimization device 30 or may be externally attached to the route optimization device 30 via an interface such as a universal serial bus (USB). The auxiliary storage device 33 may also be a network-attached storage (NAS) connected via a network such as a LAN or a wide area network (WAN).
[0036] The communication device 34 is used for wireless communication with the robot 10, the detection device 20, etc. via the network 2. Examples of the communication device 34 include, but are not limited to, a wireless communication device for a wireless LAN.
[0037] In addition to the above configuration, the route optimization device 30 may further include a user interface such as an input device or a display device, and hardwired circuits such as an IC (Integrated Circuit), an ASIC (Application Specific Integrated Circuit), and an FPGA (Field-Programmable Gate Array) specific to the route optimization device 30.
[0038] 4 is a block diagram showing an example of the functional configuration of the route optimization system 1 of this embodiment, and mainly shows an example of the functional configuration of the route optimization device 30 of this embodiment. As shown in FIG. 4, the route optimization device 30 includes a master information storage unit 301, an order information storage unit 303, a master information acquisition unit 305, an order information acquisition unit 307, a robot information acquisition unit 309, an obstacle information acquisition unit 311, an optimization solver 320, and an instruction unit 331. The optimization solver 320 includes a meta-solving unit 321, a task allocation unit 323, and a route optimization unit 325.
[0039] The master information storage unit 301 and the order information storage unit 303 can be realized, for example, by the auxiliary storage device 33 described in FIG. 3 . The master information acquisition unit 305, the order information acquisition unit 307, the robot information acquisition unit 309, the obstacle information acquisition unit 311, the optimization solver 320, the meta-solving unit 321, the task allocation unit 323, the path optimization unit 325, and the instruction unit 331 can be realized, for example, by the control device 31, the main storage device 32, and the communication device 34 described in FIG. 3 . For example, the control device 31 reads a program for path optimization stored in the main storage device 32 (ROM) or the auxiliary storage device 33 and loads it into the main storage device 32 (RAM). The control device 31 realizes the above-mentioned functional units by executing various processes in accordance with the loaded program. Here, the above-mentioned functional units are realized as software, but at least some of the above-mentioned functional units may be realized as hardware. In this case, the functional units realized as hardware may be realized, for example, by the above-mentioned hardwired circuit. Any of the above-mentioned functional units may be realized by a combination of software and hardware.
[0040] The master information storage unit 301 stores master information. As described above, the master information is basic information required for route optimization, such as warehouse layout information, robot 10 identification information, and shelf storage information.
[0041] Layout information is information that indicates the layout of a warehouse, as described in FIG. 2. Examples of layout information include, but are not limited to, coordinate information that indicates the arrangement of shelves, work tables, and each node, edge information that indicates which node each edge is connected to, and correspondence information (table) that indicates the correspondence between nodes that indicate work points and shelf addresses. Identification information of the robot 10 is information that identifies the robot 10 (a list of identification information), and examples include, but are not limited to, the ID (IDentification) and MAC (Media Access Control) address of the robot 10. Shelf storage information is information that indicates items stored on a shelf, and is, for example, information (table) that indicates the correspondence between shelf addresses and item IDs that identify items stored on the shelf indicated by the addresses.
[0042] The order information storage unit 303 stores order information from customers. The order information is, for example, information (table) that associates a customer ID that identifies a customer with the item ID of an item ordered by the customer.
[0043] The master information acquiring unit 305 acquires the master information from the master information storage unit 301. The order information acquiring unit 307 acquires the order information from the order information storage unit 303.
[0044] The robot information acquisition unit 309 acquires robot information indicating the ID of each of the multiple robots 10-1 to 10-s and the position of the robot 10. For example, the robot information acquisition unit 309 sequentially acquires the robot information from the robots 10 and notifies the optimization solver 320. For this reason, the following description will be given assuming that the optimization solver 320 is able to grasp the current position of each robot 10 in real time.
[0045] The obstacle information acquisition unit 311 acquires obstacle information indicating the ID of the detection device 20 and the detection result of the detection device 20 from each of the multiple detection devices 20-1 to 20-t. For example, by previously associating the obstacle detection area of the detection device 20 with edge information included in the layout information, when an obstacle is included in the detection result, it is possible to determine on which path (edge) the obstacle is located based on the ID of the detection device 20. The obstacle information acquisition unit 311, for example, sequentially acquires obstacle information from the detection devices 20 and notifies the optimization solver 320. For this reason, the following description will be given assuming that the optimization solver 320 is able to grasp the current position of each obstacle (the path on which the obstacle is located) in real time.
[0046] The optimization solver 320 assigns tasks to each robot 10 based on the master information acquired by the master information acquisition unit 305, the order information acquired by the order information acquisition unit 307, the robot information acquired by the robot information acquisition unit 309, and the obstacle information acquired by the obstacle information acquisition unit 311, and optimizes a route along which each robot 10 executes the assigned task. The task corresponds to, for example, each order included in the order information (each order indicated by a column in the table). In this embodiment, the optimization solver 320 assigns tasks to each robot 10 and optimizes a route along which each robot 10 executes the assigned task until all orders included in the order information have been processed.
[0047] The optimization solver 320 will be described in detail below using the meta-solving unit 321, task allocation unit 323, and route optimization unit 325 included in the optimization solver 320.
[0048] The meta-solving unit 321 performs meta-solving processing to efficiently find an approximate solution to the route optimization problem. In this embodiment, as the meta-solving processing, the meta-solving unit 321 creates multiple patterns of routes to each of multiple work points and destination points for each node. Note that the multiple patterns include at least the shortest route and a non-shortest route.
[0049] FIG. 5 is an explanatory diagram for explaining an example of the meta solution process of this embodiment, showing the layout and aisles in the warehouse described in FIG. 2. In the example shown in FIG. 5, as described above, the aisles in the warehouse are composed of 27 nodes (nodes N1 to N14 and P0 to P12) and edges, 12 nodes (nodes P1 to P12) correspond to work points, and one node (node P0) corresponds to the destination. Here, as the meta solution process, the meta solution unit 321 generates, for example, for each node, three patterns of routes from the node to each of the multiple work points and the destination point. In this case, for each node, the meta solution unit 321 generates three patterns of routes from the node to each of the 12 work points and three patterns of routes to one destination point. Therefore, the meta solution unit 321 generates a total of 39 (12 × 3 + 1 × 3) patterns of routes for each node. Meta solution unit 321 performs this process for all 27 nodes, and therefore creates a total of 1053 (27×39) patterns of routes.
[0050] FIG. 6 is an explanatory diagram for explaining an example of the meta solution process of this embodiment, showing specific examples of shortest and non-shortest routes included in multiple patterns (three patterns). In the example shown in FIG. 6, routes RA, RB, and RC are shown as three route patterns from node N9 to node P7. Route RA is the shortest route from node N9 to node P7, and is a route determined to move from node N9 to nodes P8 and P7 in that order. Route RB is a non-shortest route from node N9 to node P7, and is a route determined to move from node N9 to nodes N6, N3, P4, P3, N2, N5, N8, and P7 in that order. Route RC is a non-shortest route from node N9 to node P7, and is a route determined to move from node N9 to nodes N12, N14, P12, P11, P0, N11, N8, and P7 in that order. In this embodiment, the meta solution unit 321 creates three patterns of routes for each node to travel to each of the multiple work points and destination points, so that the routes include both the shortest route and a non-shortest route.
[0051] An example of a method for determining three route patterns from node N9 to node P7 is to determine all possible route patterns from node N9 to node P7 and extract three route patterns from the determined routes in order of shortest distance. Another example is to determine a node that is a required passing point, determine all possible route patterns from node N9 to node P7 passing through the required passing point, and extract three route patterns from the determined routes in order of shortest distance. Another example is to randomly determine multiple route patterns from node N9 to node P7 and extract three route patterns from the determined routes in order of shortest distance. Another example is to determine a node that is a required passing point, randomly determine multiple route patterns from node N9 to node P7 passing through the required passing point, and extract three route patterns from the determined routes in order of shortest distance. However, the method for determining three route patterns from node N9 to node P7 is not limited to these methods. Furthermore, these techniques can naturally be applied not only to the case where a plurality of route patterns are obtained from node N9 to node P7, but also to the case where a plurality of route patterns are obtained from a certain node to a work point or a destination point.
[0052] Hereinafter, the task allocation unit 323 and the route optimization unit 325 use the meta solution processing results of the meta solution unit 321 to allocate tasks to the robot 10 and optimize the route for the robot 10 to execute the tasks, respectively. This allows the task allocation unit 323 and the route optimization unit 325 to efficiently allocate tasks and optimize routes, respectively.
[0053] The task allocating unit 323 assigns to each of the multiple robots 10-1 to 10-s a task to reach a destination point via one or more work points. The task allocating unit 323 also assigns a new task each time one of the multiple robots 10 reaches a destination point and completes the assigned task. When assigning a new task to a robot 10 to which no task has been assigned, the task allocating unit 323 assigns, from among the multiple unprocessed tasks, a task whose route overlaps least with tasks to be executed by other robots 10.
[0054] For example, consider a case where the number of robots 10 is three, robots 10-1 to 10-3. In this case, as a preprocessing step, the task allocation unit 323 first uses the layout information (correspondence information) and shelf storage information included in the master information acquired by the master information acquisition unit 305 to identify work points (nodes) for picking items included in each order in the order information acquired by the order information acquisition unit 307. The task allocation unit 323 also specifies that, for each order, picking should start from the destination point (node P0), and that after all items included in the order have been picked, the items should be transported to the destination point (node P0). This allows each order to function as a task.
[0055] Furthermore, the task allocation unit 323 specifies the shortest route for executing each task using the results of the meta solution processing by the meta solution unit 321 (the shortest routes from each node to each of the multiple work points and the destination point). For example, in the example shown in Fig. 5, the task is to start from the destination point (node P0), pick up an item at node P5, and transport it to the destination point (node P0). In this case, the shortest route for the task can be specified by the shortest route from node P0 to node P5 and the shortest route from node P5 to node P0, which are obtained by the meta solution processing by the meta solution unit 321.
[0056] When a task has not been assigned to any of the robots 10-1 to 10-3, the task allocating unit 323 randomly selects an unprocessed task and assigns it to the robot 10-1. Next, the task allocating unit 323 assigns to the robot 10-2, from among the unprocessed tasks, a task for which the shortest route with the shortest overlap length, which is the length of the overlapping portion with the shortest route for executing the task assigned to the robot 10-1, has been identified. Next, the task allocating unit 323 assigns to the robot 10-3, from among the unprocessed tasks, a task for which the shortest route with the shortest overlap length with the shortest route for executing the task assigned to the robot 10-1 and the shortest route for executing the task assigned to the robot 10-2 has been identified. Thereafter, when the robot 10 completes the execution of the assigned task, the task allocating unit 323 assigns to the robot 10 that has completed the execution of the task, as a new task, a task for which the shortest route with the shortest overlap length with the shortest routes of the one or more robots 10 currently executing the task has been identified.
[0057] As mentioned above, the optimization solver 320 can grasp the current position of each robot 10 in real time, so the task allocation unit 323 can grasp that the robot 10 has completed the execution of the assigned task and is waiting for the assignment of a new task at the destination point (node P0).
[0058] FIG. 7 is an explanatory diagram illustrating an example of an overlap length in this embodiment. The route RD shown in FIG. 7 is a route determined to move from node N3 to nodes P4, P3, N2, N5, N8, N11, and P0 in this order. The route RE shown in FIG. 7 is a route determined to move from node N9 to nodes P8, P7, N8, N11, and P0 in this order. When comparing route RD and route RE, the two routes overlap on the edge connecting nodes N8 and N11 and the edge connecting nodes N11 and P0. Therefore, if the length of each edge is defined as "1," for example, the overlap length between route RD and route RE is "2." In the example shown in FIG. 7, the nodes are arranged at equal intervals, so the length of each edge is set to "1." However, if the nodes are arranged at unequally equal intervals, the length of each edge may be set according to the interval between the nodes.
[0059] Hereinafter, the task allocation by the task allocation unit 323 will be described using mathematical expressions. First, let us assume that the number of robots 10 is N. A Let L be the number of unprocessed tasks (remaining number of tasks), and let T be the task list consisting of unprocessed tasks. L}, the shortest path list consisting of the shortest paths to execute the outstanding tasks is P={P1 (min) ,P2 (min) ,…,P L (min)}
[0060] where N A Among the 10 robots, i(1≦i≦N A ) robot 10 has not been assigned a task, and a task to be assigned to the i-th robot 10 is to be identified.
[0061] First, N A Let K be a set of numbers for identifying tasks assigned to robots 10 other than the i-th robot 10 among the robots 10. i (assign) Then, K i (assign) is expressed by the following equation (1).
[0062]
number
[0063] Also, N A Among the robots 10, a set of tasks assigned to the robots 10 other than the i-th robot 10 is denoted by T i (assign) Then, T i (assign) is expressed by equation (2).
[0064]
number
[0065] Also, a set of tasks T i (assign) Let P be the set of shortest paths to execute each task in i (assign) Then, P i (assign) is expressed by Equation (3).
[0066]
number
[0067] In this case, the task T assigned to the i-th robot 10 is k_i is k i It can be found by finding _i indicates that i is a subscript.
[0068] Here, the shortest route (P1 (min) ~P L (min) ) to find the set of shortest paths P i (assign) The shortest path (P k_1 (min) ~P k_N_A (min) ) is a list of shortest paths excluding the shortest paths identical to P'=P\P i(assign) The task allocation unit 323 calculates each of the shortest routes included in the list P′ of shortest routes and the set P i (assign) The shortest path (P k_1 (min) ~P k_N_A (min) ) and the overlap length D mn (1≦m≦L (where m∈ / K i (assign) Note that ∈ / is a function of m being K. i (assign) ), n∈K i (assign) The task allocation unit 323 calculates the overlap length D from the list P' of shortest paths. mn The shortest route with the smallest value is extracted, and the number to identify the extracted shortest route is k. i The task allocation unit 323 assigns the number k i The task T to be assigned to the i-th robot 10 is obtained by obtaining the task corresponding to the i-th robot 10 from the task list T. k_i The process performed by the task allocation unit 323 here is expressed by equation (4).
[0069]
number
[0070] As described above, in this embodiment, the task allocation unit 323 allocates to the robot 10 a task with the least overlap of its path with tasks executed by other robots 10. Therefore, when the path optimization unit 325 described below optimizes a path so that the robot 10 executes a task assigned by the task allocation unit 323, it is possible to reduce the number of times that the robot 10 makes a detour to avoid encountering other robots 10 or moves around other robots to avoid collisions with other robots 10. As a result, it is possible to contribute to optimizing a path so that the path optimization unit 325 described below executes a task assigned by the task allocation unit 323 in the shortest time.
[0071] The path optimization unit 325 optimizes the path for executing a task assigned by the task allocation unit 323 so that the task is executed in the shortest time possible for each of the multiple robots 10, taking into consideration a first avoidance time required to avoid a collision when encountering another robot 10. The path optimization unit 325 also optimizes the path for executing a task assigned by the task allocation unit 323 so that the task is executed in the shortest time possible for each of the multiple robots 10, taking into consideration a second avoidance time required to avoid a collision when encountering an obstacle. The first avoidance time is determined according to the length of the portion where the path overlaps with another robot, and the second avoidance time is determined according to the length of the portion where the path overlaps with an obstacle.
[0072] Furthermore, the route optimization unit 325 performs optimization each time a predetermined condition is met. In this embodiment, the predetermined condition includes at least one of: any one of the multiple robots 10 passing through a work point; and the task allocation unit 323 assigning a new task to a robot 10 that has completed a task. In the following, an example will be described in which the predetermined condition includes both of the above-mentioned conditions. In other words, in this embodiment, an example will be described in which the route optimization unit 325 performs optimization each time any one of the multiple robots 10 passes through a work point or a new task is assigned to a robot 10 that has completed a task; however, the present invention is not limited to this.
[0073] For this reason, in the following, the optimization of the path of each robot 10 by the path optimization unit 325 will be explained using an example in which the path to the next work point to be passed through or the path to the next destination point to be reached is optimized, but this is not limited to this, and the path to the destination point may also be optimized.
[0074] The following is a specific description of optimization by the route optimization unit 325. First, when the above-mentioned predetermined conditions are met, the route optimization unit 325 creates, for each of the multiple robots 10, multiple route patterns for executing the tasks assigned by the task assignment unit 323, using the meta solution processing results (shortest routes from each node to each of the multiple work points and destination point) by the meta solution unit 321.
[0075] As described above, the optimization solver 320 can grasp the current position of each robot 10 in real time, and therefore the path optimization unit 325 can grasp the node at which each robot 10 is currently located. If the robot 10 is located on an edge rather than a node, the path optimization unit 325 can assume that the robot 10 is located on the node closest to its current position.
[0076] FIG. 8 is an explanatory diagram for explaining an example of the route optimization process of this embodiment, and shows specific examples of multiple route patterns created by the route optimization unit 325 using the results of the meta-solution process to execute a task assigned by the task allocation unit 323. In the example shown in FIG. 8, the robot 10-1 is currently located at node P10, which is a work point, and routes R1-1, R1-2, and R1-3 are shown as three route patterns for moving to node P5, which is the next work point. Route R1-1 is a route determined to move from node P10 to nodes P0, N11, N8, P6, and P5 in this order. Route R1-2 is a route determined to move from node P10 to nodes P0, P11, P12, N14, N12, N9, P8, P7, N8, P6, and P5 in this order. Route R1-3 is a route determined to move from node P10 to nodes P9, N13, N10, N7, and P5 in this order. These routes R1-1, R1-2, and R1-3 can be created by utilizing the three route patterns from node P10 to node P5 created as a meta solution process by the meta solution unit 321. In this embodiment, the route optimization unit 325 creates multiple route patterns for each robot 10 in this way to execute the tasks assigned by the task allocation unit 323.
[0077] As described above, in this embodiment, the route optimization unit 325 optimizes the route to the next work point or destination point, so the multiple route patterns created by the route optimization unit 325 using the results of the meta-solution processing are routes to the next work point or destination point, as described in Figure 8.
[0078] In addition, when there are multiple work points that can be reached next, the route optimization unit 325 may determine the work point that is closest to the current location as the next work point to be reached, or may determine the order in which work points will be passed through in advance and determine the next work point to be passed through as the next work point to be reached. For example, suppose that the task assigned to the robot 10-1 described in FIG. 8 is a task of starting from the destination node P0, picking items at nodes P5 and P10, and then transporting the picked items to the destination node P0. In this case, when the robot 10-1 is at the start node P0, there are two next work points that can be reached: node P5 and node P10. Therefore, if the route optimization unit 325 determines the next work point to be reached as the work point that is closest to the current location, node P10 is set as the next reachable work point, and creates three patterns of routes for moving from node P0 to node P10. On the other hand, if the order of passing through the work points is predetermined as nodes P5, P10, the route optimization unit 325 creates three patterns of routes moving from node P0 to node P5, with node P5 being the next reachable work point.
[0079] For each of the created routes for each of the multiple robots 10, the route optimization unit 325 calculates the time required to execute a task on that route (the time required to move along that route), a first avoidance time required to avoid another robot 10 if the robot 10 encounters that other robot 10 on that route, and a second avoidance time required to avoid an obstacle if the robot 10 encounters that obstacle on that route. Taking these calculated times into consideration, the route optimization unit 325 optimizes the route for executing the task assigned by the task allocation unit 323 for each of the multiple robots 10 so that the task is executed in the shortest time possible.
[0080] Hereinafter, the route optimization by the route optimization unit 325 will be described using mathematical expressions. A Let T be the set of tasks assigned to robots 10. (assign) Then, T (assign) is expressed by Equation (5).
[0081]
number
[0082] In addition, the number of obstacles identified from the obstacle information acquired by the obstacle information acquisition unit 311 is N B , N B The set of paths (passages) on which each obstacle exists is defined as {P1 (obs) ,P2 (obs) ,…,P N_B (obs)}. In addition, the task T assigned to the k1-th robot 10 k_1 The set of paths to execute the task T assigned to the k2th robot 10. k_2 The set of paths to execute, k N_A Task T assigned to robot 10 k_N_AThe path sets for executing the tasks are expressed by formulas (6), (7), and (8), respectively. The variable U indicates the number of paths included in the path set. The path sets expressed by formulas (6), (7), and (8) correspond to multiple patterns of paths (three patterns in the example described in Figure 8) for executing the task, which are created using the results of the meta-solution process.
[0083]
number
[0084]
number
[0085]
number
[0086] Under the above conditions, the path optimization unit 325 solves the decision variables so as to minimize the value of an objective function that calculates the sum of a first total value obtained by multiplying the decision variable by the time required for movement on each of the multiple paths that each robot 10 can take to execute the assigned task, and a second total value obtained by multiplying the decision variable by the first avoidance time on each of the multiple paths, and performs optimization for each robot 10 so that the path indicated by the solved decision variables is selected from the multiple paths.
[0087] For example, the path optimization unit 325 optimizes the path for each robot to execute a task by solving the objective function H expressed by Equation (9). Equation (9) is the sum of the times required for each robot 10 not to encounter an obstacle or another robot 10, for each robot 10 to avoid collision with an obstacle, and for each robot 10 to avoid collision with another robot 10. In this embodiment, Equation (9) is used as the objective function (synonymous with energy function or Hamiltonian), and the path optimization unit 325 optimizes the decision variable x that minimizes the value of the objective function H expressed by Equation (9). ikThe (0,1) series of the above equation is solved by a running machine. As a result, the path optimization unit 325 calculates a path for each of the plurality of robots 10 to execute the task assigned by the task assignment unit 323 using the decision variable x ik By optimizing the route to one where the metric is 1, the route for executing the task assigned by the task assigning unit 323 can be optimized so that the task is executed in the shortest time.
[0088]
number
[0089] The first term of the objective function H expressed by the formula (9) is the ratio of the decision variable x ik The sum of the values multiplied by the decision variable x ik is a function that is set to 1 when the kth path of the i-th robot 10 is selected, and is set to 0 otherwise. If an obstacle exists on the path, the required time also includes a second avoidance time required to avoid the obstacle.
[0090] Variable R ik is a variable indicating the time required for the i-th robot 10 to follow the k-th path, and is expressed by equation (10).
number
[0091] The variable α is the inverse of the moving speed of the robot 10, and the variable L ik is the path length of the k-th path of the i-th robot 10. That is, αL ik indicates the time required for the i-th robot 10 to move along the k-th path. The variable β is the reciprocal of the moving speed when the robot 10 moves while avoiding obstacles, and D ik,j is the kth path of the i-th robot 10 and the path P j (obs)In other words, the second term of the formula (10) indicates the time required for the i-th robot 10 to avoid the obstacle when moving along the k-th path, and the larger the value of the overlap length, the longer the time required for the obstacle to be avoided. From the above, the variable R ik indicates the time required for the i-th robot 10 to move along the k-th route, taking into account the time required to avoid obstacles.
[0092] The second term of the objective function H expressed by the formula (9) is the time required for each robot 10 to move while avoiding collision with other robots 10, multiplied by the decision variable x ik and decision variable x jl The variable γ is the reciprocal of the moving speed when the robot 10 moves while avoiding other robots 10, and F ik,jl is the overlap length between the kth path of the i-th robot 10 and the lth path of the j-th robot 10. jl is a function that is set to 1 when the lth path of the jth robot 10 is selected, and is set to 0 otherwise. In other words, the second term of formula (9) indicates the time required for the ith robot 10 to avoid other robots 10 when moving along the kth path, and the larger the overlap length value, the longer the time required for the ith robot 10 to avoid other robots 10.
[0093] The third term of the objective function H expressed in Equation (9) represents the constraint that one robot 10 will not select two or more paths. The variable δ is a hyperparameter (a positive real value). Therefore, the third term becomes a positive value that increases when the constraint is not satisfied, and becomes 0 when the constraint is satisfied. Therefore, when the constraint is not satisfied, the value of the objective function H becomes a positive value that increases exponentially, and the value of the objective function H is not minimized, so the decision variable x when the constraint is not satisfied is ik This can prevent the problem from being solved.
[0094] When a task is assigned to a robot 10 by the task assignment unit 323, the instruction unit 331 instructs the robot 10 on the assigned task. Furthermore, when the path of each robot 10 is optimized by the path optimization unit 325, the instruction unit 331 instructs each robot 10 on the optimized path and causes the robot 10 to execute the instructed task on the path.
[0095] First, the configuration of the route optimization system of this embodiment will be described.
[0096] Fig. 9 is a flowchart showing an example of processing performed by the route optimization device 30 of this embodiment. Note that the processing shown in Fig. 9 is performed, for example, when order information to be processed on the day of work is confirmed.
[0097] First, the master information acquiring unit 305 acquires master information from the master information storage unit 301 (step S101), and the order information acquiring unit 307 acquires order information from the order information storage unit 303 (step S103).
[0098] Next, as a meta solution process, the meta solution unit 321 creates, for each node, a plurality of patterns of routes to each of a plurality of work points and a destination point (step S105).
[0099] Next, the task allocation unit 323 and the route optimization unit 325 use the results of the meta-solution processing by the meta-solution unit 321 to allocate a task to the robot 10 and optimize the route for the robot 10 to execute the task, respectively (step S107).
[0100] FIG. 10 is a flowchart showing an example of the task allocation and route optimization process performed in step S107 of the flowchart shown in FIG.
[0101] First, the task allocation unit 323 initializes a variable i to 1 (step S201).
[0102] Next, the task allocation unit 323 checks whether or not there is a task allocated to the robot i (step S203).
[0103] If there is no task assigned to robot i (No in step S203), the task assignment unit 323 assigns to robot i a task that minimizes overlap with other robots currently executing tasks (step S205). If there is a task assigned to robot i (Yes in step S203), the process of step S205 is not performed.
[0104] Next, the task allocation unit 323 increments the variable i (step S207).
[0105] Hereinafter, the task allocation unit 323 performs the following operations: A The processes of steps S203 to S207 are repeated until it becomes true (No in step S209).
[0106] The route optimization unit 325 calculates the variable i>N A If so (Yes in step S209), the route for executing the task assigned to each robot is optimized so that the task can be executed in the shortest time (step S211).
[0107] Next, the instructing unit 331 instructs each robot along the optimized path, and causes the robot to execute the instructed task along the path (step S213). Note that, if the instructing unit 331 has not instructed the robot 10 about the task assigned by the task allocating unit 323, the instructing unit 331 also instructs the robot 10 about the task.
[0108] Next, the route optimization unit 325 selects N A The robot waits until the robot that performed the picking at the work point appears among the robots (No in step S215).
[0109] When the robot that has performed picking appears at the work point (Yes in step S215), the route optimization unit 325 checks whether all tasks have been completed (step S217).
[0110] If all tasks have not been processed (No in step S217), the route optimization unit 325 checks whether there is a robot to which a task has not been assigned (step S219).
[0111] If there is no robot to which a task has not been assigned (No in step S219), the process returns to step S211, and the route optimization unit 325 optimizes the route.
[0112] On the other hand, if there is a robot to which no task has been assigned (Yes in step S219), the process returns to step S201, and the task assignment unit 323 performs processing to assign a new task to the robot.
[0113] If all tasks have been processed in step S217 (Yes in step S217), the process is completed.
[0114] As described above, in this embodiment, the path for each robot 10 to execute a task is optimized so as to minimize the sum of the time required for each robot 10 to move along the path for executing the task and the time required for each robot 10 to avoid collisions when it encounters an obstacle or another robot 10. Therefore, according to this embodiment, the path for executing a task can be optimized so that each robot 10 can execute the assigned task in the shortest time possible.
[0115] Furthermore, in this embodiment, the paths of the multiple robots 10 are optimized when one of the multiple robots 10 executing a task picks up an item. Therefore, according to this embodiment, even in a situation that is constantly changing from time to time, the path of each robot 10 can be optimized by following the changes in the situation.
[0116] Furthermore, in this embodiment, the paths of the multiple robots 10 are optimized when one of the robots 10 completes a task and executes a new task. Therefore, according to this embodiment, even in an environment in which a large number of tasks are executed and a new task is assigned to each robot 10 each time it completes a task, the path of each robot 10 can be optimized each time each robot 10 executes a new task. In other words, according to this embodiment, even in an environment in which a large number of tasks are executed, the path of each robot 10 can be optimized continuously, rather than temporarily.
[0117] (Variation 1) In the above embodiment, picking work in a warehouse by an autonomous mobile robot has been described as an example, but in Modification 1, manual picking work in a warehouse will be described. The following mainly describes differences from the above embodiment, and components having the same functions as in the above embodiment will be given the same names and symbols as in the above embodiment, and their description will be omitted.
[0118] Fig. 11 is a block diagram showing an example of the configuration of a route optimization system 1001 of Modification 1. As shown in Fig. 11, the route optimization system 1001 of Modification 1 differs from the route optimization system 1 of the above embodiment in that the robots 10-1 to 10-s are mobile terminals 1010-1 to 1010-s. In the following description, when there is no need to distinguish between the mobile terminals 1010-1 to 1010-s, they may be simply referred to as mobile terminals 1010.
[0119] In the route optimization system 1001 of the first modification, picking work is performed manually in a warehouse. For this reason, a worker (an example of an agent) performing the picking work carries a mobile terminal 1010. As a result, the task assigned to the worker by the route optimization device 30 and the route optimized for executing the task are notified to the worker via the mobile terminal 1010. In addition, location information indicating the location of the worker is also notified to the route optimization device 30 via the mobile terminal 1010.
[0120] FIG. 12 is an explanatory diagram illustrating an example of an outline of route optimization by the route optimization device 30 of Modification 1. As shown in FIG. 12, a route optimization system 1001 of Modification 1 differs in that the robots 10-1 to 10-3 are workers 1011-1 to 1011-5. In the example shown in FIG. 12, the routes R11 to R13 along which the workers 1011-1 to 1011-3 currently performing picking tasks execute are regarded as the obstacle routes described in the above embodiment. In the example shown in FIG. 12, the workers 1011-4 to 1011-5 currently waiting to pick are regarded as the robots described in the above embodiment, and the routes along which the workers 1011-4 to 1011-5 execute tasks assigned to them are regarded as the routes along which the robots execute tasks described in the above embodiment.
[0121] (Variation 2) In the above embodiment, the case where the multiple route patterns created by the route optimization unit 325 using the meta solution processing results are routes to the next work point or destination point has been described. However, in Modification 2, the multiple route patterns may be routes to further points. For example, assume that the robot 10 is located at node N8 and performs picking at nodes P8, P11, and P6 in that order. In this case, by using the meta solution processing results, the route optimization unit 325 can create three route patterns from node N8 to node P8, three route patterns from node P8 to node P11, and three route patterns from node P11 to node P6. These can be combined to create a total of 27 route patterns, and the route optimization may be performed.
[0122] However, with the above-described method, the number of route patterns increases exponentially as the number of work points increases. Therefore, multiple route patterns may be created by defining the route between each node as the shortest route and changing the order of the nodes passed through. For example, if the robot 10 is located at node N8 and picks items at nodes P8, P11, and P6, the route patterns that can be created can be limited to six patterns: N8 → P8 → P11 → P6, N8 → P8 → P6 → P11, N8 → P6 → P8 → P11, N8 → P6 → P11 → P8, N8 → P11 → P8 → P6, and N8 → P11 → P6 → P8.
[0123] (Variation 3) In the above embodiment, a case has been described in which the start point and destination point are set to be common and fixed for all robots 10. However, in Modification 3, the start point and destination point may be different. For example, one robot 10 may be assigned to one shelf, and a start point and destination point may be set for each shelf. In this case, each robot 10 performs picking work mainly from the shelf assigned to it, and workers go to each shelf to collect the picked items. This allows workers and robots 10 to work together to perform picking work, thereby reducing labor and improving efficiency without requiring major warehouse renovations such as the introduction of a fully automated picking system.
[0124] In addition, the starting point and the destination point may be dynamically changed, for example, by setting the final picking operation point as the destination point and setting that point as the starting point of the next task.
[0125] (program) The programs executed by the route optimization device 30 in the above embodiment and each of the above modifications are provided as files in an installable or executable format stored on a computer-readable storage medium such as a CD-ROM, CD-R, memory card, DVD, or flexible disk (FD).
[0126] Furthermore, the programs executed by the route optimization device 30 of the above embodiment and each of the above modifications may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. Furthermore, the programs executed by the route optimization device 30 of the above embodiment and each of the above modifications may be provided or distributed via a network such as the Internet. Furthermore, the programs executed by the route optimization device 30 of the above embodiment and each of the above modifications may be provided by being pre-installed in a ROM or the like.
[0127] The program executed by the route optimization device 30 of the above embodiment and each of the above modifications has a modular configuration for realizing the above-mentioned units on a computer. In terms of actual hardware, for example, the CPU reads the program from the HDD onto the RAM and executes it, thereby realizing the above-mentioned units on a computer.
[0128] As described above, according to the above embodiment and the above modifications, a new method for optimizing the routes of a plurality of agents can be provided.
[0129] The above-described embodiment and each of the modifications merely illustrate examples of implementations of the present disclosure, and the technical scope of the present disclosure should not be construed as being limited by these. Therefore, the present disclosure can be implemented in various forms without departing from the spirit or main features thereof. For example, the above-described embodiment and each of the modifications may be appropriately combined in their respective constituent units. Furthermore, for example, some components may be deleted from all components in the above-described embodiment and each of the modifications.
[0130] The present disclosure includes the following aspects.
[0131] (1) a task allocation unit that assigns to each of a plurality of agents a task of reaching a destination point via one or more work points; a route optimization unit that optimizes a route for executing the assigned task for each of the plurality of agents, taking into consideration a first avoidance time required for collision avoidance when encountering another agent, so that the assigned task is executed in the shortest time possible; A route optimization device comprising:
[0132] (2) The route optimization unit performs the optimization each time a predetermined condition is satisfied. The route optimization device according to (1) above.
[0133] (3) the predetermined condition includes that any one of the plurality of agents passes through the work location; The route optimization device according to (2) above.
[0134] (4) The route to be optimized is the route to the next work point or the next destination point. The route optimization device according to (3) above.
[0135] (5) the task allocation unit allocates a new task each time any of the plurality of agents reaches the destination point and completes the assigned task; the predetermined condition includes that the new task is assigned; The route optimization device according to (2) above.
[0136] (6) The first avoidance time is determined according to the length of a portion of the route overlapping with the other agent. The route optimization device according to (1) above.
[0137] (7) The route optimization unit performs the optimization for each of the plurality of agents, further taking into consideration a second avoidance time required for collision avoidance when encountering an obstacle. The route optimization device according to (1) above.
[0138] (8) The second avoidance time is determined according to the length of an overlapping portion between the obstacle and the route. The route optimization device according to (7) above.
[0139] (9) When the task allocation unit allocates a new task to an agent to which no task has been allocated, the task allocation unit allocates, from among a plurality of unprocessed tasks, a task whose paths overlap with tasks executed by other agents the least. The route optimization device according to (1) above.
[0140] (10) The route optimization unit solves the decision variables so as to minimize the value of an objective function that calculates the sum of a first sum obtained by multiplying a decision variable by the time required for movement on each of a plurality of routes that can be taken by each agent to execute the assigned task, and a second sum obtained by multiplying the first avoidance time on each of the plurality of routes by the decision variable, and performs the optimization for each agent so that the route indicated by the solved decision variable is selected from the plurality of routes. The route optimization device according to (1) above.
[0141] (11) a task allocation step in which a task allocation unit assigns to each of the plurality of agents a task for reaching a destination point via one or more work points; a route optimization step in which a route optimization unit optimizes a route for executing the assigned task so that the task can be executed in the shortest time possible, for each of the plurality of agents, taking into consideration a first avoidance time required for collision avoidance when the agent encounters another agent; A route optimization method comprising:
[0142] (11) a task allocation unit that allocates to each of the plurality of agents a task of reaching a destination point via one or more work points; a route optimization unit that optimizes a route for executing the assigned task for each of the plurality of agents, taking into consideration a first avoidance time required for collision avoidance when encountering another agent, so that the assigned task is executed in the shortest time possible; A program that allows a computer to function. [Explanation of symbols]
[0143] 1. 1001 Route Optimization System 2 Network 10, 10-1~10-s robot 20, 20-1 to 20-t detection device 30 Route Optimizer 301 Master information storage unit 303 Order information storage unit 305 Master Information Acquisition Unit 307 Order Information Acquisition Department 309 Robot Information Acquisition Unit 311 Obstacle Information Acquisition Unit 320 Optimization Solver 321 Meta Solution Section 323 Task Allocation Unit 325 Route Optimization Department 331 Instruction section 1010, 1010-1 to 1010-s mobile devices
Claims
1. a task allocation unit that allocates to each of the plurality of agents a task of reaching a destination point via one or more work points; a route optimization unit that optimizes a route for executing the assigned task for each of the plurality of agents, taking into consideration a first avoidance time required for collision avoidance when encountering another agent, so that the assigned task is executed in the shortest time possible; A route optimization device comprising:
2. The route optimization unit performs the optimization each time a predetermined condition is met. The route optimization device according to claim 1 .
3. the predetermined condition includes that any one of the plurality of agents passes through the work point; The route optimization device according to claim 2 .
4. The route to be optimized is the route to the next work point or the next destination point. The route optimization device according to claim 3 .
5. the task allocation unit allocates a new task each time any of the plurality of agents reaches the destination point and completes the assigned task; the predetermined condition includes that the new task is assigned; The route optimization device according to claim 2 .
6. the first avoidance time is determined according to the length of a portion where the route of the agent overlaps with that of the other agent; The route optimization device according to claim 1 .
7. the route optimization unit performs the optimization for each of the plurality of agents, further taking into consideration a second avoidance time required to avoid a collision when encountering an obstacle. The route optimization device according to claim 1 .
8. The second avoidance time is determined according to the length of an overlapping portion between the obstacle and the route. The route optimization device according to claim 7.
9. When the task allocation unit allocates a new task to an agent to which no task has been allocated, the task allocation unit allocates, from among a plurality of unprocessed tasks, a task whose paths overlap with tasks executed by other agents the least. The route optimization device according to claim 1 .
10. the route optimization unit solves the decision variables so as to minimize the value of an objective function that calculates the sum of a first sum obtained by multiplying a decision variable by the time required for movement on each of a plurality of routes that can be taken by each agent to execute the assigned task, and a second sum obtained by multiplying the first avoidance time on each of the plurality of routes by the decision variable, and performs the optimization for each agent so as to select a route indicated by the solved decision variable from among the plurality of routes. The route optimization device according to claim 1 .
11. a task allocation step in which a task allocation unit allocates to each of the plurality of agents a task for reaching a destination point via one or more work points; a route optimization step in which a route optimization unit optimizes a route for executing the assigned task for each of the plurality of agents, taking into consideration a first avoidance time required for collision avoidance when the agent encounters another agent, so that the assigned task is executed in the shortest time; A route optimization method comprising:
12. a task allocation unit that allocates to each of the plurality of agents a task of reaching a destination point via one or more work points; a route optimization unit that optimizes a route for executing the assigned task for each of the plurality of agents, taking into consideration a first avoidance time required for collision avoidance when encountering another agent, so that the assigned task is executed in the shortest time possible; A program that allows a computer to function.
Citation Information
Patent Citations
Systems and methods for optimizing route plans in operating environment
JP2022082419A