A multi-machine scheduling method, device and storage medium

By constructing a clone world to simulate the road occupancy status of multiple robots, and autonomous mobile devices selecting scheduling paths to avoid collisions, the collision problem of multiple robots in a limited space is solved, and efficient and safe multi-robot scheduling is achieved.

CN115840445BActive Publication Date: 2025-10-31CLOUDMINDS BEIJING TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211485473.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-24
Publication Date
2025-10-31
Estimated Expiration
2042-11-24

AI Technical Summary

Technical Problem

When multiple robots perform mobile navigation tasks simultaneously in the same limited space, collisions between robots or between robots and other objects are likely to occur, leading to damage and safety hazards.

Method used

Autonomous mobile devices acquire road occupancy information from other devices in a designated location, construct a clone world to simulate the road occupancy status of other devices, and perform motion simulations within the clone world to select scheduling paths that will not lead to collisions.

Benefits of technology

It effectively avoids collisions between multiple robots, improves the efficiency and safety of mobile tasks, and ensures that the equipment operates without collisions in real-world environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115840445B_ABST
    Figure CN115840445B_ABST
Patent Text Reader

Abstract

This application provides a multi-machine scheduling method, device, and storage medium. Specifically, it provides a multi-machine scheduling method. An autonomous mobile device, responding to a simulation command, obtains road occupancy information for other autonomous mobile devices within a specified location, determines candidate paths for itself, and constructs a clone world to simulate the road occupancy states of other autonomous mobile devices. Within this clone world, it performs motion simulation on its candidate paths to determine scheduling paths that will not collide with other autonomous mobile devices. By continuously constructing clone worlds for autonomous mobile devices, it can quickly simulate whether multiple candidate paths of an autonomous mobile device will collide with other autonomous mobile devices, thereby efficiently selecting scheduling paths for the autonomous mobile devices. This allows for multi-machine scheduling based on the scheduling paths corresponding to each autonomous mobile device, avoiding collisions.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of collaborative control technology, and in particular to a multi-machine scheduling method, device and storage medium. Background Technology

[0002] With the continuous development of robotics and sensor technology, multi-robot collaboration has become an important direction in the field of industrial robotics, effectively improving robot efficiency. However, when multiple robots simultaneously perform mobile navigation tasks within the same confined space, collisions can occur between robots or between robots and other objects. This can damage the robots and also affect human safety. Summary of the Invention

[0003] This application provides a multi-machine scheduling method, device, and storage medium to avoid collision problems during multi-machine scheduling.

[0004] This application provides a multi-machine scheduling method applicable to autonomous mobile devices, including:

[0005] In response to the simulation command, obtain the road occupancy information corresponding to other autonomous mobile devices in the designated location. The road occupancy information is used to describe the road occupancy status of the autonomous mobile devices in the designated location.

[0006] Within the designated location, a candidate path is determined for the autonomous mobile device itself;

[0007] A clone world is constructed for the autonomous mobile device itself, and the clone world is used to simulate the road occupancy status of each of the other autonomous mobile devices based on the road occupancy information;

[0008] In the cloned world, the autonomous mobile device performs motion simulation of itself according to the candidate path;

[0009] If it is determined, based on the road occupancy status of the other autonomous mobile devices, that the candidate path will not cause the autonomous mobile device to collide with the other autonomous mobile devices, then the candidate path will be used as the scheduling path corresponding to the autonomous mobile device itself.

[0010] This application provides a computing device, including a memory, a processor, and communication components;

[0011] The memory is used to store one or more computer instructions;

[0012] The processor is coupled to the memory and the communication component, and is used to execute the one or more computer instructions for:

[0013] In response to the simulation command, obtain the road occupancy information corresponding to other autonomous mobile devices in the designated location. The road occupancy information is used to describe the road occupancy status of the autonomous mobile devices in the designated location.

[0014] Within the designated location, a candidate path is determined for the autonomous mobile device itself;

[0015] A clone world is constructed for the autonomous mobile device itself, and the clone world is used to simulate the road occupancy status of each of the other autonomous mobile devices based on the road occupancy information;

[0016] In the cloned world, the autonomous mobile device performs motion simulation of itself according to the candidate path;

[0017] If it is determined, based on the road occupancy status of the other autonomous mobile devices, that the candidate path will not cause the autonomous mobile device to collide with the other autonomous mobile devices, then the candidate path will be used as the scheduling path corresponding to the autonomous mobile device itself.

[0018] This application also provides a computer-readable storage medium for storing computer instructions, which, when executed by one or more processors, cause the one or more processors to perform the aforementioned multi-machine scheduling method.

[0019] This application provides a multi-machine scheduling method. An autonomous mobile device, responding to a simulation command, obtains road occupancy information for other autonomous mobile devices within a specified location, determines candidate paths for itself, and constructs a clone world to simulate the road occupancy states of other autonomous mobile devices. Within this clone world, it performs motion simulations on its candidate paths to determine scheduling paths that will not collide with other autonomous mobile devices. By continuously constructing clone worlds for autonomous mobile devices, it can quickly simulate whether multiple candidate paths of an autonomous mobile device will collide with other autonomous mobile devices, thereby efficiently selecting scheduling paths for each autonomous mobile device. This allows for multi-machine scheduling based on the scheduling paths corresponding to each autonomous mobile device, avoiding collisions. Attached Figure Description

[0020] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:

[0021] Figure 1 A flowchart illustrating a multi-machine scheduling method provided in an exemplary embodiment of this application;

