Route planning device, route planning method, and route planning program
The route planning device for autonomous robots adjusts paths to avoid interference by detecting overlaps and applying exclusive control or detours, ensuring accurate time and cost estimation and efficient operation.
Patent Information
- Application Number
- PCT/JP2023/046767
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-26
- Publication Date
- 2025-07-03
Smart Images

Figure JP2023046767_03072025_PF_FP_ABST
Abstract
Description
Path planning device, path planning method, and path planning program
[0001] The disclosed technology relates to a route planning device, a route planning method, and a route planning program.
[0002] Services using autonomous mobile robots for cleaning, security, guidance, and package delivery are becoming more common in city blocks of public facilities, commercial facilities, offices, etc. In order to prevent multiple robots from slowing down or stopping due to mutual influence when moving in close proximity in such services, a control technique has been proposed that avoids mutual influence by waiting or detouring when the paths of multiple robots overlap or approach each other within a city block (Non-Patent Document 1).
[0003] Yahagi, Makiko; Nakazawa, Kazuo. Path planning method based on collision prediction for transportation tasks by multiple mobile robots (Mechanical mechanics, Measurement, Automatic Control). Transactions of the Japan Society of Mechanical Engineers, Series C, 2009, 75.760: 3307-3313.
[0004] In a parcel delivery service, when a user places a delivery order, the service presents an estimate of the availability of the robots in operation and the required delivery time, taking into account existing delivery reservations. If delivery costs increase beyond the estimated amount due to slowdowns or stops caused by interference between multiple robots on the delivery route, the delivery schedule presented to the user may not be met, potentially damaging the customer experience. Furthermore, if a flat delivery cost is estimated to avoid this, delivery efficiency will be compromised. Therefore, when estimating the required delivery time, it is necessary to estimate the interference between multiple robots and incorporate controls such as waiting or detours that efficiently avoid interference into the route plan in advance.
[0005] The disclosed technology has been made in consideration of the above points, and aims to provide a path planning device, a path planning method, and a path planning program that can plan paths in a way that avoids interference between robots at the path planning stage.
[0006] A first aspect of the present disclosure is a path planning device that performs path planning for a plurality of autonomously moving robots that are assigned combinations of movement tasks with specified destinations within a movement range that includes at least one building, and includes: a planning unit that performs path planning for each of the plurality of robots based on the combination of movement tasks that has been assigned in advance; and a modification unit that detects interfering portions that are in an interfering relationship with each other from the path plans for each of the plurality of robots based on spatial proximity and temporal proximity between the path plans, and modifies the path plan to avoid the interference in the interfering portions.
[0007] A second aspect of the present disclosure is a path planning method for planning paths for multiple robots capable of autonomous movement that are assigned combinations of movement tasks with specified destinations within a movement range that includes at least one building, wherein a computer executes a process of planning a path for each of the multiple robots based on the combination of movement tasks that has been assigned in advance, detecting interfering portions that are in an interfering relationship with each other from the path plans for each of the multiple robots based on spatial and temporal proximity between the path plans, and modifying the path plan to avoid the interference in the interfering portions.
[0008] A third aspect of the present disclosure is a path planning program for performing path planning for a plurality of autonomously moving robots that are assigned combinations of movement tasks with specified destinations within a movement range that includes at least one building, the program causing a computer to perform a process of performing path planning for each of the plurality of robots based on the combination of movement tasks that has been assigned in advance, detecting interfering portions that are in an interfering relationship with each other from the path plans for each of the plurality of robots based on the spatial and temporal proximity between the path plans, and modifying the path plan to avoid the interference in the interfering portions.
[0009] According to the disclosed technology, it is possible to perform path planning at the path planning stage so as to avoid interference between robots.
[0010] 1 is a diagram showing an example of a movement range of a building. FIG. 2 is a diagram showing an example of route data. FIG. 3 is a diagram showing an example of a movement route calculated so as to minimize the total cost of waypoints or stopping points. FIG. 4 is a diagram showing the relationship between estimated required time and actual required time. FIG. 5 is a diagram for explaining an example of interference between robots. FIG. 6 is a diagram for explaining avoiding interference by making one robot wait. FIG. 7 is a diagram for explaining an example of interference between robots. FIG. 8 is a diagram for explaining avoiding interference by changing one robot's route to a detour route. FIG. 9 is a diagram showing an example of a case where there are multiple robots waiting for an elevator. FIG. 10 is a diagram showing an example of determining an efficient elevator usage order. FIG. 11 is a diagram showing an example of generating, as an initial route plan, a route plan that is the shortest route for each robot, with the destination of an assigned movement task as a drop-off point. FIG. 12 is a diagram showing an example of changing the route plan to avoid interference in an interfering portion. FIG. 13 is a diagram showing an example of a route plan for each robot. FIG. 14 is a diagram showing an example of changing the route plan for each robot using exclusive control. FIG. 15 is a diagram showing an example of changing the route plan for each robot using exclusive control. 1 is a diagram showing an example of changing the path plan of each robot using exclusive control and changes to a detour route. FIG. 2 is a diagram showing an example of changing the path plan of each robot using exclusive control and changes to a detour route. FIG. 3 is a diagram showing an example of changing the path plan of each robot using exclusive control and changes to a detour route. FIG. 4 is a diagram showing an example of changing the path plan of each robot using exclusive control and changes to a detour route. FIG. 5 is a diagram showing an example of changing the path plan of each robot using exclusive control and changes to a detour route. FIG. 6 is a diagram showing an example of a path plan of each robot changed to a detour route. A block diagram showing the configuration of a path planning system of this embodiment. A schematic block diagram of an example of a computer that functions as a control unit of the path planning device and robot of this embodiment. A block diagram showing the configuration of the path planning device of this embodiment. A diagram for explaining a method of clustering multiple movement destinations and assigning combinations of movement tasks to multiple robots using the clustering results.FIG. 1 is a diagram illustrating an example of an interference portion between path plans. FIG. 2 is a diagram illustrating an example of an interference portion between path plans. FIG. 3 is a diagram illustrating an example of an interference portion between path plans. FIG. 4 is a diagram illustrating an example of a branching process. FIG. 5 is a diagram illustrating an example of a branching process. FIG. 6 is a diagram illustrating an example of a pruning process. FIG. 7 is a block diagram illustrating the configuration of a control unit of a robot of this embodiment. FIG. 8 is a flowchart illustrating the flow of path planning processing of the path planning device of this embodiment. FIG. 9 is a flowchart illustrating the flow of update processing of the path planning device of this embodiment.
[0011] An example of an embodiment of the disclosed technology will be described below with reference to the drawings. Note that the same or equivalent components and parts in each drawing are given the same reference numerals. Also, the dimensional proportions in the drawings are exaggerated for the convenience of explanation and may differ from the actual proportions.
[0012] <Overview of this embodiment> FIG. 1A shows an example of a movement range represented by overlapping floor plans from the first basement floor (B1) to the 14th floor (14F) of a certain building. Floor plans for the 4th to 12th floors are omitted. Each floor is connected by an elevator that the robot can use. Consider an example of a route plan when a robot capable of autonomous movement within such a building is assigned a combination of movement tasks of delivering packages to users at delivery destination points 1 and 2. In this example, a route plan is performed for departing from a robot waiting point, loading packages at a package loading point, delivering packages to users at delivery destination points 1 and 2, and returning to the robot waiting point.
[0013] Figure 1B shows a directed graph generated by predetermining possible route points or stopping points within a building where the robot may travel (see the ● marks in Figure 1B), and then connecting adjacent points where the robot may travel. In this graph, cost values (path costs) are assigned to the edges connecting points in both directions (see Table 1).
[0014]
[0015] In this embodiment, such a graph is called route data and is used for route planning.
[0016] 1C shows an example of a travel route calculated based on route data using, for example, the Dijkstra algorithm, so as to minimize the total cost of edges between intermediate or stopping points. The travel cost is calculated by taking into account the total cost (required time) of edges between points on this travel route, the time required for loading luggage, estimated waiting time for elevators, the time required for delivery at the delivery destination, and the estimated time for manual recovery due to a problem, etc.
[0017] When there are multiple types of robots, route data is created for each type of robot, and passages that cannot be passed by some types of robots are expressed in the route data as the presence or absence of a route, and differences in speed are expressed as differences in route costs.
[0018] Transportation services such as autonomously moving robots that deliver luggage are required to take into account the various influencing factors described above and accurately estimate the cost of travel for a time beyond the present. This is because, as shown in Figure 2, if the actual travel time is shorter than the estimate, it will lead to a loss of opportunities to handle more transportation tasks, and conversely, if the actual travel time is longer than the estimate, it will result in a delay compared to the scheduled travel time presented to the user, which will lead to a poor user experience.
[0019] Furthermore, the movement cost must take into account not only the time required for the robot to move but also other costs. Even if the movement time is accurately estimated, if a route is selected that has a high probability of requiring recovery control to slow down or stop the robot due to a roadblock or other problem, the movement efficiency may be reduced.
[0020] The left side of Figure 2 shows an example where the actual travel time is shorter than the estimate, leaving room for additional travel tasks, resulting in inefficiency. The center of Figure 2 shows an example where the actual travel time is longer than the estimate, resulting in delays from the scheduled time and a poor user experience. The right side of Figure 2 shows an example where the travel time estimate is accurate, but recovery control such as slowing down or stopping is not taken into account.
[0021] Next, the interference relationships between the robots will be described. As shown in Figure 3A, when multiple robots 20 are traveling along the same path at the same time, the robots 20 interfere with each other, and while they are moving, they will detect each other using proximity sensors or the like. Due to differences in model, etc., it is difficult to predict the behavior of each robot 20, and there are cases where the robots 20 stop moving inconsistently after detecting each other.
[0022] The left side of Fig. 3A shows an example in which multiple robots 20 are running side by side or chasing each other. The center of Fig. 3A shows an example in which one robot 20 is overtaking another robot 20. The right side of Fig. 3A shows an example in which multiple robots 20 are passing each other.
[0023] At this time, as shown in FIG. 3B, by having one robot 20 wait at a predetermined point, interference can be avoided and smooth running can be achieved.
[0024] Furthermore, as shown in Figure 4A, when a route is planned for each robot 20 individually to be the shortest route, the same route as that taken by another robot 20 at the same time may be selected, which may result in an interference relationship between the robots 20.
[0025] In this case, as shown in FIG. 4B, if there is a detour route that requires a travel time close to that of the shortest route, the interference can be avoided by switching to that detour route.
[0026] Furthermore, as shown in Figure 5A, when there are multiple robots 20 waiting for an elevator, if they are allowed to use the elevator on a first-come, first-served basis in order to have exclusive use of the elevator, it may result in irrational cases such as a robot 20 on the outbound journey that should have higher priority being put off, or a robot 20 waiting on a higher floor using the elevator first even though the car 50 is on a lower floor.
[0027] At this time, as shown in FIG. 5B, the most efficient order of use is determined taking into consideration the current position of the elevator car 50 and the floors where the robot 20 is scheduled to stop until it becomes available.
[0028] Next, a method for planning a path so as to avoid interference in areas where interference occurs when multiple robots 20 are traveling simultaneously will be described.
[0029] First, the process of detecting interference portions will be described. Temporally overlapping paths are detected as interference portions in units of paths (edges on the path data) between stopping points of the robot 20.
[0030] Next, a process for changing a route plan to avoid interference will be described. Methods for changing a route plan to avoid interference include exclusive control, permission for simultaneous travel, and changing to a detour route.
[0031] In the exclusive control, when multiple robots 20 are scheduled to move along the same edge at the same time, in order to avoid interference, the path plan is changed so that all robots 20 except for one robot 20 moving along that edge at that time wait at the location. At this time, the exclusive control also involves making the moving robots 20 use the edge corresponding to that elevator in an efficient order of priority, depending on the elevator movement and the remaining movement tasks.
[0032] When simultaneous running is permitted, if the interfering part is an interference relationship in a sufficiently wide passage, simultaneous running will be permitted to the extent that the constraints indicating a combination of a certain robot type or number determined in advance for that passage are met, and exclusive control will not be performed.
[0033] When changing to a detour route, for a robot 20 that has become non-prioritized due to exclusive control, the waiting time due to exclusive control is added to the cost of the edge that is the interfering part, the shortest route is recalculated to check whether there is a detour route, and the route plan is changed so that the detour route is used if the cost of the detour route is smaller than the waiting time.
[0034] Next, updating of the route plan will be described.
[0035] While the robots 20 are moving, the path plan is reviewed at regular intervals (detecting the above-mentioned interfering areas and changing the path plan to avoid the interference), and the path plan is updated according to the progress of each robot 20.
[0036] Next, we will explain how to handle multiple models of robots 20. By providing route data for each robot model and using the same node names for each route data, and changing the route cost of each edge depending on the performance of the robot 20, it is possible to plan routes for multiple models of robots 20.
[0037] Next, a specific route plan will be described.
[0038] The route plan includes, in chronological order, travel instructions by specifying edges and waiting instructions at nodes in graph-like route data, in which stopping points or waypoints within the travel range are represented as nodes and paths between points are represented as edges.
[0039] By combining movement instructions and standby instructions, a path plan is given to the robots 20 that is modified so as to avoid interference in the interference portions where the robots 20 are in an interference relationship with each other.
[0040] By updating the path plan while the robot 20 is traveling, it is possible to reduce the discrepancy between the path plan and the movement performance of the robot 20. At this time, among the path plans, movement instructions or standby instructions currently in progress for the operating robot 20 cannot be changed, and since there is variation among the robots 20 in the timing of ending the movement instructions or standby instructions currently in progress, the path plan is changed from instructions that are a certain number of times after the instructions currently in progress for all the robots 20 in chronological order.
[0041] Furthermore, even after the robots 20 start moving, the path plan is continuously updated while reflecting the movement record and progress status of each robot 20, thereby absorbing any difference between the path plan and the travel record.
[0042] The robots 20 are controlled according to the movement instructions in the route plan and the movement instructions, and are made to move to points corresponding to nodes in the route data or wait at designated points. If there are robots 20 that interfere with each other due to a difference between the route plan and the actual movement caused by external disturbances or the like, the sensors and control functions of each model of each robot 20 are used to autonomously slow down, stop, or avoid the interference.
[0043] Next, an example of changing a path plan will be described with reference to Figures 6A and 6B. First, assume that movement tasks are assigned to each robot 20, taking into consideration the type of robot 20, such as movement speed. Figure 6A shows an example in which a movement task to point 5 is assigned to robot 20A, and two movement tasks to point 8 are assigned to robot 20B. Figure 6A also shows an example in which the destinations of the assigned movement tasks are set as stopover points, and a path plan that is the shortest route for each robot 20 is generated as an initial path plan.
[0044] As shown in Fig. 6B, the path plan is changed to avoid the interference relationship at the interference portion (see the dotted portion). Fig. 6B shows an example in which the path plan is changed so that robot 20B gives priority to robot 20A and waits for loading at node B, and robot 20A gives priority to robot 20B and waits for movement by elevator.
[0045] Next, an example of changing the path plan using exclusive control in a simplified example in which all robots 20 are the same model and move at the same speed will be described with reference to Figures 7 and 8A to 8C. In this example, as shown in Figure 7, robot 20A moves from node E to node K via nodes I and H, robot 20B moves from node E to node G via node I, and robot 20C moves from node L to node C via node E.
[0046] First, assume that an initial path plan is obtained as shown in Fig. 8A. In this example, the edges EI of the robot 20A, EI of the robot 20B, and IE of the robot 20C are interfering with each other.
[0047] Therefore, as shown in Figures 8B and 8C, a wait instruction is added to change the path plan to one that is exclusively controlled so that robots do not move along the same edge simultaneously, regardless of whether they are moving forward or backward (see the dotted parts). Figure 8B shows an example in which a wait instruction is added to robot 20B and robot 20C so that they avoid interfering with robot 20A. Figure 8C shows an example in which a wait instruction is added to robot 20C so that they avoid interfering with robot 20B.
[0048] In the above, we have explained an example in which all robots 20 are the same model, but if multiple models of robots 20 are included, the travel time between points may differ, and the start and end times of the interference parts may not match.
[0049] Next, an example of changing the route plan using exclusive control and a change to a detour route in the example shown in FIG. 7 will be described with reference to FIGS. 9A to 9F and 10. FIG.
[0050] First, assume that an initial path plan is obtained as shown in Fig. 9A. In this example, the edges EI of the robot 20A, EI of the robot 20B, and IE of the robot 20C are interfering with each other.
[0051] Therefore, as shown in Figure 9B, a change to a detour route is made. Figure 9B shows an example in which robots 20B and 10C have changed to a detour route to avoid interference with robot 20A (Figure 10). Figure 10 shows an example in which edges E-I and I-H have been changed to edges E-D and D-H, which are detour routes, for robot 20B. Also, an example in which edges I-E and E-D have been changed to edges I-H and H-D, which are detour routes, for robot 20C.
[0052] 9C shows an example in which an interference portion occurs in the route plan after the change to the detour route. In this example, the interference portion is between edge I-H of robot 20A and edge I-H of robot 20C.
[0053] Therefore, as shown in Fig. 9D, the path plan is changed again by changing to a detour path or by exclusive control. In the example of Fig. 9D, a standby instruction is added to robot 20A to avoid interference with robot 20C (see the dotted portion).
[0054] 9E shows an example in which an interference portion occurs in the path plan after the exclusive control. In the example of FIG. 9E, the interference portion occurs between edge I-H of robot 20A and edge I-H of robot 20B.
[0055] Therefore, as shown in Fig. 9F, the path plan is changed again by changing to a detour path or by exclusive control. In the example of Fig. 9F, a standby instruction is added to robot 20B to avoid interference with robot 20A (see the dotted portion).
[0056] <Configuration of a Route Planning System According to this Embodiment> FIG. 11 is an explanatory diagram showing an example of the configuration of a route planning system 100. In this embodiment,
[0057] A path planning system 100 will be described that assigns combinations of movement tasks, each with a specified destination within a movement range that includes at least one building, to multiple robots capable of autonomous movement, and plans paths for the multiple robots. The path planning system 100 includes a path planning device 10 and multiple robots 20. Note that while Fig. 11 shows an example in which the path planning system 100 includes two robots 20, it may also include three or more robots 20.
[0058] The path planning device 10 is, for example, a server computer capable of various information processing and sending and receiving information. Note that the device equivalent to the path planning device 10 is not limited to a server computer, and may be, for example, a personal computer. In this embodiment, the path planning device 10 functions as a device that assigns combinations of movement tasks to multiple robots 20 and plans paths for the multiple robots 20.
[0059] The robot 20 is a robot capable of autonomous movement. In this embodiment, the multiple robots 20 include multiple models of robots that differ in movement speed or range of interference with other robots 20. Note that the multiple robots 20 may be robots of the same model.
[0060] <Configuration of the Path Planning Apparatus According to the Present Embodiment> FIG. 12 is a block diagram showing the hardware configuration of the path planning apparatus 10 according to the present embodiment.
[0061] 12 , the route planning device 10 includes a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, a storage 14, an input unit 15, a display unit 16, and a communication interface (I / F) 17. Each component is connected to each other via a bus 19 so as to be able to communicate with each other.
[0062] The CPU 11 is a central processing unit that executes various programs and controls each part. That is, the CPU 11 reads programs from the ROM 12 or the storage 14 and executes the programs using the RAM 13 as a work area. The CPU 11 controls the above-mentioned components and performs various arithmetic processing in accordance with the programs stored in the ROM 12 or the storage 14. In this embodiment, a route planning program is stored in the ROM 12 or the storage 14. The route planning program may be a single program or a group of programs composed of multiple programs or modules.
[0063] The ROM 12 stores various programs and various data. The RAM 13 temporarily stores programs or data as a working area. The storage 14 is configured with an HDD (Hard Disk Drive) or an SSD (Solid State Drive) and stores various programs including the operating system and various data.
[0064] The input unit 15 includes a pointing device such as a mouse and a keyboard, and is used to make various inputs including multiple movement tasks with specified destinations within a movement range that includes at least one building.
[0065] The display unit 16 is, for example, a liquid crystal display, and displays various information. The display unit 16 may be a touch panel type and function as the input unit 15.
[0066] The communication interface 17 is an interface for communicating with other devices, and uses standards such as Ethernet (registered trademark), FDDI, and Wi-Fi (registered trademark).
[0067] Next, a description will be given of the functional configuration of the route planning device 10. Fig. 13 is a block diagram showing an example of the functional configuration of the route planning device 10.
[0068] As shown in FIG. 13, the route planning device 10 functionally includes an allocation unit 101, a planning unit 102, a change unit 103, and an update unit 104.
[0069] The allocation unit 101 allocates combinations of movement tasks to a plurality of robots 20 .
[0070] For example, as shown in Fig. 14, multiple destinations are clustered, and combinations of travel tasks are assigned to multiple robots 20 using the clustering results. In clustering, destinations with short travel times are grouped using hierarchical clustering. Also, a matrix of estimated travel times for each waiting location to travel to each destination group (see the right side of Fig. 14) is generated, and a combination of destination groups that minimizes the total cost is calculated as an assignment problem. Each robot 20 is assigned a combination of travel tasks included in the combination of assigned destination groups.
[0071] If the combination of destinations of the groups obtained by clustering is a combination that does not allow all of the robots 20 to move within a range that satisfies the constraints on the number of destinations or the required time, the robots 20 may be assigned in order of proximity obtained in the clustering process until the constraints on the number of destinations or the required time are no longer satisfied. If it is still not possible to assign all of the movement tasks within a range that satisfies the constraints on the number of destinations or the required time, it may be determined that the movement tasks cannot be assigned.
[0072] The planner 102 performs path planning for each of the multiple robots 20 based on a combination of assigned movement tasks.
[0073] The route plan includes, in graph-like route data in which nodes represent stop points or waypoints within the travel range and edges represent passages between the points, travel instructions by specifying edges and instructions to wait at nodes in chronological order. The stop points or waypoints are points on multiple floors, and further include elevator boarding and disembarking points as nodes, and further include elevator travel routes as edges.
[0074] Specifically, the planning unit 102 uses, for example, the Dijkstra algorithm to plan a path for each robot 20 based on the path data so that the total value of the costs assigned to the edges is minimized. At this time, the movement cost is calculated by taking into account the total cost value between points on the movement path, the time required for loading luggage, the estimated waiting time for elevators, the time required for delivery at the destination, and the expected time for manual recovery due to a problem, etc.
[0075] If the multiple robots 20 include multiple models of robots 20, route data is created for each model, and passages that cannot be passed through depending on the model are expressed in the route data as the presence or absence of a route, and differences in speed are expressed as differences in route cost.
[0076] The modification unit 103 detects interfering portions of the path plans for each of the multiple robots 20 based on the spatial and temporal proximity between the path plans, and modifies the path plans to avoid the interference at the interfering portions. If the interfering portion is an elevator, the modification unit 103 modifies the path plans to use the elevator exclusively.
[0077] Specifically, the change unit 103 compares the path plans for the multiple robots 20, detects overlapping times and edges (see FIGS. 15A, 15B, and 15C) as interference areas, and changes the path plan to avoid interference at the interference areas. Methods for changing the path plan include exclusive control, permission for simultaneous travel, and changing to a detour route.
[0078] 15A shows an example in which the overlapping portion between the edge "A→B" of the first robot 20, the edge "B→A" of the second robot 20, and the edge "A→B" of the third robot 20 is an interference portion (see the dotted portion). FIG. 15B shows an example in which the overlapping portion discovered earlier and the overlapping portion that does not overlap in time are treated as separate interference portions. That is, the overlapping portion between the edge "A→B" of the first robot 20, the edge "B→A" of the second robot 20, and the edge "A→B" of the third robot 20 is an interference portion, and the overlapping portion between the edge "A→B" of the first robot 20, the edge "A→B" of the second robot 20, the edge "A→B" of the third robot 20, and the edge "A→B" of the fourth robot 20 is yet another interference portion (see the dotted portion).
[0079] 15C shows an example in which different overlapping portions within the same time period are detected as separate interference portions. That is, the overlapping portion between the edge "A → B" of the first robot 20 and the edge "B → A" of the second robot 20 is an interference portion, and the overlapping portion between the edge "B → D" of the third robot 20 and the edge "B → D" of the fourth robot 20 is yet another interference portion (see the dotted portions).
[0080] In addition, when changing the path plan so as to avoid interference at the interfering parts, the change unit 103 detects the interfering parts from the beginning of the time series of the path plan of each robot 20, and performs a branching process to branch the change pattern for each prioritized robot 20, and a pruning process to stop the change of the branched change pattern if predetermined conditions are met when repeating the detection of the interfering parts and branching.
[0081] In the branching process, the change pattern is branched for each robot 20 prioritized in the exclusive control. In the case of an interference portion caused by three or more robots 20, after one prioritized robot 20 is determined, the path plans of the remaining robots 20 are first changed to avoid interference with the prioritized robot 20, and then, in the next branching process, the path plans are changed to avoid interference between the remaining robots 20. The exclusive control also includes exclusive control regarding elevator use. Furthermore, in the case of an interference portion caused by a number of robots 20 exceeding the number that can be traveled simultaneously, the change pattern is branched for each combination of robots 20 traveling simultaneously. Furthermore, if a change to a detour route is possible, a pattern for changing to a detour route is added, and the change pattern is branched.
[0082] An example of branching processing will now be described with reference to FIGS. 16A to 16C.
[0083] Figure 16A shows an example in which edge "C → D", which is a travel route using an elevator for robot 20A, and edge "C → G", which is a travel route using an elevator in the path plan for robot 20B, are detected as interfering parts.
[0084] 16B shows an example in which the change pattern is branched for each robot 20 that prioritizes elevator use. That is, the change pattern in the upper part of Fig. 16B shows an example in which robot 20A is prioritized on edge "C → D", which is a movement route using an elevator, and the path plan for robot 20B is changed so that robot 20A waits in the time period when robot 20A is using the elevator and the time period when the elevator is moving to robot 20B's floor (see the dotted parts).
[0085] 16B shows an example in which robot 20B is given priority at edge "C → D," which is a movement route using an elevator, and the path plan for robot 20A is changed so that robot 20B waits until it uses the elevator, during a time period when robot 20B is using the elevator, and during a time period when the elevator is moving to robot 20A's floor (see dotted areas). The change pattern also shows an example in which time is required for the elevator to move to robot 20A's floor between edge "G → C" for robot 20B and edge "D → C" for robot 20A.
[0086] 16C shows an example in which the change pattern in Fig. 16B is further branched for each robot 20 that prioritizes the use of the elevator. That is, the change pattern in the upper part of Fig. 16C shows an example in which robot 20B is prioritized on edge "G → C", which is a movement route using the elevator, and the path plan for robot 20A is changed so that robot 20A waits during the time period when the elevator is moving to the floor of robot 20A.
[0087] The change pattern at the bottom of Figure 16C shows an example in which robot 20A is given priority on edge "D → C," which is a travel route using an elevator, and the path plan for robot 20B is changed so that robot 20A waits until it uses the elevator, during the time period when robot 20A is using the elevator, and during the time period when the elevator is moving to robot 20B's floor (see the dotted parts).
[0088] The change unit 103 may perform distributed processing of the branching process. For example, the detection of the leading interference part in the route plan and the branching of the change pattern can be treated as one processing unit, and the change patterns can be queued and processed in parallel.
[0089] An example of pruning processing will be described with reference to FIG.
[0090] In the pruning process, if at least one of the following conditions 1 to 3 is satisfied, further branching of the branched change pattern is stopped.
[0091] Condition 1: The branching calculation is performed in the order of priority already determined for the direct ancestor branches of the point being calculated, or in an order that is inconsistent with the detouring and detouring relationships.Condition 2: The total required time is expected to exceed a certain threshold value compared to the total required time for patterns with no interference parts already discovered in the entire tree structure for branching the change pattern.Condition 3: The number of branches (tree depth) exceeds a threshold value calculated from past statistics.
[0092] The "interference part" in each block in Figure 17 indicates which instruction in the path plan of each robot 20 is in an interfering relationship with other robots 20. The "edge constraint" indicates whether exclusive control is required to avoid interference at overlapping edges, whether simultaneous travel is permitted, or whether exclusive use of the elevator is required.
[0093] In "NG1" in Figure 17, an interference part is detected again between the fourth instruction of robot 20A and the third instruction of robot 20B, which should have already avoided interference, and if further branching is performed, the branching will be performed in a priority order that is inconsistent with the priority order already determined (the same priority order as the previous branch or the opposite priority order), which could result in infinite branching, so this shows an example in which further branching is stopped.
[0094] In addition, "NG2" shows an example in which further branching is stopped because the total required time is expected to exceed a predetermined number of seconds or percentage of the total required time for all robots 20 in the change pattern without interference that has been discovered in the branching processing up to now, and there is no possibility of discovering a better change pattern.
[0095] In addition, "NG3" shows an example in which further branching is stopped when a depth obtained by adding a predetermined threshold to the average depth based on the past depth record of pattern branching within the same movement range is reached and a change pattern that does not have any interfering parts has already been found.
[0096] Furthermore, one change pattern is selected from multiple change patterns without interference obtained by branching processing. This selection criterion can be flexibly changed using various indexes or rules. For example, one change pattern is selected using one or a combination of the following selection criteria 1 to 3:
[0097] Selection criterion 1: The total time required for all robots 20 is the shortest. Selection criterion 2: A movement task based on a delivery order from an older user reaches the destination before other movement tasks. Selection criterion 3: A movement task with an urgent flag assigned reaches the destination in the shortest time.
[0098] The update unit 104 updates the path plan at predetermined intervals while the plurality of robots 20 are moving according to the path plan.
[0099] Specifically, at each predetermined timing, the path plan that reflects the current positions of the multiple robots 20 detects interfering portions, and changes the path plan so as to avoid the interfering relationship at the interfering portions, in the same way as the change unit 103. At this time, branching processing and pruning processing may be performed, in the same way as the change unit 103.
[0100] <Configuration of Robot According to This Embodiment> FIG. 12 is a block diagram showing the hardware configuration of the robot 20 according to this embodiment.
[0101] 12 , the control unit 23 of the robot 20 has a CPU 11, a ROM 12, a RAM 13, a storage 14, an input unit 15, a display unit 16, and a communication interface (I / F) 17. Each component is connected to each other so as to be able to communicate with each other via a bus 19. The robot 20 has a movement mechanism 21 and a sensor 22.
[0102] A program for autonomous movement is stored in the ROM 12 or the storage 14. This program may be a single program, or may be a group of programs configured from multiple programs or modules.
[0103] The moving mechanism 21 includes, for example, a motor as a driving unit, tires, and the like.
[0104] The sensor 22 includes, for example, a camera, a laser radar, a GPS sensor, and the like for detecting the surrounding conditions of the robot 20 .
[0105] Next, a description will be given of the functional configuration of the control unit 23 of the robot 20. Fig. 18 is a block diagram showing an example of the functional configuration of the control unit 23 of the robot 20.
[0106] As shown in FIG. 18, the control unit 23 of the robot 20 functionally comprises an autonomous moving unit 201, an interference avoidance unit 202, and a position transmission unit 203.
[0107] The autonomous moving unit 201 controls the moving mechanism 21 in accordance with the movement instructions in the route plan, and causes it to move to a point corresponding to a node in the route data or to wait at a specified point.
[0108] When interference between robots 20 occurs due to a difference between the route plan and actual driving performance caused by external disturbances, etc., the interference avoidance unit 202 slows down, stops, or avoids the interference using the sensors 22 and control functions of each model of robot 20.
[0109] The position transmitting unit 203 sequentially transmits the current position of the robot 20 to the path planning device 10 .
[0110] <Operation of the Route Planning System According to the Present Embodiment> Next, the operation of the route planning system 100 will be described.
[0111] 19 is a flowchart showing the flow of route planning processing by the route planning device 10. The route planning processing is performed by the CPU 11 reading out a route planning program from the ROM 12 or the storage 14, expanding it into the RAM 13, and executing it. It is assumed that a plurality of movement tasks have been input to the route planning device 10. The route planning processing is an example of a route planning method.
[0112] First, in step S100 , the CPU 11 functions as the allocation unit 101 to allocate combinations of movement tasks to the plurality of robots 20 .
[0113] In step S102, the CPU 11 functions as the planner 102 to perform path planning for each of the plurality of robots 20 based on the combination of movement tasks assigned to each of the robots 20.
[0114] In step S104, the CPU 11 functions as the change unit 103 to detect an interfering portion on the leading side from the path plan for each of the plurality of robots 20, and change the path plan so as to avoid the interference relationship at the interfering portion.
[0115] In step S106, the CPU 11, functioning as the change unit 103, determines whether or not there is an interfering portion in the path plan for each of the plurality of robots 20 changed in step S104. If there is an interfering portion in the path plan for each of the plurality of robots 20, the process returns to step S104. On the other hand, if there is no interfering portion in the path plan for each of the plurality of robots 20, the process proceeds to step S108.
[0116] The above steps S104 and S106 are repeated for each of the change patterns branched in the branching process.
[0117] In step S108, the CPU 11, functioning as the change unit 103, transmits movement commands according to the finally obtained path plan to each robot 20, and ends the path planning process. At this time, one change pattern is selected from the multiple change patterns without interference obtained by the branching process, and this change pattern is set as the final path plan.
[0118] 20 is a flowchart showing the flow of the update process by the path planning device 10. After the path planning process is executed, the update process is repeatedly performed at predetermined timings (for example, at regular intervals). It is assumed that the current positions of each robot 20 are input to the path planning device 10.
[0119] In step S110 , the CPU 11 functions as the update unit 104 to acquire the current position of each of the plurality of robots 20 .
[0120] In step S112, the CPU 11, functioning as the update unit 104, acquires a path plan after the current position for each of the plurality of robots 20. Specifically, for each of the plurality of robots 20, the path plan is shifted on the time axis according to the current position, and then a path plan for a certain number of instructions after the instruction corresponding to the current position is acquired.
[0121] In step S114, the CPU 11, as the update unit 104, detects an interfering portion at the front side from the path plan after the current position for each of the multiple robots 20, and changes the path plan so as to avoid interference at the interfering portion.
[0122] In step S116, the CPU 11, functioning as the update unit 104, determines whether or not there is an interfering portion in the path plan for each of the plurality of robots 20 changed in step S114. If there is an interfering portion in the path plan for each of the plurality of robots 20, the process returns to step S114. On the other hand, if there is no interfering portion in the path plan for each of the plurality of robots 20, the process proceeds to step S118.
[0123] The above steps S114 and S116 are repeated for each of the change patterns branched by the branching process.
[0124] In step S118, the CPU 11 functions as the update unit 104 and transmits movement commands according to the finally obtained path plan to each robot 20, thereby completing the update process. At this time, one change pattern is selected from the multiple change patterns without interference obtained by the branching process, and this change pattern is set as the final path plan.
[0125] As described above, the path planning device according to this embodiment plans paths for each of a plurality of robots based on a combination of movement tasks assigned in advance, detects interfering portions from the path plans for each of the plurality of robots, and modifies the path plans to avoid the interfering portions. This allows the path planning to be performed at the path planning stage in a way that avoids interference between the robots.
[0126] Conventionally, when multiple autonomous mobile robots are used, if the paths of the multiple robots overlap or approach each other, control is performed to avoid interference, such as waiting or detouring. Therefore, when multiple autonomous mobile robots are used, there is a discrepancy between the estimated required time when the route plan is generated and the actual required time, making it difficult to accurately estimate the required time for the robot mobility service.
[0127] The technology disclosed herein is characterized by the fact that, in path planning for multiple robots, control, such as waiting or detouring, is performed before the robots begin moving. To achieve this control before the robots begin moving, interference areas are detected, the path plan is changed, and the path plan is updated. Furthermore, an optimal path plan is created by performing a branching process that branches the change pattern for each robot that takes priority in the interference areas, and then performing a pruning process. This makes it possible to create a path plan that suppresses interference. Since the travel costs estimated using the technology disclosed herein are kept close to the actual travel costs, it is possible to prevent failure to achieve the planned travel time and inefficient robot operation due to excessive travel cost estimation.
[0128] Furthermore, by using route data for each robot model, control that takes multiple models into consideration becomes possible. In a route plan based on route data for multiple robots of different models, it is possible to detect interference and perform control such as route changes or waiting before the robots start moving.
[0129] In addition, it is possible to take into account interference caused by all multiple robots on the route plan and reflect route changes, waiting, etc. at the planning stage.
[0130] <Modifications> The present invention is not limited to the above-described embodiment, and various modifications and applications are possible without departing from the gist of the present invention.
[0131] For example, the description has been given of an example in which the planner performs path planning for each of a plurality of robots based on one combination pattern of travel tasks assigned to the robots, but this is not limiting. The assigner may prepare a plurality of combination patterns of travel tasks to be assigned, and the planner may perform path planning for each of the combination patterns of travel tasks. In this case, the planner may select a suitable combination pattern of travel tasks based on the results of the path planning for each of the combination patterns of travel tasks, and use the results of the path planning for the selected combination pattern of travel tasks.
[0132] Furthermore, although the multiple robots are different models, the present invention is not limited to this. The multiple robots may all be of the same model.
[0133] In each of the above embodiments, the various processes executed by the CPU after reading the software (program) may be executed by various processors other than the CPU. Examples of processors in this case include dedicated electrical circuits, such as programmable logic devices (PLDs) whose circuit configuration can be changed after manufacture, such as field-programmable gate arrays (FPGAs), and application-specific integrated circuits (ASICs), which are processors having a circuit configuration designed specifically to execute specific processes. The path planning process and update process may be executed by one of these various processors, or by a combination of two or more processors of the same or different types (e.g., multiple FPGAs, or a combination of a CPU and an FPGA). The hardware structure of these various processors is, more specifically, an electrical circuit that combines circuit elements such as semiconductor elements.
[0134] In addition, in each of the above embodiments, the path planning program is pre-stored (installed) in the storage 14, but this is not limiting. The program may be provided in a form stored on a non-transitory storage medium such as a CD-ROM (Compact Disk Read Only Memory), a DVD-ROM (Digital Versatile Disk Read Only Memory), or a USB (Universal Serial Bus) memory. The program may also be downloaded from an external device via a network.
[0135] The following additional notes are provided regarding the above-described embodiments.
[0136] (Supplementary Item 1) A path planning device that performs path planning for a plurality of autonomously movable robots that are assigned combinations of movement tasks with specified destinations within a movement range that includes the inside of at least one building, comprising: a memory; and at least one processor connected to the memory, wherein the processor performs path planning for each of the plurality of robots based on the combination of movement tasks that have been assigned in advance, detects interfering parts that are in an interfering relationship with each other from the path plans for each of the plurality of robots based on spatial proximity and temporal proximity between the path plans, and modifies the path plan to avoid the interference in the interfering parts.
[0137] (Supplementary Item 2) A non-transitory storage medium storing a program executable by a computer to execute a path planning process for planning paths for a plurality of autonomously movable robots assigned a combination of movement tasks with specified movement destinations within a movement range that includes at least one building, wherein the path planning process performs path planning for each of the plurality of robots based on a combination of movement tasks assigned in advance, detects interfering portions of the path plans for each of the plurality of robots based on spatial and temporal proximity between the path plans, and modifies the path plans to avoid the interference in the interfering portions.
[0138] REFERENCE SIGNS LIST 10 Path planning device 11 CPU 14 Storage 15 Input unit 16 Display unit 20 Robot 21 Mobile mechanism 22 Sensor 23 Control unit 100 Path planning system 101 Allocation unit 102 Planning unit 103 Change unit 104 Update unit 201 Autonomous moving unit 202 Interference avoidance unit 203 Position transmission unit
Claims
1. A path planning device for performing path planning of a plurality of autonomous mobile robots to which a combination of movement tasks with specified destinations within a movement range including at least one building is assigned, For each of the plurality of robots, a planning unit that performs path planning based on a pre-assigned combination of movement tasks, A changing unit that detects an interference portion in an interference relationship from the spatial proximity and temporal proximity between the path plans from the path plans for each of the plurality of robots, and changes the path plan so as to avoid the interference relationship in the interference portion, A path planning device including.
2. The path planning device according to claim 1, wherein the path plan includes, in chronological order, a movement instruction by designating the edge and a standby instruction on the node in graph-shaped path data representing stop points or waypoints in the movement range as nodes and passages between the points as edges.
3. The path planning device according to claim 1, wherein the plurality of robots include robots of a plurality of models having different movement speeds or ranges that interfere with other robots.
4. The stop point or waypoint is a multi-story point, The node further includes an elevator boarding and alighting point, The edge further includes a movement route using the elevator, The path planning device according to claim 2, wherein the changing unit changes the path plan so as to exclusively use the elevator.
5. The path planning device according to claim 1, further including an updating unit that updates the path plan at predetermined timings when the plurality of robots are moving according to the path plan.
6. When changing the path plan so as to avoid the interference relationship in the interference portion, the changing unit performs a branching process of branching the change pattern of the path plan for each priority robot, and stops further branching for the branched change pattern when a predetermined condition is satisfied. The path planning device according to claim 1, which performs a pruning process.
7. A path planning method for performing path planning of a plurality of robots capable of autonomous movement, to which a combination of movement tasks with designated destinations in a movement range including at least one building is assigned, the method comprising: for each of the plurality of robots, performing path planning based on a combination of pre-assigned movement tasks; detecting, from the path plans for each of the plurality of robots, an interference portion that is in an interference relationship with each other from the spatial proximity and temporal proximity between the path plans; and changing the path plan so as to avoid the interference relationship in the interference portion, the computer executing the process.
8. A path planning program for performing path planning of a plurality of robots capable of autonomous movement, to which a combination of movement tasks with designated destinations in a movement range including at least one building is assigned, the program causing the computer to: for each of the plurality of robots, perform path planning based on a combination of pre-assigned movement tasks; detect, from the path plans for each of the plurality of robots, an interference portion that is in an interference relationship with each other from the spatial proximity and temporal proximity between the path plans; and change the path plan so as to avoid the interference relationship in the interference portion.
Citation Information
Patent Citations
Robot control device
JP2006326703A
Mobile robot
JP2007280251A
Route search system, method, program, and mobile body
JP2011128758A
Map processing method, program and robot system
JP2012248032A
Information processing apparatus, information processing system, moving path determination method, and program
JP2018129000A
Cited By
Multi-robot cloud scheduling cooperation method and system
CN120742968A