Information processing system, information processing method and program
The information processing system addresses the inefficiency of robot operation planning by calculating intra and inter sequences hierarchically, reducing computation time and optimizing task allocation and path planning for multiple entities through hierarchical decomposition search.
Patent Information
- Application Number
- PCT/JP2025/000733
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-17
- Filing Date
- 2025-01-10
- Publication Date
- 2025-07-24
AI Technical Summary
Existing robot operation planning technologies require significant computation time due to the large number of variables involved, and existing methods like PTL 1 do not effectively reduce these variables, leading to inefficient computation times.
An information processing system that calculates a first intra sequence and a first inter sequence hierarchically for tasks and jobs, allowing for the setting of a global sequence to reduce computation time, utilizing hierarchical decomposition search and parallel processing to optimize task allocation and path planning.
The system significantly reduces computation time by abstracting tasks into jobs and using hierarchical decomposition search, enabling efficient task allocation and collision-free path planning for multiple entities, particularly in scenarios involving fleets of vehicles or robots.
Smart Images

Figure JP2025000733_24072025_PF_FP_ABST
Abstract
Description
INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING METHOD AND PROGRAM
[0001] The present disclosure relates to an information processing system, an information processing method and a program.
[0002] In recent years, the technology of automatic control of robots has advanced, and various methods have been developed to make robots perform operations.
[0003] Patent Literature 1 (PTL 1) discloses a robot cooperative transfer planning technique. In the technique, a Markov state space is hierarchically configured, wherein an article trajectory calculation process is the first hierarchy, a switching position determination process is the second hierarchy, and a movement route planning process is the third hierarchy. A search of an action plan is performed from a layer with a low change frequency (the first layer), and a search calculation result in the layer with the low change frequency is used to limit a search range in a layer with a high change frequency. In the limited state space, a search is performed in a lower hierarchy (second hierarchy, third hierarchy) having a high change frequency. The technique is aimed to narrow a definition area of each variable to reduce the calculation time required for calculating the operation plan.
[0004] PTL 1: Japanese Unexamined Patent Application Publication No. 2014-079819
[0005] The more tasks (i.e. operations) are performed by robots or the like, the more computations it takes to derive an efficient solution for processing the tasks. Since a large amount of computation requires a large amount of time, it is preferable to reduce it for application. PTL 1 is aimed to reduce the calculation time required for calculating the operation plan, however, since PTL 1 does not reduce the variables themselves in the calculation, its effect may be limited.
[0006] An object of the present disclosure is to provide an information processing system, an information processing method and a program capable of reducing computation time. It should be noted that this object is only one of a plurality of objects that a plurality of example embodiments disclosed herein seek to achieve. Other objects or issues and new features are apparent from the description or accompanying drawings herein.
[0007] According to one aspect of the disclosure, there is provided an information processing system that includes: an obtaining means for obtaining input information indicating tasks and jobs, wherein each of the tasks are included in one of the jobs; a calculation means for calculating a first intra sequence of each job and a first inter sequence between the jobs, wherein the first intra sequence is a sequence in which an entity processes the tasks within each job and the first inter sequence is a sequence in which the entity processes the jobs; and a setting means for using the first intra sequences and the first inter sequence to set a first global sequence in which the entity performs each of the tasks of each job.
[0008] According to one aspect of the disclosure, there is provided an information processing method that includes: obtaining input information indicating tasks and jobs, wherein each of the tasks are included in one of the jobs; calculating a first intra sequence of each job and a first inter sequence between the jobs, wherein the first intra sequence is a sequence in which an entity processes the tasks within each job and the first inter sequence is a sequence in which the entity processes the jobs; and using the first intra sequences and the first inter sequence to set a first global sequence in which the entity performs each of the tasks of each job.
[0009] According to one aspect of the disclosure, there is a program for causing a computer to execute: obtaining input information indicating tasks and jobs, wherein each of the tasks are included in one of the jobs; calculating a first intra sequence of each job and a first inter sequence between the jobs, wherein the first intra sequence is a sequence in which an entity processes the tasks within each job and the first inter sequence is a sequence in which the entity processes the jobs; and using the first intra sequences and the first inter sequence to set a first global sequence in which the entity performs each of the tasks of each job.
[0010] According to the present disclosure, it is possible to provide an information processing system, an information processing method and a program capable of reducing computation time.
[0011] Fig. 1 is an example of a block diagram of an information processing system according to the present disclosure.Fig. 2 is an example of a flowchart illustrating a method of the information processing system according to the present disclosure.Fig. 3 shows an example of a concept of hierarchical planning according to the present disclosure.Fig. 4 is an example of a block diagram of a path planning system according to the present disclosure.Fig. 5 shows one example of tasks and jobs on a map indicated in input data.Fig. 6 shows one example of a convex hull included in the same job's tasks.Fig. 7 shows one example of selecting entrances from tasks.Fig. 8A shows one example of the generated path matrix.Fig. 8B shows one example of a generated global cost matrix.Fig. 9A shows an example in which some paths are taken as calculation objects as the result of calculation of a high level planner unit and a low level planner unit.Fig. 9B shows an example in which all the paths connecting tasks shown in Fig. 5 are taken as calculation objects.Fig. 10 shows an example of intra sequences of jobs 1-3 and an inter sequence between the jobs 1-3 in the example shown in Fig. 5.Fig. 11 shows an example of the first high level criterion 1 used by the high level planner unit.Fig. 12 shows an example of the second high level criterion 2 used by the high level planner unit.Fig. 13 shows an example of the high level planner unit identifying an overlap between straight lines.Fig. 14 shows an example of the high level planner unit identifying a location of an overlapping point.Fig. 15A is an example of a flowchart illustrating a method of the path planning system according to the present disclosure.Fig. 15B is an example of a flowchart illustrating a method of the path planning system according to the present disclosure.Fig. 16 shows another example of a concept of hierarchical planning according to the present disclosure.Fig. 17 is a block diagram of a computer apparatus according to example embodiments.
[0012] Example embodiments according to the present disclosure will be described hereinafter with reference to the drawings. Note that the following description and the drawings are omitted and simplified as appropriate for clarifying the explanation. Further, the same elements are denoted by the same reference numerals (or symbols) throughout the drawings, and redundant descriptions thereof are omitted as required. Also, in this disclosure, unless otherwise specified, "at least one of A or B (A / B)" may mean any one of A or B, or both A and B. Similarly, when "at least one" is used for three or more elements, it can mean any one of these elements, or any plurality of elements (including all elements). Further, it should be noted that in the description of this disclosure, elements described using the singular forms such as "a", "an", "the" and "one" may be multiple elements unless explicitly stated.
[0013] Each of the drawings or figures is merely an example to illustrate one or more example embodiments. Each figure may not be associated with only one particular example embodiment, but may be associated with one or more other example embodiments. As those of ordinary skill in the art will understand, various features or steps described with reference to any one of the figures can be combined with features or steps illustrated in one or more other figures, for example, to produce example embodiments that are not explicitly illustrated or described. Not all of the features or steps illustrated in any one of the figures to describe an example embodiment are necessarily essential, and some features or steps may be omitted. The order of the steps described in any of the figures may be changed as appropriate.
[0014] <Definition> In this disclosure, "task" is anything that requires some action. For example, the task is an operation to be executed in real space, paperwork, or is processed inside a computer. "operation" in real space means any kind of work performed on a target. For example, operation includes, but not limited to, at least one of loading, grasping, shaking, marking, piercing, or inspecting. "job" includes one or more of the tasks and can be said as a group of one or more of the tasks. "works" includes one or more of the jobs and can be said as a group of one or more of the jobs.
[0015] In this disclosure, "sequence" means the order in which the tasks are performed and "sequence" and "order" may be used interchangeably. "global sequence" means a processing order of all tasks when the entity performs all tasks that should be performed by the entity. "entity" is the entity that performs the task. The entity may be a machine (for example a robot), human or the like.
[0016] In this disclosure, "distance space" is any space in which a distance function can be defined, and is a concept that includes not only real space but also virtual space in which real space is reproduced in a computer and abstract space (used for computation, for example). The example of the distance space in real space is a Euclidean space. "distance" can express a distance between the tasks. The distance may be an actual physical distance at which the operation as the task is performed, or it may be a distance in abstract distance space used for calculation.
[0017] (First Example Embodiment) <Configuration Description> Referring to Fig. 1, an information processing system 10 includes an obtaining unit 12, a calculation unit 14 and a setting unit 16. The information processing system 10 may consist of one or more computers and / or machines. As an example, at least one of components in the information processing system 10 can be installed in a computer as a combination of one or a plurality of memories and one or a plurality of processors.
[0018] The obtaining unit 12 obtains input information indicating tasks and jobs. Each of the tasks are included in one of the jobs. The obtaining unit 12 can obtain the input information from either the outside of the information processing system 10 or the inside of the information processing system 10.
[0019] The calculation unit 14 calculates a first intra sequence (i.e.., order) of each job and a first inter sequence between the jobs. The first intra sequence is a sequence in which an entity processes the tasks within each job and the first inter sequence is a sequence in which the entity processes the jobs. That is, the calculation unit 14 does not compute the sequence of executing tasks individually, but rather computes the sequence within and between the jobs with the tasks abstracted into the jobs in a hierarchical manner.
[0020] In one example, the tasks may exist in a metric space in which a distance between the tasks is defined. In this case, the calculation unit 14 uses the distance to calculate the first intra sequence of each job and / or calculate the first inter sequence between the jobs.
[0021] The setting unit 16 uses the first intra sequences and the first inter sequence to set a first global sequence in which the entity performs each of the tasks of each job. The information of the first global sequence can be used to instruct the entity in the order in which to execute the task.
[0022] In the example above, there are two hierarchies for the task: the task and the job, where each of the tasks are included in one of the jobs. However, there may be more than three hierarchies for the task. For example, there are three hierarchies for the task: the task, the job and a work, where each of the jobs are included in one of the works.
[0023] In this example, the obtaining unit 12 obtains the input information indicating the tasks, the jobs and the works. The calculation unit 14 further calculates a second intra sequence of each work and a first inter sequence between the works. The second intra sequence is a sequence in which the entity processes the jobs within each work and the second inter sequence is a sequence in which the entity processes the works. The setting unit 16 further uses the second intra sequences and the second inter sequence to set a second global sequence in which the entity performs each of the jobs of each work. The information of the first global sequence and the second global sequence constitutes the overall order in which all tasks are executed and can be used to instruct the entity in the order in which to execute the task.
[0024] Further, in the example above, calculating the sequence of the tasks for one entity is shown. However, the above processing may be applied to calculating the order of tasks for multiple entities. Each unit in the information processing system 10 can perform the above processing for the multiple entities. In addition, when considering the multiple entities, there may be a conflict between entities when each entity performs the task. Processing to resolve this conflict will be described later in the second example embodiment.
[0025] <Flow Description> Next, referring to the flowchart in Fig. 2, an example of a method of the information processing system 10 will be described. The detail of each processing in Fig. 2 is already explained above and its explanation is omitted as appropriate.
[0026] First, the obtaining unit 12 obtains input information indicating tasks and jobs (step S12). Next, the calculation unit 14 calculates a first intra sequence of each job and a first inter sequence between the jobs (step S14). Then, the setting unit 16 uses the first intra sequences and the first inter sequence to set a first global sequence (step S16).
[0027] <Description of Effects> As shown above, the information processing system 10 does not compute the sequence of executing tasks individually, but rather computes the sequence within and between the jobs with the tasks abstracted into the jobs in a hierarchical manner. In other words, the information processing system 10 can reduce variables used for the calculation. Such a hierarchical calculation can reduce the amount of the calculation compared to simply calculating the global sequence with respect to all the tasks. Therefore, the information processing system 10 is capable of reducing computation time.
[0028] In addition, the information processing system 10 can use parallelization to compute the sequences within the jobs. One "parallel process", i.e. thread, can be created for each job and runs in parallel. Therefore, the information processing system 10 can reduce computation time.
[0029] Further, the calculation unit 14 may use the distance to calculate the first intra sequence of each job and / or calculate the first inter sequence between the jobs. This process makes the calculation easier and can reduce computation time.
[0030] (Second Example Embodiment) A second example embodiment of this disclosure will be described below referring to the accompanied drawings. This second example embodiment explains one of the specific examples of the first example embodiment, however, specific examples of the first example embodiment are not limited to this example embodiment.
[0031] <Concepts > One of the objectives of the second example embodiment is to plan paths for a fleet of vehicles (an example of robots) to execute multiple tasks in shared space such that: - the cost of the task allocation plan is minimized, and - there are no collisions among the vehicles. Here, for example, the cost can be sum of path length, makespan (length of time that elapses from start to finish throughout all processes) or the like.
[0032] The following description will refer to a vehicle that moves automatically for the sake of brevity. Especially, an autopilot forklift is considered here. However, one of ordinary skill would understand that the current description is applicable to any type of machine (for example, a drone). The tasks here are operations to be executed by the vehicles.
[0033] In this disclosure, the applicant proposes a new problem: joint task allocation and path planning with "cluster constraints". As shown below, "cluster constraints" means the constraints that arise when a specific lower matter becomes an abstract higher matter. For example, "cluster constraints" includes a computational limitation caused by grouping (clustering) one or more tasks together as a job performed by the entity. In order to reduce computation time, as a new resolution approach, "hierarchical decomposition search" is introduced.
[0034] Fig. 3 shows an example of a concept of hierarchical planning with three levels of decomposition. A path planning system can process the hierarchical planning. As shown above, all tasks are classified as one of the jobs (cluster of tasks). In this example, instead of considering all possible paths connecting to all task locations, the following hierarchical structure of the tasks is considered; - calculating the proper order between the jobs (job order optimization); - calculating the proper order between the tasks in the same job (task order optimization); and - planning paths for one entity based on the result of the job order optimization and the result of the task order optimization. The job is an idea in which the tasks are abstracted, and as the path connects all the task performed by the entity, the path information is more detailed information than the job and task information. A path is a sequence of points in space and time from a given location to another location. In the cluster hierarchy shown in Fig. 3, "Path planning" is in the 1st level (the lowest level), "Task order optimization" is in the 2nd level, and "Job order optimization" is in the 3rd level (the highest level).
[0035] If the path information computes large instances with many tasks, the computation requires large search space and high computation runtimes. However, If the path information applies the hierarchical decomposition, the search space required is reduced and therefore the computation runtime will be reduced. The path planning system can decompose a global problem, a problem of finding paths connecting to all tasks, into local subproblems (simpler problems) about the jobs, which can be solved in parallel.
[0036] Using the information of the jobs, the tasks and the paths, the path planning system can perform task allocation. Further, based on the calculated paths of each entity, the path planning system can determine that there are any conflicts in / between the path(s) of different entities. "conflict in the path" means that the path conflicts with some external constraint other than path. "constraint" may be, for example, a physically present obstacle or a constraint in an abstract space. "conflict between the paths" means that two entities exist at the same location at the same time, or the possibility of two entities existing at the same location at the same time occurs.
[0037] If there is a conflict, the path planning system can specify time dependent costs to address detected conflicts to find a conflict-free solution. "time dependent costs" means that the risk of the conflict depends on the time of departure at a given task location. Eventually, the path planning system can find all the paths of all the entities such that the paths are time-effective and conflict-free with reduced computation runtime.
[0038] The example shown below especially will focus on the case where multiple (e.g., many) vehicles perform their own payload. In this case, each vehicle is an Automatic Guided Vehicle (AGV), however, it is not limited to this. The vehicle has to pick up items on shelves for customers and has fixed payload capacity. In this example, one task means one operation of the vehicle to pick up an item for a given customer and one job means a set of tasks, namely picking up a set of items for a given customer. Thus, "job" is a set of the tasks made to one customer. Paths are planned to connect all the tasks in accordance with the order of a task allocation plan decided by the path planning system.
[0039] Further, the vehicles travel on a two-dimensional map and there is a start depot and a goal depot on the map. The two-dimensional map may be a grid map; however, it is not limited to this. The number of the tasks, demand and service time are pre-set. Further, the number of jobs is pre-set. In this example, the job means a group of the tasks in the vicinity of each other and is visited by one vehicle.
[0040] One objective of the example is to compute an optimal task allocation plan with conflict-free paths for all vehicles while considering given levels (in this example, 3-levels) of clustering. After computing the optimal task allocation plan, it is possible to control the vehicles to move on the map in accordance with the plan.
[0041] <Configuration Description> Fig. 4 is an example of a block diagram of a path planning system according to the present disclosure. Here, the path planning system generates paths of vehicles. Referring to Fig. 4, a path planning system 100 includes a planning unit 110, a conflict detection unit 121, a data modifier unit 122 and a memory 130. Components in the path planning system 100 can be installed in a computer as a combination of one or a plurality of memories and one or a plurality of processors. Further, the path planning system 100 may consist of one or more and / or machines.
[0042] The path planning unit 110 receives input data M1 and plans all the paths for all the vehicles. The input data M1 includes two-dimensional map data with information of static obstacles, a start depot and a goal depot. The information of static obstacles includes sizes (for example, widths and heights) of the static obstacles. The static obstacles are immovable obstacles and, for example, shelves, counters, walls, cases or the like.
[0043] The input data M1 also includes initial parameters. The initial parameters are preset; however, they can be changed by input from a user. The initial parameters are, for example, parameters of vehicles, parameters of tasks, and parameters of jobs. The parameters of vehicles may include the number of the vehicles and maximum load values of the vehicles. The maximum load value means the number of items the vehicle can pick-up and carry. The parameters of tasks may include the number of the tasks, location of the tasks, demand and service time for completing the tasks assigned. The parameters of jobs may define, for each job, how the tasks are grouped into the job.
[0044] In addition, either the path planning system 100 or another system can generate all or a part of the content of the input data M1. For example, the path planning system 100 can set one job together a plurality of the tasks within a predetermined distance and set all the jobs in this way.
[0045] The information above of the input data M1 is defined in the Euclidean space, one example of metric space. Therefore, the path planning unit 110 can calculate physical quantities necessary for planning the paths in accordance with the setting of the Euclidean space. The physical quantities are, for example, distance, speed and time.
[0046] Fig. 5 shows one example of tasks and jobs on the map indicated in the input data M1. As shown in Fig. 5, specifies the locations of a start depot, a goal depot and tasks are specified in the input data M1. "S" and "G" in Fig. 5 mean the start depot and the goal depot, respectively. The locations of the tasks are substantially the locations of items to be picked-up by the vehicles. There are tasks 1 to 13 to be performed in Fig. 5.
[0047] Further, the input data M1 defines jobs 1 to 3 and the tasks 1 to 4 are clustered as the job 1, the tasks 5 to 9 are clustered as the job 2, and the tasks 10 to 13 are clustered as the job 3. In the job 1, the tasks 1 to 4 are within a given distance of each other. It is the same as the tasks 5 to 9 in the job 2 and the tasks 10 to 13 in the job 3. Therefore, it is preferable for the vehicle to perform the tasks in the same job in one time.
[0048] The path planning unit 110 uses the input data M1 and eventually outputs a mission plan including all the path for each vehicle (i.e. task sequence for each vehicle) in cooperation with the conflict detection unit 121 and the data modifier unit 122. The path planning unit 110 includes a high level planner unit 111, a low level planner unit 112, a mission planner unit 113 and a path planner unit 114. The operation of each unit is described below.
[0049] The high level planner unit 111 analyzes the tasks and the jobs (abstracted tasks) based on certain criteria. The analysis to be applied can be called as high level abstraction (or filtering) about the tasks and the jobs. In this step, the high level abstraction is performed about the tasks and the jobs. The high level planner unit 111 obtains the criteria stored in the memory 130.
[0050] Specifically, for each job, the high level planner unit 111 selects two tasks as "entrance" from the tasks in the same job. In this document, "entrance" is a start or end point in the area of the job until the vehicle enters and exits the area.
[0051] As an example, the high level planner unit 111 can define a convex hull for each job. The tasks included in the same job constitute one convex hull. Fig. 6 shows one example of a convex hull included in the same job's tasks. The high level planner unit 111 defines a boundary containing the tasks in the same job inside, while the boundary connects the tasks connect the points at the ends of the job. In Fig. 6, one job includes 10 tasks and the high level planner unit 111 selects two entrances from the 6 tasks at the boundary.
[0052] The high level planner unit 111 selects two tasks as "entrance" from the tasks at the boundary. In this example, the high level planner unit 111 calculates distances between the two tasks at the boundary and selects the two tasks among them, while the distance of the two tasks is the longest in the calculated distances. The points of the two tasks may be in opposite positions. Fig. 7 shows one example of selecting entrances from the tasks. In Fig. 7, by using the above method, the tasks 1 and 4 in the job 1 are respectively selected as entrances 1 and 2 by the high level planner unit 111. One of the entrances 1 and 2 is a start point and the other of the entrances 1 and 2 is an end point. The job 1 is already shown in Fig. 5. Regarding the jobs 2 and 3 in Fig. 5, entrances can be selected in a similar way to Fig. 7.
[0053] The high level planner unit 111 may select all entrances in this way. However, the high level planner unit 111 may select entrances using other methods. For example, the high level planner unit 111 does not have to set a boundary of the job to select entrances from the tasks. By performing this abstraction process, the high level planner unit 111 can reduce the search space for task allocation.
[0054] The low level planner unit 112 receives the input data M1 and the information of the entrances in all the jobs from the high level planner unit 111 and generates a cost matrix for costs of each job and a path matrix related to costs between the jobs. The generated cost matrix is stored in the cost matrix database 131 and the generated path matrix is stored in the path matrix database 132. The costs in the cost matrix generated by the low level planner unit 112 are not time-dependent. In addition, the path matrix stores all computed paths between the given pairs of task locations. The path matrix is similar to the cost matrix which contains all costs computed between the given pairs of task locations.
[0055] Fig. 8A shows one example of the generated path matrix. In Fig. 8A, PJxey_S / G(x and y are any natural numbers between 1 and 3) means the path from the Jobx ey to the start or goal depot, PS / G _Jxeymeans the path from the start or goal depot to the Jobx ey. Furthermore, PJxey_Jzeq(z and q are any natural numbers between 1 and 3) means the path from the Jobx ey to the Jobz eq.
[0056] The low level planner unit 112 performs specific calculation about the tasks and the jobs to generate the cost matrix and the path matrix, while the high level planner unit 111 performs the abstraction process above. In other words, the low level planner unit 112 applies task allocation on local sub-problems, i.e., each job.
[0057] The costs in the job can be called as "intra costs" and the costs between the jobs can be called as "inter costs". In this document, "cost" means values calculated by the low level planner unit 112 based on the distance between the tasks in the same job and the distance between the jobs. The cost may be a monotonically increasing function with the distance as a variable.
[0058] In the example below, the cost means the distance itself. However, the cost is not limited to this and may be distance-dependent; i.e., the cost may be a given function with the distance as a parameter. For example, the cost may be the time obtained by dividing the distance by velocity, battery usage or fuel of the vehicle used for distance travel, or the like.
[0059] Specifically, for each job, the low level planner unit 112 calculates an intra cost from a start to an end via the tasks other than the start and the end in the same job. At this intra cost, the vehicle passes through every point of the tasks in the same job only once. The low level planner unit 112 sets, for each job, the start and the end from the entrances selected by the high level planner unit 111. Throughout this process, the low level planner unit 112 can calculate all possible intra costs (i.e. all possible routes within the job).
[0060] After calculating all possible intra costs for each job, the low level planner unit 112 can select the lowest intra cost from all possible intra costs for each job. In other words, the low level planner unit 112 can specify an intra sequence of each job. For example, the low level planner unit 112 can select the lowest intra cost by solving Traveling Salesman Problem (TSP) for each job. However, the low level planner unit 112 can take possible other methods, for example related to Job Shop Scheduling Problem, to select the lowest intra cost.
[0061] After selecting the lowest intra cost for each job, the low level planner unit 112 calculates inter costs between the jobs for possible combinations of two jobs. For example, the inter cost can be calculated by calculating a distance between entrances or center points in the two jobs.
[0062] Specifically, for the computation of inter-costs, the low level planner unit 112 can use a parallelization process; i.e. several processes (threads) can run in parallel to compute all inter-costs. In this example, one job means one thread process. Since the processes are performed for calculating inter-costs between jobs, it is preferable to avoid two parallel processes (threads) computing the same costs. Therefore, the low level planner unit 112 can define a rule to avoid this. In one example, the low level planner unit 112 shares the computation load in each thread for computing a part of inter-costs associated to each job.
[0063] With reference to the example shown in Fig. 5, the processing of the low level planner unit 112 will be described. In the case shown in Fig. 5, the low level planner unit 112 computes inter-costs in each thread. Specifically, regarding the job 1, the low level planner unit 112 computes the inter-costs between the start depot and the job 1, between the goal depot and the job 1 and between the job 1 and job 2. Regarding the job 2, the low level planner unit 112 computes the inter-costs between the start depot and the job 2, between the goal depot and the job 2 and between the job 2 and job 3. Regarding the job 3, the low level planner unit 112 computes the inter-costs between the start depot and the job 3, between the goal depot and the job 3 and between the job 3 and job 1. The low level planner unit 112 can perform the calculation the inter-costs in each job in parallel.
[0064] Then, the low level planner unit 112 generates a global cost matrix using the selected lowest intra cost for each job and inter costs calculated by the low level planner unit 112. Fig. 8B shows one example of the generated global cost matrix. In this example, the intra cost between the task i and the task j can be represented as; while the inter cost between the task i and the task j can be represented as; However, for readability, the indexes of the intra and inter costs above are omitted in Fig. 8B. Further, M in Fig. 8B is an arbitrary large numerical value added to inter-costs. M may be for example, 1000, 10000, or the like. M can be regarded as a penalty value to make sure that the mission planner unit 113 selects a sequence of jobs going from one entrance as start to the other entrance as goal of the same job before going to the next job. In other words, without M value, the mission planner unit 113 may not be able to correctly select a sequence of jobs going from one entrance as start to the other entrance as goal of the same job, before going to the next job.
[0065] The generated global cost matrix in Fig. 8B is associated with the generated path matrix in Fig. 8A. Specifically, the components of the matrix of Fig. 8A correspond to the same components of the matrix of Fig. 8B. For example, PJ1e1_ J1e2relates to the intra cost inside the job 1 and corresponds to Cintraat (Job1 e1, Job1 e2) in Fig. 8A.
[0066] Fig. 9A shows an example in which some paths are taken as calculation objects as the result of calculation of the high level planner unit 111 and the low level planner unit 112. The paths shown in Fig. 9A is based on the situation in Fig. 5. In Fig. 9A, the number of the inter costs to be calculated is 12+12=24, while the number of the intra costs to be calculated is 18.
[0067] Fig. 9B shows an example in which all the paths connecting the tasks shown in Fig. 5 are taken as calculation objects. In Fig. 9B, the number of the inter and intra costs to be calculated is 104. Therefore, compared to the situation in Fig. 9B, in which the all edges between the all task locations are computed, the path planning system 100 can reduce the amount of calculation and compute even with low memory performance.
[0068] The mission planner unit 113 receives the global cost matrix and the path matrix from the low level planner unit 112. The mission planner unit 113 uses the received information as well as the input data M1, the information of the entrances to calculate, for each vehicle, an intra sequence of each job and an inter sequence between the jobs, based on the premise that the vehicle passes through every area of all the jobs only once. The intra sequence is a sequence in which the vehicle processes the tasks within one job and the inter sequence is a sequence in which the vehicle processes the jobs. In other words, the mission planner unit 113 generates a high level solution for job allocation as a high level solution process.
[0069] The mission planner unit 113 can use any method, such as TSP, Capacitated Vehicle Routing Problem (CVRP) or Time Dependent Vehicle Routing Problem (TDVRP) solver, which is suitable to calculate the intra sequences and the inter sequence between the jobs using the global cost matrix.
[0070] Fig. 10 shows an example of the intra sequences of the jobs 1-3 and the inter sequence between the jobs 1-3 in the example shown in Fig. 5. The solution in Fig. 5 shows that the jobs are done in the order of the job 1, job 2 and job 3. Further, the intra sequence of the job1 indicates that the tasks are done in the order of the task 1, task 2, task 3 and task 4. The intra sequence of the job 2 indicates that the tasks are done in the order of the task 5, task 6, task 7, task 8 and task 9. The intra sequence of the job 3 indicates that the tasks are done in the order of the task 10, task 11, task 12 and task 13.
[0071] The mission planner unit 113 makes the intra sequence for each job and the inter sequence between the jobs for one vehicle to set a global sequence in which the vehicle performs each of the tasks of each job. The mission planner unit 113 sets the global sequence for each vehicle in this way.
[0072] After the mission planner unit 113 calculated the global sequence for each vehicle, the high level planner unit 111 abstracts trajectories (In this example, specific paths on the map) corresponding the global sequence of multiple vehicles to search a conflict-free solution for travel between vehicles. In addition, the high level planner unit 111 uses high level criteria for hierarchical abstraction to reduce the search space for multi-agent (In this example, multi-vehicle) path finding. As shown below, in this example, the high level planner unit 111 uses two high level criteria for searching a conflict-free solution. In this step, the high level abstraction is performed about the multi-vehicles. The high level planner unit 111 obtains the criterion stored in the memory 130.
[0073] The first high level criterion 1 enables the high level planner unit 111 to divide all the vehicles into sub-groups of vehicles that can be solved independently and in parallel for a conflict-free solution. In other words, the high level planner unit 111 makes "clusters of trajectories" for each sub-group, while the number of conflicts regarding the global sequences between the sub-groups is minimized. In some cases, the global sequences in each sub-group do not conflict between the sub-groups and the minimized number of conflicts is 0. This process may make it possible for the high level planner unit 111 to calculate the solution for each sub-group as "independent", as conflicts are limited to what occurs within the same sub-group and no conflict occurs between the sub-groups, and then simplify the resolution to be searched.
[0074] Fig. 11 shows an example of the first high level criterion 1 used by the high level planner unit 111. Specifically, Fig. 11 shows a state in which four vehicles V1 to V4 move from the start depot to the goal depot (shown as "G" in Fig. 11) along trajectories R1 to R4, respectively.
[0075] In the situation shown in Fig. 11, the high level planner unit 111 divides the four vehicles V1 to V4 into a sub-group A and a sub-group B in accordance with the first high level criterion 1. Although there are conflicts inside the sub-group A and the sub-group B, there are no conflicts between the sub-groups A and B. Therefore, the high level planner unit 111 can simplify the problem for multi-vehicles conflict-free solution to be solved.
[0076] Further, if the high level planner unit 111 finds that there is a conflict between the vehicle in the sub-group A and the vehicle in the sub-group B after dividing all the vehicles into the sub-groups, the high level planner unit 111 can merge the sub-groups A and B into a new group to eliminate the conflict between the sub-group A and the sub-group B. It makes the abstraction process precise and the high level planner unit 111 can simplify the calculation for the resolution. Alternatively, the high level planner unit 111 may divide the vehicles into a plurality of sub-groups by a method different from the method for generating the sub-group A and the sub-group B. The high level planner unit 111 adopts new methods until there is no more conflict between the sub-groups.
[0077] However, it should be noted that, in some examples, it may not be possible to divide the plurality of the vehicles in a similar way. In other words, in some examples, no matter how the plurality of the vehicles are divided, overlapping point may occur between the sub-groups. Considering these examples, the high level planner unit 111 can divide the plurality of the vehicles into the plurality of sub-groups so that the number of overlapping points of the trajectories between the sub-groups in the space is minimized. The number of overlapping sections may be 0, however, it is not limited to this. In other words, the high level planner unit 111 can minimize the number of conflicts to non-zero value between the sub-groups.
[0078] Next, the second high level criterion 2 enables the high level planner unit 111 to identify the specific information of an overlapping point in the same sub-groups, e.g., a location of an overlapping point in time and space. The process can be called as spatio-temporal abstraction.
[0079] Fig. 12 shows an example of the second high level criterion 2 used by the high level planner unit 111. Specifically, Fig. 12 shows part of trajectories of three vehicles V5 to V7 from the initial time t = 0 to the last time t = 25. The vehicle V5 travels from its initial point to a point L2 via a point L1 at t = 7, the vehicle V6 travels from its initial point to a point L4 via a point L3 at t = 15 and the vehicle V7 travels from its initial point to a point L6 via a point L5 at t = 15. The trajectory P1 of the vehicle V5 intersects the trajectory P2 of the vehicle V6, while the trajectory P3 of the vehicle V7 does not intersect any other trajectory.
[0080] The trajectories of the vehicles are configured with one or more straight lines in the space; in Fig. 12, the trajectory P1 includes a straight line P11 (from the initial point to the point L1) and a straight line P12 (from the point L1 to the point L2), the trajectory P2 includes a straight line P21 (from the initial point to the point L3) and a straight line P22 (from the point L3 to the point L2) and the trajectory P3 includes a straight line P31 (from the initial point to the point L5) and a straight line P32 (from the point L5 to the point L6).
[0081] First, the high level planner unit 111 detects the existence of an overlapping section. In Fig. 12, the high level planner unit 111 detects the existence of an overlapping section between the trajectories P1 and P2, namely between the vehicles V5 and V6. Next, the high level planner unit 111 identifies straight lines of the trajectories corresponding to the overlapping section. In Fig. 12, the high level planner unit 111 identifies the straight line P12 and the straight line P21 corresponding to the overlapping section.
[0082] Fig. 13 shows an example of the high level planner unit 111 identifying the overlap between the straight line P12 and the straight line P21. The high level planner unit 111 identifies earliest time overlapping point on given trajectories and a time interval associated to the spatially overlapping trajectories. In Fig. 13, the high level planner unit 111 identifies earliest time overlapping point as t=7 on the straight line P12 and the straight line P21 and the temporal overlap between t=7 and t=15 of these straight lines. Then, the high level planner unit 111 identifies that the straight line P12 and the straight line P21 correspond to the overlapping section.
[0083] Then, the high level planner unit 111 identifies a location of an overlapping point of the trajectories in time and space as detailed conflict information using information of the identified straight lines. In Fig. 12, the high level planner unit 111 uses information of the identified straight lines P12 and P21 to identify the spatial intersection point in Fig. 12.
[0084] Fig. 14 shows an example of the high level planner unit 111 identifying a location of an overlapping point. The high level planner unit 111 detects the location of the overlapping point of the straight line P12 and the straight line P21 as detailed information of the conflict in the form of (x, y, t), while x and y are coordinates in the two-dimensional map, and t is the time when the confliction occurs.
[0085] The method of one standard approach, where the path planning unit 110 analyzes, for each sub-groups, each time steps of the trajectories until it detects a conflict, can be computationally expensive. However, the high level criteria shown above makes the hierarchical abstraction process possible and may reduce the amount of calculation by the high level planner unit 111.
[0086] Finally, the mission planner unit 113 uses the detailed information of the conflict to adjust the global sequences in each sub-group so that the global sequences do not conflict in the same sub-group. In this process, the mission planner unit 113 determines the global sequences of all the vehicles.
[0087] After the adjusting process, the conflict detection unit 121 checks whether any conflict is found in the global sequences of all the vehicles determined by the mission planner unit 113. If the conflict detection unit 121 find one or more conflicts, the conflict detection unit 121 computes new conflict-free trajectories for each vehicle and associated cost(s) for the conflict(s) found by the conflict detection unit 121.
[0088] Based on the associated cost calculated by the conflict detection unit 121, the data modifier unit 122 creates a given time dependent cost and an associated path in relation to the time independent costs in the global cost matrix and the path matrix, wherein the global cost matrix is stored in the cost matrix database 131 and the path matrix is stored in the path matrix database 132. The creation of the time dependent cost and associated path is triggered by the conflict being detected and solved. The time dependent cost can be called as "dictionary" data.
[0089] For example, when a conflict was detected at time t = 5 on edge going from task_1 to task_5, the dictionary data can define the time dependent cost as {task_1; task_5}: {t=5; cost = C15; path = P15; …}. Yet another example, when a conflict was detected at time t = 3 on edge going from task_7 to task_3, the dictionary data can define the time dependent cost as {task_7; task_3}: {t=3; cost = C73; path = P73; …}. However, examples of the format of the time dependent cost are not limited to this.
[0090] After the process of the data modifier unit 122, the mission planner unit 113 receives the given time dependent cost and associated path. The mission planner unit 113 uses the received information to calculate, for each vehicle, the intra sequences and the inter sequence and then sets the new global sequence. After the new global sequence for each vehicle, is calculated, the high level planner unit 111 abstracts trajectories using high level criteria for hierarchical abstraction. The high level planner unit 111 calculates the detailed information of the conflict as the result of the abstraction, and then the mission planner unit 113 determines the new global sequences of all the vehicles. The detail of how these processes are performed is shown above.
[0091] Then, the conflict detection unit 121 again checks whether any conflict is found in the new global sequences determined by the high level planner unit 111. The process by the conflict detection unit 121 is iterated until no conflict is found in the global sequences.
[0092] If the conflict detection unit 121 does not find any conflict in the global sequences of all the vehicles determined by the mission planner unit 113, the path planner unit 114 uses the information of the global sequences to finalize the path plan of all the vehicles. In one example, the path planner unit 114 can determine specific path plan of all the vehicles using the global sequences and obstacle information in the input data M1.
[0093] In the example above, the input data M defines, for each job, how the tasks are grouped into the job. However, the details of the job need not be defined in the input data M. Alternatively, the path planning unit 110 determines the number of jobs and how the tasks are grouped into one of the jobs based on other information of the input data M. For example, the path planning unit 110 uses the information of the locations on the map and numbers of the tasks to determine how the tasks are grouped.
[0094] Further, the memory 130 stores several possible criteria which can be used by the high level planner unit 111. The high level planner unit 111 may optionally select the actual criterion to be used from among the multiple criteria stored in the memory 130 depending on the situation.
[0095] <Flow Description> Next, referring to the flowchart in Figs. 15A and 15B, an example of a method of the path planning system 100 will be described. The detail of each processing in Figs. 15A and 15B is already explained above and its explanation is omitted as appropriate.
[0096] First, the path planning unit 110 receives the input data M1 (step S22). Next, the high level planner unit 111 analyzes the tasks and the jobs using the high level abstraction method about the tasks and the jobs (step S24).
[0097] Then, the low level planner unit 112 receives the input data M1 and the information of the entrances from the high level planner unit 111 and generates the cost matrix and the path matrix (step S26). The mission planner unit 113 uses the global cost matrix and the path matrix and generates the high level solution for job allocation as a high level solution process (step S28).
[0098] The high level planner unit 111 uses the global sequence for each vehicle for the high level abstraction about the multi-vehicles (step S30). Then, the conflict detection unit 121 checks whether any conflict is found in the global sequences of all the vehicles (step S32). If the conflict detection unit 121 does not find any conflict in the global sequences of all the vehicles (No in step S32), the path planner unit 114 use the information of the global sequences to finalize the path plan of all the vehicles.
[0099] On the other hand, if the conflict detection unit 121 find one or more conflicts (Yes in step S32), the conflict detection unit 121 computes one or more new conflict-free paths for each vehicle and associated cost(s) for the found conflict(s) (step S34). The data modifier unit 122 generated new given time dependent cost(s) and associated path(s) (step S36). After that, the mission planner unit 113 uses the information generated at step S36 to calculate the new global sequence (step S28). The high level planner unit 111 uses the new global sequence for each vehicle for the high level abstraction about the multi-vehicles (step S30). Then, regarding the new global sequences of all the vehicles, step S32 is performed again. The process by the conflict detection unit 121 is iterated until no conflict is found in the global sequences.
[0100] <Description of Effects> As shown above, the path planning system 100 can solve instances of joint task allocation and path planning with cluster constraints while ensuring collision-free paths. The path planning system 100 can improve scalability in large instances with the use of the hierarchical decomposition search.
[0101] Further, the high level planner unit 111, for each job, may select two tasks as "entrance" (a start and an end point) from the tasks included in the same job. The low level planner unit 112 may calculate the cost from the start to the end via the tasks other than the start and the end in the same job in order that the mission planner unit 113 calculates the intra sequence of each job. This process makes the calculation for the intra sequence easier and can reduce computation time.
[0102] In addition, the low level planner unit 112 may calculate the cost between the jobs using information of the entrances (a start and an end point) in each job in order that the mission planner unit 113 calculates the inter sequence between the jobs. This process makes the calculation for the inter sequence easier and can reduce computation time.
[0103] Further, the path planning system 100 can set the global sequence for a plurality of the vehicles. The high level planner unit 111 may divide the plurality of the vehicles into a plurality of sub-groups, while the number of conflicts regarding the global sequences between the groups is minimized, if possible, 0. Also, the mission planner unit 113 may adjust the global sequences in each sub-group so that the global sequences do not conflict in the same sub-group. This hierarchical grouping for the vehicles makes the calculation considering the plurality of the vehicles easier and can reduce computation time.
[0104] In addition, the trajectories of the global sequences of the vehicles may constitute paths in a space, and the high level planner unit 111 may divide the plurality of the vehicles into the plurality of sub-groups so that the number of overlapping sections of the paths of the vehicles between the sub-groups is minimized. This appropriate dividing for the vehicles can derive collision-free paths more reliably.
[0105] Further, the trajectories of the first global sequences of the entities may constitute paths in a space and the paths are configured with one or more straight lines in the space. In this case, the high level planner unit 111 may identify an overlapping section between the paths of the entities in the same group, identify straight lines of the paths corresponding to the overlapping section and identify a location of an overlapping point of the paths in time and space as detailed conflict information using information of the identified straight lines. This process enables the high level planner unit 111 to find the exact information of the overlapping point with less time and can reduce computation time.
[0106] Further, the target of the path planning system 100 may be a robot moving in real space and the tasks may be operations to be executed by the robot. Therefore, the effects shown above can be realized in actual robot control.
[0107] As typical examples, two scenarios in which the path planning system 100 can be applied are explained below.
[0108] (Scenario 1) In the first scenario, several customers submit requests for items to an operator in one day of operation. The operator sets the input data M1 as required, and uses the path planning system 100 to generate a conflict-free solution for a fleet of AGVs. The conflict-free solution is executed by the AGVs as a path-plan.
[0109] (Scenario 2) In the second scenario, several customers submit requests for items to an operator at regular intervals of time (e.g. every hour). The operator sets the input data M1 as required, and uses the path planning system 100 to generate a conflict-free solution for a fleet of available AGVs for each batch of requests received during the interval. In this case, the path planning system 100 can regard the plans (paths) generated as the conflict-free solution for the previous batches of requests as spatio-temporal obstacles in the input data M1 and generate new conflict-free solution that avoids the obstacles. The plan for the given batch of requests is executed by the AGVs.
[0110] As shown in the first example embodiment, there may be more than three hierarchies for the task. Fig. 16 shows another example of a concept of hierarchical planning according to the present disclosure. There are four hierarchies: the path plan, the task, the job and the work. Since how the work is calculated in the state shown in Fig. 16 is as described in the first example embodiment, the detailed description thereof will be omitted. Even if such a large number of hierarchy structures are applied, the above effects of reducing computation time will occur.
[0111] In the above example embodiment, the state in which the robot moves in the two-dimensional space has been described, but the state in which the robot moves is not limited to this. For example, the above example embodiment may be applied even when a robot such as a drone flies in a three-dimensional space.
[0112] While the present disclosure has been particularly shown and described with reference to example embodiments thereof, the present disclosure is not limited to these example embodiments. It will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present disclosure as defined by the claims. Each embodiment can be appropriately combined with at least one of embodiments.
[0113] Next, a configuration example of the information processing system or the path planning system explained in the above-described plurality of embodiments is explained hereinafter with reference to Fig. 17.
[0114] The information processing system 10 or the path planning system 100 may be implemented on a computer system as illustrated in Fig. 17. Referring to Fig. 17, a computer system 90, such as an information processing apparatus or the like, includes a communication interface 91, a memory 92 and a processor 93.
[0115] The communication interface 91 (e.g., a network interface controller (NIC)) may be configured to communicate with other computer(s) and / or machine(s) to receive and / or send data. For example, the obtaining unit 12 may include the communication interface 91.
[0116] The memory 92 stores program 94 (program instructions) to enable the computer system 90 to carry out the data processing described in the embodiments. The memory 92 includes, for example, a semiconductor memory (for example, Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable and Programmable ROM (EEPROM), and / or a storage device including at least one of Hard Disk Drive (HDD), SSD (Solid State Drive), Compact Disc (CD), Digital Versatile Disc (DVD) and so forth. From another point of view, the memory 92 is formed by a volatile memory and / or a nonvolatile memory. The memory 92 may include a storage disposed apart from the processor 93. In this case, the processor 93 may access the memory 92 through an I / O interface (not shown).
[0117] The processor 93 is configured to read the program 94 (program instructions) from the memory 92 to execute the program 94 (program instructions) to realize the functions and processes of the above-described plurality of embodiments. The processor 93 may be, for example, a microprocessor, an MPU (Micro Processing Unit), or a CPU (Central Processing Unit). Furthermore, the processor 93 may include a plurality of processors. In this case, each of the processors executes one or a plurality of programs including a group of instructions to cause a computer to perform an algorithm explained above with reference to the drawings.
[0118] The program 94 includes program instructions (program modules) for executing processing of each unit of the information processing system 10 or the path planning system 100 in the above-described plurality of example embodiments.
[0119] The program includes instructions (or software codes) that, when loaded into a computer, cause the computer to perform one or more of the functions described in the embodiments. The program may be stored in a non-transitory computer readable medium or a tangible storage medium. By way of example, and not limitation, non-transitory computer readable media or tangible storage media can include a random-access memory (RAM), a read-only memory (ROM), a flash memory, a solid-state drive (SSD) or other memory technologies, CD-ROM, digital versatile disk (DVD), Blu-ray disc ((R): Registered trademark) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices. The program may be transmitted on a transitory computer readable medium or a communication medium. By way of example, and not limitation, transitory computer readable media or communication media can include electrical, optical, acoustical, or other form of propagated signals.
[0120] The whole or part of the example embodiments disclosed above can be described as, but not limited to, the following supplementary notes. (Supplementary Note 1) An information processing system comprising: an obtaining means for obtaining input information indicating tasks and jobs, wherein each of the tasks are included in one of the jobs; a calculation means for calculating a first intra sequence of each job and a first inter sequence between the jobs, wherein the first intra sequence is a sequence in which an entity processes the tasks within each job and the first inter sequence is a sequence in which the entity processes the jobs; and a setting means for using the first intra sequences and the first inter sequence to set a first global sequence in which the entity performs each of the tasks of each job. (Supplementary Note 2) The information processing system according to Supplementary Note 1, wherein the tasks exist in a metric space in which a distance between the tasks is defined; and the calculation means uses the distance to calculate the first intra sequence of each job and / or calculate the first inter sequence between the jobs. (Supplementary Note 3) The information processing system according to Supplementary Note 2, wherein the calculation means, for each job, sets a start and an end from the tasks included in the same job and calculates a distance-dependent cost from the start to the end via the tasks other than the start and the end in the same job to calculate the first intra sequence of each job. (Supplementary Note 4) The information processing system according to Supplementary Note 2 or 3, wherein the calculation means, for each job, sets a start and an end from the tasks included in the same job and calculates a distance-dependent cost between the jobs using information of the start and the end in each job to calculate the first inter sequence between the jobs. (Supplementary Note 5) The information processing system according to any one of Supplementary Notes 1 to 4, wherein the setting means sets the first global sequence for a plurality of the entities; and the information processing system further comprises: a division means for dividing the plurality of the entities into a plurality of groups, wherein the number of conflicts regarding the first global sequences between the groups is minimized; and an adjusting means for adjusting the first global sequences in each group so that the first global sequences do not conflict in the same group. (Supplementary Note 6) The information processing system according to Supplementary Note 5, wherein trajectories of the first global sequences of the entities constitute paths in a space; and the division means divides the plurality of the entities into the plurality of groups so that the number of overlapping sections of the paths of the entities between the groups in the space is minimized. (Supplementary Note 7) The information processing system according to Supplementary Note 5, wherein trajectories of the first global sequences of the entities constitute paths in a space and the paths are configured with one or more straight lines in the space; and the adjusting means identifies an overlapping section between the paths of the entities in the same group, identifies straight lines of the paths corresponding to the overlapping section and identifies a location of an overlapping point of the paths in time and space as detailed conflict information using information of the identified straight lines. (Supplementary Note 8) The information processing system according to any one of Supplementary Notes 1 to 7, the obtaining means obtains the input information indicating the tasks, the jobs and works, wherein each of the jobs are included in one of the works; the calculation means further calculates a second intra sequence of each work and a first inter sequence between the works, wherein the second intra sequence is a sequence in which the entity processes the jobs within each work and the second inter sequence is a sequence in which the entity processes the works; and the setting means further uses the second intra sequences and the second inter sequence to set a second global sequence in which the entity performs each of the jobs of each work. (Supplementary Note 9) The information processing system according to any one of Supplementary Notes 1 to 8, wherein the entity is a robot moving in real space and the tasks are operations to be executed by the robot. (Supplementary Note 10) An information processing method performed by a computer comprising: obtaining input information indicating tasks and jobs, wherein each of the tasks are included in one of the jobs; calculating a first intra sequence of each job and a first inter sequence between the jobs, wherein the first intra sequence is a sequence in which an entity processes the tasks within each job and the first inter sequence is a sequence in which the entity processes the jobs; and using the first intra sequences and the first inter sequence to set a first global sequence in which the entity performs each of the tasks of each job. (Supplementary Note 11) A program for causing a computer to execute: obtaining input information indicating tasks and jobs, wherein each of the tasks are included in one of the jobs; calculating a first intra sequence of each job and a first inter sequence between the jobs, wherein the first intra sequence is a sequence in which an entity processes the tasks within each job and the first inter sequence is a sequence in which the entity processes the jobs; and using the first intra sequences and the first inter sequence to set a first global sequence in which the entity performs each of the tasks of each job.
[0121] Some or all of elements (e.g., structures and functions) specified in Supplementary Notes 2 to 9 dependent on Supplementary Note 1 may also be dependent on Supplementary Note 10 and Supplementary Note 11 in dependency similar to that of Supplementary Notes 2 to 9 on Supplementary Note 1. Some or all of elements specified in any of Supplementary Notes may be applied to various types of hardware, software, and recording means for recording software, systems, and methods.
[0122] Various combinations and selections of various disclosed elements (including each element in each example, each element in each drawing, and the like) are possible within the scope of the claims of the present disclosure. That is, the present disclosure naturally includes various variations and modifications that could be made by those skilled in the art according to the overall disclosure including the claims and the technical concept.
[0123] This application is based upon and claims the benefit of priority from Japanese patent application No. 2024-004963, filed on January 17th, 2024, the disclosure of which is incorporated herein in its entirety by reference.
[0124] 10 information processing system 12 obtaining unit 14 calculation unit 16 setting unit 100 path planning system 110 path planning unit 111 high level planner unit 112 low level planner unit 113 mission planner unit 114 path planner unit 121 conflict detection unit 122 data modifier unit 130 memory 131 cost matrix database 132 path matrix database M1 input data
Claims
1. An information processing system comprising: an obtaining means for obtaining input information indicating tasks and jobs, wherein each of the tasks are included in one of the jobs; a calculation means for calculating a first intra sequence of each job and a first inter sequence between the jobs, wherein the first intra sequence is a sequence in which an entity processes the tasks within each job and the first inter sequence is a sequence in which the entity processes the jobs; and a setting means for using the first intra sequences and the first inter sequence to set a first global sequence in which the entity performs each of the tasks of each job.
2. The information processing system according to claim 1, wherein the tasks exist in a metric space in which a distance between the tasks is defined; and the calculation means uses the distance to calculate the first intra sequence of each job and / or calculate the first inter sequence between the jobs.
3. The information processing system according to claim 2, wherein the calculation means, for each job, sets a start and an end from the tasks included in the same job and calculates a distance-dependent cost from the start to the end via the tasks other than the start and the end in the same job to calculate the first intra sequence of each job.
4. The information processing system according to claim 2 or 3, wherein the calculation means, for each job, sets a start and an end from the tasks included in the same job and calculates a distance-dependent cost between the jobs using information of the start and the end in each job to calculate the first inter sequence between the jobs.
5. The information processing system according to any one of claims 1 to 4, wherein the setting means sets the first global sequence for a plurality of the entities; and the information processing system further comprises: a division means for dividing the plurality of the entities into a plurality of groups, wherein the number of conflicts regarding the first global sequences between the groups is minimized; and an adjusting means for adjusting the first global sequences in each group so that the first global sequences do not conflict in the same group.
6. The information processing system according to claim 5, wherein trajectories of the first global sequences of the entities constitute paths in a space; and the division means divides the plurality of the entities into the plurality of groups so that the number of overlapping sections of the paths of the entities between the groups in the space is minimized.
7. The information processing system according to claim 5, wherein trajectories of the first global sequences of the entities constitute paths in a space and the paths are configured with one or more straight lines in the space; and the adjusting means identifies an overlapping section between the paths of the entities in the same group, identifies straight lines of the paths corresponding to the overlapping section and identifies a location of an overlapping point of the paths in time and space as detailed conflict information using information of the identified straight lines.
8. The information processing system according to any one of claims 1 to 7, wherein the entity is a robot moving in real space and the tasks are operations to be executed by the robot.
9. The information processing system according to any one of claims 1 to 8, wherein the entity is a robot moving in real space and the tasks are operations to be executed by the robot.
10. An information processing method performed by a computer comprising: obtaining input information indicating tasks and jobs, wherein each of the tasks are included in one of the jobs; calculating a first intra sequence of each job and a first inter sequence between the jobs, wherein the first intra sequence is a sequence in which an entity processes the tasks within each job and the first inter sequence is a sequence in which the entity processes the jobs; and using the first intra sequences and the first inter sequence to set a first global sequence in which the entity performs each of the tasks of each job.
11. A program for causing a computer to execute: obtaining input information indicating tasks and jobs, wherein each of the tasks are included in one of the jobs; calculating a first intra sequence of each job and a first inter sequence between the jobs, wherein the first intra sequence is a sequence in which an entity processes the tasks within each job and the first inter sequence is a sequence in which the entity processes the jobs; and using the first intra sequences and the first inter sequence to set a first global sequence in which the entity performs each of the tasks of each job.
Citation Information
Patent Citations
Task scheduling system for multiprocessor
JP1992195577A
Image processing unit
JP1996305589A
Task scheduling device, task scheduling method, and task scheduling program
JP2013150094A