[0022] Figure 2A schematic diagram illustrating motion simulation in a clone world, provided as an exemplary embodiment of this application;

[0023] Figure 3 A schematic diagram of the structure of a computing device provided as another exemplary embodiment of this application. Detailed Implementation

[0024] To make the objectives, technical solutions, and advantages of this application clearer, the technical solutions of this application will be clearly and completely described below in conjunction with specific embodiments and corresponding drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0025] Currently, when multiple robots simultaneously perform mobile navigation tasks within the same confined space, collisions between robots or between robots and other objects can occur, causing damage to the robots and impacting human safety. To address this, some embodiments of this application provide a multi-robot scheduling method. Autonomous mobile devices respond to simulation commands, acquire road occupancy information for other autonomous mobile devices within a specified location, determine candidate paths for themselves, and construct a clone world to simulate the road occupancy states of other autonomous mobile devices. Within this clone world, motion simulations are performed on their candidate paths to determine scheduling paths that will not collide with other autonomous mobile devices. By continuously constructing clone worlds for autonomous mobile devices, collisions between multiple candidate paths can be quickly simulated, efficiently selecting scheduling paths for each autonomous mobile device. This allows for multi-robot scheduling based on the corresponding scheduling paths of each autonomous mobile device, preventing collisions.

[0026] The technical solutions provided by the various embodiments of this application are described in detail below with reference to the accompanying drawings.

[0027] Figure 1 The diagram below illustrates a multi-machine scheduling method as another exemplary embodiment of this application. This method can be executed by a data processing device, which can be implemented as a combination of software and / or hardware, and can be integrated into a computing device. (Reference) Figure 1 The method includes:

[0028] Step 100: In response to the simulation command, obtain the road occupancy information corresponding to other autonomous mobile devices in the designated location. The road occupancy information is used to describe the road occupancy status of the autonomous mobile devices in the designated location.

[0029] Step 101: In the designated location, determine the candidate path for the autonomous mobile device itself;

[0030] Step 102: Construct a clone world for the autonomous mobile device itself. The clone world is used to simulate the road occupancy status of other autonomous mobile devices based on road occupancy information.

[0031] Step 103: Perform motion simulation of the autonomous mobile device itself according to the candidate paths in the clone world;

[0032] Step 104: If the candidate path is determined based on the road occupancy status of other autonomous mobile devices and will not cause the autonomous mobile device to collide with other autonomous mobile devices, then the candidate path is used as the scheduling path corresponding to the autonomous mobile device itself.

[0033] The multi-machine scheduling method provided in this embodiment is applicable to autonomous mobile devices, such as robots and drones. The robot can be a cleaning robot, a service mobile robot, an industrial inspection robot, or other devices capable of performing mobile tasks. Of course, these are merely examples, and this embodiment is not limited thereto.

[0034] Optionally, prior to step 100, digital twin technology can be used to create a digital world synchronously with the real world, and information such as the size and location of autonomous mobile devices in the real world can be synchronized to the digital world in real time. Autonomous mobile devices can use RPC technology to obtain information such as the size and location of other autonomous mobile devices in a designated location from a cloud server, and synchronize the obtained information to the digital world.

[0035] Figure 1 A flowchart illustrating a multi-machine scheduling method provided for an exemplary embodiment of this application. (Reference) Figure 1 In step 100, in response to the simulation command, the road occupancy information corresponding to other autonomous mobile devices within the specified location can be obtained. This road occupancy information describes the road occupancy status of the autonomous mobile devices within the specified location, and can be the location point or path occupied by the autonomous mobile devices within the specified location. The road occupancy status can be the location of the autonomous mobile devices within the specified location at different times. The simulation command is the command that drives the autonomous mobile devices to determine the scheduling path. It can be initiated directly by the user, or it can be initiated periodically by the user through configuration of a timer built into the autonomous mobile device; this document does not limit this.

[0036] Optionally, after step 100, the autonomous mobile device itself can request and obtain simulation permission from the cloud server. If the autonomous mobile device successfully obtains simulation permission, other autonomous mobile devices will maintain their respective road occupancy status until the autonomous mobile device finishes its simulation. After the autonomous mobile device finishes its simulation, it will release the simulation permission so that other autonomous mobile devices can request and obtain simulation permission from the cloud server.

[0037] Continue to refer to Figure 1 In step 101, candidate paths can be determined for the autonomous mobile device itself in a designated location. The designated location for determining the candidate paths is a location in the digital world, not a location in the real world. The candidate paths determined for the autonomous mobile device from its starting point to its destination can be any one of all reachable paths from its starting point to its destination, or the shortest reachable path.

[0038] Optionally, the location of the user's starting point and destination point within a specified area can be determined. Based on a path recognition model, the shortest path from the starting point to the destination point can be predicted as a candidate path for the autonomous mobile device. Once the location of the user's starting point is determined, all reachable paths between the starting and destination points can be identified according to their relative positions. The shortest path among all reachable paths can then be selected as the user's candidate path based on its length. Alternatively, a path recognition algorithm can be used to directly identify the shortest path from the starting point to the destination point as the user's candidate path. This paper does not limit the choice of path recognition algorithm; path search algorithms such as Dijkstra's algorithm, A* algorithm, or D* algorithm can be used, or the navigation grid built into the UE's 3D map can be used for shortest path identification.

