Resource management system, resource management method, and resource management program
Patent Information
- Application Number
- PCT/JP2023/031565
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-30
- Publication Date
- 2025-03-06
Smart Images

Figure JP2023031565_06032025_PF_FP_ABST
Abstract
Description
Resource management system, resource management method, and resource management program
[0001] One aspect of the present disclosure relates to a resource management system, a resource management method, and a resource management program.
[0002] There is known a technique for managing resources required for executing tasks. Non-Patent Document 1 listed below describes resource allocation that defines resources required for executing nodes in a behavior tree and prevents multiple tasks being executed in parallel from using the same resources.
[0003] M. Colledanchise and L. Natale, "Improving the Parallel Execution of Behavior Trees," 2018 IEEE / RSJ International Conference on Intelligent Robots and Systems (IROS), 2018, pp. 7103-7110, doi: 10.1109 / IROS.2018.8593504.
[0004] It is desirable to dynamically allocate resources required to execute a task to the task depending on the situation.
[0005] A resource management system according to one aspect of the present disclosure includes a memory unit that stores resource information indicating a plurality of resources used by a plurality of tasks and that includes, for each of the plurality of resources, at least one tag indicating at least one attribute of the resource; a reception unit that receives search conditions for resources to be used to execute a target task from a task control unit that controls a target task, which is one of the plurality of tasks; a search unit that extracts resources having one or more tags corresponding to the search conditions from the resource information; and a notification unit that notifies the task control unit of search results indicating the extracted resources; and the task control unit executes the target task using the extracted resources based on the search results.
[0006] According to one aspect of the present disclosure, resources required to execute a task can be dynamically allocated to the task depending on the situation.
[0007] 1 is a diagram illustrating an example of an application of a resource management system; 2 is a diagram illustrating an example of a functional configuration of a resource management system; 3 is a diagram illustrating an example of a hardware configuration of a computer used for the resource management system; 4 is a diagram illustrating an example of resource information; 5 is a diagram illustrating an example of a resource usage history; 6 is a diagram illustrating an example of a relationship between a behavior tree and a storage unit; 7 is a flowchart illustrating an example of a process for searching for a resource; 8 is a flowchart illustrating an example of a process for updating resource information;
[0008] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. In the description of the drawings, the same or equivalent elements are designated by the same reference numerals, and redundant description will be omitted.
[0009] [System Overview] The resource management system according to the present disclosure is a computer system that manages multiple resources required to execute multiple tasks in a real workspace. A resource is a resource that can be used to execute multiple tasks. A task is a process performed by an agent to achieve a certain goal. An agent is an entity that executes a task and can be managed as a resource.
[0010] In one example, a resource is a machine or device used to process a workpiece, which is a tangible object that exists in a real workspace. A resource may be an agent such as a robot, an automated guided vehicle (AGV), or a drone; an end effector such as a gripper, a paint gun, or a cooking utensil; a processing device such as a machine tool, a washer, or a charging station; or a transport device such as a conveyor. Alternatively, a resource may be an input device such as a camera, a microphone, a scanner, an operation panel, or a disk drive; an output device such as a monitor, a speaker, a printer, a light, or a disk drive; or a communication device such as a communication cable, a Bluetooth® adapter, or a telephone. Alternatively, a resource may be a fixture or container such as a cart, a container, a box, a plate, or a rack.
[0011] In one example, concurrent processing and parallel processing are performed in real time to complete various tasks as quickly as possible while responding to dynamic changes in the environment in a real workspace. In concurrent processing, multiple tasks are executed while switching between tasks. In parallel processing, two or more tasks are executed simultaneously. In concurrent processing and parallel processing, resources that are limited in their simultaneous use by multiple tasks must be properly managed. This resource management includes determining which resources to allocate to tasks to be executed. A resource management system manages resources that are commonly and repeatedly used by multiple tasks but cannot be used simultaneously by multiple tasks.
[0012] In conventional technologies, resources allocated to tasks are defined in advance. However, in a real workspace, there are cases where it is not possible to define the resources required for a task in advance due to the large number of tasks to be executed and the environment changing in various ways. For example, there are cases where any of multiple robots can be used as a resource for executing a certain task. There are also cases where any of multiple robots can be used as long as it satisfies conditions regarding use, positional relationship, performance, and the like. Alternatively, there are cases where the number of available robots increases or decreases during the execution of one or more tasks. Using conventional technologies in these cases could result in unnecessary waiting time for the task in order to secure resources, or could result in a situation where the conditions for executing the task are not met for an extended period of time.
[0013] A resource management system does not pre-fix the correspondence between tasks and resources, but dynamically allocates resources required to execute a task to the task according to the situation. The resource management system stores resource information related to resources. The resource management system accepts search conditions for resources from a task control unit that controls the task, extracts resources that match the search conditions from the resource information, and notifies the task control unit of the search results indicating the extracted resources. Based on the search results, the task control unit executes the task using the extracted resources (i.e., the allocated resources). This mechanism allows appropriate resources to be allocated to each task in real time, even if the resources required for the task cannot be defined in advance. As a result, resources can be allocated as the environment changes, thereby shortening the time required to complete all tasks.
[0014] A task controller is an entity that controls the execution of a task, and is also referred to as an "execution engine" in this disclosure. In one example, there are multiple task controllers, each of which controls at least one task. Before executing a task, each task controller queries the resources corresponding to that task as search conditions. In this disclosure, a task controlled by a task controller and corresponding to the search conditions is also referred to as a "target task." The task controller executes the target task using resources notified by the resource management system. During this execution, the resources are occupied by the target task, and other tasks cannot use those resources. When the task controller finishes executing the target task, it releases those resources. As a result, other tasks can use those resources.
[0015] [System Configuration] The configuration of a resource management system 1 according to an example will be described. FIG. 1 is a diagram showing an example of application of the resource management system 1. In this example, the resource management system 1 manages multiple resources required to execute multiple tasks in a real workspace 8. The workspace 8 contains various resources such as a mobile robot 81, a stationary robot 82, a conveyor 83, a camera 84, and a rack 85, and these resources work together to process a workpiece 90. Examples of tasks in this processing include picking, storing, transporting, moving, processing, packing, or unpacking the workpiece 90. In the workspace 8, these tasks can be executed in parallel or in parallel.
[0016] In one example, the resource management system 1 is connected to one or more task control units (execution engines) 2 via a communication network. The communication network may be a wired network or a wireless network. The communication network may include at least one of the Internet and an intranet. Alternatively, the communication network may be realized simply by a single communication cable.
[0017] In one example, a behavior tree 200 is used to process multiple tasks in parallel or concurrently by multiple task control units 2. The use of a resource by a task means that the resource is occupied by that task. Therefore, in parallel or concurrent processing, phenomena such as deadlock and resource starvation are taken into consideration. A deadlock refers to a phenomenon in which two or more processes (tasks in this disclosure) mutually request a resource reserved by another process, preventing any process from proceeding. Resource starvation refers to a phenomenon in which a certain process (task) is permanently unable to acquire a resource and is not executed. The behavior tree 200 is used to process multiple tasks in parallel or concurrently while avoiding or reducing deadlock and starvation.
[0018] A behavior tree 200 is a method for representing the behavior of an agent using a tree structure. The behavior tree 200 includes a root node, a control node, and an execution node. A node is connected to another node by a directed edge. The node at the start of a directed edge is called a "parent node," and the node at the end of a directed edge is called a "child node." Each node has at most one parent node and zero or more child nodes. The root node is the node at the top of the behavior tree 200. The root node has no parent node and typically has one child node. A control node has one parent node and one or more child nodes. A control node sequentially invokes one or more child nodes in response to being invoked. An execution node has one parent node and no child nodes. An execution node is also called a "leaf" of the behavior tree 200. In one example, each of multiple tasks is associated with an execution node.
[0019] In this disclosure, when focusing on a certain node, a set of one child node of the node and zero or more nodes located below the child node is also referred to as a "subtree." In one example, each subtree corresponds to a task. Because subtrees can be defined at each layer of the behavior tree 200, the relationship between the subtrees can be said to be a nested structure. Corresponding to this structure, a certain task can be realized by a set of multiple subtasks.
[0020] The root node calls its child nodes at predetermined cycle intervals. This call is also called a "tick." Generally, the cycle interval is a very short time and can be set, for example, based on the frame rate of the video captured by the camera. In response to the call by the root node, each node in the subtree connected to the root node is called in a predetermined order based on the tree structure, starting from the left. The call (tick) propagates from the root node to each execution node, thereby executing the entire behavior tree 200. Each node returns one of the following execution results: True, indicating successful execution; False, indicating unsuccessful execution; or Running, indicating that the node is currently running.
[0021] In one example, the invocation of each node in the behavior tree 200 is controlled by the tree management system 3. In each cycle, the tree management system 3 invokes each node in order starting from the root node based on the behavior tree 200. When focusing on the root node or a certain control node, the tree management system 3 invokes each of the one or more subtrees connected to that node in order.
[0022] The relationship between the task control unit 2 and the components of the behavior tree 200 may vary. For example, one task control unit 2 may correspond to one subtree, or may correspond to two or more subtrees connected to one control node (e.g., a parallel node). In one example, the task control unit 2 controls the execution of a task corresponding to a subtree in response to the invocation of the corresponding subtree.
[0023] 2 shows an example of the functional configuration of the resource management system 1. In this example, the resource management system 1 includes a storage unit 11, a reception unit 12, a search unit 13, a notification unit 14, and a data management unit 15 as functional components.
[0024] The storage unit 11 is a functional module that stores data necessary for resource management. In one example, the storage unit 11 stores resource information indicating multiple resources used by multiple tasks and the usage history of the multiple resources. The storage unit 11 can store the resource information in a distributed manner using a master 111, which is basic data of the resource information, and one or more copies 112 of the master 111.
[0025] The receiving unit 12 is a functional module that receives search conditions for resources to be used to execute a target task from the task control unit 2. The search conditions are information that indicates conditions for resources to be allocated to a target task.
[0026] The search unit 13 is a functional module that extracts resources that meet the search criteria from the resource information. The search unit 13 can also refer to the usage history during the search.
[0027] The notification unit 14 is a functional module that notifies the task control unit 2 of the search results indicating the extracted resources, that is, the resources that can be allocated to the target task. The search results are a response to the search conditions.
[0028] The data management unit 15 is a functional module that manages data in the storage unit 11, and includes an update unit 16, a reflection unit 17, and a recording unit 18. The update unit 16 is a functional module that, when changes occur to multiple resources, updates the master 111 of resource information based on the changes. The reflection unit 17 is a functional module that reflects updates to the master 111 of resource information in each copy 112. The recording unit 18 is a functional module that registers resource usage by tasks in a usage history.
[0029] The resource management system 1 can be realized by any type of computer. The computer may be a general-purpose computer such as a personal computer or a business server, or may be incorporated into a dedicated device that executes a specific process.
[0030] 3 is a diagram showing an example of the hardware configuration of a computer 100 used for the resource management system 1. In this example, the computer 100 includes a main body 110, a monitor 120, and an input device .
[0031] The main body 110 is a device having a circuit 160. The circuit 160 includes a processor 161, a memory 162, a storage 163, an input / output port 164, and a communication port 165. The number of each hardware component may be one or more. The storage 163 records programs for configuring each functional module of the main body 110. The storage 163 is a computer-readable recording medium such as a hard disk, a non-volatile semiconductor memory, a magnetic disk, or an optical disk. The memory 162 temporarily stores programs loaded from the storage 163, calculation results of the processor 161, and the like. The processor 161 configures each functional module by executing programs in cooperation with the memory 162. The input / output port 164 inputs and outputs electrical signals to and from the monitor 120 or the input device 130 in response to instructions from the processor 161. The input / output port 164 may also input and output electrical signals to and from other devices such as the task control unit 2. The communication port 165 performs data communication with other devices via the communication network N in response to instructions from the processor 161.
[0032] The monitor 120 is a device for displaying information output from the main body 110. For example, the monitor 120 is a device capable of displaying graphics, such as a liquid crystal panel.
[0033] The input device 130 is a device for inputting information to the main body 110. Examples of the input device 130 include operation interfaces such as a keypad, a mouse, and an operation controller.
[0034] The monitor 120 and the input device 130 may be integrated as a touch panel. For example, the main body 110, the monitor 120, and the input device 130 may be integrated as a tablet computer.
[0035] Each functional module of the resource management system 1 is realized by loading a resource management program onto the processor 161 or memory 162 and having the processor 161 execute the program. The resource management program includes code for realizing each functional module of the resource management system 1. The processor 161 operates the input / output port 164 and the communication port 165 in accordance with the resource management program, and executes reading and writing of data from and to the memory 162 or the storage 163.
[0036] The resource management program may be provided in a state in which it is recorded on a non-transitory recording medium such as a CD-ROM, a DVD-ROM, a semiconductor memory, etc. Alternatively, the resource management program may be provided via a communication network as a data signal superimposed on a carrier wave.
[0037] [Storage Unit] The storage unit 11 will be described with reference to Fig. 4 to Fig. 6. Fig. 4 is a diagram showing an example of resource information. Fig. 5 is a diagram showing an example of usage history. Fig. 6 is a diagram showing an example of the relationship between the behavior tree 200 and the storage unit 11.
[0038] The resource information will be described with reference to Fig. 4. In one example, the resource information master 111 includes, as data items, a resource ID and at least one tag for each of a plurality of resources.
[0039] A resource ID is an identifier that uniquely identifies a resource, and can be expressed by a character code such as a serial number or a name.
[0040] A tag is information indicating the attributes of a resource. A resource attribute refers to a feature or property possessed by a resource. For example, the attribute includes at least one of the resource category, function, use, and specifications. The attribute may include a resource location, which is a place related to the resource. The resource location may be the current geographic location or range of the resource, or the geographic location or range in which the resource can be used. The resource location may be represented by a single coordinate, a two-dimensional or three-dimensional area, or a location name. The attribute may include the internal state of the resource. For example, the internal state indicates whether the resource is normal, whether the resource has an error, or whether the resource is malfunctioning.
[0041] In one example, the resource information copy 112 includes, as data items, a resource ID, at least one tag, and a status for each of a plurality of resources. The resource management system 1 manages the resource information so that the resource ID and tag for each resource match between the master 111 and each copy 112.
[0042] The status is information indicating the current state of a resource. For example, the status indicates the current usage status of the resource by a task. The status is set based on multiple options including at least an in-use state. The in-use state indicates that the resource is being used by a task and cannot be used by other tasks. In one example, the in-use state also indicates the task that is using the resource, or the subtree to which the task belongs. The multiple options for the status may further include an available state. The available state indicates that the resource is not being used by any task and any task can use the resource.
[0043] In the master 111 shown in FIG. 4 , the resource "Robot A" has five tags: "robot" indicating the category; "transport robot" indicating the category, function, or use; "area Pa" indicating the resource location; "weight capacity: 50 kg" indicating the specifications; and "normal" indicating the internal state. The resource "Robot B" has six tags: "robot" indicating the category; "transport robot" and "welding robot" indicating the category, function, or use; "area Pc" indicating the resource location; "weight capacity: 30 kg" indicating the specifications; and "normal" indicating the internal state. In the copy 112 shown in FIG. 4 , the resource "Robot A" is in an available state, and the resource "Robot B" is being used by a task in the subtree ST1. Other resource IDs are also associated with at least one tag, and in the copy 112, they are further associated with a status.
[0044] The copy 112 shown in FIG. 4 corresponds to a particular parallel node. In this example, the busy state indicates the subtree to which the task using the resource belongs. Subtrees ST1 and ST2 are both subtrees connected to that parallel node. In this way, the status can be set depending on the hierarchical structure of the behavior tree 200, so the status of a particular resource may differ between two or more copies 112.
[0045] As shown in FIG. 4 , the multiple resources indicated by the resource information may include a robot. In one example, the robot performs a task using motion. Performing a task using motion refers to changing at least one of the position and posture of the robot to perform the task. A robot that performs a target task using motion may be a robot that moves from one place to another to perform the task, such as a robot supported by an AGV. Alternatively, a robot that performs a target task using motion may be a robot that changes the angle of at least some of one or more joints of a manipulator to perform the task, such as a vertical articulated robot.
[0046] The usage history will be described with reference to Fig. 5. In one example, the usage history includes, for each of a plurality of resources, a resource ID, a usage period, and an executed task as data items. One or more pairs of a usage period and a task are associated with one resource ID.
[0047] The usage period is information indicating the time period during which the resource indicated by the resource ID was used. In one example, the usage period is expressed as a time span from the start time to the end time of use. Although the date is omitted in the example of FIG. 5, the usage period can also be expressed as a date and time. In either case, the usage period indicates a time span in the past.
[0048] The execution task indicates a task executed using a resource indicated by a resource ID. The execution task may be represented by a task ID, which is an identifier that uniquely identifies the task.
[0049] 5, it can be seen that resource "Robot A" was used to execute task Ta for approximately two minutes from 9:30:45, and then was used to execute task Tc for approximately two minutes from 9:34:20. For other resources, the fact that they have been used in the past is also recorded in the usage history.
[0050] An example of the relationship between the behavior tree 200 and the storage unit 11 will be described with reference to Fig. 6. Fig. 6 shows, as types of control nodes, a fallback node 21, a sequence node 22, a parallel node 23, a fallback node with memory 24, and a sequence node with memory 25.
[0051] The fallback node 21 is used when it is sufficient for one of multiple child nodes to succeed. The fallback node 21 calls two or more child nodes in order from left to right. In response to any child node returning True or Running, the fallback node 21 returns the return value to the parent node as the execution result of the fallback node 21, and does not call the remaining child nodes. In response to all child nodes returning False, the fallback node 21 returns False to the parent node as the execution result of the fallback node 21.
[0052] The sequence node 22 is used when the success of all child nodes is required. The sequence node 22 calls two or more child nodes in order from left to right. In response to any child node returning False or Running, the sequence node 22 returns the return value to the parent node as the execution result of the sequence node 22, and does not call the remaining child nodes. In response to all child nodes returning True, the sequence node 22 returns True to the parent node as the execution result of the sequence node 22.
[0053] The parallel node 23 is used to execute all child nodes, essentially executing those child nodes in parallel or in parallel. The parallel node 23 calls two or more child nodes in order from left to right. The parallel node 23 returns True to the parent node in response to all child nodes returning True, returns False to the parent node in response to at least one child node returning False, and returns Running to the parent node in other cases.
[0054] The fallback node with memory 24 is an extension of the fallback node 21. The fallback node with memory 24 differs from the fallback node 21 in that, if the execution result in the previous cycle is Running, the fallback node with memory 24 calls the child nodes in order starting from the last child node called in that cycle.
[0055] The sequence node with memory 25 is an extension of the sequence node 22. The sequence node with memory 25 differs from the sequence node 22 in that, if the execution result in the previous cycle was Running, the sequence node with memory 25 calls the child nodes in order starting from the last child node called in that cycle.
[0056] FIG. 6 shows a condition node 26 and an action node 27 as types of execution nodes.
[0057] A condition node 26 is used to check whether a specific condition is met. The condition node 26 executes a function corresponding to the condition. The condition node 26 returns either True, indicating that the condition is met, or False, indicating that the condition is not met, to the parent node.
[0058] An action node 27 is used to execute a task. The action node 27 executes a function corresponding to the task. The action node 27 returns one of the following to the parent node: True, which indicates that the task was successful; False, which indicates that the task failed; or Running, which indicates that the task is in another state (e.g., running). When an action node 27 is called, the task control unit 2 corresponding to the action node 27 executes the task associated with the action node 27.
[0059] In behavior tree 200, root node 201 has a single child node, parallel node 202. Parallel node 202 has three child nodes, memory-attached sequence nodes 211, 231, and 251. Parallel node 202 is connected to subtree 210 having memory-attached sequence node 211 as its apex, subtree 230 having memory-attached sequence node 231 as its apex, and subtree 250 having memory-attached sequence node 251 as its apex.
[0060] Subtree 210 includes parallel node 212 located two levels below memory-equipped sequence node 211. Parallel node 212 connects to a subtree whose apex is sequence node 213 and a subtree whose apex is fallback node 214. Parallel node 215, located one level below fallback node 214, connects to a subtree whose apex is sequence node 216 and a subtree whose apex is sequence node 217.
[0061] Subtree 230 includes a parallel node 232 located two levels below memory-equipped sequence node 231. Parallel node 232 connects to a subtree having sequence node 233 as its apex and a subtree having sequence node 234 as its apex.
[0062] The behavior tree 200 includes four parallel nodes 202, 212, 215, and 232. Focusing on the hierarchical relationships between the parallel nodes, the behavior tree 200 includes a first parallel node, a second parallel node located at a lower level than the first parallel node, and two or more subtrees connected to the second parallel node and corresponding to two or more tasks. Note that the second parallel node is located within the subtree connected to the first parallel node. The parallel node 202 is the highest-level parallel node located at the highest level among all parallel nodes. If the parallel node 202 is the first parallel node, then the parallel nodes 212, 215, and 232 are second parallel nodes. If the parallel node 212 is the first parallel node, then the parallel node 215 is the second parallel node. A given parallel node may be considered both a first parallel node and a second parallel node depending on its hierarchical relationship with two or more other parallel nodes.
[0063] In one example, the storage unit 11 stores a master of the resource information in association with the root node, and stores copies of the resource information in association with each parallel node. In FIG. 6 , the master 111 is represented as "M" and the copies 112 are represented as "C." In the behavior tree 200, the storage unit 11 stores the master 111 of the resource information in association with the root node 201, and stores copies 112 of the resource information in association with each of the parallel nodes 202, 212, 215, and 232. In this example, the storage unit 11 stores a copy 291 in association with the parallel node 202, a copy 292 in association with the parallel node 212, a copy 293 in association with the parallel node 215, and a copy 294 in association with the parallel node 232.
[0064] In this disclosure, the copy 112 associated with the first parallel node is also referred to as the "first copy," and the copy 112 associated with the second parallel node is also referred to as the "second copy." If parallel node 202 is the first parallel node, copy 291 is the first copy, and copies 292 to 294 are the second copies. If parallel node 212 is the first parallel node, copy 292 is the first copy, and copy 293 is the second copy. There are cases where the copy 112 associated with a certain parallel node can be said to be either the first copy or the second copy, depending on the hierarchical relationship between that parallel node and two or more other parallel nodes.
[0065] It is sufficient for each copy 112 to store the correspondence between resources and subtrees (tasks) using those resources for the layer below the parallel node 23 associated with that copy 112. The copy 112 shown in Figure 4 is an example showing such a relationship between resources and subtrees (tasks). This mechanism makes it easy to manage which tasks are using which resources throughout the entire behavior tree 200.
[0066] [Resource Management Method] (Resource Search) As an example of a resource management method according to the present disclosure, a process for searching for resources will be described with reference to FIG. 7 . FIG. 7 is a flowchart showing an example of the process as a process flow S1. That is, the resource management system 1 executes the process flow S1. In one example, the resource management system 1 executes the process flow S1 every time at least one search condition is passed from at least one task control unit 2 to the reception unit 12, that is, every time at least one action node 27 is invoked.
[0067] In step S11, the reception unit 12 receives search conditions for resources to be used to execute a target task from the task control unit 2. The reception unit 12 may sequentially receive two or more search conditions corresponding to two or more target tasks from at least one task control unit 2. Each search condition includes one or more search values corresponding to one or more tags. At least one of the one or more search values may be defined using logical operators such as "AND," "OR," or "NOT," or may be defined by a condition related to a numerical value such as a numerical range, an upper limit value, or a lower limit value, or may be generated by a combination of these definitions.
[0068] In response to the invocation of a corresponding action node 27, the task control unit 2 generates search conditions for resources to be used to execute a target task associated with the action node 27. The task control unit 2 passes the search conditions to the reception unit 12. In one example, the task control unit 2 controls two or more target tasks based on the behavior tree 200. In this case, the task control unit 2 connects to one parallel node and executes two or more subtrees corresponding to the two or more target tasks. In executing each of the two or more subtrees, the task control unit 2 generates search conditions for the target task corresponding to the subtree and passes the search conditions to the reception unit 12. The process of passing the search conditions to the reception unit 12 refers to the task control unit 2 transmitting or outputting the search conditions to the reception unit 12 via a communication network or bus. The reception unit 12 accepts the search conditions from the task control unit 2.
[0069] In step S12, the search unit 13 extracts resources having one or more tags corresponding to the search criteria from the resource information. In the present disclosure, resources having one or more tags corresponding to the search criteria are also simply referred to as "resources corresponding to the search criteria." The tags corresponding to the search criteria may be tags indicating a value that matches the search value, or may be tags indicating a value that has a predetermined inclusion relationship with the search value. In one example, the search unit 13 extracts resources that have one or more tags corresponding to the search criteria and whose status is not in use. In other words, the search unit 13 does not extract resources whose status is in use.
[0070] Various techniques for extracting resources that correspond to search criteria will be described below. As an example, if the search criteria include the category, function, use, or specifications of a resource, the search unit 13 extracts resources that have tags that indicate the category, function, use, or specifications that correspond to the search criteria.
[0071] When the search criteria include an execution location, which is a location for executing the target task, the search unit 13 extracts resources having tags indicating resource locations corresponding to the execution location. In one example, the execution location is a geographical location or range where the task is executed. The resource location may be represented by a single coordinate, a two-dimensional or three-dimensional area, or a location name. A resource having a tag indicating a resource location corresponding to the execution location may be a resource located at the execution location or a resource that can be moved to the execution location.
[0072] In one example, when extracting resources based on the resource location and the execution location, the search unit 13 calculates, for each of a plurality of resources, a physical quantity required to execute a target task based on the two locations. In the present disclosure, this physical quantity is also referred to as a "required physical quantity." Based on the required physical quantities of each of the plurality of resources, the search unit 13 extracts resources having tags indicating resource locations corresponding to the execution locations. The required physical quantity may be expressed by various types of physical quantities, such as required time, travel distance, and power consumption. The required physical quantity may be the physical quantity required to travel from the resource location to the execution location. Alternatively, the required physical quantity may be the total physical quantity required for the resources located at the resource location to complete the task. This total physical quantity may be the sum of the physical quantity required to travel from the resource location to the execution location and the physical quantity required to execute the task at the execution location. For example, the search unit 13 may extract resources whose required physical quantity is equal to or less than a predetermined threshold, or may extract resources whose required physical quantity is the smallest. Alternatively, the search unit 13 may calculate the execution efficiency of the target task based on the required physical quantity, and extract the resource with the highest execution efficiency. The execution efficiency is an index that indicates how efficiently the target task can be executed.
[0073] The search unit 13 may receive two or more search conditions corresponding to two or more target tasks and extract, for each of the two or more target tasks, resources having one or more tags corresponding to the search conditions so as to improve the execution efficiency of the two or more target tasks. In other words, the search unit 13 may process the two or more search conditions collectively rather than sequentially to extract resources corresponding to the search conditions for each target task. In the present disclosure, such resource extraction is also referred to as a "batch search." For example, the search unit 13 performs the batch search using an optimization technique or a search technique.
[0074] The search unit 13 may perform a batch search so that no resource wait time occurs in two or more target tasks, or so that the total wait time in two or more target tasks is minimized. Waiting time refers to a time span during which a target task is not executed due to unavailable resources. Alternatively, the search unit 13 may perform a batch search so that the total execution time of two or more target tasks is minimized. Execution time refers to a time span from the start time to the end time of execution of a target task. Alternatively, the search unit 13 may perform a batch search so that the sum of travel times to individual execution positions (i.e., total travel time) required to execute two or more target tasks is minimized. High execution efficiency may mean little or no wait time, short execution time, or short travel time to the execution position.
[0075] In one example, the search unit 13 may refer to a data table in which execution efficiencies or physical quantities, such as waiting time, execution time, and travel time, are predefined for each combination of task and resource, and perform a batch search to maximize execution efficiency. If the resource is a robot, the combination may be further subdivided and defined based on the robot's posture. In this case, the data table predefines execution efficiencies or physical quantities for each combination of task, robot, and posture. If the resource is a robot, the search unit 13 may extract one or more robots that correspond to the search criteria for each of two or more target tasks, and perform a computer simulation for each possible combination of the target task and robot to identify the combination of the target task and robot that maximizes execution efficiency.
[0076] The search unit 13 may extract resources corresponding to the search criteria by referring to each of one or more copies 112 corresponding to one or more parallel nodes located in a layer higher than the subtree corresponding to the target task. For example, assume that a behavior tree includes a first parallel node, a second parallel node located in a layer lower than the first parallel node, and a subtree connected to the second parallel node, and that the target task corresponds to that subtree. In this case, the search unit 13 refers to a first copy associated with the first parallel node and a second copy associated with the second parallel node in response to a search criteria for the target task. The search unit 13 acquires resources that are commonly extracted in the first and second copies. That is, if a resource that matches the search criteria and is not in a busy state is extracted in both the first and second copies, the search unit 13 finally acquires the resource.
[0077] In addition to the first and second copies, the search unit 13 may further refer to other copies 112 located on a search path from the second parallel node to the highest parallel node. When the search unit 13 has extracted a resource that meets the search criteria and is not in use in all copies 112 on the search path, the search unit 13 may ultimately acquire the resource. In other words, the search unit 13 may acquire a resource that is commonly extracted in all copies 112 on the search path.
[0078] When referencing two or more copies corresponding to two or more parallel nodes, the search unit 13 may search for each copy 112 along a search path, from the subtree corresponding to the target task toward the top-level parallel node. That is, the search unit 13 may search for each copy 112 in order from the lower layer to the upper layer of the behavior tree 200. In this case, both the first copy and the second copy are located on the search path, and the search unit 13 refers to the second copy and then the first copy. By referring to each copy 112 in this order, the search unit 13 can terminate the search when it is determined midway along the search path that there are no resources to allocate to the target task.
[0079] As shown in step S13, the subsequent processing differs depending on whether the search unit 13 has extracted a resource from the resource information. If the search unit 13 has extracted at least one resource (YES in step S13), the processing proceeds to step S14. If the search unit 13 has not extracted a resource (NO in step S13), the processing skips steps S14 and S15 and proceeds to step S16.
[0080] As shown in step S14, the subsequent processing varies depending on the number of extracted resources. If the search unit 13 extracts one resource ("=1" in step S14), the processing skips step S15 and proceeds to step S16. If the search unit 13 extracts two or more resources (">1" in step S14), the processing proceeds to step S15.
[0081] In step S15, the search unit 13 selects one resource from the two or more extracted resources.
[0082] In one example, the search unit 13 calculates the physical quantity required to execute the target task, i.e., the required physical quantity, for each of the two or more extracted resources based on the resource location and the execution location. For this process, the search unit 13 may use the execution location included in the search criteria, or may obtain the execution location provided by the task control unit 2 separately from the search criteria. The search unit 13 extracts one resource from the two or more resources based on the required physical quantity of each of the two or more resources. As in step S12, the required physical quantity may be expressed by various types of physical quantities, such as required time, travel distance, and power consumption. The required physical quantity may be the physical quantity required to travel from the resource location to the execution location, or may be the total physical quantity. The required physical quantity used in step S15 may be the same as or different from the required physical quantity used in step S12. In either case, the search unit 13 may calculate the required physical quantity using the method described above for step S12. The search unit 13 may select the resource with the smallest required physical quantity. Alternatively, the search unit 13 may calculate the execution efficiency of the target task based on the required physical quantity, and select the resource with the highest execution efficiency.
[0083] The search unit 13 may select one resource from two or more resources based on their usage history. For example, the search unit 13 may select the resource that has been used the least number of times, the resource that has been used the shortest total time, or the resource that has been used the longest time since its last use.
[0084] In step S16, the notification unit 14 notifies the task control unit 2 of the search results. The notification unit 14 notifies the task control unit 2 of the search results indicating one extracted or selected resource, i.e., a resource to be allocated to the target task. Alternatively, the notification unit 14 notifies the task control unit 2 of the search results indicating that no resource was extracted. In one example, the notification unit 14 notifies the task control unit 2 of the search results indicating a resource that was commonly extracted in the first copy and the second copy. Alternatively, the notification unit 14 may notify the task control unit 2 of the search results indicating a resource that was extracted in all copies 112 located on the search path from the second parallel node to the top-level parallel node.
[0085] The task control unit 2 obtains the search results. If a resource is allocated, the task control unit 2 executes the target task using the resource. The task control unit 2 updates the status of the allocated resource to an in-use state in each of at least one copy 112 located in a layer higher than the subtree to which the target task belongs. For example, the task control unit 2 updates the status of the resource to indicate that it is being used by the target task. Subsequently, the task control unit 2 executes the target task using the allocated resource. During this execution, the resource is occupied by the target task.
[0086] Thereafter, when the target task is terminated, the task control unit 2 releases the allocated resource. The task control unit 2 then updates the status of the resource to an available state in each of at least one copy 112 located in a layer higher than the subtree to which the target task belongs. In response to the release and update, the recording unit 18 registers in the usage history a record indicating that the resource was used by the target task during the time span from when the resource was occupied to when it was released. The task control unit 2 may terminate the target task and release the resource in a later cycle rather than in the current cycle of task control by the behavior tree 200.
[0087] If the search result indicates that no resource was extracted, the target task is not executed by the task control unit 2. In this case, in a cycle after task control by the behavior tree 200, a resource is allocated to the target task, and the task control unit 2 executes the target task using the resource.
[0088] (Updating Resource Information) As an example of a resource management method according to the present disclosure, a process for updating resource information will be described with reference to FIG. 8. FIG. 8 is a flowchart showing an example of this process as a process flow S2. That is, the resource management system 1 executes the process flow S2. The resource management system 1 may execute the process flow S2 while at least one task is being executed in the workspace 8. Alternatively, the resource management system 1 may execute the process flow S2 while no task is being executed in the workspace 8.
[0089] In step S21, the update unit 16 updates the resource information master 111 in response to a change occurring to multiple resources. Note that a change to multiple resources is not limited to a change to all of the multiple resources, but also includes a change to some of the multiple resources. A change to resources may be the addition or deletion of one or more resources in the workspace 8, or a change to an attribute (i.e., tag) of at least one resource present in the workspace 8. The update unit 16 may update the master 111 in accordance with instructions input by an administrator of the resource management system 1. Alternatively, the update unit 16 may obtain an event indicating a change to multiple resources in the workspace 8 and automatically update the master 111 in response to the event. In either case, the update unit 16 records the latest resource information in the master 111.
[0090] In step S22, the reflection unit 17 reflects the updated master 111 in each copy 112. The reflection unit 17 may sequentially reflect the updated master 111 in each copy 112, from the upper layer to the lower layer of the behavior tree 200. Alternatively, the reflection unit 17 may reflect the updated master 111 in each copy 112 regardless of the structure of the behavior tree. In either case, the latest resource information is also recorded in each copy 112 by the reflection process, and each copy 112 matches the master 111. When reflecting an added resource in each copy 112, the reflection unit 17 may set the initial value of the status of the resource to be usable.
[0091] In one example, the reflection unit 17 executes the reflection process in a cycle that starts after the master 111 is updated. In this example, when a parallel node 23 is called, the reflection unit 17 updates the copy 112 associated with the parallel node 23 to match the master 111. As described above, in the behavior tree 200, calls (ticks) propagate from the root node to individual execution nodes. Therefore, this example is one method of sequentially reflecting the updated master 111 in each copy 112 from the upper layer to the lower layer of the behavior tree 200. Assume that the behavior tree includes a first parallel node and a second parallel node located in a layer below the first parallel node. When the first parallel node is called, the reflection unit 17 reflects the update of the master 111 of the resource information in the first copy associated with the first parallel node. When the second parallel node is subsequently called, the reflection unit 17 refers to the reflected first copy and updates the second copy associated with the second parallel node to match the first copy; that is, the reflection unit 17 reflects the updates to the master 111 of the resource information in the second copy based on the reflected first copy.
[0092] [Modifications] Various examples of the present disclosure have been described above in detail. However, the technical matters of the present disclosure are not limited to the above examples. Various modifications are possible to the technical matters of the present disclosure without departing from the gist thereof.
[0093] The search unit may extract resources that meet the search criteria without referring to the status. In this case, the task control unit may obtain the status of the extracted resources from the memory unit or a storage device external to the resource management system and determine whether the resources can be used to execute the target task based on the status. The resource information stored in the memory unit does not need to include the status.
[0094] In order to process multiple tasks by multiple task management units in parallel or in parallel, other techniques such as a state machine may be used instead of a behavior tree. Alternatively, parallel processing and concurrent processing may be managed by two or more management techniques, such as a combination of a behavior tree and a state machine.
[0095] The resource management system does not have to include a data management unit. For example, a computer system separate from the resource management system may update or reflect resource information.
[0096] The resource information may be stored in a distributed manner by a master and copies, or may be stored in a single storage area. That is, the resource information may be managed centrally by a single storage area. The storage unit may not store the usage history, and in this regard, the resource management system may not include a recording unit.
[0097] The hardware configuration of the system is not limited to a configuration in which each functional module is realized by executing a program. For example, at least some of the functional modules may be configured by logic circuits specialized for the functions, or may be configured by an ASIC (Application Specific Integrated Circuit) that integrates the logic circuits.
[0098] The processing steps of the method executed by at least one processor are not limited to the above examples. For example, some of the steps or processes described above may be omitted, or the steps may be executed in a different order. Furthermore, any two or more of the steps described above may be combined, or some of the steps may be modified or deleted. Alternatively, other steps may be executed in addition to the steps described above.
[0099] When comparing the magnitude of two numbers within a computer system or computer, either of the two criteria "greater than or equal to" and "greater than" can be used, or either of the two criteria "less than or equal to" and "under".
[0100] [Supplementary Note] As can be seen from the various examples above, the present disclosure includes the following aspects: (Supplementary Note 1) A resource management system comprising: a storage unit that stores resource information indicating a plurality of resources used by a plurality of tasks, the resource information including, for each of the plurality of resources, at least one tag indicating at least one attribute of the resource; a reception unit that receives search conditions for the resources to be used to execute a target task, the target task being one of the plurality of tasks, from a task control unit that controls the target task, the target task being one of the plurality of tasks; a search unit that extracts, from the resource information, resources having one or more tags corresponding to the search conditions; and a notification unit that notifies the task control unit of a search result indicating the extracted resources, the task control unit executing the target task using the extracted resources based on the search results. (Supplementary Note 2) The resource management system according to Supplementary Note 1, wherein the resource information further includes, for each of the plurality of resources, a status indicating a current state of the resource, the status being set based on a plurality of options including at least an in-use state indicating that the resource is being used, and the search unit extracts the resources having one or more tags corresponding to the search conditions and whose status is not the in-use state. (Supplementary Note 3) The resource management system according to Supplementary Note 1 or 2, wherein the plurality of resources include one or more robots that execute the target task with a motion. (Supplementary Note 4) The resource management system according to any one of Supplementary Notes 1 to 3, wherein the at least one tag includes a tag indicating a resource position that is a location related to the resource, the search condition includes an execution position that is a location for executing the target task, and the search unit extracts the resource having the tag that indicates the resource position that corresponds to the execution position.(Supplementary Note 5) The resource management system according to Supplementary Note 4, wherein, when extracting the resources having the tags indicating the resource positions corresponding to the execution positions, the search unit calculates, for each of the plurality of resources, a physical quantity required to execute the target task based on the execution position and the resource positions, and extracts the resources based on the physical quantities of each of the plurality of resources. (Supplementary Note 6) The resource management system according to any one of Supplements 1 to 5, wherein, when two or more resources having the one or more tags corresponding to the search condition have been extracted, the search unit selects one resource from the two or more resources, and the notification unit notifies the search result indicating the selected one resource. (Supplementary Note 7) The resource management system according to Supplementary Note 6, wherein the storage unit further stores usage histories of the plurality of resources, and the search unit selects the one resource from the two or more resources based on the usage history. (Supplementary Note 8) The resource management system according to Supplementary Note 6, wherein the at least one tag includes a tag indicating a resource location that is a place related to the resource, and the search unit calculates, for each of the two or more resources, a physical quantity required to execute the target task based on the resource location and an execution location that is a location for executing the target task, and selects the one resource from the two or more resources based on the two or more physical quantities corresponding to the two or more resources. (Supplementary Note 9) The resource management system according to any one of Supplementary Notes 1 to 8, wherein the search unit receives two or more search conditions corresponding to two or more of the target tasks, and extracts, for each of the two or more target tasks, the resources having the one or more tags corresponding to the search conditions so as to increase execution efficiency of the two or more target tasks.(Supplementary Note 10) A resource management system according to any one of Supplementary Notes 1 to 9, wherein the task control unit, when controlling two or more target tasks based on a behavior tree, connects to one parallel node and executes two or more subtrees corresponding to the two or more target tasks, and in the execution of each of the two or more subtrees, generates the search condition for the target task corresponding to that subtree, and passes the generated search condition to the reception unit. (Supplementary Note 11) The resource management system according to Supplementary Note 10, wherein the behavior tree includes at least a first parallel node, a second parallel node located at a lower layer than the first parallel node, and the two or more subtrees connected to the second parallel node and corresponding to the two or more target tasks, the storage unit stores a first copy that is a copy of the resource information in association with the first parallel node, and stores a second copy that is a copy of the resource information in association with the second parallel node, the reception unit receives search conditions for the resources to be used to execute the target task corresponding to one of the two or more subtrees, the search unit refers to both the first copy and the second copy, and extracts from the resource information the resources having the one or more tags that correspond to the search conditions, and the notification unit notifies the search result indicating resources extracted in common in the first copy and the second copy. (Supplementary Note 12) The resource management system according to Supplementary Note 11, further comprising: an update unit that, when a change occurs in the plurality of resources, updates the resource information based on the change; and a reflection unit that reflects the update of the resource information in the first copy and the second copy. (Supplementary Note 13) The resource management system according to Supplementary Note 12, wherein, when the first parallel node is called, the reflection unit reflects the update in the first copy, and when the second parallel node is called, the reflection unit reflects the update in the second copy based on the reflected first copy.(Supplementary Note 14) A resource management method executed by a resource management system having at least one processor, comprising: a step of storing resource information indicating a plurality of resources used by a plurality of tasks, the resource information including at least one tag indicating at least one attribute of the resource for each of the plurality of resources; a step of receiving search conditions for the resources to be used to execute a target task, which is one of the plurality of tasks, from a task control unit that controls the target task; a step of extracting from the resource information the resources having one or more tags corresponding to the search conditions; and a step of notifying the task control unit of a search result indicating the extracted resources, wherein the task control unit executes the target task using the extracted resources based on the search result. (Supplementary Note 15) A resource management program that causes a computer to execute the steps of: storing resource information indicating a plurality of resources used by a plurality of tasks, and including, for each of the plurality of resources, at least one tag indicating at least one attribute of the resource; receiving search conditions for the resources to be used to execute a target task, which is one of the plurality of tasks, from a task control unit that controls the target task; extracting from the resource information resources having one or more tags corresponding to the search conditions; and notifying the task control unit of search results indicating the extracted resources; and the task control unit executing the target task using the extracted resources based on the search results.
[0101] According to Supplementary Notes 1, 14, and 15, resource information including at least one tag for each resource is stored in advance in a storage unit. When search conditions for resources required to execute a target task are received from a task control unit, resources having tags corresponding to the search conditions are extracted and notified to the task control unit. The task control unit executes the target task using the allocated resources. This mechanism makes it possible to flexibly allocate resources required for task execution to the task. Furthermore, it is possible to efficiently execute individual tasks while quickly adapting to changes in the work environment, such as an increase or decrease in resources. In addition, since there is no need to uniquely define the relationship between tasks and resources in advance, it is possible to deal with an increase or decrease in the number of tasks to be executed, and the burden of managing tasks and resources can be reduced even when there are a large number of tasks.
[0102] According to Supplementary Note 2, resources are extracted so as to avoid resources that are in use, so that available resources can be reliably assigned to tasks.
[0103] According to Supplementary Note 3, a robot that performs a task by performing an action that involves a change in position or posture can be dynamically assigned to the task depending on the situation. For example, when building a system that includes a robot, it is common to build the system by regarding the robot as the center and assigning tasks to that robot. In this case, the cost of building a complex system that takes into account the combination of various robots, such as single-function robots and multi-function robots, becomes high. According to Supplementary Note 3, by regarding the robot as a resource and assigning attributes such as the functions possessed by the robot using the concept of tags, various costs, such as the labor, expense, and time required for system construction, can be reduced.
[0104] According to Supplementary Note 4, resources are extracted taking into consideration the positional relationship between the task and the resource, so the range of motion of the robot can be taken into consideration as a positional relationship, and resources appropriate for executing the task can be assigned to the task.
[0105] According to Supplementary Note 5, resources are extracted taking into consideration the physical quantities required for the execution of a task, which are calculated based on the positional relationship between the task and the resource. Therefore, it is possible to identify appropriate resources and control the physical quantities required for the execution of a task. For example, it is possible to shorten the execution time and suppress the amount of power consumption.
[0106] According to Supplementary Note 6, when two or more resources that match the search criteria are extracted, one resource is selected and notified, eliminating the need for the task control unit to select a resource. This mechanism reduces the processing load on the task control unit, allowing for more efficient allocation of resources to tasks.
[0107] According to Supplementary Note 7, when two or more resources are extracted, the resources are selected taking into consideration the past usage status of each resource, thereby making it possible to suppress imbalances in the load between resources.
[0108] According to Supplementary Note 8, when two or more resources are extracted, one resource is selected in consideration of the physical quantity required for executing the task, which is calculated based on the positional relationship between the task and the resource. Therefore, by selecting an appropriate resource, it is possible to control the physical quantity required for executing the task. For example, it is possible to shorten the execution time or suppress the amount of power consumption.
[0109] According to Supplementary Note 9, resources are extracted for each of two or more target tasks so that the execution efficiency of the target tasks is increased. Therefore, resources can be dynamically allocated to each task depending on the situation, and each task can be executed efficiently.
[0110] According to Supplementary Note 10, in task control based on a behavior tree, resources are dynamically allocated to tasks depending on the situation, and therefore multiple tasks can be executed efficiently while using resources efficiently.
[0111] According to Supplementary Note 11, resources extracted in common from multiple copies of resource information corresponding to multiple parallel nodes are notified to the task control unit, so that resources not used by any of multiple tasks managed by the behavior tree can be reliably extracted and assigned to a task.
[0112] According to Supplementary Note 12, when resource information is updated, the update is reflected in each copy associated with a parallel node. This mechanism ensures that multiple copies of resource information distributed across multiple parallel nodes can be updated.
[0113] According to Supplementary Note 13, when resource information is updated, two copies of the resource information corresponding to two hierarchically arranged parallel nodes are updated from the upper layer to the lower layer of the behavior tree, triggered by the invocation of the parallel node. This mechanism makes it possible to efficiently update multiple copies of resource information that are distributed across multiple parallel nodes.
[0114] 1...resource management system, 2...task control unit, 3...tree management system, 11...storage unit, 12...reception unit, 13...search unit, 14...notification unit, 15...data management unit, 16...update unit, 17...reflection unit, 18...recording unit, 111...master, 112, 291 to 294...copy, 200...behavior tree, 202, 212, 215, 232...parallel nodes.
Claims
1. A resource management system comprising: a memory unit that stores resource information indicating a plurality of resources used by a plurality of tasks, and including, for each of the plurality of resources, at least one tag indicating at least one attribute of the resource; a reception unit that receives search conditions for the resources to be used to execute a target task from a task control unit that controls a target task which is one of the plurality of tasks; a search unit that extracts from the resource information resources having one or more tags corresponding to the search conditions; and a notification unit that notifies the task control unit of search results indicating the extracted resources, wherein the task control unit executes the target task using the extracted resources based on the search results.
2. A resource management system as described in claim 1, wherein the resource information further includes a status indicating a current state of each of the plurality of resources, the status being set based on a plurality of options including at least an in-use state indicating that the resource is being used, and the search unit extracts the resources having one or more tags corresponding to the search criteria and whose status is not the in-use state.
3. The resource management system according to claim 1 or 2, wherein the plurality of resources includes one or more robots that execute the target task by motion.
4. A resource management system as described in claim 3, wherein the at least one tag includes a tag indicating a resource location, which is a location related to the resource, the search criteria includes an execution location, which is a location for executing the target task, and the search unit extracts the resources having the tag indicating the resource location corresponding to the execution location.
5. A resource management system as described in claim 4, wherein, when extracting the resource having the tag indicating the resource position corresponding to the execution position, the search unit calculates, for each of the multiple resources, the physical quantity required to execute the target task based on the execution position and the resource position, and extracts the resource based on the physical quantity of each of the multiple resources.
6. A resource management system as described in claim 1 or 2, wherein the search unit, when extracting two or more resources having the one or more tags corresponding to the search conditions, selects one resource from the two or more resources, and the notification unit notifies the search result indicating the one selected resource.
7. The resource management system according to claim 6, wherein the storage unit further stores usage history of the plurality of resources, and the search unit selects the one resource from the two or more resources based on the usage history.
8. A resource management system as described in claim 6, wherein the at least one tag includes a tag indicating a resource location, which is a location related to the resource, and the search unit calculates, for each of the two or more resources, a physical quantity required to execute the target task based on the resource location and an execution location, which is a location for executing the target task, and selects the one resource from the two or more resources based on two or more of the physical quantities corresponding to the two or more resources.
9. A resource management system as described in claim 1 or 2, wherein the search unit receives two or more search conditions corresponding to two or more target tasks, and extracts, for each of the two or more target tasks, resources having the one or more tags corresponding to the search conditions so as to improve the execution efficiency of the two or more target tasks.
10. A resource management system as described in claim 1 or 2, wherein, when the task control unit controls two or more target tasks based on a behavior tree, the task control unit connects to one parallel node and executes two or more subtrees corresponding to the two or more target tasks, and in the execution of each of the two or more subtrees, generates the search condition for the target task corresponding to that subtree, and passes the generated search condition to the reception unit.
11. A resource management system as described in claim 10, wherein the behavior tree includes at least a first parallel node, a second parallel node located at a lower layer than the first parallel node, and the two or more subtrees connected to the second parallel node and corresponding to the two or more target tasks; the memory unit stores a first copy which is a copy of the resource information in association with the first parallel node, and stores a second copy which is a copy of the resource information in association with the second parallel node; the reception unit receives search conditions for the resources to be used for executing the target task corresponding to one of the two or more subtrees; the search unit refers to both the first copy and the second copy, and extracts from the resource information the resources having the one or more tags corresponding to the search conditions; and the notification unit notifies the search result indicating resources extracted in common in the first copy and the second copy.
12. The resource management system according to claim 11, further comprising: an update unit that updates the resource information based on a change when a change occurs to the plurality of resources; and a reflection unit that reflects the update to the resource information in the first copy and the second copy.
13. A resource management system as described in claim 12, wherein the reflection unit reflects the update in the first copy when the first parallel node is called, and reflects the update in the second copy based on the reflected first copy when the second parallel node is called.
14. A resource management method executed by a resource management system having at least one processor, comprising the steps of: storing resource information indicating a plurality of resources used by a plurality of tasks, and including at least one tag for each of the plurality of resources indicating at least one attribute of the resource; receiving search conditions for the resources to be used to execute a target task, which is one of the plurality of tasks, from a task control unit that controls the target task, the target task; extracting from the resource information the resources having one or more tags corresponding to the search conditions; and notifying the task control unit of a search result indicating the extracted resources, wherein the task control unit executes the target task using the extracted resources based on the search result.
15. A resource management program that causes a computer to execute the steps of: storing resource information indicating a plurality of resources used by a plurality of tasks, and including at least one tag for each of the plurality of resources indicating at least one attribute of the resource; receiving search conditions for the resources to be used to execute a target task, which is one of the plurality of tasks, from a task control unit that controls the target task, the target task; extracting from the resource information resources having one or more tags corresponding to the search conditions; and notifying the task control unit of search results indicating the extracted resources, wherein the task control unit executes the target task using the extracted resources based on the search results.
Citation Information
Patent Citations
Cell controller
JP1995056623A
Method and apparatus for decision of initial time limit
JP1995234898A
Method for allocation and scheduling of resource
JP1995262273A
Scheduling apparatus, scheduling method, and program
JP2006065796A
Apparatus for process organization, method and program therefor
JP2021170240A