Agent management system and method
The agent management system optimizes robot movement by dividing areas into control zones with local and central units, addressing computational challenges and enabling efficient, real-time path planning for multiple robots.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-05-25
- Publication Date
- 2026-03-25
AI Technical Summary
Existing methods for planning robot movements in areas with multiple robots require significant computational resources and time, especially when the number of robots is large, making real-time optimization challenging.
An agent management system that divides a management area into control areas, using local calculation units to determine movement paths within each area, and a central control unit to coordinate paths across areas, minimizing computation time and avoiding collisions.
Enables efficient movement planning for multiple agents with minimal computation time, ensuring collision-free paths and reduced computational load.
Smart Images

Figure 0007835617000012 
Figure 0007835617000013 
Figure 0007835617000014
Abstract
Description
Technical Field
[0001] The present invention relates to an agent management system and method for performing a movement route plan in an area where multiple types of agents exist.
Background Art
[0002] In order to solve the shortage of manpower in the conveyance of articles in a logistics warehouse or the conveyance between processes in a factory, the introduction of mobile robots (AGV: Automated Guided Vehicle, AMR: Autonomous Mobile Robot, etc.) is in progress.
[0003] In order to introduce such mobile robots, it is necessary to set a passage in the warehouse or factory where the robot can move (create a graph consisting of nodes and branches / edges, etc.). The finer this setting is, the higher the degree of freedom of the passage that the robot can select, and thus more efficient conveyance becomes possible. On the other hand, a large number of man-hours are required for the setting work. Furthermore, since the above-mentioned passage setting work is required every time the layout of the warehouse or factory is changed, the work of setting detailed passages places a great burden (engineering cost) on the operator who manages the warehouse or factory.
[0004] Regarding such problems, Patent Document 1 presents a method for calculating a route along which a plurality of robots (vehicles in Patent Document 1) move without designing a detailed passage. More specifically, according to the concept of model predictive control, control inputs (speed, angular velocity) for each robot are calculated so that each robot does not contact an obstacle (such as a pillar or wall in a building, a robot other than itself), and the current position and the target position of each robot are made as small as possible. Then, the movement route (position, orientation) is calculated by integrating the calculated control inputs.
Prior Art Documents
Patent Documents
[0005]
Patent Document 1
[0006] According to Patent Document 1, it is possible to calculate the path a robot takes to reach a target location without designing detailed aisle information within a warehouse or factory in advance. Furthermore, because the movement plan is calculated in chronological order, taking into account the dynamics of all robots, it is possible to generate a more efficient movement plan compared to an exclusive control method that controls robots to prevent multiple robots from entering the same space.
[0007] However, Patent Document 1 solves an optimization problem using the combined dynamics of all robots present in the target area. In formulating such optimization problems, it is known that the computational load increases rapidly as the number of robots increases. Therefore, if the method of Patent Document 1 is applied to an area with a large number of robots, it is expected that an enormous amount of time will be required for optimization calculations, making it difficult to plan the robot movements.
[0008] The present invention was made to solve the above-mentioned problems, and aims to provide an agent management system and method that can calculate a route plan for efficiently moving a large number of agents (a general term for robots, vehicles, etc.) in real time. [Means for solving the problem]
[0009] Based on the above, in the present invention, An agent management system comprising an agent that can move within a management area and a local calculation unit that determines a movement path for the agent from an initial position to a target position, wherein the management area is divided into a plurality of control areas, and the local calculation unit is provided for each of the divided control areas, and determines the movement path of the agent within the control area and provides the agent with a movement path, and when there is an agent located in a control area where the initial position and the target position are different, the first local calculation unit that manages the initial position among the plurality of local calculation units calculates all control areas from the initial position to the target position An agent management system characterized by the following operation: setting a central control area to be managed; determining the movement paths of all agents within the control area managed by the first local processing unit within the central control area; setting a movement path from the initial position to the target position for control areas not managed by the first local processing unit, assuming that no agents exist within that control area; transmitting the determination results to other local processing units in the central control area; and the other local processing units determining the movement paths of the agents managed by the other local processing units, based on the premise that the transmitted movement paths exist. This is what it means.
[0010] Based on the above, in the present invention, An agent management method for determining a movement path for an agent that can move within a management area from an initial position to a target position, wherein the management area is divided into a plurality of control areas, a local calculation unit is provided for each of the divided control areas, the local calculation unit determines the movement path for the agent within the control area and provides the agent with a movement path, and when there is an agent located in a control area where the initial position and the target position are different, the first local calculation unit, which manages the initial position among the plurality of local calculation units, sets up a central control area that oversees all control areas from the initial position to the target position, determines the movement paths for all agents within the control area managed by the first local calculation unit within the central control area, sets a movement path from the initial position to the target position for control areas not managed by the first local calculation unit, assuming that there are no agents in that control area, transmits the determination result to the other local calculation units in the central control area, and the other local calculation units determine the movement paths for the agents managed by the other local calculation units, based on the premise that the transmitted movement paths exist. This is what it means. [Effects of the Invention]
[0011] According to the present invention, it becomes possible to calculate a travel path that enables efficient movement without contact between a large number of agents, with minimal computation time. [Brief explanation of the drawing]
[0012] [Figure 1] A diagram showing an example configuration of an agent management system according to an embodiment of the present invention. [Figure 2] A diagram showing an example of the configuration of a management area when a logistics warehouse is designated as the management area. [Figure 3a] A diagram showing an example configuration of a computer system consisting of a management unit and a local processing unit. [Figure 3b] A diagram showing an example configuration of a computer system consisting of a management unit and a local processing unit. [Figure 3c] A diagram showing an example configuration of a computer system consisting of a management unit and a local processing unit. [Figure 4a] A diagram showing a mobile robot as an example of an agent. [Figure 4b] A diagram showing an example configuration of the agent's state detection unit. [Figure 4c] A diagram showing an example configuration of the agent's path tracking unit. [Figure 5] A diagram showing an example of the configuration of the route planning unit. [Figure 6a] This figure shows an example of map information assuming control area 100A in Figure 2. [Figure 6b] Figure 6a shows an example where the agent's current location and target location are superimposed. [Figure 6c] A diagram showing an example of a global path obtained using Dijkstra's algorithm. [Figure 7a] This diagram shows an example of how to determine the virtual target position when there is only one agent. [Figure 7b] This diagram shows an example of how to determine the virtual target position when there is only one agent. [Figure 7c] This diagram shows an example of a corrected global route calculated when there is only one agent. [Figure 8] A diagram illustrating the conditions under which the two agents will not come into contact. [Figure 9] A diagram showing an example of an embodiment in which an administrative area is divided into control areas. [Figure 10] A diagram showing a situation where movement across control areas is required. [Figure 11a] A diagram showing that map information is integrated with two control areas. [Figure 11b] A diagram showing the route of control area 100B determined by local operation unit S1. [Figure 11c] A diagram showing the route of control area 100B determined by local operation unit S2. [Figure 11d] A diagram showing the finally determined overall route. [Figure 12a] A diagram showing another finally determined overall route. [Figure 12b] A diagram showing another route of control area 100B determined by local operation unit S2. [Figure 13a] A diagram showing the process when the number of divisions of the administrative area is large. [Figure 13b] A diagram showing the process when the number of divisions of the administrative area is large. [Figure 13c] A diagram showing the process when the number of divisions of the administrative area is large. [Figure 14] A flowchart showing the processing content of the route planning system. [Figure 15] A diagram showing an example of the configuration of an administrative area when a parking lot is used as the administrative area. [Figure 16] A diagram showing an example of a method for dividing a control area when a parking lot is the target. [Figure 17a] A diagram showing an example of a route plan generated when the present invention is applied to a parking lot. [Figure 17b] A diagram showing an example of a route plan generated when the present invention is applied to a parking lot. [Figure 17c] A diagram showing an example of a route plan generated when the present invention is applied to a parking lot.
Embodiments for Carrying Out the Invention
[0013] The agent management system calculates the movement plan (time series of coordinates, attitude, velocity, etc.) for all agents (controllable mobile objects such as robots and vehicles) within a management area (e.g., a warehouse or parking lot), and manages the agents to ensure they follow this path plan. Hereinafter, embodiments of the agent management system of the present invention will be described with reference to the drawings. [Examples]
[0014] Figure 2 shows an example of the configuration of a management area when a logistics warehouse is used as the management area. In the embodiments of the present invention described below, the explanation will assume that there are four agents A (A1 to A4) within the management area 100 shown in Figure 2 and that they are acting accordingly.
[0015] In Figure 2, the management area 100 is assumed to be divided into two control areas, control area 100A and control area 100B, and the four agents A (A1 to A4) are allowed to freely travel along the passageway 102, excluding impassable areas 101 such as shelves and pillars, from their current position to target positions Tg (Tg1 to Tg4). It should be noted that the management area 100 to which the present invention can be applied is assumed to be divided into multiple control areas, but other conditions may be arbitrary.
[0016] Figure 1 shows an example configuration of an agent management system according to an embodiment of the present invention. The agent management system consists of a management unit M, a plurality of local calculation units S (S1, S2), and one or more agents A (A1 to A4) managed by the local calculation units S. The number of local calculation units S (S1, S2) is the same as the number of divisions of the management area 100 (number of control areas). Local calculation unit S1 manages agents A1 and A2 in control area 100A, and local calculation unit S2 manages agents A3 and A4 in control area 100B.
[0017] The components of the agent management system in Figure 1 are as follows. First, the management unit M has the functions of a task management unit M11 and a communication unit M12. Of these, the task management unit M11 manages tasks for agents A (A1 to A4) within the management area 100. A task refers to a series of operations, for example, for a robot in a logistics warehouse to retrieve items from a specific shelf and transport them to the outbound area. However, in this invention, only a part of the task, such as moving from an arbitrary initial position to an arbitrary target position Tg (Tg1 to Tg4), is handled. Therefore, the task management unit M11 only needs to have the function of calculating the target position Tg for the current position of each agent A. In Figure 2, the same numerical value is used to indicate agent A and its target position Tg. That is, for example, the target position of agent A1 is denoted as Tg1.
[0018] The communication unit M12 has the function of transmitting the target position Tg calculated by the task management unit M11 to the local calculation units S (S1, S2). In addition, the communication unit M12 can communicate with the communication units S12 and S22 of each local calculation unit S (S1, S2) to collect the current position of agent A within the management area 100.
[0019] Next, the local arithmetic units S(S1, S2) in Figure 1 will be described. The local arithmetic units S(S1, S2) consist of communication units S12, S22 and route planning units S11, S21. The local arithmetic units S(S1, S2) communicate with the communication unit M12 of the management unit M and the communication units A11, A21, A31, A41 of agent A via the communication units S12, S22. Communication also takes place between the local arithmetic units S(S1, S2).
[0020] With this communication channel configuration, the local computing units S (S1, S2) transmit the current location of each agent A to the management unit M, and conversely, receive task information for each agent A from the management unit M. Based on this, the route planning units S11 and S21 plan routes for executing the tasks specified by the management unit M and transmit the planned routes to each agent A under the local computing units S (S1, S2).
[0021] Regarding the divided control areas 100A and 100B shown in Figure 2, local calculation unit S1 is responsible for route planning for agents A1 and A2 in control area 100A, and local calculation unit S2 is responsible for route planning for agents A3 and A4 in management area 100B, thus sharing the load and responsibilities.
[0022] Note that in Figure 1, the communication units of the management unit M and agents A (A1-A4) are not configured to communicate directly, but such a configuration is also acceptable.
[0023] In Figure 1, both the management unit M and the multiple local processing units S (S1, S2) can be implemented using a computer (server), and various computer system configurations are applicable to make this possible.
[0024] For example, since the management unit M manages the operation of the entire management area 100, it can be implemented on the central server, meaning it can have a leader (management unit M) and follower (multiple local processing units S (S1, S2)) configuration as shown in Figure 3a.
[0025] For example, as shown in Figure 3b, instead of having a central server, one edge server is used that implements the functions of the management unit M and the local computing unit S1. Local arithmetic units S2, S3 The edge servers on which the functions are implemented may be arranged in the same configuration. In the configuration shown in Figure 3b, the functions of the management unit M may be handed over to another edge server depending on the time. With such a configuration, if a particular edge server fails, it is only necessary to stop the operation of the control area that that server is responsible for, thus avoiding a situation where the operation of the entire management area is stopped.
[0026] Furthermore, if a single server has multiple computing resources (e.g., CPUs), then each computing resource can be managed by the management unit M. Local arithmetic unit S1It is also possible to configure it so that the processing is assigned to each core. This is an example of how, in a multi-core computer, each core is assigned to handle the processing of the management unit and the local processing unit.
[0027] Returning to Figure 1, next we will explain Agent A (A1-A4). Multiple Agent A units have basically the same configuration and consist of communication units A11, A21, A31, and A41, state detection units A12, A22, A32, and A42, and path tracking units A13, A23, A33, and A43.
[0028] Agent A is a mobile robot, such as the one shown in Figure 4a, equipped with the above functions. It represents the management area 100 on a two-dimensional coordinate system (X-Y coordinates) and performs position control, including the attitude (angle θ) of the mobile robot, enabling the mobile robot to move to the target position Tg. The details of each part of Agent A will be described below. However, since Agent A is basically configured identically, Agent A1 will be used as a representative example unless there is a specific need to distinguish between them.
[0029] First, the communication unit A11 (A21, A31, A41) corresponds to a terminal that enables wireless communication such as Bluetooth and Wi-Fi.
[0030] The state detection unit A12 (A22, A32, A42) shown in Figure 4b corresponds to sensors that acquire the agent's state (position, velocity, etc.) and calculation functions that perform calculations according to the sensor output. If agent A is a robot equipped with wheels as shown in Figure 4a, the state detection units A12, A22, A32, and A42 are equipped with sensors such as encoder A121, inertia sensor A122 (IMU: Inertia Measurement Unit), and LiDARA123 (Light Detection And Ranging). Note that the sensor configuration will differ depending on the type of agent (robot, automobile, etc.), and it is not necessarily required to have these sensors.
[0031] By using the axle rotation speed and wheel diameter detected by encoder A121, the vehicle robot's movement speed v can be calculated in the speed conversion unit A124. Furthermore, by integrating (sensor fusion) the detection results from encoder A121, inertial sensor A122, and LiDARA123 in the self-position calculation unit A125, the vehicle robot's position (x, y) and orientation θ can be calculated. The angular velocity ω can be obtained from inertial sensor A122. Note that the self-position calculation unit A125 can be implemented using a technology known as SLAM (Simultaneous Localization and Mapping), so a detailed explanation is omitted.
[0032] The various data acquired or calculated by the state detection unit A12 can be transmitted to the communication unit A11 and the route tracking unit A13 at appropriate timings (at predetermined intervals or upon receiving a request).
[0033] As shown in Figure 4c, the route tracking unit A13 consists of functions that control the operation of agent A so that agent A follows the route plan received via the communication unit A11. The route tracking unit A13 consists of a follow control unit A131 and an actuator control unit A132.
[0034] The tracking control unit A131 performs feedback control to minimize the difference between the target path r(t) and the state p(t), based on the path plan received via the communication unit A11, i.e., the vector r(t)=[xr(t) yr(t) θr(t)] (where t is time), and the agent state p(t)=[x(t) y(t) θ(t)] received from the state detection unit A12.
[0035] Tracking control unit A131 The control values calculated by the system vary depending on the agent configuration. For example, in the case of the differential two-wheeled robot shown in Figure 4a, the rotational speeds of the left and right wheels become the control values. In the case of an automobile, the steering amount and acceleration / deceleration (accelerator and brake amounts) become the control values.
[0036] The actuator control unit A132 has the function of controlling the actuator to achieve the control value calculated by the tracking control unit A131. In the case of the differential two-wheeled robot described above, the electric motors that drive the left and right wheels correspond to the actuators, and the actuator control unit corresponds to the function of controlling the speed so that the electric motors rotate at the desired speed.
[0037] As described above, the route planning system of the present invention is equipped with a local calculation unit S for each control area 100A and 100B, which are divisions of the management area 100. In other words, as shown in Figure 2, when the management area 100 is divided into two control areas 100A and 100B, two local calculation units S1 and S2 are used as the local calculation unit S. Each local calculation unit S1 and S2 performs route planning for the corresponding control areas 100A and 100B.
[0038] As mentioned above, the local arithmetic unit S may be implemented on individual computers (servers, PCs) or on different computing resources on a single computer. In other words, it is possible to assign local arithmetic units S1 and S2 to different CPUs on the same computer. In such an embodiment, when the same memory area can be accessed from different CPUs, each local arithmetic unit can be considered to be communicating via the communication unit S12.
[0039] Furthermore, the management unit M may also be implemented on the same computer, as long as the functional arrangement does not increase the processing load of the local arithmetic unit S. For example, the management unit M and the local arithmetic unit S may be implemented on a single computer. In such a configuration, the processing of the management unit M is Local arithmetic unit S It is necessary to ensure that this does not affect the computing resources.
[0040] In this invention, a computer equipped with the functions of a management unit M and a local calculation unit S as described above is collectively referred to as a path planning device.
[0041] The route planning units S11 and S12, which are the main components of the route planning device, perform route planning for agents A (A1 to A4) within control areas 100A and 100B. Each agent A (A1 to A4) can calculate its own position using the state detection unit A12. Based on the calculated position information, it determines which control area 100A or 100B it belongs to and communicates with the local calculation units S1 and S2 of the corresponding control area 100A or 100B. For example, in the situation shown in Figure 2, agents A1 and A2 communicate with local calculation unit S1, and agents A3 and A4 communicate with local calculation unit S2.
[0042] As shown in Figure 5, the route planning unit S11 consists of a global route calculation unit S111 and a global route correction unit S112. The global route generation unit S111 calculates the global route for each agent A using a graph-based search method such as Dijkstra's algorithm.
[0043] The method for generating global routes in the global route generation unit S111 will be explained using Figures 6a, 6b, and 6c. Figure 6a is an example of map information assuming the control area 100A in Figure 2. In this example, branches (edges) are prepared so as to pass through the center of the passage 102, excluding the impassable area 101 within the target control area 100A, and nodes are provided at the intersections of each edge.
[0044] Figure 6b is a diagram in which the current positions p1 and p2 of agents A1 and A2, and the target positions Tg1 and Tg2 are superimposed on the map information of Figure 6a. Nodes are added to the current positions p1 and p2 of agents A1 and A2, and further nodes are added to the nearest neighbors between the added nodes at agent A1 and A2's current positions p1 and p2 and the edges in the map information, and edges are generated to connect these nodes.
[0045] With the above preparations in place, global paths gp1 and gp2 shown in Figure 6c can be generated, for example, by using Dijkstra's algorithm. Note that global paths gp1 and gp2 are only data that stores coordinates (x, y), and do not determine when (at what time) each coordinate is passed through.
[0046] Therefore, there are points in the diagram where the two global routes gp1 and gp2 intersect. Consequently, if the routes generated by the global route generation unit S111 are used, there remains a possibility that agents A1 and A2 will collide. To resolve this issue, the global route correction unit S112 performs route planning that takes into account the timing of passage through each route.
[0047] Furthermore, as mentioned above, while a simple map can be easily prepared, it cannot be expected to generate an efficient travel route due to the limited number of edges and nodes. In this invention, the global route correction unit S112 is used to solve this problem.
[0048] Next, we will explain how the function of the global path correction unit S112 is realized by model predictive control. In the following explanation, we will use the definition of equation (1), where pi is a vector containing the position and orientation of the i-th agent Ai, ri is the position of the i-th agent Ai on the global path gpi calculated by the global path generation unit S111 (hereinafter referred to as the virtual target position), and ei is the deviation between them. Here, k means the calculation step (time). Also, since only coordinate (x, y) information is available for the global path gpi except for the target position Tgi, the orientation θr of the intermediate position is set to an arbitrary value.
[0049]
number
[0050] Furthermore, for the sake of simplicity, it will be assumed from here on that each agent A operates according to the equation of motion in equation (2). Note that velocity vi and angular velocity ωi correspond to the control command values, and these are also the values calculated by the tracking control unit A131 of the path-following unit A13.
[0051]
number
[0052] Furthermore, the control command vector ui, which combines the velocity vi and angular velocity ωi of the i-th agent Ai, is defined by equation (3). Equation (4) is obtained by discretizing equation (2) by the sampling period Δt.
[0053]
number
[0054]
number
[0055] The global path correction unit S112 calculates a command vector ui(k) such that, at each time k, the deviation ei(k) between the position pi(k) of each agent and the virtual target position ri(k) on the global path gpi is minimized, without any collisions between multiple agents.
[0056] Here, we will first explain how to determine the virtual target position ri(k) when there is only one agent, using Figures 7a and 7b. For simplicity, the following explanation will use the example of a case where only the second agent, A2, exists.
[0057] In this embodiment, the virtual target position ri is set as a specific point on the global route rgi within the range reachable by the agent at any given time. Note that the final value of the virtual target position ri must be calculated to coincide with the final target position Tgi of the global route.
[0058] First, we determine the range that the robot can reach after a given time, starting from the agent's current position pi(k0). For the sake of simplicity, let's consider the case where the reachable range is given as a circle with radius a.
[0059] If we consider the current agent position pi(k0) as the center and define the intersection point of radius a and global path rgi as the virtual target position ri(k0), then the triangle shown in Figure 7a can be calculated as the virtual target position ri(k0).
[0060] When the virtual target position ri(k0) is determined, the evaluation function Ji in the model predictive control for moving from the current position pi(k0) to the virtual target position ri(k0) can be formulated as equation (5).
[0061]
number
[0062] Note that Qi and Ri are the weight matrices, and Np is the prediction step. In equation (5), the agent position pi(k) is updated by calculating (predicting) the future agent position from the current time k0 according to equation (4). Since equation (5) is a general model predictive control formulation, a detailed explanation is omitted.
[0063] In model predictive control, the optimal control input ui(k) is calculated at each time k to minimize the evaluation function Ji, so the path is not calculated directly. However, by substituting the obtained optimal control input ui(k) into equation (4), the agent's position x(k), y(k) and orientation θ(k) at each time k can be calculated. Time-series data of the calculated position and orientation (data from time k0 to Np steps ahead) can be generated in this way.
[0064] By utilizing the model predictive control of equation (5), the agent will calculate the shortest route to the virtual target position ri(k0), as shown in Figure 7b, as long as there is no possibility of the agent colliding with an obstacle. Furthermore, by repeating this calculation each time the agent's position changes, the virtual target position ri(k) is modified as shown in Figure 7c. In this way, the global path calculated by the global path calculation unit S111 is modified by the global path correction unit S112 into a more efficient travel path.
[0065] Here, as shown in Figure 7c, a path from the initial position pi(k0) to the target position Tgi can be generated only when the prediction step Np is sufficiently long. However, increasing the prediction step Np increases the computation time of the model predictive control. Therefore, in order to perform path planning in real time, it is desirable to use a method in which the calculation is performed repeatedly using the agent position pi(k) acquired at predetermined intervals as the initial position pi(k0), rather than calculating the path from the initial position pi(k0) to the target position Tgi all at once.
[0066] When calculating the virtual target position using the method described above, if the radius a is set to a small value, the trajectory of the corrected path calculated by the global path correction unit S112 will coincide with the global path rgi, and therefore, an improvement in travel efficiency may not be expected.
[0067] Next, we will explain how to determine the route plan for each agent when there are multiple agents. Up to this point, we have explained the operation of the global route correction unit S112 when there is one agent. Below, we will explain the operation of the global route correction unit S112 when there are multiple agents (N agents).
[0068] First, using the same method as described above for the case of one agent, the current position pi(k) and virtual target position ri(k0) are calculated for each agent. When there are N agents in the control area 101A, the evaluation function J for moving all N agents from their respective current positions to the virtual target positions can be formulated by equation (6).
[0069]
number
[0070] If multiple agents exist within the control area 101A, there is a possibility that the agents will collide with each other, so it is necessary to add a condition to prevent contact between them. As shown in Figure 8, if the width of the i-th agent is wi and its length is li, the agent can be enclosed by a circle with radius rai in equation (7). Also, the distance dij from the center coordinates of the i-th agent and the j-th agent can be calculated using equation (8). Therefore, if the constraint condition in equation (9) is met, it can be said that the i-th agent and the j-th agent will not come into contact.
[0071]
number
[0072]
number
[0073]
number
[0074] Therefore, by calculating the control input sequence U(k) = [u1(k) … uN(k)] that minimizes equation (6) under the constraint of equation (9), it is possible to calculate an efficient movement path that avoids collisions between agents.
[0075] By executing the processing of local calculation units S1 and S2 described above in each control area 100A and 100B, a route plan can be formulated for the management area 100 as a whole that avoids collisions with agent A and allows for highly efficient movement.
[0076] In this invention, the management area 100 is divided into control areas 100A and 100B, and independent local computing units S1 and S2 (computational resources) are allocated to each control area 100A and 100B. This simplifies the problem from performing optimization calculations for all agents A (four in Figure 2) in the entire management area 100 to performing optimization calculations for agents A (two in Figure 2) in each control area 100A and 100B, thereby achieving both optimization and reduced computation time.
[0077] This method is based on the fact that, if there is no interference between agents in control areas 100A and 100B, the sum of the optimal results for the entire management area 100 will match the sum of the optimization results for each of control areas 100A and 100B. Therefore, in order to always ensure optimality, it is desirable for the task management unit M11 of the management unit M to distribute tasks so as not to cross control areas 100A and 100B.
[0078] In Figure 2, control areas 100A and 100B are designed to equally divide the area of management area 100, but the control areas of the present invention are not limited to this division. The condition required for dividing control areas 100A and 100B is that the number of agents A present in control areas 100A and 100B does not exceed the computing resources of local processing units S1 and S2. For example, if the upper limit of the number of agents A that can be processed by local processing units S1 and S2 is 3, it is also possible to divide the control areas into different areas as shown in Figure 9. Furthermore, control areas 100A and 100B may be changed as appropriate during system operation, provided there are no physical constraints such as the effective range of the network connection (the range of radio waves for wireless communication, etc.).
[0079] Up until now, it was assumed that all agents A would perform tasks within the same control areas 100A and 100B. However, if the division of control areas 100A and 100B cannot be changed due to network connectivity issues, there may be tasks that cannot be executed without crossing control areas 100A and 100B. For example, if agent A1, as shown in Figure 10, is assigned a task to move to the rightmost shelf (target position Tg1) within management area 100, agent A1 needs to move from control area 100A to control area 100B.
[0080] Considering this situation, even if we solve the optimization problem that takes into account the conditions under which agents do not collide in control areas 100A and 100B, collision avoidance during movement across control areas 100A and 100B remains difficult. The following sections will describe methods for solving the above problem.
[0081] First, when a task occurs that spans control areas 100A and 100B, the task management unit M11 of the management unit M checks the connection of control areas from the control area where agent A, who is in charge of that task, is located to the control area where the target position Tg is located. In the example configuration shown in Figure 10, the current position is within control area 100A, and the target position Tg1 is within control area 100B. The connection path between them will go directly from control area 100A to control area 100B.
[0082] When a task occurs that spans multiple control areas, the task management unit M11 of the management unit M provides each local calculation unit S with a calculation priority to prioritize the calculation of the path plan for the control area at the initial location where the agent spanning multiple areas is located.
[0083] In other words, in the situation shown in Figure 10, the path plan for control area 100A in the local calculation unit S1 is calculated before the path plan for control area 100B in the local calculation unit S2.
[0084] The specific flow of route planning will be explained using Figures 11a, 11b, 11c, and 11d. When control area 100A and control area 100B are adjacent, the local calculation unit S1, which manages agent A1 in control area 100A, calculates route plans R1 and R2 for two agents, A1 and A2, in control area 100A, using map information that integrates the two control areas 100A and 100B shown in Figure 11a. However, in this route planning, only the actions of agents A1 and A2 in control area 100A are considered, and agents A3 and A4, which are originally located in control area 100B as illustrated in Figure 2, are not considered.
[0085] Subsequently, the local processing unit S1 provides the route R1 of agent A1 to the local processing unit S2 that controls the adjacent control area 100B. The provided route is shown in Figure 11b. Then, as shown in Figure 11c, the local processing unit S2 that manages and controls the control area 100B considers the received route R1 of agent A1 and calculates the route plans R3 and R4 for the two agents A3 and A4 within the control area 100B. In other words, the route planning for agents A3 and A4 within the control area 100B is performed under the constraint that they must adhere to (not change) the route R1 of agent A1, which has been prioritized.
[0086] The above process can be summarized as shown in equation (10). In other words, the local arithmetic unit S1 of control area 100A calculates the control input u that minimizes the evaluation function of equation (10) under the constraint condition (d12>r1+r2) for agents i=1 and i=2.
[0087]
number
[0088] On the other hand, the optimization problem handled by the local arithmetic unit S2 in control area 100B can be formulated by equation (11). Although control area 100B will have three agents simultaneously, equation (11) treats agent A1 as an obstacle with a known movement path, and considers the constraints (d14>r1+r4)(d13>r1+r3) to avoid it, solving the optimal control problem using the evaluation function J for two agents i=3 and i=4, and the constraint (d34>r3+r4).
[0089]
number
[0090] In other words, the actions of agent A1 are not treated as control variables (optimization parameters) in the local computing unit S2. By performing this process, both the local computing units S1 and S2 only need to deal with the optimization problem of two agents, thus reducing computation time.
[0091] Thus, Figure 11d shows the route plans R1, R2, R3, and R4 planned for all agents A1, A2, A3, and A4 in the final determined total control area.
[0092] Figures 12a and 12b show the route plan R1' generated for agent A1, which moves approximately parallel to the path near the boundary between control areas 100A and 100B.
[0093] In the situation shown in Figure 10, whether Agent A1 generates path R1 as shown in Figure 11a or path R1' as shown in Figure 112a, the path length will be approximately the same. However, in the path shown in Figure 11a, the agent moves diagonally near the boundary of the control area when the control area changes. Therefore, when the agent actually performs path-following control by the path-following unit A13, a following error may occur. Since the following error is not taken into account during path planning, depending on the following error, there is a possibility that agents may interfere with each other. On the other hand, if a path like the one shown in Figure 12a is generated, the operation does not change before and after the control area change (straight-line movement continues), so a following error is less likely to occur. Providing such a path can suppress the possibility of agents interfering with each other in the control area 100B.
[0094] In the above explanation, as shown in Figure 11a, the path from the initial position to the target position Tg is Extended control area Although it was intended to be solved in this way, generating such a path requires designing a large prediction step Np, which would require a lot of computation time. Therefore, it is desirable to shorten the prediction step Np and periodically recalculate the path plan, and if agent A1's current position enters control area 100B and the calculation unit S2 in control area 100B can solve the optimization calculation for three agents, then the calculation unit S2 should be modified to perform path planning for agents A1, A3, and A4.
[0095] The case where the number of divisions in the management area is large will be explained with reference to Figures 13a, 13b, and 13c. As shown in Figures 13a, 13b, and 13c, the same processing is performed even when the number of divisions in the management area is large. As shown in Figure 13a, in this case the management area 100 is divided into nine sections, from control area 100A to control area 100I.
[0096] Figure 13a assumes a situation where agent A1, located in control area 100A, has its target position Tg1 set to control area 100F. In other words, the starting point is control area 100A, and the target point is control area 100F. In this situation, first, the task management unit M11 of the management unit M calculates the shortest path connecting control area 100A and control area 100F.
[0097] Furthermore, when calculating the shortest path, the system determines whether or not to pass through a given area by considering the upper limit of the number of agents that can perform calculations, which is determined by the processing capacity of the calculation unit S corresponding to each control area.
[0098] For example, consider a scenario where control areas 100B and 100G, shown in gray in Figure 13b, already contain agents with a maximum number of agents that can be handled by the calculation unit S. In this case, the management unit M will calculate the shortest path connecting control areas 100A and 100F without passing through control area 100B, namely "100A → 100D → 100E → 100F". Such a shortest path search can be easily achieved using the graph-based approach shown in Figure 13c. More specifically, a graph can be prepared that does not place nodes in control areas with a large number of agents (100B, 100G), and the search can be performed using this graph.
[0099] Once the shortest path search is complete, the extended control area can be sequentially changed to "100A-100D", "100D-100E", and "100E-100F" depending on the current position of the agent moving within the control area, and the process can be carried out in the same way as when the two control areas mentioned above are adjacent.
[0100] In the above example, it was assumed that there was only one agent spanning multiple control areas, and that these agents were located in only one control area. Even if there are multiple agents spanning multiple control areas, the same process can be applied to enable movement to adjacent areas. However, in such a situation, the management department M needs to prioritize which agents to move first. This priority can be simply based on the lowest ID assigned to the agents, or it can be based on the longest distance the agents travel (distance from their current location to their target location).
[0101] Figure 14 shows a flowchart illustrating the processing steps of the route planning system. Of these processing functions FC, FC01 to FC08 and FC11 are processed by the management unit M, FC09 to FC10 and FC12 to FC16 are processed by the local calculation unit S, and FC17 is processed by agent A.
[0102] In this series of processes, first, the task management unit M11 in the processing function FC01 confirms the details of the work (task).
[0103] In processing function FC02, the communication unit M12 of the management unit M communicates with each local calculation unit S1 and S2 to collect location information of all agents A (A1-A4) in the management area 100. As mentioned above, it is also possible to configure the system so that the management unit M and each agent A communicate directly to collect location information. There is no priority order for processing functions FC01 and FC02; it is sufficient that each process is completed before proceeding to subsequent processes.
[0104] In processing function FC03, task management unit M11 determines target positions Tg(Tg1-Tg4) for each agent A(A1-A4) based on the current position and task content (destination) of each agent A(A1-A4).
[0105] In processing function FC04, the task management unit M11 determines control areas 100A and 100B based on agents A (A1-A4) that have established communication with the communication units S12 and S22 of each local calculation unit S1 and S2. There is no priority order for the processing of processing functions FC03 and FC04.
[0106] Processing function FC05 checks whether any agents A(A1-A4) need to move across control areas 100A and 100B, based on the correspondence between the destinations of each agent A(A1-A4) determined by processing functions FC03 and FC04 and control areas 100A and 100B. The processing of processing function FC05 is also executed by the task management unit M11.
[0107] Subsequently, a series of processes from processing function FC05 to processing function FC15 are performed for each control area 100A and 100B.
[0108] In processing function FC05, if there are agents that need to move across areas (Yes), the process transitions to processing function FC06; if there are no agents that need to move across areas (No), the process transitions to processing function FC14. If the business design is ideal (no movement across control areas occurs), it is expected that the process will always transition to processing function FC14.
[0109] When the system transitions to processing function FC14, it performs path planning for the agent by solving an optimization problem using equations (6) and (9) for each area. Once processing function FC14 is complete, the system transitions to processing function FC15, which will be described later.
[0110] When the system transitions to processing function FC06, it checks the connectivity between areas for agents that require movement across areas, enabling them to move from their initial position to their target position.
[0111] Processing function FC07 determines the priority of the control areas for which route calculations are performed, according to the connections of control areas 100A and 100B. The processing of processing functions FC06 and FC07 is executed by the management unit M and corresponds to the processing shown in Figure 10.
[0112] Processing function FC08 checks the processing priority of the target control area in the loop processing from processing functions FC05 to FC15. If the target control area has a higher priority than the adjacent control area (YES), the process transitions to processing function FC09. On the other hand, if the target control area has a lower priority than the adjacent control area (NO), the process transitions to processing function FC11. This branching ensures that path calculation is performed starting with the control area with the highest priority.
[0113] Processing function FC09 performs route planning targeting high-priority control areas. This corresponds to route planning in the extended control area in Figures 11b and 11d. This process Route planning unit S11 It will be executed at [location].
[0114] In processing function FC10, once route planning is complete, the calculated route plan is transmitted to the adjacent area. This process is performed in the communication unit S12 of the local calculation unit S1. Once route planning for the high-priority control area is completed in processing functions FC09 and FC10, the process transitions to processing function FC15.
[0115] Processing function FC15 checks if there are any control areas for which routing planning is not yet complete. If there are control areas for which routing planning is not yet complete (YES), the process returns to processing function FC05. If routing planning is complete for all control areas (NO), the process transitions to processing function FC16.
[0116] If NO is selected at the branch of processing function FC08, that is, if there is an agent movement from an adjacent control area, processing function FC11 is performed. Processing function FC11 checks whether the route calculation (processing function FC09) for a control area with a higher priority than the target control area is complete. If the route calculation (processing function FC09) for the higher priority control area is not complete (NO), the index i is changed and the process transitions to processing function FC08. If the route calculation (processing function FC09) for the higher priority control area is complete (YES), the process transitions to processing function FC12.
[0117] Processing function FC12 receives the agent's route plan calculated by the control area prioritized by processing function FC10. This processing is handled by a communication unit in a local arithmetic unit (e.g., S2) that is separate from the communication unit in the local arithmetic unit S (e.g., S1) that performed the processing of processing function FC10.
[0118] Processing function FC13 performs the agent's path planning by solving an optimization problem (equation (11)) that treats the agent's path plan received by processing function FC12 as moving obstacles.
[0119] Once the routing planning for the lower-priority control areas is completed in processing functions FC12 and FC13, the process transitions to processing function FC15.
[0120] When the process transitions to processing function FC16, the routing plan for all agents is completed in all control areas, so the routing plan is distributed from each processing unit to the agents.
[0121] In processing function FC17, each agent processes the received routing plan as follows: Route tracking units A13, A23, A33 Control is performed and movement begins. [Examples]
[0122] Example 2 describes a specific example of applying the present invention to route planning in a parking lot. Figure 15 shows an example of the configuration of a management area when the parking lot is designated as a management area.
[0123] The target parking lot (managed area) is assumed to be a facility parking lot situated between two roadways, with entrances and exits to the parking lot from each roadway. Furthermore, it is assumed that the vehicle (Agent A) using the parking lot in this embodiment is a connected autonomous vehicle (CAV) with communication capabilities.
[0124] The entire parking lot corresponds to the management area 100 in this invention. Agent A (CAV) that enters the parking lot (management area) communicates with the control server 103 (which has the functions of a management unit M and multiple local processing units S) and moves to a parking space according to the route plan provided by the control server 103.
[0125] The control server 103 manages the available spaces bi (b1-b4 in the example diagram) within the parking lot and guides each vehicle entering the lot to an available space bi. Furthermore, it also guides vehicles leaving the parking lot to the roadway. In Figure 15, the control server 103 is located within the facility, but it can be located anywhere as long as it can communicate with the management area 100. Also, while a configuration with one control server 103 corresponds to Figure 3c, as mentioned above, other configurations as shown in Figure 3 may also be used.
[0126] Figure 16 shows an example of how to divide a control area when targeting a parking lot. As shown in Figure 16, the operation of the route planning system will be explained using the example of agents A1 and A2 entering and agent A3 exiting from the lower exit. In this example, the management area 100 is divided into two control areas, control area 101A and control area 101B, and these control areas are fixed.
[0127] When agents A1 and A2 enter the management area 100, they begin communicating with the management server 103. Agent A3 also begins communicating with the management server 103 when the user has finished boarding or has begun to exit.
[0128] The task management unit M1 implemented on the management server 103 determines the target position Tgi according to the current position of each agent A, the available space bi, and the positional relationship to the exit.
[0129] In the situation shown in Figure 16, as shown in Figure 17a, the target position is the empty space that offers the shortest travel distance from the entry point. That is, the target position Tg1 for agent A1 is empty space b4, and the target position Tg2 for agent A2 is empty space b1. Agent A3 Set the target position Tg3 to the parking lot exit.
[0130] The map information (graph) of the parking lot in the situation shown in Figure 17a is generated as shown in Figure 17b. This can be automatically generated by placing an edge in the center of the aisle within the parking lot, placing a node at its intersection, adding nodes in the empty spaces, and placing a node at the intersection with the nearest edge, similar to the operation in Figure 6a which targets a logistics warehouse.
[0131] By using the graph in Figure 17b to generate a global route, a route plan like the one in Figure 17c can be easily generated using the same process as in the logistics warehouse example.
[0132] Although embodiments of the present invention have been described in detail above using logistics warehouses and parking lots as examples, it goes without saying that the applications of the present invention are not limited to these cases. For example, it can also be used to generate movement paths for transport vehicles in ports, or to generate movement paths for robots within theme parks. [Explanation of Symbols]
[0133] A(A1~A4): Agent A11, A21, A31, A41: Communication department A12, A22, A32, A42: State detection unit A13, A23, A33, A43: Route tracking unit M: Management Department M11: Task Management Department M12:Communication Department S(S1, S2): Local arithmetic unit S11, S21: Route Planning Section S12, S22: Communication department S111: Global path calculation unit S112: Global route correction unit
Claims
1. An agent management system comprising an agent that can move within a management area, and a local calculation unit that determines a movement path for moving the agent from an initial position to a target position, The management area is divided into a plurality of control areas, and the local calculation unit is provided for each of the divided control areas, and determines the movement path of the agent within the control area and provides the agent with the movement path. If there is an agent located in the control area where the initial position and the target position are different, The first local calculation unit, which manages the initial position among the multiple local calculation units, sets up a central control area that oversees all control areas from the initial position to the target position, determines the movement paths of all agents within the control area managed by the first local calculation unit within the central control area, and sets the movement paths from the initial position to the target position for control areas not managed by the first local calculation unit, assuming that no agents exist within that control area, and transmits the determination results to the other local calculation units of the central control area. The other local processing unit, assuming that a transmitted travel path exists, determines the travel path of the agent managed by the other local processing unit. It works in this way, An agent management system characterized by the following:
2. An agent management system comprising an agent that can move within a management area and a local calculation unit that determines a movement path for moving the agent from an initial position to a target position, The management area is divided into a plurality of control areas, and the local calculation unit is provided for each of the divided control areas, and determines the movement path of the agent within the control area and provides the agent with the movement path. The local calculation unit determines the movement path based on instructions from the task management unit, which manages the target position of the agent within the management area. The agent management system is characterized in that, when the task management unit updates the target position of each agent, it calculates the priority of the control areas to be passed through when assigning target positions that require passing through multiple control areas, such that the number of agents in each control area does not exceed the processing capacity of the local processing unit corresponding to that control area.
3. An agent management system comprising an agent that can move within a management area and a local calculation unit that determines a movement path for moving the agent from an initial position to a target position, The management area is divided into a plurality of control areas, and the local calculation unit is provided for each of the divided control areas, and determines the movement path of the agent within the control area and provides the agent with the movement path. An agent management system characterized in that it can change the division of a control area at any time, as long as the number of agents does not exceed the processing capacity of the local arithmetic unit corresponding to the control area.
4. An agent management system according to any one of claims 1 to 3, The agent includes a detection unit that acquires state quantities including its own position and velocity, a control unit that controls itself using the state quantities acquired by the detection unit, and a path-following unit that controls its own position acquired by the detection unit according to a movement path given by the local calculation unit. The agent management system is characterized in that the local calculation unit performs path calculations for the agents within the target control area, and performs path calculations such that it gives a higher evaluation as the position of the agent at an arbitrary step from the current time approaches the target position.
5. An agent management system according to claim 1, The local calculation unit determines the movement path based on instructions from the task management unit, which manages the target position of the agent within the management area. The task management unit is characterized in that, when updating the target position of each agent, it prioritizes assigning target positions within the control area where the target agent is located.
6. An agent management system according to claim 1, An agent management system characterized in that, when moving from a control area targeted by the first local processing unit to a control area targeted by the other local processing unit, the movement path at the boundary portion is planned so as not to involve a change of direction.
7. An agent management method for determining a movement path for an agent that can move within a management area from an initial position to a target position, The management area is divided into multiple control areas, and a local calculation unit is provided for each of the divided control areas, and the local calculation unit determines the movement path of the agent within the control area and provides the agent with the movement path. If there is an agent located in the control area where the initial position and the target position are different, The first local calculation unit, which manages the initial position among the multiple local calculation units, sets up a central control area that oversees all control areas from the initial position to the target position, determines the movement paths of all agents within the control area managed by the first local calculation unit within the central control area, and sets the movement paths from the initial position to the target position for control areas not managed by the first local calculation unit, assuming that no agents exist within that control area, and transmits the determination results to the other local calculation units of the central control area. An agent management method characterized in that the other local processing unit determines the movement path of the agent managed by the other local processing unit, on the premise that a transmitted movement path exists.
Citation Information
Patent Citations
Carrier system and method for searching carrier route
JP2003196780A
Route generation apparatus for mobile object
JP2012038011A
Setting update system and travelling vehicle control system
JP2015176497A
Traveling vehicle system and control method for traveling vehicle system
JP2019012500A
Multiple vehicle movement control method, movement controller, movement control system, program, and recording medium
JP2021077090A