[0039] In this embodiment, in step 102, a clone world can be constructed for the autonomous mobile device itself. This clone world is used to simulate the road occupancy status of other autonomous mobile devices based on road occupancy information. The clone world can be obtained by mirroring the digital world from a certain starting point. The road occupancy status of other autonomous mobile devices can be simulated within the clone world of the autonomous mobile device itself, assisting the autonomous mobile device in completing motion simulation and thus obtaining its own road occupancy information. It is worth noting that each clone world can only perform motion simulation once, and the same clock is used within the same clone world. The clock speed in the clone world is at least 20 times faster than in the real world; that is, 1 second in the real world is equivalent to at least 20 seconds in the clone world.

[0040] Based on this, in step 103, motion simulation can be performed on the autonomous mobile device itself according to the candidate paths in the clone world. Motion simulation refers to the process where, while the autonomous mobile device itself travels to its destination along the candidate paths, other autonomous mobile devices also operate in the clone world according to their respective road occupancy states. During motion simulation, it is necessary to obtain the road occupancy information of other autonomous mobile devices in real time; inaccurate road occupancy information will severely affect the simulation results. Furthermore, when computing power allows, multiple clones of the autonomous mobile device can be created in the same clone world to simultaneously perform motion simulation on multiple candidate paths. Of course, in this embodiment, the process of performing motion simulation on the autonomous mobile device itself according to the candidate paths can occur on the client side of the autonomous mobile device itself or on the cloud server side; this is not limited to either.

[0041] Optionally, after completing the motion simulation, the road occupancy status generated by the autonomous mobile device itself moving along the candidate path can be determined in the clone world. Based on the road occupancy status generated by the autonomous mobile device itself and the corresponding road occupancy statuses of other autonomous mobile devices, it can be determined whether the autonomous mobile device itself has overlapping road occupancy statuses with other autonomous mobile devices. If not, it is determined that the candidate path will not cause the autonomous mobile device itself to collide with other autonomous mobile devices. The road occupancy statuses of the autonomous mobile device itself and other autonomous mobile devices can reflect the movement of different autonomous mobile devices in a specified location. Therefore, if the road occupancy statuses of autonomous mobile devices do not overlap, it can be determined that they will not collide.

[0042] Based on this, when determining whether the road occupancy status of an autonomous mobile device overlaps with that of other autonomous mobile devices, one exemplary implementation can obtain the location of the autonomous mobile device at each moment in the simulation process based on its own road occupancy status; simultaneously, it can obtain the locations of other autonomous mobile devices at each moment in the simulation process of the autonomous mobile device itself; if there are no overlapping locations at any moment, it is determined that the road occupancy status of the autonomous mobile device and other autonomous mobile devices does not overlap. That is, if only the autonomous mobile device is at the location corresponding to each moment in the simulation process, it can be determined that the road occupancy statuses of both parties do not overlap. By determining the location of each autonomous mobile device at each moment, it is possible to determine that there are overlapping road occupancy statuses among multiple autonomous mobile devices located at the same location at the same moment.

[0043] When obtaining the positions of other autonomous mobile devices at various moments during the autonomous mobile device's own simulation process, two scenarios can be considered: First, if the first autonomous mobile device has not yet simulated, its position at each moment during the simulation process is its starting point. Second, if the first autonomous mobile device has simulated, its position at each moment during the simulation process can be calculated based on its starting point and speed. The first autonomous mobile device can be any of the other autonomous mobile devices. If the first autonomous mobile device has not simulated, it is assumed to be stationary, remaining at its starting point regardless of the moment. However, if the first autonomous mobile device has completed the simulation, it moves within the designated area according to its corresponding scheduling path, and its position at each moment changes, thus requiring calculation of its position at each moment during the simulation process.

[0044] In one exemplary implementation, when calculating the position corresponding to each moment in the simulation process, the first autonomous mobile device, after simulation, can calculate the position corresponding to each moment in the process of moving according to its corresponding scheduling path based on the departure time of the first autonomous mobile device and the moving speed of the first autonomous mobile device; and determine the position corresponding to each moment in the simulation process of the first autonomous mobile device itself based on the position corresponding to each moment in the process of moving according to its corresponding scheduling path. Figure 2 This is a schematic diagram illustrating motion simulation in a clone world, provided as an exemplary embodiment of this application. (Reference) Figure 2 In the diagram, points A and B are the starting and destination points of the autonomous mobile device itself, respectively, and points C and D are the starting and destination points of the first autonomous mobile device, respectively. The movement speed in area E within the designated location is 1 m / s, and the movement speed in area F is 3 m / s. The default departure time of the autonomous mobile device itself is (00:02), and the candidate path is A→a→b→D→B. The departure time of the first autonomous mobile device is (00:00), and its road occupancy status is C→b→D. The first autonomous mobile device departs at (00:00) and arrives at destination point D at (00:09). The autonomous mobile device itself departs at (00:02) and arrives at destination point B at (00:11). Therefore, the positions of the first autonomous mobile device between (00:02) and (00:11) can be calculated.

[0045] Furthermore, if an autonomous mobile device (AMP) shares the same road occupancy status as another AMP, the sum of the widths between the AMP and the other AMPs sharing the same road occupancy status can be calculated. If the sum of the widths is less than the road width, a collision is considered unlikely; otherwise, a collision is considered likely. In other words, if the road width is greater than the sum of the widths of the AMP and the other AMPs sharing the same road occupancy status, the candidate path is considered passable and designated as the scheduling path; otherwise, the candidate path is considered unreachable, and another candidate path is selected for further analysis. Conversely, if the width of a candidate path is less than the width of the AMP itself, even if a collision is unlikely on that candidate path, it cannot be designated as a scheduling path. For example, if the road occupancy status of the AMP and AMP Q overlaps at position W, and the sum of their widths is greater than the road width, a collision is considered to have occurred at position W.

