Robot cluster scheduling method, device and equipment
By planning the initial task route of the robot cluster and updating the constraints, the complexity and communication overhead of the robot cluster scheduling method are solved, and more efficient task execution and robustness are achieved.
Patent Information
- Application Number
- CN202510360736.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-26
- Publication Date
- 2025-08-19
- Estimated Expiration
- 2045-03-26
AI Technical Summary
The existing robot cluster scheduling methods are more complex and have a high communication overhead, resulting in greater server pressure.
By obtaining the cluster information and task information of the robot cluster, planning the initial task route and judging conflicts, updating constraints, separating task route planning and conflict judgments, reducing computing complexity and reducing communication overhead.
Reduces computational complexity, improves the robustness of the solution, reduces server pressure, and enhances fault tolerance.
Smart Images

Figure CN119902446B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of cluster scheduling technology, and in particular to a robot cluster scheduling method, device and equipment. Background Art
[0002] Robot swarm scheduling involves the unified management and coordination of multiple robots that make up a swarm, enabling them to move in a coordinated manner within the same space, ensuring they complete their respective tasks without collision. Common robots include industrial robots used in manufacturing and production (such as articulated robots and Cartesian robots), service robots for household cleaning and care (such as companion robots, educational robots, and restaurant service robots), medical robots for medical treatment (such as surgical robots, rehabilitation robots, and remote diagnostic robots), and agricultural robots for agricultural production (such as planting robots, harvesting robots, and drone spraying systems).
[0003] As these robots execute their tasks, they must consider multiple aspects, including task allocation, path planning, obstacle avoidance, and communication for each robot. Existing robot swarm scheduling methods primarily include centralized scheduling, distributed scheduling, genetic algorithms, and reinforcement learning. Centralized scheduling relies on a central scheduler to collect status information from all robots and globally optimize task allocation and path planning based on this information. However, this approach relies heavily on the central scheduler, making it susceptible to single points of failure. The central scheduler also processes large amounts of data, which can affect the responsiveness and efficiency of the entire swarm. Furthermore, this scheduling approach incurs high communication overhead, requiring all robots to transmit status information to the central scheduler in real time, which increases the burden and latency on the communication network. In distributed scheduling, each robot is autonomous and completes its tasks through local communication. Even if some robots fail, others can continue to operate. However, each robot can only make decisions based on local information, making it difficult to achieve a globally optimal solution. Genetic algorithms optimize task allocation and path planning by simulating the processes of natural selection and genetic variation, and can find near-optimal solutions without prior knowledge. However, because they require simulating multiple generations of evolution, genetic algorithms require significant computational time. Reinforcement learning scheduling methods allow robots to learn optimal strategies to complete tasks through interaction with the environment. They can adapt to dynamically changing environments and task requirements, but they require a large amount of training data and time.
[0004] In summary, the existing robot cluster scheduling methods are highly complex and have large communication overhead, which leads to high server pressure. Summary of the Invention
[0005] The embodiments of the present application provide a robot cluster scheduling method, device and equipment to solve the problems of high complexity and large communication overhead of the robot cluster scheduling method in the prior art.
[0006] In the first aspect, an embodiment of the present application provides a robot cluster scheduling method, comprising: obtaining cluster information and task information of a robot cluster; wherein the task information includes task environment, obstacle information, task coordinates and constraints; executing a task planning step until there is no conflict between the initial task routes, and a global optimal route is obtained; wherein the task planning step comprises: planning an initial task route for the robot based on the cluster information and the task information; traversing the initial task route, and determining whether there is a conflict between the initial task routes; if there is a conflict between the initial task routes, updating the constraints at the conflict location; re-executing the task planning step for the robot corresponding to the initial task route with the updated constraints; and scheduling the robot cluster to perform the task based on the global optimal route.
[0007] In combination with the first aspect, in a possible implementation manner, the cluster information includes the number of robots in the robot cluster and the current position of each robot.
[0008] In combination with the first aspect, in a possible implementation, planning an initial task route for the robot based on the cluster information and the task information includes: executing a priority planning step until the state sequence table is traversed to obtain the initial task route of each robot; wherein the priority planning step includes: determining the current state and task coordinates of each robot based on the cluster information and the task information; wherein the current state is represented as (x, y, t), (x, y) represents the current position, and t represents the current time step; determining the actual path cost and the estimated minimum cost of each robot based on the current state and the task coordinates; determining a current heuristic value based on the actual path cost and the estimated minimum cost; determining the current priority of each robot based on the current heuristic value, and storing the current state of the robot in a state sequence table in order of the current priority; determining a target state in the state sequence table, updating the target state based on the robot's action, and updating the state sequence table based on the updated target state until the current position in the target state coincides with the task coordinates; backtracking the state sequence table to obtain the initial task route of the robot corresponding to the target state.
[0009] In combination with the first aspect, in a possible implementation method, before executing the priority planning step, it includes: obtaining the initial state of each robot and performing a legitimacy check on the initial state; setting the initial actual path cost of the initial state, and predicting the initial predicted minimum cost of the initial state; calculating the initial heuristic value of the initial state based on the initial actual path cost; and placing the initial state and the initial heuristic value into the state sequence table.
[0010] In combination with the first aspect, in a possible implementation, the updating of the target state based on the robot's action includes: defining a spatial action set of the robot according to all possible actions of the robot; traversing the spatial action set based on the target state to obtain multiple new positions; checking whether the new position is within a valid range, and checking whether the new position is constrained in the next time step of the current time step to determine the current action; and updating the target state based on the current action.
[0011] In combination with the first aspect, in a possible implementation method, the updating of the target state based on the robot's action also includes: determining the actual path cost of the updated target state; if the actual path cost of the updated target state is greater than or equal to the known optimal path cost to the current position of the updated target state, returning to the target state before the update; if the actual path cost of the updated target state is less than the known optimal path cost to the updated target state, setting the target state before the update as the parent state of the updated target state.
[0012] In combination with the first aspect, in a possible implementation, determining whether there is a conflict between the initial task routes includes: traversing the initial task routes of all robots to detect whether there is a vertex conflict and / or edge conflict therein.
[0013] In combination with the first aspect, in a possible implementation method, if there is a conflict between the initial task routes, the constraint conditions at the conflict point are updated, including: generating multiple child nodes based on each conflict, and applying opposing constraints to each child node respectively; and updating the constraint conditions of the corresponding robot according to the imposed opposing constraints.
[0014] In the second aspect, an embodiment of the present application provides a robot cluster scheduling device, including: an acquisition module for acquiring cluster information and task information of a robot cluster; wherein the task information includes task environment, obstacle information, task coordinates and constraints; a task planning module for executing task planning steps until there is no conflict between the initial task routes and a global optimal route is obtained; wherein the task planning steps include: planning an initial task route for the robot based on the cluster information and the task information; traversing the initial task route and determining whether there is a conflict between the initial task routes; if there is a conflict between the initial task routes, updating the constraints at the conflict location; an update module for re-executing the task planning steps for the robot corresponding to the initial task route with the updated constraints; and a task module for scheduling the robot cluster to perform tasks based on the global optimal route.
[0015] In a third aspect, an embodiment of the present application provides a device comprising: a processor; a memory for storing processor-executable instructions; and when the processor executes the executable instructions, implementing the method described in the first aspect or any possible implementation method of the first aspect.
[0016] One or more technical solutions provided in the embodiments of this application have at least the following technical effects or advantages:
[0017] The embodiments of the present application separate task route planning from route conflict determination. After planning the initial task routes for all robots, all initial task routes are subjected to conflict determination. This can separate tasks, reduce computational complexity, and enhance the scalability of the solution. Frequent communication between robots is also unnecessary, reducing communication overhead. Task planning steps are only re-executed for robots with updated constraints, which can improve the solution's fault tolerance and reduce computational overhead. This effectively addresses the high complexity and high communication overhead of existing robot cluster scheduling methods. This in turn reduces server pressure and improves the robustness of the solution. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following briefly introduces the drawings required for use in the embodiments of the present application or the description of the prior art. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0019] Figure 1 A flowchart of a robot cluster scheduling method provided in an embodiment of the present application;
[0020] Figure 2A flowchart for determining the current state and task coordinates of a robot based on cluster information and task information provided in an embodiment of the present application;
[0021] Figure 3 A schematic diagram of the structure of a robot cluster scheduling device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0022] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.
[0023] The following description of some of the technologies involved in the embodiments of this application is provided to facilitate understanding and should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications may be made to the embodiments described herein without departing from the scope and spirit of this application. Similarly, for the sake of clarity and conciseness, some descriptions of well-known functions and structures are omitted from the following description.
[0024] Figure 1 Flowchart of the robot cluster scheduling method provided by the embodiment of the present application, including steps 101 to 106. Figure 1 This is only an execution order shown in the embodiment of the present application, and does not represent the only execution order of the robot cluster scheduling method. If the final result can be achieved, Figure 1 The steps shown may be performed in parallel or reversed.
[0025] Step 101: Obtain cluster information and task information of the robot cluster. In the embodiment of the present application, the task information includes the task environment, obstacle information, task coordinates and constraints, and the cluster information includes the number of robots in the robot cluster and the current position of each robot.
[0026] Specifically, the task environment refers to the physical or virtual environment in which the robot performs the task, such as an outdoor environment, complex terrain, etc., and also includes the site boundary information of the task environment. Obstacle information mainly refers to static obstacles, including the position and size of static obstacles. Task coordinates are the position coordinates of the key points for completing the task. Constraints refer to the conditions that must be followed during the execution of the task, including time constraints (time to complete the task), robot performance constraints (battery power supply time), communication constraints (communication distance supported by the robot), safety constraints, etc. (robots must maintain a safety distance of at least 1 meter to avoid collisions), obstacle constraints (robot coordinates cannot coincide with fault coordinates), boundary constraints (cannot exceed the site boundary of the task environment), etc.
[0027] Step 102: Plan the initial task route for the robot based on the cluster information and task information. In the embodiment of the present application, the specific implementation process of step 102 is as follows: Figure 2 As shown, it includes steps 201 to 209, which are specifically as follows.
[0028] Step 201: Determine the current state and task coordinates of each robot based on the cluster information and task information. In this embodiment of the application, the current state is represented by (x, y, t), where (x, y) represents the current position of the robot and t represents the current time step.
[0029] In addition, before executing step 201, the following steps may be performed: The initial state of each robot is obtained and the initial state is checked for validity. The initial actual path cost of the initial state is set, and the initial predicted minimum cost of the initial state is predicted. The initial heuristic value of the initial state is calculated based on the initial actual path cost. The initial state and the initial heuristic value are placed in the state sequence table.
[0030] Specifically, before starting a task, the initial state (x0, y0, 0) of each robot in the cluster is obtained. (x0, y0) represents the robot's initial position (before the task begins), i.e., its starting position. The current time step at the initial moment is set to 0 to ensure state consistency across all robots and facilitate subsequent data processing. A validity check is performed on each robot's initial state to determine whether the starting position is on an obstacle. If so, an exception is thrown. A check is performed to determine whether the current time step has overflowed. If so, the task is terminated and marked as timed out.
[0031] This application exemplarily sets the initial actual path cost of the initial state to 0, and calculates the initial heuristic value of the initial state by the following formula:
[0032] .
[0033] Where, represents the initial heuristic value, represents the initial actual path cost of the initial state (set to 0 for example in this application), represents a heuristic function whose calculation result represents the estimated minimum cost from the current state (current position n) to the task coordinates, Represents the estimated minimum cost from the initial state (initial position, n is 0) to the task coordinates. The initial state and the corresponding initial heuristic value are then stored in the state sequence table.
[0034] Step 202: Determine the actual path cost and estimated minimum cost for each robot based on its current state and task coordinates. In this embodiment, the actual path cost represents the actual cost of the robot moving from its initial state (starting position) to its current state (current position) (the cumulative cost of each position from the starting position to the current position). On a grid map, this is typically simplified to the number of steps (the cost increases by 1 for each square moved). Furthermore, this application uses different costs for different terrains. For example, the cost for flat land is 1, the cost for swamps is 3, and the cost for mountainous terrain is 5.
[0035] The estimated minimum cost represents the minimum cost from the current state (current position) to the task coordinates predicted by the heuristic function. The heuristic function of this application is as follows:
[0036] .
[0037] Where, represents a heuristic function whose calculation result represents the estimated minimum cost from the current state (current position n) to the task coordinates, ( , ) represents the current position in the current state, ( , ) represents the task coordinates, t represents the current time step in the current state, The experimental coefficient represents the experimental coefficient. A large experimental coefficient will result in a long detour, while a small experimental coefficient will not be able to suppress waiting time. For example, for dynamic obstacle avoidance scenarios, the experimental coefficient is set to 0.05, indicating that a small amount of waiting is allowed. For time-sensitive tasks, the experimental coefficient is set to 0.2, indicating a strict waiting limit. The experimental coefficient here can be set by those skilled in the art according to the task scenario to avoid meaningless waiting (such as standing still and delaying time).
[0038] Step 203: Determine the current heuristic value based on the actual path cost and the estimated minimum cost. In the embodiment of the present application, the current heuristic value is represented by the sum of the actual path cost and the estimated minimum cost, specifically as follows:
[0039] .
[0040] Where, represents the current heuristic value of the current state (current position n), represents the actual path cost (cumulative movement cost) from the initial state (starting position) to the current state (current position n), Represents a heuristic function, whose calculation result represents the estimated minimum cost from the current state (current position n) to the task coordinates.
[0041] Step 204: Determine the current priority of each robot based on the current heuristic value, and store the current state of each robot in a state sequence table in descending order of current priority. In this embodiment of the present application, based on the calculated current heuristic value of each robot, the robot is assigned a current priority from high to low, with the higher the current heuristic value, the higher the current priority. Then, the current state of each robot is stored in the state sequence table in descending order of current priority.
[0042] Step 205: Determine the target state in the state sequence table, update the target state based on the robot's actions, and update the state sequence table based on the updated target state. In this embodiment of the present application, the current state with the highest priority in the state sequence table is determined as the target state, and an initial task route is first planned for the robot corresponding to the target state.
[0043] In an embodiment of the present application, updating a target state based on a robot's motion includes: defining a spatial motion set of the robot based on all possible motions of the robot; traversing the spatial motion set based on the target state to obtain multiple new positions; checking whether the new positions are within a valid range and whether the new positions are constrained in the time step following the current time step to determine the current motion; and updating the target state based on the current motion.
[0044] Specifically, all possible robot actions include: waiting in place, moving right, moving left, moving forward, and moving backward. All possible robot actions are represented by coordinates to filter out illegal movements, and the coordinates of all possible actions are stored in the spatial action set. The coordinates for waiting in place are represented as (0, 0), moving right as (1, 0), moving left as (-1, 0), moving forward as (0, 1), and moving backward as (0, -1).
[0045] Furthermore, the four new positions of the current state are determined based on the coordinate representation of each action in the spatial action set. (When the action is to wait in place, the robot's current position does not change. However, in practice, the coordinate representations of all five actions in the spatial action set are traversed. Since the robot's current position has been determined in the previous update, the waiting in place situation is not considered here.) Based on the task information, the four new positions are determined to be within the valid range (within the task site boundary and not sharing the same coordinates as the static fault object). Furthermore, the new positions are checked to see if they are constrained in the next time step after the current one. Specifically, the new positions are checked to see if they are constrained (obstacle constraints and boundary constraints) in the next time step. If the new position is within the valid range and its next time step is unconstrained, the action corresponding to the new position is determined as the current action. Otherwise, the current loop is exited. According to the determined current action, the current position and current time step of the target state are updated (the current time step is determined by the site where the current action is performed. If the current action is performed on flat ground, the current time step increases by 1; if the current action is performed in a swamp, the current time step increases by 3; if the current action is performed in a mountainous area, the current time step increases by 5) to obtain the updated target state.
[0046] In addition, in an embodiment of the present application, the actual path cost of the updated target state can also be determined. If the actual path cost of the updated target state is greater than or equal to the known optimal path cost to the current location of the updated target state, the target state before the update is returned. If the actual path cost of the updated target state is less than the known optimal path cost to the updated target state, the target state before the update is set as the parent state of the updated target state.
[0047] Specifically, the actual path cost is calculated based on the updated target state. If the actual path cost of the updated target state is greater than or equal to the known optimal path cost (already explored by other robots) to the current location corresponding to the updated target state, the target state is returned to its original state and no update is performed. If the actual path cost of the updated target state is less than the known optimal path cost (already explored by other robots) to the current location corresponding to the updated target state, an update is performed and the original target state is set as the parent state of the updated target state. This prevents overlapping paths and duplicate exploration in the initial mission routes of the same robot.
[0048] Furthermore, the known optimal path cost of the current position to the updated target state represents the lowest known path cost that the robot can take to reach the updated current position from its current position before the update, and this is used as the optimal path cost. If the actual path cost of the robot continuing to explore from its current position before the update to its current position after the update is greater than the optimal path cost, the exploration fails, the current action is not executed, and the robot maintains its current position before the update, returning to the target state before the update, and then re-determines the current action to be executed. If the actual path cost of the robot continuing to explore from its current position before the update to its current position after the update is less than the optimal path cost, the current actual path cost is used as the optimal path cost, and the update is executed.
[0049] Step 206: Determine whether the current position of the updated target state coincides with the task coordinates. In this embodiment of the present application, determining whether the current position of the updated target state coincides with the task coordinates is to determine whether the task coordinates have been reached. If the current position of the updated target state coincides with the task coordinates, then execute step 207. If the current position of the updated target state does not coincide with the task coordinates, then execute step 205 again.
[0050] Step 207: Backtrack the state sequence table to obtain the initial task route of the robot corresponding to the target state. In an embodiment of the present application, when performing initial task route planning, the current action to be performed at the current position is determined by exploring all possible actions of the target state at each current position, that is, exploring one position at a time to achieve initial task route planning. Therefore, the current time step of the next current position in the initial task route must be greater than the current time step of the previous current position. The present application can backtrack according to the current time step of each target state stored in the state sequence table. Since the route backtracked is from the task coordinates to the starting position, it is necessary to invert the route formed by the current positions in each target state backtracked to obtain the initial task route of the corresponding robot.
[0051] Those skilled in the art should realize that in the state sequence table, the data of each robot is stored separately.
[0052] In addition, it can be seen from step 205 that when the target state is updated, the target state before the update will be set as the parent state of the target state after the update. Therefore, it is also possible to backtrack from each child node to its corresponding parent node, and then invert the current position in each node backtracked to obtain the initial task route of the corresponding robot.
[0053] Step 208: Determine whether the state sequence list has been traversed completely. In this embodiment of the present application, before executing the priority planning step, the state sequence list stores the initial state of each robot. Therefore, when traversing the state sequence list, the traversal is actually performed based on the initial state (each initial state corresponds to a robot). After each initial state ends, the traversal proceeds to the next initial state with the highest current priority, until the entire state sequence list is traversed. If the state sequence list has been traversed completely, step 209 is executed. If the state sequence list has not been traversed completely, steps 201 to 208 are executed again.
[0054] Step 209: Obtaining the initial task route of each robot. In the embodiment of the present application, after traversing the state sequence table, the initial task route of each robot is obtained.
[0055] Step 103: Traverse the initial task routes and determine whether there are conflicts between the initial task routes. In this embodiment of the present application, the initial task routes of all robots are traversed to detect whether there are vertex conflicts and / or edge conflicts at the current position in each initial task route. Among them, a vertex conflict means that two or more robots occupy the same position in the task field at the same time. An edge conflict means that two or more robots exchange positions in adjacent time periods. For example, one robot moves from position A to position B in the first time period, and another robot moves from position B to position A in the first time period.
[0056] If there is a conflict between the initial task routes, then execute step 104, step 102 and step 103. If there is no conflict between the initial task routes, then execute step 105 to step 106, as follows.
[0057] Step 104: Update the constraints at the conflict location and determine the robot corresponding to the initial task route for which the constraints are updated. In this embodiment of the present application, multiple child nodes are generated for each conflict, and opposing constraints are applied to each child node. Based on the applied opposing constraints, the constraints for the corresponding robot are updated.
[0058] Specifically, if a vertex conflict exists, child nodes are generated at the vertex conflict (the same position occupied by multiple robots at the same time) for the same number of robots involved in the vertex conflict. For example, if Robot 1 and Robot 2 are both at Position A at the first moment on their respective initial mission routes, two child nodes are generated at Position A, and opposing constraints are imposed on these two child nodes. Child Node 1 imposes the constraint that Robot 1 must not occupy Position A at the first moment, and Child Node 2 imposes the constraint that Robot 2 must not occupy Position A at the first moment.
[0059] The conflicting constraints are updated into the constraints of the robots involved, and the robot whose constraints are updated is determined. The robot whose constraints are updated serves as the current robot cluster, and steps 102 and 103 are executed. In other words, only the initial task routes of the robots whose constraints have been updated are updated; the initial task routes of the remaining robots remain unchanged, reducing unnecessary recalculation.
[0060] Step 105: Obtaining a global optimal route. In the embodiment of the present application, if there is no conflict between the initial task routes of the robots, a global optimal route is obtained.
[0061] Step 106: Scheduling the robot cluster to perform tasks based on the global optimal route. In the embodiment of the present application, based on the obtained global optimal route, the robots are scheduled to perform tasks according to their respective initial task routes.
[0062] In the embodiment of the present application, a two-dimensional environment with static obstacles and known area boundaries is exemplarily used as the test environment (30 30 two-dimensional grid), through different scale robot clusters and different obstacle rate scenes, the calculation time and communication overhead of the robot path planning method in the prior art and the path planning method of the present application are compared. The algorithm is compared with the method of this application.
[0063] Specifically, The computational complexity of the algorithm in the path planning task of a single robot is In the path planning task of multiple robots, other robots will be regarded as dynamic obstacles, and the computational complexity increases to Where b represents the branching factor, d represents the path depth, and n represents the number of robots. Before path planning, the method of this application only needs to plan an initial path from the initial position to the target position according to the constraints of each robot. That is, the initial path must not coincide with the position of the obstacle and must not exceed the area boundary of the test environment. In the path planning task of a single robot, its computational complexity is , in the path planning task of multiple robots, the computational complexity is , d represents the path depth, and n represents the number of robots. According to the computational complexity of the two methods, it can be seen that the computational complexity of the method of the present application is less than that of the method of the present invention, whether it is a single robot mode or a multi-robot mode. The computational complexity of the algorithm.
[0064] Regarding the communication overhead during path planning, The algorithm requires real-time exchange of position, speed and other information between different robots. It is a high-frequency small-packet communication method with relatively dispersed network pressure. The computational complexity and communication overhead will increase with the growth of the size of the robot cluster. The method of the present application does not require communication overhead when planning the initial path. It only needs to plan the path based on the initial position, target position and position of static obstacles of each robot. After planning the initial paths of all robots, all initial paths need to be sent to the central scheduler for conflict judgment. Communication is required at this stage. It is a low-frequency large-packet communication method with relatively concentrated network pressure. The communication overhead of the present application is proportional to the number of iterations of the task planning step. The specific comparative data are shown in Table 1 below. The data in the table adopts the average value of five experiments.
[0065] Table 1 Comparison table of calculation time and communication overhead of the algorithm and the method of this application
[0066]
[0067] As can be seen from the table above, the method of this application is superior to the cluster size of 20 and 50 robots in terms of computing time and communication overhead. The algorithm has a computational time ratio of 10 robots. The algorithm is long, but the communication overhead is better than This algorithm is suitable for large-scale scenarios with low real-time requirements, such as transport robots in factories.
[0068] Although this application provides method operation steps as described in the embodiments or flowcharts, more or fewer operation steps may be included based on routine or non-creative work. The order of steps listed in this embodiment is only one way of executing the steps among many, and does not represent the only execution order. When an actual device or client product executes, the method shown in this embodiment or the accompanying drawings may be executed sequentially or in parallel (for example, in a parallel processor or multi-threaded processing environment).
[0069] like Figure 3 As shown, the embodiment of the present application further provides a robot cluster scheduling device 300. The device includes: an acquisition module 301, a task planning module 302, an update module 303 and a task module 304, which are specifically as follows.
[0070] The acquisition module 301 is used to obtain the cluster information and task information of the robot cluster, wherein the task information includes the task environment, obstacle information, task coordinates and constraint conditions.
[0071] The task planning module 302 is used to execute the task planning steps until there are no conflicts between the initial task routes, resulting in a globally optimal route. The task planning steps include planning an initial task route for the robot based on the cluster information and task information. The initial task routes are then traversed to determine whether there are conflicts between the initial task routes. If there are conflicts between the initial task routes, the constraints at the conflicting locations are updated.
[0072] The updating module 303 is used to re-execute the task planning steps for the robot corresponding to the initial task route with the updated constraints.
[0073] The task module 304 is used to schedule the robot cluster to perform tasks based on the global optimal route.
[0074] Some modules in the apparatus described herein may be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, classes, etc. that perform specific tasks or implement specific abstract data types. The present application may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communications network. In a distributed computing environment, program modules may be located in local and remote computer storage media, including storage devices.
[0075] The devices or modules described in the above application embodiments can be implemented by computer chips or physical devices, or by products with certain functions. For ease of description, the above devices are described separately by function in various modules. When implementing the embodiments of this application, the functions of each module can be implemented in the same or multiple software and / or hardware. Of course, a module that implements a certain function can also be implemented by combining multiple sub-modules or sub-units.
[0076] The methods, devices, or modules described herein can be implemented in the form of computer-readable program code. The controller can be implemented in any suitable manner. For example, the controller can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, an application-specific integrated circuit (ASIC), a programmable logic controller, and an embedded microcontroller. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320. The memory controller can also be implemented as part of the memory control logic. Those skilled in the art will also appreciate that, in addition to implementing the controller in pure computer-readable program code, the controller can also be implemented in the form of logic gates, switches, an application-specific integrated circuit, a programmable logic controller, an embedded microcontroller, etc. by logically programming the method steps. Therefore, such a controller can be considered a hardware component, and the devices included therein for implementing various functions can also be considered as structures within the hardware component. Or even, the means for implementing various functions may be considered to be both a software module for implementing the method and a structure within a hardware component.
[0077] An embodiment of the present application further provides a device comprising: a processor; a memory for storing processor-executable instructions; and when the processor executes the executable instructions, the method described in the embodiment of the present application is implemented.
[0078] In addition, each functional module in each embodiment of the present invention may be integrated into one processing module, or each module may exist independently, or two or more modules may be integrated into one module.
[0079] The above-mentioned storage media include, but are not limited to, random access memory (RAM), read-only memory (ROM), cache, hard disk drive (HDD), or memory card. Such memory can be used to store computer program instructions.
[0080] Through the description of the above implementation methods, it can be seen that those skilled in the art can clearly understand that the present application can be implemented by means of software plus necessary hardware. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product, or can be embodied through the implementation process of data migration. The computer software product can be stored in a storage medium, such as ROM / RAM, a magnetic disk, an optical disk, etc., and includes a number of instructions for enabling a computer device (which can be a personal computer, a mobile terminal, a server, or a network device, etc.) to execute the methods described in each embodiment of the present application or certain parts of the embodiments.
[0081] The various embodiments in this specification are described in a progressive manner. The same or similar parts between the various embodiments can be referenced to each other. Each embodiment focuses on the differences from other embodiments. All or part of this application can be used in many general or special computer system environments or configurations. For example: personal computers, server computers, handheld devices or portable devices, tablet devices, mobile communication terminals, multi-processor systems, microprocessor-based systems, programmable electronic devices, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, etc.
[0082] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit the present application. Although the present application has been described in detail with reference to the aforementioned embodiments, a person of ordinary skill in the art should understand that the technical solutions described in the aforementioned embodiments can still be modified, or some or all of the technical features therein can be replaced by equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the present application.
Claims
1. A robot cluster scheduling method, characterized in that: include: Obtaining cluster information and task information of the robot cluster; wherein the task information includes task environment, obstacle information, task coordinates and constraints; the constraints include time constraints, robot performance constraints, communication constraints, safety constraints, obstacle constraints, and boundary constraints; Execute the task planning steps until there is no conflict between the initial task routes and the global optimal route is obtained; The task planning step includes: Planning an initial task route for the robot according to the cluster information and the task information, including: Execute the priority planning step until the state sequence table is traversed and the initial task route of each robot is obtained; The priority planning steps include: Determine the current state and task coordinates of each robot according to the cluster information and the task information; wherein the current state is represented by (x, y, t), (x, y) represents the current position, and t represents the current time step; Determine the actual path cost and the estimated minimum cost of each robot according to the current state and the task coordinates; Determining a current heuristic value based on the actual path cost and the estimated minimum cost; Determine the current priority of each robot according to the current heuristic value, and store the current state of the robot in a state sequence table in order of the current priority; determining a target state in the state sequence table, updating the target state based on the movement of the robot, and updating the state sequence table based on the updated target state until the current position in the target state coincides with the task coordinates; Wherein, updating the target state based on the robot's action includes: defining a spatial action set of the robot according to all possible actions of the robot; traversing the spatial action set based on the target state to obtain multiple new positions; checking whether the new positions are within a valid range and whether the new positions are constrained in the next time step of the current time step to determine the current action; and updating the target state based on the current action; Backtracking the state sequence table to obtain the robot's initial task route corresponding to the target state; Traversing the initial task routes and determining whether there is a conflict between the initial task routes; If there is a conflict between the initial task routes, updating the constraint conditions at the conflicting locations; Re-execute the task planning step for the robot corresponding to the initial task route with the updated constraint conditions; The robot cluster is scheduled to perform tasks based on the global optimal route.
2. The method according to claim 1, characterized in that The cluster information includes the number of robots in the robot cluster and the current position of each robot.
3. The method according to claim 1, characterized in that Before executing the priority planning step, the following steps are included: Obtaining the initial state of each robot and performing a validity check on the initial state; Setting an initial actual path cost of the initial state and predicting an initial predicted minimum cost of the initial state; Calculating an initial heuristic value of the initial state according to the initial actual path cost; Put the initial state and the initial heuristic value into the state sequence table.
4. The method according to claim 1, wherein The updating of the target state based on the robot's action further includes: Determining an updated actual path cost to the target state; If the actual path cost of the updated target state is greater than or equal to the known optimal path cost to the current position of the updated target state, then return to the target state before the update; If the actual path cost of the updated target state is less than the known optimal path cost to reach the updated target state, the target state before the update is set as the parent state of the updated target state.
5. The method according to claim 1, wherein The determining whether there is a conflict between the initial task routes includes: The initial task routes of all robots are traversed to detect whether there are vertex conflicts and / or edge conflicts therein.
6. The method according to claim 5, characterized in that If there is a conflict between the initial task routes, updating the constraint conditions at the conflicting locations includes: Generate multiple child nodes based on each conflict and impose opposing constraints on each child node; According to the imposed opposing constraints, the constraint conditions of the corresponding robot are updated.
7. A robot cluster scheduling device based on the method according to any one of claims 1 to 6, characterized in that: include: An acquisition module is used to obtain cluster information and task information of the robot cluster; wherein the task information includes the task environment, obstacle information, task coordinates and constraints; the constraints include time constraints, robot performance constraints, communication constraints, safety constraints, obstacle constraints, and boundary constraints; The task planning module is used to execute the task planning steps until there is no conflict between the initial task routes and the global optimal route is obtained; The task planning step includes: Planning an initial task route for the robot according to the cluster information and the task information, including: Execute the priority planning step until the state sequence table is traversed and the initial task route of each robot is obtained; The priority planning steps include: Determine the current state and task coordinates of each robot according to the cluster information and the task information; wherein the current state is represented by (x, y, t), (x, y) represents the current position, and t represents the current time step; Determine the actual path cost and the estimated minimum cost of each robot according to the current state and the task coordinates; Determining a current heuristic value based on the actual path cost and the estimated minimum cost; Determine the current priority of each robot according to the current heuristic value, and store the current state of the robot in a state sequence table in order of the current priority; determining a target state in the state sequence table, updating the target state based on the movement of the robot, and updating the state sequence table based on the updated target state until the current position in the target state coincides with the task coordinates; Wherein, updating the target state based on the robot's action includes: defining a spatial action set of the robot according to all possible actions of the robot; traversing the spatial action set based on the target state to obtain multiple new positions; checking whether the new positions are within a valid range and whether the new positions are constrained in the next time step of the current time step to determine the current action; and updating the target state based on the current action; Backtracking the state sequence table to obtain the robot's initial task route corresponding to the target state; Traversing the initial task routes and determining whether there is a conflict between the initial task routes; If there is a conflict between the initial task routes, updating the constraint conditions at the conflicting locations; An updating module, configured to re-execute the task planning step for the robot corresponding to the initial task route with the updated constraint conditions; The task module is used to schedule the robot cluster to perform tasks based on the global optimal route.
8. A device for executing a robot cluster scheduling method, characterized in that: include: processor; a memory for storing processor-executable instructions; When the processor executes the executable instructions, the method according to any one of claims 1 to 6 is implemented.
Citation Information
Patent Citations
Mobile robot path planning method and system based on conflicts
CN115237135A
Multi-robot path planning method based on conflict search
CN118760160A
Cited By
Universe operation robot cluster scheduling system and method for unattended energy station
CN121414006A