[0046] Optionally, if a candidate path is determined to cause a collision between the autonomous mobile device and other autonomous mobile devices, a virtual roadblock can be generated at the collision location to construct a new clone world for the autonomous mobile device, inheriting the virtual roadblocks generated in all previous clone worlds. Road occupancy information for each of the other autonomous mobile devices is then reacquired. Based on the inherited virtual roadblocks in the new clone world, a new candidate path is generated, and motion simulation is performed on this new candidate path within the new clone world. Specifically, the new clone world is used to simulate the reacquired road occupancy states of each of the other autonomous mobile devices based on the road occupancy information. The road occupancy states of the new candidate path are simulated in the new clone world to determine whether a collision will occur based on the road occupancy states of each of the other autonomous mobile devices. If the new candidate path does not collide with any other autonomous mobile device, it is designated as the scheduling path.

[0047] In this process, after determining that a candidate path is unreachable, re-acquiring road occupancy information for other autonomous mobile devices ensures the synchronization of the movement status of all autonomous mobile devices within a designated location. Furthermore, since the clock speed in the clone world is much faster than that in the source digital world, the movement status of other autonomous mobile devices in the clone world after one simulation is actually a "future" representation of their actual movement status in the source digital world. Continuing to simulate new candidate paths within the current clone world would cause a time misalignment, preventing the acquisition of accurate road occupancy status. Therefore, after each simulation, regardless of its success, the current clone world is destroyed. This ensures the accuracy of road occupancy status while reducing resource consumption. The process of determining new candidate paths in the new clone world, the motion simulation of these new candidate paths, and determining whether new candidate paths collide with other autonomous mobile devices can be found in the previous description of candidate paths; for brevity, these details are omitted here.

[0048] Continue to refer to Figure 2 If the autonomous mobile device's own candidate path (A→a→b→D→B) collides with other autonomous mobile devices at point b, then the candidate path is determined not to be a scheduling path. A virtual roadblock is generated at point b. Combining the road occupancy information of other autonomous mobile devices (C→b→D) and the virtual roadblock at point b, a new candidate path can be determined as A→G→C→H→D→B. If the new candidate path does not collide with other autonomous mobile devices, then the new candidate path A→G→C→H→D→B can be determined as the scheduling path. Furthermore, if, after determining that the autonomous mobile device's own candidate path (A→a→b→D→B) is unreachable, and a new candidate route is determined as A→G→C→H→I→B, where point I is a roadblock transformed from an un-analyzed autonomous mobile device, then the new candidate route can also be determined to be unreachable. At this point, based on the road occupancy information (C→b→D) of other autonomous mobile devices in the specified location, as well as the virtual roadblocks at points b and I, another candidate path A→G→C→H→D→B can be determined. Motion simulation is performed on this candidate path, and it is determined whether the candidate path collides with other autonomous mobile devices. If the path is still unreachable, new candidate paths are generated and simulations are performed based on the virtual roadblocks inherited from the new clone world, until a scheduling path is determined or no new candidate path can be generated.

[0049] In the process of generating new candidate paths, inherited virtual roadblocks can be used as inaccessible points in the new clone world. A path recognition model can then be used to predict the reachable path from the autonomous mobile device's starting point to its destination, which serves as the new candidate path for the autonomous mobile device. It's important to note that virtual roadblocks in historical clone worlds are generated when the autonomous mobile device collides with other autonomous mobile devices during its motion simulation according to the scheduling path corresponding to the historical clone world. Different historical clone worlds correspond to different scheduling paths. For example, the second clone world constructed after the destruction of the first clone world will contain virtual roadblocks generated in the first clone world. Therefore, when the third clone world inherits virtual roadblocks from the second clone world, it will also inherit the virtual roadblocks from the first clone world. Thus, when constructing a new clone world, virtual roadblocks from all previous historical clone worlds can be inherited. Furthermore, virtual roadblocks inherited from historical clone worlds can be generated by collisions between the autonomous mobile device and other autonomous mobile devices, or by collisions between the autonomous mobile device and multiple different autonomous mobile devices. In addition, the process of determining new candidate paths using the path recognition model can be referred to in the previous article on determining candidate paths in the clone world. To save space, this article will not repeat it here.

[0050] Furthermore, if there is no reachable path between the autonomous mobile device's origin and destination, the origin can be adjusted to a temporary stopping point, which is the closest reachable point between the origin and destination. Using a path recognition model, a reachable path from the temporary stopping point to the destination can be predicted, serving as a new candidate path for the autonomous mobile device. This new candidate path includes paths from the origin to the temporary stopping point and paths from the temporary stopping point to the destination. Specifically, the location of the origin, destination, and virtual roadblocks in the cloned world can be dynamically analyzed to automatically locate the closest reachable point as the temporary stopping point. Alternatively, the user can intuitively determine a reachable point between the origin and destination in a designated location. These are merely examples and are not limited in this embodiment. By introducing the concept of temporary stopping points, this embodiment not only allows direct access to the destination but also enables transfers or waiting at temporary stopping points.

[0051] refer to Figure 2 Assuming Figure 2Only gray roads are traversable. Autonomous mobile device x starts at point A and aims for point G; autonomous mobile device y starts at point G and aims for point A. If autonomous mobile device x is currently performing a simulation, while autonomous mobile device y has completed its simulation and is moving from point G to point A, and since the clock speed in the clone world is much faster than in the real world, we can assume that autonomous mobile devices x and y start simultaneously. Based on their similar speeds in region E, if autonomous mobile device x moves from point A to point G, it will inevitably collide with autonomous mobile device y. Therefore, autonomous mobile device x can choose point b as a temporary stopping point and move from point A to point b. After autonomous mobile device y reaches point A, it will then perform a simulation for the path b→a→G. Considering the length of the path, autonomous mobile device x will not collide with autonomous mobile device y during its movement from point A to point b. Therefore, new candidate paths A→a→b and b→a→G can be determined for the autonomous mobile devices themselves.

[0052] Following on from the previous discussion of whether candidate paths would lead to collisions between autonomous mobile devices and other autonomous mobile devices, please refer to [the relevant documentation / reference]. Figure 1 In step 104, if it is determined that the candidate path will not cause a collision between the autonomous mobile device and other autonomous mobile devices based on the road occupancy status of each other, then the candidate path is used as the scheduling path for the autonomous mobile device itself. That is, if the candidate path will not cause a collision between autonomous mobile devices, it can be determined that the process of moving from the starting point to the destination point according to the candidate path is unobstructed. Therefore, using the candidate path that will not cause a collision as the scheduling path and driving the autonomous mobile device to move according to the scheduling path can avoid collisions during the movement.

[0053] After determining the scheduling path for each autonomous mobile device, road occupancy information corresponding to that device is generated. This information is then sent to the cloud server, which provides this information to other autonomous mobile devices that need to participate in the simulation. The scheduling path determination for each autonomous mobile device in a designated location is performed sequentially. That is, only one autonomous mobile device can be simulated at a time, and the road occupancy information for other autonomous mobile devices must be synchronized before initiating the simulation to ensure the accuracy of the road occupancy status. The cloud server synchronizes the road occupancy information of all autonomous mobile devices in real time and responds to synchronization requests from each device, returning the required data.

[0054] It's worth noting that the road occupancy information sent to the cloud server will vary depending on the outcome of the route determination process. If the autonomous mobile device (AMV) determines its own route, its departure time and route can be used as its corresponding road occupancy information. If the AMV does not determine a route, its current location can be used as its corresponding road occupancy information. In other words, if a route is successfully determined, the AMV's departure time and route are sent to the cloud server so other AMVs can access its road occupancy status. If a route is not successfully determined, the AMV's current location is sent to the cloud server so other AMVs can synchronize their changes. The current location can be the starting point, a temporary stop, or any point between the starting point and a temporary stop.

[0055] In this embodiment, during movement in the real world according to the scheduled path, a predictive clone world can be constructed for the scheduled path at regular intervals to simulate the path. If the simulation result generated in the predictive clone world indicates that no collision will occur, the movement continues according to the scheduled path. If the simulation result generated in the predictive clone world indicates that a collision will occur, the simulation command is re-initiated at the current location or the starting point is returned to re-initiate the simulation command. The time interval can be pre-specified by the user. Simultaneously, the autonomous mobile device in the digital world reaches its destination while the autonomous mobile device itself reaches its destination in the real world. If the simulation command is re-initiated, the previous simulation result is automatically destroyed. Furthermore, if other autonomous mobile devices are performing motion simulations when the simulation command is re-initiated, the current location can be used as a temporary stopping point. The device waits at the temporary stopping point for the other autonomous mobile devices to finish their simulations and uploads the location of the temporary stopping point to the cloud server so that other autonomous mobile devices can synchronize their road occupancy information.

[0056] Continue to refer to Figure 2 If an autonomous mobile device M is temporarily placed at point b while it is moving in the real world according to the scheduling path (A→a→b→D→B), then if the autonomous mobile device continues to move according to the scheduling path, it will collide with the autonomous mobile device M. That is, the autonomous mobile device is predicting that a collision will occur when it uses the clone world to deduce the scheduling path. Therefore, the autonomous mobile device can either restart the deduction at its current position or choose to return to the starting point A to restart the deduction.

[0057] Accordingly, this embodiment provides a multi-machine scheduling method. Autonomous mobile devices respond to a simulation command, acquire road occupancy information corresponding to other autonomous mobile devices within a designated location, determine candidate paths for themselves, and construct a clone world to simulate the road occupancy states of other autonomous mobile devices. Within this clone world, they perform motion simulation on their candidate paths to determine scheduling paths that will not collide with other autonomous mobile devices. In this way, by continuously constructing clone worlds for autonomous mobile devices, it is possible to quickly simulate whether multiple candidate paths of an autonomous mobile device will collide with other autonomous mobile devices, thereby efficiently selecting scheduling paths for autonomous mobile devices. This allows for multi-machine scheduling based on the scheduling paths corresponding to each autonomous mobile device, avoiding collisions. The multi-machine scheduling method provided in this embodiment not only selects scheduling paths from multiple candidate paths through simulation to avoid conflicts between multiple autonomous mobile devices during movement, but also resolves conflicts by specifying temporary stopping points when a scheduling path cannot be determined.

[0058] It should be noted that the execution subject of each step of the method provided in the above embodiments can be the same device, or the method can be executed by different devices. For example, the execution subject of steps 101 to 103 can be device A; or the execution subject of steps 101 and 102 can be device A, and the execution subject of step 103 can be device B; and so on.

[0059] Furthermore, some processes described in the above embodiments and accompanying drawings include multiple operations that appear in a specific order. However, it should be clearly understood that these operations may not be executed in the order they appear herein, or they may be executed in parallel. The operation numbers, such as 101, 102, etc., are merely used to distinguish different operations and do not represent any execution order. Additionally, these processes may include more or fewer operations, and these operations may be executed sequentially or in parallel. It should be noted that the descriptions such as "first" and "second" in this document are used to distinguish different application terminals, messages, modules, etc., and do not represent a chronological order, nor do they limit "first" and "second" to different types.

[0060] Figure 3 This is a schematic diagram of the structure of a computing device provided as another exemplary embodiment of this application. For example... Figure 3 As shown, the computing device includes: a memory 30, a processor 31, and a communication component 32.

[0061] Processor 31, coupled to memory 30, is used to execute computer programs stored in memory 30 for:

[0062] In response to the simulation command, obtain the road occupancy information of other autonomous mobile devices in the specified location. The road occupancy information is used to describe the road occupancy status of the autonomous mobile devices in the specified location.

[0063] In a designated location, a candidate path is determined for the autonomous mobile device itself;

[0064] A clone world is built for the autonomous mobile device itself. The clone world is used to simulate the road occupancy status of other autonomous mobile devices based on road occupancy information.

[0065] In a cloned world, the autonomous mobile device performs motion simulations based on candidate paths.

[0066] If the candidate path is determined based on the road occupancy status of other autonomous mobile devices and will not cause a collision between the autonomous mobile device and other autonomous mobile devices, then the candidate path will be used as the scheduling path corresponding to the autonomous mobile device itself.

[0067] In an optional embodiment, the processor 31 is further configured to:

[0068] After completing the motion simulation, the road occupancy status of the autonomous mobile device as it moves along the candidate path is determined in the clone world.

[0069] Based on the road occupancy status generated by the autonomous mobile device itself and the road occupancy status corresponding to other autonomous mobile devices, determine whether the road occupancy status of the autonomous mobile device itself overlaps with that of other autonomous mobile devices.

[0070] If no path exists, it is determined that the candidate path will not cause the autonomous mobile device to collide with other autonomous mobile devices.

[0071] In an optional embodiment, the processor 31 is further configured to:

[0072] If there is an overlap in road occupancy between the autonomous mobile device itself and other autonomous mobile devices, then calculate the sum of the widths between the autonomous mobile device itself and other autonomous mobile devices with overlapping road occupancy.

[0073] If the sum of the widths is less than the width of the road, then it is determined that the two sides will not collide.

[0074] Otherwise, a collision is certain.

[0075] In an optional embodiment, during the process of determining whether the autonomous mobile device itself has an overlapping road occupancy status with other autonomous mobile devices, the processor 31 is further configured to:

[0076] Based on the road occupancy status of the autonomous mobile device itself, the location of the autonomous mobile device at each moment in the simulation process is obtained;

[0077] Obtain the positions of other autonomous mobile devices at various points in the autonomous mobile device's own simulation process;

[0078] If there are no overlapping positions at any given time, then it is determined that the autonomous mobile device itself does not overlap with other autonomous mobile devices in terms of road occupancy.

[0079] In an optional embodiment, the processor 31 is further configured to:

[0080] If the first autonomous mobile device is not simulated, then the position of the first autonomous mobile device at each moment in the simulation process is the starting position of the first autonomous mobile device.

[0081] If the first autonomous mobile device is simulated, then the position of the first autonomous mobile device at each moment in the simulation process is calculated based on the departure time and moving speed of the first autonomous mobile device.

[0082] The first autonomous mobile device can be any of the other autonomous mobile devices.

[0083] In an alternative embodiment, the processor 31 is configured to:

[0084] Based on the departure time of the first autonomous mobile device, and using the moving speed of the first autonomous mobile device, calculate the position of the first autonomous mobile device at each moment during its movement according to its corresponding scheduling path.

[0085] Based on the position of the first autonomous mobile device at each moment during its movement according to its corresponding scheduling path, the position of the first autonomous mobile device at each moment during its own simulation process is determined.

[0086] In an optional embodiment, the processor 31 is further configured to:

[0087] If a candidate path is determined to cause an autonomous mobile device to collide with another autonomous mobile device, a virtual roadblock is generated at the location of the collision.

[0088] To build a new clone world for autonomous mobile devices themselves;

[0089] Virtual roadblocks generated in each of the clone worlds that inherit history;

[0090] Reacquire the road occupancy information for each of the other autonomous mobile devices;

[0091] Based on the virtual roadblocks inherited in the new clone world, generate new candidate paths;

[0092] Motion simulations are performed on new candidate paths in the new clone world.

[0093] In an alternative embodiment, during the process of generating new candidate paths based on the virtual roadblocks inherited in the new clone world, the processor 31 is further configured to:

[0094] In the new cloned world, the inherited virtual roadblocks are used as unpathable points. The path recognition model is used to predict the reachable path from the starting point to the destination point required by the autonomous mobile device itself, which is then used as a new candidate path for the autonomous mobile device itself.

[0095] In an optional embodiment, the processor 31 is further configured to:

[0096] If there is no reachable path between the autonomous mobile device's origin and destination, the autonomous mobile device's origin will be adjusted to a temporary docking point, which is the closest reachable point between the origin and destination.

[0097] By using a path recognition model, the reachable path from the temporary stop point to the destination point is predicted, which serves as a new candidate path for the autonomous mobile device itself.

[0098] In an optional embodiment, the processor 31 is further configured to:

[0099] After completing the task of determining the scheduling path for the autonomous mobile device itself, road occupancy information corresponding to the autonomous mobile device is generated.

[0100] The road occupancy information is sent to the cloud server so that the cloud server can provide the road occupancy information corresponding to the autonomous mobile device itself to other autonomous mobile devices that need to be simulated.

[0101] Among them, the scheduling path determination of each autonomous mobile device in the designated location is a sequential process.

[0102] In an optional embodiment, during the process of generating road occupancy information corresponding to the autonomous mobile device itself, the processor 31 is further configured to:

[0103] If the scheduling path is determined by the autonomous mobile device itself, then the departure time and scheduling path of the autonomous mobile device itself will be used as the road occupancy information corresponding to the autonomous mobile device itself.

[0104] If the current scheduling path determination process does not determine a scheduling path for the autonomous mobile device itself, then the autonomous mobile device's own starting point will be used as the road occupancy information corresponding to the autonomous mobile device itself.

[0105] In an optional embodiment, the processor 31 is further configured to:

[0106] As the scheduling path moves through the real world, a predictive clone world is constructed for the scheduling path at regular intervals to extrapolate the scheduling path.

[0107] If the prediction generated in the clone world indicates that no collision will occur, then continue according to the scheduling path;

[0108] If the prediction generated in the cloned world indicates that a collision will occur, then the prediction command should be re-initiated at the current location or returned to the starting point to re-initiate the prediction command.

[0109] Furthermore, such as Figure 3 As shown, the computing device also includes other components such as a power supply component 33 and a display component 34.

[0110] Figure 3 The diagram only shows some components and does not mean that the computing device includes only these components. Figure 3 The components shown.

[0111] It is worth noting that the technical details of the above embodiments of the computing device can be found in the relevant descriptions of the computing device in the foregoing system embodiments. To save space, they will not be repeated here, but this should not cause any loss to the scope of protection of this application.

[0112] Accordingly, embodiments of this application also provide a computer-readable storage medium storing a computer program, which, when executed, can perform the steps that can be executed by a computing device in the above method embodiments.

[0113] The above Figure 3 The memory in a computer is used to store computer programs and can be configured to store various other data to support operation on a computing platform. Examples of this data include instructions for any application or method operating on the computing platform, contact data, phone book data, messages, pictures, videos, etc. The memory can be implemented from any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disks, or optical disks.

[0114] The above Figure 3The communication component is configured to facilitate wired or wireless communication between the device containing the communication component and other devices. The device containing the communication component can access wireless networks based on communication standards, such as WiFi, 2G, 3G, 4G / LTE, 5G, or combinations thereof. In one exemplary embodiment, the communication component receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, the communication component also includes a Near Field Communication (NFC) module to facilitate short-range communication. For example, the NFC module may be implemented based on Radio Frequency Identification (RFID), Infrared Data Association (IrDA) technology, Ultra-Wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.

[0115] The above Figure 3 The display components include a screen, which may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen can be implemented as a touchscreen to receive input signals from a user. The touch panel includes one or more touch sensors to sense touches, swipes, and gestures on the touch panel. The touch sensors can sense not only the boundaries of touch or swipe actions but also the duration and pressure associated with the touch or swipe operation.

[0116] The above Figure 3 The power supply component provides power to the various components of the device in which it resides. The power supply component may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device in which it resides.

[0117] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0118] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0119] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0120] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0121] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0122] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.

[0123] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.

[0124] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.

[0125] The above are merely embodiments of this application and are not intended to limit the scope of this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. A multi-machine scheduling method, applicable to autonomous mobile devices, characterized in that, The method includes: In response to the simulation command, obtain the road occupancy information corresponding to other autonomous mobile devices in the designated location. The road occupancy information is used to describe the road occupancy status of the autonomous mobile devices in the designated location. Within the designated location, a candidate path is determined for the autonomous mobile device itself; A clone world is constructed for the autonomous mobile device itself, and the clone world is used to simulate the road occupancy status of each of the other autonomous mobile devices based on the road occupancy information; In the cloned world, the autonomous mobile device performs motion simulation of itself according to the candidate path; After completing the motion simulation, the road occupancy status generated by the autonomous mobile device moving along the candidate path is determined in the clone world. Based on the road occupancy status generated by the autonomous mobile device itself and the road occupancy status corresponding to the other autonomous mobile devices, it is determined whether the autonomous mobile device itself has an overlapping road occupancy status with the other autonomous mobile devices; if not, it is determined that the candidate path will not cause the autonomous mobile device itself to collide with the other autonomous mobile devices. If it is determined that the candidate path will not cause the autonomous mobile device to collide with other autonomous mobile devices, then the candidate path will be used as the scheduling path corresponding to the autonomous mobile device itself. If it is determined that the candidate path will cause the autonomous mobile device to collide with other autonomous mobile devices, then a virtual roadblock is generated at the collision location; a new clone world is constructed for the autonomous mobile device; the virtual roadblocks generated in all the historical clone worlds are inherited; the road occupancy information corresponding to each of the other autonomous mobile devices is reacquired; a new candidate path is generated based on the virtual roadblocks inherited in the new clone world; and motion simulation is performed on the new candidate path in the new clone world.

2. The method according to claim 1, characterized in that, Also includes: If there is an overlapping road occupancy state between the autonomous mobile device itself and other autonomous mobile devices, then calculate the sum of the widths between the autonomous mobile device itself and other autonomous mobile devices with overlapping road occupancy states. If the sum of the widths is less than the width of the road, then it is determined that the two sides will not collide. Otherwise, a collision is certain.

3. The method according to claim 1, characterized in that, The step of determining whether the autonomous mobile device itself has an overlapping road occupancy status with other autonomous mobile devices includes: Based on the road occupancy status of the autonomous mobile device itself, the position of the autonomous mobile device at each moment in the simulation process is obtained. Obtain the positions of the other autonomous mobile devices at various points in time during the autonomous mobile device's own deduction process; If there are no overlapping positions at any given time, then it is determined that the autonomous mobile device itself does not overlap with other autonomous mobile devices in terms of road occupancy.

4. The method according to claim 3, characterized in that, Also includes: If the first autonomous mobile device is not simulated, then the position of the first autonomous mobile device at each moment in the simulation process is the starting position of the first autonomous mobile device. If the first autonomous mobile device is simulated, then the position of the first autonomous mobile device at each moment in the simulation process is calculated based on the departure time and moving speed of the first autonomous mobile device. The first autonomous mobile device is any one of the other autonomous mobile devices.

5. The method according to claim 4, characterized in that, Also includes: Based on the departure time of the first autonomous mobile device, and using the moving speed of the first autonomous mobile device, the position of the first autonomous mobile device at each moment during its movement according to its corresponding scheduling path is calculated. Based on the position of the first autonomous mobile device at each moment during its movement according to its corresponding scheduling path, the position of the first autonomous mobile device at each moment during the autonomous mobile device's own deduction process is determined.

6. The method according to claim 1, characterized in that, The generation of new candidate paths based on the virtual roadblocks inherited in the new clone world includes: In the new cloned world, the inherited virtual roadblocks are used as unpassable points. A path recognition model is used to predict the reachable path from the starting point to the destination point required by the autonomous mobile device itself, which is then used as a new candidate path for the autonomous mobile device itself.

7. The method according to claim 6, characterized in that, Also includes: If there is no reachable path between the autonomous mobile device's starting point and its destination, then the autonomous mobile device's starting point will be adjusted to a temporary docking point, which is the closest reachable point between the starting point and the destination. Using the path recognition model, a reachable path from the temporary stop to the destination is predicted, which serves as a new candidate path for the autonomous mobile device itself.

8. The method according to claim 1, characterized in that, Also includes: After completing the scheduling path determination for the autonomous mobile device itself, road occupancy information corresponding to the autonomous mobile device is generated. The road occupancy information is sent to the cloud server so that the cloud server can provide the road occupancy information corresponding to the autonomous mobile device itself to other autonomous mobile devices that need to be simulated. The scheduling path determination for each autonomous mobile device in the designated location is performed sequentially.

9. The method according to claim 8, characterized in that, Based on the results of this motion simulation, road occupancy information corresponding to the autonomous mobile device itself is generated, including: If the scheduling path is determined by the autonomous mobile device itself, then the departure time of the autonomous mobile device and the scheduling path will be used as the road occupancy information corresponding to the autonomous mobile device itself. If the current scheduling path determination process does not determine the scheduling path for the autonomous mobile device itself, then the current location of the autonomous mobile device itself will be used as the road occupancy information corresponding to the autonomous mobile device itself.

10. The method according to claim 1, characterized in that, Also includes: As the scheduled path moves in the real world, a predictive clone world is constructed for the scheduled path at regular intervals to extrapolate the scheduled path. If the inference result generated in the predicted clone world is that no collision will occur, then continue according to the scheduling path; If the prediction result generated in the cloned world indicates that a collision will occur, then the prediction command is re-initiated at the current position or returned to the starting point to re-initiate the prediction command.

11. A computing device, characterized in that, Includes memory, processor, and communication components; The memory is used to store one or more computer instructions; The processor is coupled to the memory and the communication component, and is used to execute the one or more computer instructions for: In response to the simulation command, obtain the road occupancy information corresponding to other autonomous mobile devices in the designated location. The road occupancy information is used to describe the road occupancy status of the autonomous mobile devices in the designated location. Within the designated location, a candidate path is determined for the autonomous mobile device itself; A clone world is constructed for the autonomous mobile device itself, and the clone world is used to simulate the road occupancy status of each of the other autonomous mobile devices based on the road occupancy information; In the cloned world, the autonomous mobile device performs motion simulation of itself according to the candidate path; After completing the motion simulation, the road occupancy status generated by the autonomous mobile device moving along the candidate path is determined in the clone world. Based on the road occupancy status generated by the autonomous mobile device itself and the road occupancy status corresponding to the other autonomous mobile devices, it is determined whether the autonomous mobile device itself has an overlapping road occupancy status with the other autonomous mobile devices; if not, it is determined that the candidate path will not cause the autonomous mobile device itself to collide with the other autonomous mobile devices. If it is determined that the candidate path will not cause the autonomous mobile device to collide with other autonomous mobile devices, then the candidate path will be used as the scheduling path corresponding to the autonomous mobile device itself. If it is determined that the candidate path will cause the autonomous mobile device to collide with other autonomous mobile devices, then a virtual roadblock is generated at the collision location; a new clone world is constructed for the autonomous mobile device; the virtual roadblocks generated in all the historical clone worlds are inherited; the road occupancy information corresponding to each of the other autonomous mobile devices is reacquired; a new candidate path is generated based on the virtual roadblocks inherited in the new clone world; and motion simulation is performed on the new candidate path in the new clone world.

12. A computer-readable storage medium for storing computer instructions, characterized in that, When the computer instructions are executed by one or more processors, the one or more processors perform the multi-machine scheduling method according to any one of claims 1-10.

Citation Information

Patent Citations

  • Multi-robot scheduling method and device, server and computer readable storage medium

    CN109976350A

  • Method and device for determining paths of multiple mobile devices and storage medium

    CN111650931A