Robots, robot queue scheduling methods, and computer-readable storage media

CN115755909BActive Publication Date: 2026-09-01SHENZHEN PUDU TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211447822.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-18
Publication Date
2026-09-01
Estimated Expiration
2042-11-18

AI Technical Summary

Technical Problem

然而,中央处理系统分别与申请资源的各机器人进行通信,并进行虚拟的“排队”,这一处理过程的通信量过大,存在通信延迟严重、通信不稳定等问题

Benefits of technology

[0047]上述机器人及机器人的队列调度方法、装置、存储介质和计算机程序产品,机器人存储的环境地图与其他机器人各自存储的环境地图是相对应的,上述机器人基于环境地图选取资源点,并确定资源点对应的排队点队列,由于上述机器人和其他机器人实际是分布式的,且各机器人在物理空间中进行排队,不可能出现“多个机器人在同一个位置”的情况,因而在减少通信量的情况下避免了排队中的冲突,进而基于排队效率和通信范围中的至少一项选取目标点,可以通过较小的通信量保证排队过程无冲突,以准确而高效地抵达资源点。由此,可以不部署中央处理系统,没有额外的部署、维护代价,不存在大通信延迟、通信不稳定等问题,也不存在单点故障的问题。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115755909B_ABST
    Figure CN115755909B_ABST
Patent Text Reader

Abstract

This application relates to a robot, a robot queue scheduling method, and a computer-readable storage medium. The robot determines resource points and corresponding queues from an environment map stored in the robot's memory; the environment map stored in the robot corresponds to the environment maps stored by other robots; when the robot proceeds to a resource point, it is controlled to move towards the queue; when the robot reaches a queue point in the queue, based on at least one of queuing efficiency and the robot's communication range, a target point not occupied by other robots is selected from the resource point and the queue; the robot is then controlled to proceed to the target point until the target point is the resource point. This method reduces communication between robots and improves queuing efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of robotics, and in particular to a method for scheduling robot queues, a robot, and a computer-readable storage medium. Background Technology

[0002] When multiple robots perform tasks simultaneously in the same area, resource conflicts often arise. In these scenarios, when one robot performs a certain operation, a corresponding resource conflict occurs, and multiple robots may want to go to the same resource point.

[0003] In traditional technologies, a central processing system (CPU) queues robots, allocating resources from resource points to each robot in a "first-come, first-served" order. However, this process involves the CPU communicating with each robot requesting resources individually and creating a virtual queue. This process generates excessive communication overhead, leading to significant communication delays and instability. Summary of the Invention

[0004] Therefore, it is necessary to provide a robot queue scheduling method, apparatus, robot, computer-readable storage medium, and computer program product that can reduce communication volume in order to address the above-mentioned technical problems.

[0005] In a first aspect, this application provides a robot, which includes a mobile chassis, a communication module, a memory, and a processor. The mobile chassis is used to drive the robot to move autonomously. The communication module is used to enable communication between the robot and other robots. The memory is used to store computer-readable instructions that can be executed by the processor. When the processor executes the computer-readable instructions, it performs the following steps:

[0006] Resource points and corresponding queuing queues are determined from the environmental map stored by the robot; the environmental map stored by the robot corresponds to the environmental maps stored by the other robots.

[0007] When the robot goes to the resource point, control the robot to move towards the queue at the queuing point;

[0008] When the robot moves to a queuing point in the queuing point queue, a target point that is not occupied by the other robot is selected from the resource point and the queuing point queue based on at least one of queuing efficiency and the robot's communication range;

[0009] Control the robot to move to the target point until the target point is the resource point.

[0010] In one embodiment, determining resource points and corresponding queuing queues from the environmental map stored by the robot includes:

[0011] Based on the robot's resource request, resource points are determined in the physical locations of the environment map;

[0012] Determine the queue of the queuing point corresponding to the resource point.

[0013] In one embodiment, determining the queuing queue corresponding to the resource point includes:

[0014] The number of queuing points is determined based on the resource demand corresponding to the resource points.

[0015] From the physical locations, select physical locations within a preset distance of the resource point according to the number of queuing points;

[0016] The selected physical locations are assigned a corresponding order to obtain a queuing point queue.

[0017] In one embodiment, controlling the robot to move toward the queuing point queue includes:

[0018] Determine the target point that the robot needs to reach, and the target points that the other robots need to reach;

[0019] Based on the target point to be reached by the robot and the target points to be reached by the other robots, path planning is performed to obtain the path planning result;

[0020] Based on the path planning results, the robot's forward movement order is determined, and it moves towards the queue at the queuing point according to the forward movement order.

[0021] In one embodiment, selecting a target point not occupied by the other robots from the resource point and the queue of queuing points based on at least one of queuing efficiency and the robot's communication range includes:

[0022] Within the communication range of the robot, it communicates with other robots to obtain communication results;

[0023] Based on the communication results, it is determined whether the location to be reached by the robot conflicts with the location to be reached by the other robots; the location to be reached belongs to a queuing point in the queuing point queue.

[0024] If there is no conflict, the target point of the robot is determined based on the desired location.

[0025] In one embodiment, determining the robot's target point based on the desired location includes:

[0026] Determine whether there is a preset candidate point between the position the robot wants to reach and the queuing point occupied by the robot; the preset candidate point is a candidate queuing point in the robot's advance process;

[0027] If they exist, then based on the position the robot wants to reach, the preset candidate point and the queue point occupied by the robot, determine the number of times the robot can move and the target point for each move.

[0028] If not, the number of times the robot moves forward and the target point for each move are determined based on the position the robot wants to reach and the queue point it occupies.

[0029] In one embodiment, selecting a target point not occupied by the other robots from the resource point and the queue of queuing points based on at least one of queuing efficiency and the robot's communication range includes:

[0030] When the robot is in the queue and its communication range covers the queue, the robot's target point is determined based on the queuing efficiency.

[0031] When the robot is in the queue and its communication range cannot cover the queue, the robot's target point is determined based on the adjacent points of the queue it occupies.

[0032] In one embodiment, the processor is further configured to perform the following steps when executing the computer-readable instructions:

[0033] Once the robot arrives at the resource point, it executes the task operation corresponding to the resource point.

[0034] After completing the task, control the robot to move away from the resource point and the queuing queue.

[0035] Secondly, this application provides a queue scheduling method for robots. The method includes:

[0036] Resource points and corresponding queuing queues are determined from the environmental map stored by the robot; the environmental map stored by the robot corresponds to the environmental maps stored by other robots.

[0037] When the robot goes to the resource point, control the robot to move towards the queue at the queuing point;

[0038] When the robot moves to a queuing point in the queuing point queue, a target point that is not occupied by the other robot is selected from the resource point and the queuing point queue based on at least one of queuing efficiency and the robot's communication range;

[0039] Control the robot to move to the target point until the target point is the resource point.

[0040] Thirdly, this application also provides a queue scheduling device for robots. The device includes:

[0041] The physical location processing module is used to determine resource points and corresponding queuing queues from the environmental map stored by the robot; the environmental map stored by the robot corresponds to the environmental maps stored by other robots.

[0042] The first control module is used to control the robot to move towards the queue at the queuing point when the robot goes to the resource point;

[0043] The sorting module is used to select a target point that is not occupied by other robots from the resource points and the queue of queuing points when the robot moves to a queuing point in the queue of queuing points, based on at least one of queuing efficiency and the communication range of the robot.

[0044] The second control module is used to control the robot to move to the target point until the target point is the resource point.

[0045] Fourthly, this application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program thereon, which, when executed by a processor, implements the steps performed by the robot in any of the above embodiments.

[0046] Fifthly, this application also provides a computer program product. The computer program product includes a computer program that, when executed by a processor, implements the steps performed by the robot in any of the above embodiments.

[0047] The aforementioned robot and its queue scheduling method, apparatus, storage medium, and computer program product store an environmental map that corresponds to the environmental maps stored by other robots. The robot selects resource points based on the environmental map and determines the corresponding queue for each resource point. Since the robot and other robots are actually distributed and queue in physical space, it is impossible for "multiple robots to be in the same location." Therefore, conflicts in the queue are avoided while reducing communication volume. Furthermore, the target point is selected based on at least one of queuing efficiency and communication range. Conflict-free queuing can be guaranteed with minimal communication volume, ensuring accurate and efficient arrival at the resource point. Thus, a central processing system is not required, there are no additional deployment or maintenance costs, and there are no issues such as large communication delays, communication instability, or single points of failure. Attached Figure Description

[0048] Figure 1 This is a diagram illustrating the application environment of a robot queue scheduling method in one embodiment.

[0049] Figure 2 This is a flowchart illustrating a robot queue scheduling method in one embodiment;

[0050] Figure 3 This is a flowchart illustrating the queuing strategy of a robot in one embodiment;

[0051] Figure 4 This is a flowchart illustrating the robot queue scheduling method in another embodiment;

[0052] Figure 5 This is a structural block diagram of a robot's queue scheduling device in one embodiment;

[0053] Figure 6 This is a diagram of the internal structure of a robot in one embodiment. Detailed Implementation

[0054] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0055] The robot queue scheduling method provided in this application embodiment can be applied to, for example... Figure 1In the application environment shown, robot 102 includes a mobile chassis, a communication module, a memory, and a processor. The mobile chassis drives robot 102 to move autonomously, and the communication module enables robot 102 to communicate with other robots 104. Robot 102 determines resource points and corresponding queuing queues from its stored environmental map. The environmental map stored by robot 102 corresponds to the environmental maps stored by the other robots 104. When robot 102 moves to a resource point, it is controlled to move towards the queuing queue. When robot 102 moves to a queuing point in the queuing queue, based on at least one of queuing efficiency and the communication range of robot 102, a target point not occupied by other robots 104 is selected from the resource point and the queuing queue. Robot 102 is then controlled to move towards the target point until the target point is the resource point.

[0056] Robot 102 and other robots 104 use the same and their own stored environmental maps. Each robot has autonomous movement capabilities, allowing it to move within the environmental map or travel to various physical locations on the map. Each robot has obstacle avoidance capabilities, preventing collisions with other robots during movement. Each robot has limited communication capabilities, allowing it to communicate with other robots within a certain range. The communication content includes the target location the robot is about to reach, referred to as the "target location." The coordinate system used for the target location can vary. One method is to use the initial point of the robot's mapping and positioning as (0,0), with the east direction as the positive x-axis and the north direction as the positive y-axis, constructing a Cartesian coordinate system. Another method is to determine the robot's coordinate system based on the tool coordinate system or the world coordinate system.

[0057] In one embodiment, such as Figure 2 As shown, a robot is provided, comprising a mobile chassis, a communication module, a memory, and a processor. The mobile chassis is used to drive the robot to move autonomously. The communication module is used to enable communication between the robot and other robots. The memory is used to store computer-readable instructions that can be executed by the processor. When the processor executes the computer-readable instructions, it performs the following steps:

[0058] Step 202: Determine resource points and corresponding queuing queues from the environment map stored by the robot; the environment map stored by this robot corresponds to the environment maps stored by other robots.

[0059] The environmental map is identical to the map used by the aforementioned robot and other robots, and each robot stores its own map. This map contains multiple physical locations, each unique within the environmental map and existing in a specific scene, ensuring that the physical locations perceived by the robot executing this embodiment are the same as those perceived by other robots. At least one of these physical locations is a resource point. This resource point forms the basis for robot path planning and provides the prerequisites for certain robot tasks. Resource points are defined using virtual resources, which are information resources obtained through databases or program editing. When the resource point determined by the robot corresponds to the virtual resource of operation A, the robot meets the resource conditions for performing operation A when it reaches that resource point. Operation A can be one or more of the following operations in the environment: picking up food, charging, taking an elevator, etc. Correspondingly, the resource point for operation A can be one or more of the following resource point types in the environment: food pick-up point, charging point, elevator taking point, etc.

[0060] The queue of queuing points corresponding to resource points includes at least one queuing point corresponding to each resource point, and the queuing points are arranged in a certain order. The order of the queuing points in the queue provides at least a partial basic path for the robot to plan its path based on the resource points, so as to control the robot based on the resource points.

[0061] Since physical locations are unique in the environment map, resource points determined from physical locations are also unique in the environment map. The queuing queue of resource points specifies the order of each queuing point. The robot can determine the queuing order information between various machines without communicating with these locations. This is beneficial for generating robot control strategies through the environment map, in order to reduce the amount of communication the robot needs in the corresponding scenario.

[0062] In one embodiment, step 202 may specifically include: determining resource points in the physical locations of the environment map based on the robot's resource requests; and determining the queue of the queuing point corresponding to the resource point.

[0063] Because the robot determines the corresponding operation based on the resource request, determines the resource point the robot will go to based on the operation, and then determines the corresponding queuing point queue based on the physical locations around the resource point, the robot fully utilizes the physical location. By leveraging the unique physical location of each queuing point, the possibility of collisions between robots during the queuing process is further reduced. For example, when a robot needs to request a resource, it first goes to the end of the queue corresponding to that resource. Since the end of the queue is a unique physical location, and the robot has obstacle avoidance capabilities, it can ensure that it will not be at the end of the queue simultaneously with other robots, thus preventing conflicts between robots during the queuing process.

[0064] In one embodiment, determining the queue of queuing points corresponding to a resource point includes: determining the number of queuing points based on the resource demand corresponding to the resource point; selecting physical locations within a preset distance of the resource point from the physical locations according to the number of queuing points; and setting a corresponding order for the selected physical locations to obtain the queue of queuing points.

[0065] Resource points are prerequisites for each robot to perform a certain operation. When a robot's target point is a resource point, and it moves to that resource point, it is determined that the robot can perform the corresponding operation.

[0066] The process of determining the number of queuing points is based on the resource demand set in the actual scenario. The resource demand will change as the actual scenario changes, causing the number of robots that need the virtual resource to change. The changed number of robots constitutes a threshold, which limits the minimum number of queuing points.

[0067] For example, in a two-story restaurant scenario, there are tables on both the first and second floors, one food preparation point on the first floor, and one elevator between the first and second floors. Five robots are to be purchased. The resource points to be allocated are: food preparation point resource points and elevator resource points. Correspondingly, there are at least two ways to allocate queue points for these resource points: One way to allocate elevator queue points is: all robots can go to all food preparation points and can also handle food delivery tasks on both the first and second floors. In this case, the number of robots needed for food preparation points is 5, and the number of robots needed for the elevator is 5. Therefore, the number of queue points needed for both food preparation points and the elevator is no less than 5. Another way to allocate is: the deployment personnel specifically designate a certain robot to handle food delivery tasks on the second floor. In this case, the number of robots needed for food preparation points is 5, but the number of robots needed for the elevator is 1. Therefore, the number of queue points needed for food preparation points is no less than 5, and the number of queue points needed for the elevator is no less than 1.

[0068] After determining the number of queuing points, physical locations within a preset distance of the resource point are selected from multiple physical locations according to the number of queuing points to determine the physical locations near the resource point. Then, a corresponding order is set according to the distance between the physical locations near the resource point and the resource point to obtain the queuing point queue; in the queuing point queue, the closer the distance to the resource point, the earlier the queuing point is.

[0069] Step 204: When the robot goes to the resource point, control the robot to move to the queue.

[0070] Optionally, obstacle avoidance can be achieved during movement using the robot's obstacle avoidance characteristics to prevent collisions with other robots. The strategies for obstacle avoidance using these characteristics can be varied. For example: the robot can pause its movement; it can be based on the Bug1 algorithm, where the robot first completely circles the obstacle and then leaves from the point with the shortest distance to the target; it can be based on the Bug2 algorithm, where the robot initially tracks the obstacle's outline and separates directly from the obstacle when it can move directly to the target, thus reducing the robot's movement path; or it can be achieved by creating a local map of the robot's polar coordinates using a Vector Field Histogram (VFH), where the x-axis represents the angle of the obstacle perceived by the robot, and the y-axis represents the probability p of the obstacle existing in that direction. In practical applications, this histogram is used to first identify all sufficiently large gaps that allow the robot to pass through. Then, the cost function of each of these gaps is calculated, and finally, the path with the lowest cost function is selected. The cost function is affected by three factors: the target direction, the robot's current direction, and the previously selected direction. The final cost is the weighted value of these three factors. By adjusting different weights, the robot's selection preference can be adjusted.

[0071] When a robot heads to a resource point, it treats other robots as obstacles and avoids them based on its obstacle avoidance capabilities. Since the queue points have a specific order, a robot that manages to escape can choose a particular queue point. Specifically, when the tail of the queue has a unique physical location, the robot's obstacle avoidance features prevent it from appearing at the tail of the queue simultaneously with other robots, thus avoiding conflicts caused by queuing.

[0072] In one embodiment, controlling a robot to move toward a queuing point includes: the robot determining the target point it wants to reach, and the target points that other robots want to reach; performing path planning based on the target point the robot wants to reach and the target points that other robots want to reach, and obtaining a path planning result; determining the robot's forward sequence based on the path planning result, and moving toward the queuing point in the forward sequence.

[0073] Following the forward sequence refers to the order in which the robot performing the above process communicates with other robots, used to regulate the order in which the above robots and other machines proceed to the queuing point in a queuing scenario. Optionally, the queuing points in the queuing point queue each have their own arrangement order. Optionally, in the queuing point queue, the queuing point with the fewest queuing points between it and the resource point is the head of the queue; in the queuing point queue, the queuing point with the most queuing points between it and the resource point is the tail of the queue.

[0074] When a robot uses the last point in the queue of resource points as its target point, it relies on its obstacle avoidance characteristics to avoid obstacles. The obstacles it avoids can be not only the locations of other robots, but also the target points that other robots can reach. It performs optimal path planning to obtain a path planning result, which may result in the robot pausing its movement or the robot going around the obstacle. Therefore, communication between robots can be omitted or even eliminated, thereby reducing the amount of communication during the obstacle avoidance process.

[0075] Step 206: When the robot moves to a queuing point in the queuing queue, a target point that is not occupied by other robots is selected from the resource point and the queuing queue based on at least one of the queuing efficiency and the communication range of the robot.

[0076] Queuing efficiency can be characterized by the number of times a robot performs queuing planning at a queuing point. Queuing efficiency is positively correlated with the number of times a robot performs queuing planning at a queuing point; the number of queuing planning operations can be represented by the number of carry operations. During the robot's journey to a resource point, the more queuing points it pauses at, the more queuing planning operations it performs, and the lower the queuing efficiency. At the lowest queuing efficiency, the robot will carry along the queue points sequentially, resulting in a longer travel route and more time. However, when queuing according to the queuing algorithm corresponding to the highest queuing efficiency, the robot will directly reach the target point. The communication range feature is based on the robot's own communication characteristics, selecting target points sequentially based on the robot's position and corresponding communication range. The target point is any physical location in the resource point or queuing point queue that is not occupied by other robots.

[0077] The process of selecting a target point not occupied by other robots involves determining the queuing method based on at least one of queuing efficiency and the robot's communication range. Then, based on the queuing method, a corresponding queuing point is selected to choose a target point not occupied by other robots, avoiding conflicts during queuing. Furthermore, because the unoccupied queuing points that each robot can choose from in the queuing queue are non-overlapping, it is not necessary to wait for all robots to confirm, thus reducing communication overhead. For example, 10 queuing points and their corresponding resource point queues form 11 sequentially arranged numbered positions. When a resource point is at position 0, and there are robots at queuing positions 3, 4, and 10, the robot currently at queuing position 3 can choose one of queuing positions 1, 2, or 0 as its target point; the robot at queuing position 4 has no target point; and the robot at queuing position 10 can choose one of queuing positions 5-9 as its target point.

[0078] In one embodiment, selecting a target point not occupied by other robots from resource points and queuing queues based on at least one of queuing efficiency and the robot's communication range includes: when a robot is in the queuing queue and its communication range covers the queuing queue, determining the robot's target point based on queuing efficiency. Thus, for robots with the highest communication requirements and the highest efficiency, the robot is at the end of the queuing queue and there are no other robots in front of it, allowing it to directly proceed to the front of the queue.

[0079] When a robot's communication with other robots at adjacent queuing points is normal, but communication with other robots at some points is abnormal, the target point for each robot is determined based on the adjacent points of the queuing point it occupies. Adjacent points are those queuing points adjacent to the queuing point occupied by the robot. This method has the lowest communication requirements (communication is only possible between adjacent robots); it also has the lowest efficiency. If there are 10 queuing points, even if there are no other robots ahead, the robot at queuing point 10 must proceed sequentially to queuing points 9, 8, 7, and so on, until it reaches queuing point 1.

[0080] Step 208: Control the robot to move to the target point until the target point is a resource point.

[0081] The process of controlling a robot to move towards a target point is called the "carry process." The robot will control itself to complete the carry process by moving towards the target point at least once, until the last target point the robot moves to is the resource point, so that the robot can reach the resource point and perform the corresponding business operation. Specifically, if all queuing points in front of the robot are not occupied, and the resource point is also not occupied, the robot can be controlled to move directly to the resource point; if the adjacent queuing point in front of the robot is occupied, the robot is controlled to stop in place; if there are multiple unoccupied queuing points in front of the robot, it moves to the selected queuing point. When the robot's target point is a resource point, the robot controls itself to move to the resource point to complete the queuing scheduling process for the robot.

[0082] In one embodiment, the processor is further configured to perform the following steps when executing computer-readable instructions: after the robot arrives at the resource point, execute the task operation corresponding to the resource point; after completing the task operation, control the robot to move away from the resource point and the queue.

[0083] Once the robot arrives at a resource point, it completes the corresponding task operation based on the business logic. Controlling the robot to move away from the resource point and the queue also facilitates other robots' journey to the resource point to complete their tasks. This further ensures conflict-free queuing with minimal communication, allowing other robots to reach the resource point accurately and efficiently. It can be understood that controlling the robot to move away from the resource point and queue may also involve steps related to the robot's journey to the next resource point.

[0084] In the queuing and scheduling process of the robots described above, resource points are selected based on their physical locations on the environmental map, and the corresponding queuing queues are determined. Since the robots actually queue in physical space, and the physical location itself is unique, it is impossible for "multiple robots to be in the same location." During movement, the robots utilize obstacle avoidance characteristics to avoid collisions with other robots. This avoids conflicts in the queuing process while reducing communication volume. Furthermore, the target point is selected based on at least one of queuing efficiency and communication range, ensuring a conflict-free queuing process with minimal communication volume, allowing for accurate and efficient arrival at the resource point. Therefore, a central processing system can be eliminated, resulting in no additional deployment or maintenance costs, and avoiding issues such as large communication delays, communication instability, and single points of failure.

[0085] Furthermore, compared to schemes based on distributed consensus algorithms, the queuing process in this scheme does not require the use of distributed consensus algorithms. When a robot selects a higher queuing point, it does not need to wait for all robots to confirm the operation before it can move forward. This reduces the amount of communication between robots and also lowers the requirements for the communication network. It is less dependent on the communication capabilities of the robots and is more suitable for mobile service robots in scenarios such as catering than existing methods.

[0086] In one embodiment, the process of selecting a target point from a queuing queue is used to ensure conflict-free queuing with minimal communication, enabling accurate and efficient arrival at the resource point. Among the various available queuing methods, different methods correspond to different application conditions and their respective effects.

[0087] In one embodiment, when a robot perceives "no robot ahead," it may be that other robots are ahead, but the distance between them is too great, resulting in poor communication. In this case, directly applying the method with the highest queuing efficiency would cause conflict—multiple robots heading to the same queuing point or resource point. Correspondingly, based on at least one of queuing efficiency and the robot's communication range, a target point not occupied by other robots is selected from the resource point and queuing queues. Figure 3 As shown, it includes:

[0088] Step 302: Communicate with other robots within the robot's communication range and obtain the communication results.

[0089] During communication with other robots within its communication range, the robot selects the queue point closest to the resource point in the order of priority based on the communication range. Starting from the queue point closest to the resource point, it communicates with each queue point one by one to obtain the communication result. The communication result is used to characterize the outcome reflected by the communication content of the robot. It may indicate that no other robot occupies the queue point close to the resource point, or it may indicate that other robots are continuously or expected to occupy a certain queue point.

[0090] Step 304: Based on the communication results, determine whether the location to be reached by the robot conflicts with the location to be reached by other robots; the location to be reached belongs to a queuing point in the queuing point queue.

[0091] Step 306: If there is no conflict, determine the robot's target point based on the desired location.

[0092] The target location can be any point in the queue. It can be a point that the robot will continue to occupy, or it can be a queue point closer to the resource point that the robot will move to. When no other robot occupies a queue point close to the resource point, determining the target location for the robot does not conflict with other robots, and the queue point closest to the resource point in the communication range can be selected as the target point. When other robots are continuously or will occupy queue points close to the resource point, determining the target location for the robot conflicts with other robots, and the robot needs to reselect its target point.

[0093] In this embodiment, the queuing strategy based on communication range is applicable to various scenarios and ensures efficient queuing in multiple scenarios. In scenarios with the highest communication requirements, normal communication between any two queuing points is achieved, with efficiency approaching that of a scheme that directly proceeds to the queuing point closest to the resource point. In scenarios with the lowest communication requirements, normal communication between only two adjacent queuing points is achieved, with efficiency higher than the sequential advancement approach. Therefore, by selecting a conservative communication range, even if two robots are far apart and communication between them is poor, conflicts will not occur, thus achieving efficient queuing.

[0094] In one embodiment, in real-world scenarios, walls and corners can significantly reduce a robot's communication range. In such cases, if a conservative communication distance parameter is chosen, the communication range becomes too small, resulting in low queuing efficiency based on the communication range. Conversely, if a non-conservative communication distance is chosen, the communication range becomes too large, and queuing based on the communication range carries the risk of other conflicts. Therefore, determining the robot's target point based on the desired location includes:

[0095] Determine whether there is a preset candidate point between the position the robot wants to reach and the queue point occupied by the robot; the preset candidate point is a candidate queue point for the robot's advance process; if it exists, determine the number of advances of the robot and the target point of each advance based on the position the robot wants to reach, the preset candidate point and the queue point occupied by the robot; if it does not exist, determine the number of advances of the robot and the target point of each advance based on the position the robot wants to reach and the queue point occupied by the robot.

[0096] Preset candidate points are those with a skippable attribute on the environment map. This skippable attribute determines whether a queuing point is a "non-skipable point" or a "skipable point." During a robot's movement, if there is a "non-skipable point" between the robot's desired location and its current queuing point, each "non-skipable point" is designated as a mandatory move for the robot, with each "non-skipable point" corresponding to one move. The robot can choose the preset candidate point whose queue order is closest to the current "non-skipable" queuing point. When using this method, it is essential to ensure that robots between any two consecutive "non-skipable" preset candidate points can communicate normally. Therefore, by allowing deployment personnel to manually set which preset candidate points must be visited, the number of moves can be reduced, maximizing queuing efficiency.

[0097] Furthermore, in abnormal situations, such as when the robot's task is manually terminated or when the robot experiences an internal malfunction, the robot can exit the queue by resetting the target point to empty. This can be achieved simply by changing the target point to a non-queue point or resource point. When executing business logic, such as food delivery, the target point is modified according to the business logic, such as changing it to the location of the table; when an abnormality occurs, it can be changed to "infinity," where "infinity" can be a coordinate value defined in the program that is not within the map's boundaries.

[0098] To more clearly demonstrate the overall solution of this application, such as Figure 4 As shown, a specific embodiment illustrates the corresponding process of this solution. This process includes: a robot requesting to perform a task operation determines a resource point and its corresponding queuing queue from the physical location on the environmental map, and proceeds to the tail point of the queuing queue, where a single robot occupies at most one tail point; when a robot moves to the tail point of the queuing queue, it is considered to be in the queuing queue; it is determined whether the robot in the queuing queue has moved to a resource point; when the robot moves towards the queuing queue of a resource point, it first checks for any abnormalities. If an abnormality occurs, the robot changes its target point to leave the current queuing queue; if no abnormality occurs, based on at least one of queuing efficiency and the robot's communication range, a target point not occupied by other robots is selected from the resource points and the queuing queue, and the robot proceeds to the target point until the target point is a resource point in that queuing queue. After the robot arrives at the resource point, it executes the corresponding business operation logic at the resource point; after executing the business operation, the robot changes its target point to leave the current queuing queue.

[0099] In another embodiment, the overall process of this application is described as follows: resource points are set in the environment map based on virtual resources; each resource point has several queuing points nearby, and the queuing points are ordered. The robot requesting the resource uses obstacle avoidance to ensure that only one robot can reach the end of the queue, and then moves forward from the end of the queue to the next target point, finally reaching the resource point; the robots can communicate with each other, and the communication content includes the target point that the robot wants to go to. During the robot's movement process, multiple strategies can be selected to choose a queuing point from the currently available queuing points for movement. The robot's movement process specifically includes the following steps: if a queuing point is the target point of another robot, then that queuing point cannot be selected for movement; if there is a sequence after the current queuing point, and the queuing point before the current queuing point has been selected by another robot, then that queuing point cannot be selected either.

[0100] In one embodiment, a comprehensive discussion is given of the target points selected from the resource points and queuing queues to describe the strategy corresponding to the queuing points. This strategy can be any of the following:

[0101] 1. One strategy is to select the queue point with the highest priority. This requires ensuring stable robot communication between any two queue points when setting up the environment map, and is suitable for situations where queue points are adjacent. Correspondingly, during the execution of this strategy, the processor, when executing computer-readable instructions, implements the following steps: when the robot is in the queue and its communication range covers the queue, the robot's target point is determined based on queuing efficiency.

[0102] 2. One strategy is to select the previous queuing point at the robot's current location. In this case, it's crucial to ensure that machine communication between any queuing point and its subsequent queuing points is normal when setting up the environment map. This is suitable for situations where there are few and relatively dispersed queuing points. Correspondingly, during the execution of this strategy, the processor, when executing computer-readable instructions, implements the following steps: When the robot is in a queuing point queue, and the robot's communication range cannot cover the queue, determine the robot's target point based on the adjacent points of the queuing point occupied by the robot.

[0103] 3. One strategy is to use communication distance limitations for selection, that is, to select the queuing point with the highest sorting order that is less than the current robot's communication range. In this case, the requirements for setting the environmental map are the same as in Strategy 2. Since communication distances vary in actual environments, a more conservative communication distance must be used when employing this method. Correspondingly, during the execution of this strategy, the processor, when executing computer-readable instructions, performs the following steps: communicating with other robots within the robot's communication range and obtaining the communication results; based on the communication results, determining whether the robot's desired location conflicts with the desired location of other robots; the desired location belongs to a queuing point in the queue; if there is no conflict, determining the robot's target point based on the desired location.

[0104] 4. One strategy is to assign additional attributes to each queuing point when setting up the environment map: skippable and non-skippable. In this case, during "carry-over," the machine can choose the "non-skippable" queuing point whose sorting order is closest to the current queuing point. When using this method, it is necessary to ensure that the machine can communicate normally between any two consecutive "non-skippable" queuing points. Correspondingly, during the execution of this strategy, the processor, when executing computer-readable instructions, performs the following steps: determining whether there are preset candidate points between the robot's desired location and the queuing point it occupies; the preset candidate points are candidate queuing points for the robot's carry-over process; if they exist, determining the number of carry-overs and the target point for each carry-over based on the robot's desired location, the preset candidate points, and the queuing point it occupies; if they do not exist, determining the number of carry-overs and the target point for each carry-over based on the robot's desired location and the queuing point it occupies.

[0105] Therefore, this application proposes a multi-robot queue scheduling method based on physical feature information to address the resource contention and conflict problems of multiple mobile robots. Compared to schemes based on a central processing system, this method is completely distributed, with no additional deployment or maintenance costs, and no single point of failure. Compared to schemes based on distributed consensus algorithms, the queuing process in this application does not require the use of distributed consensus algorithms. When a robot chooses a higher queuing point, it does not need to wait for all robots to confirm this operation before moving forward, which reduces the amount of communication between robots and lowers the requirements for the communication network. At the same time, because this application utilizes the uniqueness of physical locations, although the method is simpler and requires less communication, it is more suitable for mobile service robots in scenarios such as catering than existing methods. This application can still guarantee that the queuing process is conflict-free: that is, there will be no situation where two robots simultaneously choose a resource point as their target point.

[0106] It should be understood that although the steps in the flowcharts of the above embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.

[0107] This application provides a robot queue scheduling method. The robot includes a mobile chassis and a communication module. The mobile chassis is used to drive the robot to move autonomously, and the communication module is used to enable communication between the robot and other robots. The method includes:

[0108] Resource points and corresponding queuing queues are determined from the environmental map stored by the robot; the environmental map stored by the robot corresponds to the environmental maps stored by the other robots.

[0109] When the robot goes to a resource point, control the robot to move towards the queue at the queuing point;

[0110] When a robot moves to a queuing point in the queuing queue, a target point that is not occupied by other robots is selected from the resource point and the queuing queue based on at least one of queuing efficiency and the robot's communication range.

[0111] Control the robot to travel to the target point until the target point is a resource point.

[0112] In one embodiment, determining resource points and corresponding queuing queues from the environmental map stored by the robot includes:

[0113] Based on the robot's resource request, resource points are determined in the physical locations of the environment map;

[0114] Determine the queue of the queuing point corresponding to the resource point.

[0115] In one embodiment, determining the queuing queue corresponding to the resource point includes:

[0116] The number of queuing points is determined based on the resource demand corresponding to the resource points.

[0117] From the physical locations, select physical locations within a preset distance of the resource point according to the number of queuing points;

[0118] The selected physical locations are assigned a corresponding order to obtain a queuing point queue.

[0119] In one embodiment, controlling the robot to move toward the queuing point queue includes:

[0120] Determine the target point that the robot needs to reach, and the target points that the other robots need to reach;

[0121] Based on the target point to be reached by the robot and the target points to be reached by the other robots, path planning is performed to obtain the path planning result;

[0122] Based on the path planning results, the robot's forward movement order is determined, and it moves towards the queue at the queuing point according to the forward movement order.

[0123] In one embodiment, selecting a target point not occupied by the other robots from the resource point and the queue of queuing points based on at least one of queuing efficiency and the robot's communication range includes:

[0124] Within the communication range of the robot, it communicates with other robots to obtain communication results;

[0125] Based on the communication results, it is determined whether the location to be reached by the robot conflicts with the location to be reached by the other robots; the location to be reached belongs to a queuing point in the queuing point queue.

[0126] If there is no conflict, the target point of the robot is determined based on the desired location.

[0127] In one embodiment, determining the robot's target point based on the desired location includes:

[0128] Determine whether there is a preset candidate point between the position the robot wants to reach and the queuing point occupied by the robot; the preset candidate point is a candidate queuing point in the robot's advance process;

[0129] If they exist, then based on the position the robot wants to reach, the preset candidate point and the queue point occupied by the robot, determine the number of times the robot can move and the target point for each move.

[0130] If not, the number of times the robot moves forward and the target point for each move are determined based on the position the robot wants to reach and the queue point it occupies.

[0131] In one embodiment, selecting a target point not occupied by the other robots from the resource point and the queue of queuing points based on at least one of queuing efficiency and the robot's communication range includes:

[0132] When the robot is in the queue and its communication range covers the queue, the robot's target point is determined based on the queuing efficiency.

[0133] When the robot is in the queue and its communication range cannot cover the queue, the robot's target point is determined based on the adjacent points of the queue it occupies.

[0134] In one embodiment, the method further includes:

[0135] Once the robot arrives at the resource point, it executes the task operation corresponding to the resource point.

[0136] After completing the task, control the robot to move away from the resource point and the queuing queue.

[0137] The specific steps of the above queue scheduling method can be found in steps 202-208 and steps 302-306.

[0138] The advantages of this method are twofold: First, compared to on-site deployed central processing systems (such as a small central control computer), it reduces deployment and maintenance difficulty, lowering the overall system cost. Second, cloud-based remote central processing systems suffer from high communication latency and instability. Third, compared to distributed consensus algorithms, this method reduces communication overhead, increases efficiency, and weakens reliance on inter-machine communication networks because it doesn't require running multiple rounds of the algorithm (until convergence) for each operation. While it's not overly complex or efficient for simple queuing tasks, its reduced dependence on communication networks broadens its applicability—even in indoor environments with many walls and corners where communication is difficult due to walls, it can be directly deployed.

[0139] Based on the same inventive concept, this application also provides a robot queue scheduling device for implementing the robot queue scheduling method described above. The solution provided by this device is similar to the solution described in the above method; therefore, the specific limitations of one or more robot queue scheduling device embodiments provided below can be found in the limitations of the robot queue scheduling method described above, and will not be repeated here.

[0140] In one embodiment, such as Figure 5 As shown, a queue scheduling device for a robot is provided, comprising: a physical position processing module 502, a first control module 504, a sorting module 506, and a second control module 508, wherein:

[0141] The physical location processing module 502 is used to determine resource points and corresponding queuing queues from the environmental map stored by the robot; the environmental map stored by the robot corresponds to the environmental maps stored by the other robots.

[0142] The first control module 504 is used to control the robot to move towards the queue when the robot goes to the resource point;

[0143] The sorting module 506 is used to select a target point that is not occupied by the other robots from the resource points and the queue of queuing points when the robot moves to a queuing point in the queue, based on at least one of queuing efficiency and the robot's communication range.

[0144] The second control module 508 is used to control the robot to move to the target point until the target point is a resource point.

[0145] In one embodiment, the physical location processing module 502 includes:

[0146] The resource point determination unit is used to determine resource points in the physical locations of the environment map based on the resource requests of the robot.

[0147] The queue determination unit is used to determine the queue of the queuing point corresponding to the resource point.

[0148] In one embodiment, the queuing point queue determination unit includes:

[0149] The quantity determination subunit is used to determine the number of queuing points based on the resource demand corresponding to the resource points.

[0150] The distance determination subunit is used to select a physical location within a preset distance of the resource point from the physical locations according to the number of queuing points;

[0151] The sequence determination subunit is used to set the corresponding order for the selected physical locations to obtain the queuing point queue.

[0152] In one embodiment, the first control module 504 includes:

[0153] The target point obstacle avoidance unit is used to determine the target point that the robot wants to reach, as well as the target points that the other robots want to reach;

[0154] The path planning unit is used to perform path planning based on the target point to be reached by the robot and the target points to be reached by the other robots, and obtain the path planning result.

[0155] The forward sequence determination unit is used to determine the forward sequence of the robot based on the path planning results.

[0156] In one embodiment, the sorting module 506 includes:

[0157] A communication result determination unit is used to communicate with other robots within the communication range of the robot to obtain communication results;

[0158] A conflict avoidance determination unit is used to determine, based on the communication results, whether the location to be reached by the robot conflicts with the location to be reached by the other robots; the location to be reached belongs to a queuing point in the queuing point queue;

[0159] The target point determination unit is used to determine the target point of the robot based on the desired location, if there is no conflict.

[0160] In one embodiment, the device further includes the following modules:

[0161] The candidate point determination module is used to determine whether there is a preset candidate point between the position to be reached by the robot and the queuing point occupied by the robot; the preset candidate point is a candidate queuing point in the robot's advance process;

[0162] The first carry-number determination module is used to determine the number of carry-numbers and the target point of each carry-number based on the position to be reached by the robot, the preset candidate point and the queue point occupied by the robot when there is a preset candidate point.

[0163] The second carry-time determination module is used to determine the number of carry-times and the target point of each carry-time based on the position to be reached by the robot and the queue point occupied by the robot when there is no preset candidate point.

[0164] In one embodiment, the sorting module 506 includes:

[0165] The first sorting unit is used to determine the target point of the robot based on queuing efficiency when the robot is in the queuing point queue and the communication range of the robot covers the queuing point queue.

[0166] The second sorting unit is used to determine the target point of the robot based on the adjacent points of the queuing point occupied by the robot when the robot is in the queuing point queue and the communication range of the robot cannot cover the queuing point queue.

[0167] In one embodiment, the device further includes:

[0168] The task operation module is used to execute the task operation corresponding to the resource point after the robot arrives at the resource point;

[0169] The queue termination module is used to control the robot to move away from the resource point and the queue after the task operation is completed.

[0170] The modules in the queue scheduling device of the robot described above can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in the robot's processor in hardware form or independent of it, or they can be stored in the robot's memory in software form, so that the processor can call and execute the operations corresponding to each module.

[0171] In one embodiment, a robot is provided whose internal structure diagram can be as follows: Figure 6 As shown, the robot includes a processor, memory, input / output interface, communication interface, display unit, and input device. The processor, memory, and input / output interface are connected via a system bus, and the communication interface, display unit, and input device are also connected to the system bus via the input / output interface. The robot's processor provides computational and control capabilities. The robot's memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The robot's input / output interface is used for exchanging information between the processor and external devices. The robot's communication interface is used for wired or wireless communication with external robots; wireless communication can be achieved through Wi-Fi, mobile cellular networks, NFC (Near Field Communication), or other technologies. When the computer program is executed by the processor, it implements a robot queue scheduling method. The robot's display unit is used to form a visually visible image. It can be a display screen, a projection device, or a virtual reality imaging device. The display screen can be an LCD screen or an e-ink screen. The robot's input device can be a touch layer covering the display screen, or buttons, a trackball, or a touchpad set on the robot's shell, or an external keyboard, touchpad, or mouse, etc.

[0172] Those skilled in the art will understand that Figure 6 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the robot to which the present application is applied. A specific robot may include more or fewer parts than shown in the figure, or combine certain parts, or have different part arrangements.

[0173] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon that, when executed by a processor, implements the steps in the above method embodiments.

[0174] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the steps in the above method embodiments.

[0175] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data shall comply with the relevant laws, regulations and standards of the relevant countries and regions.

[0176] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.

[0177] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0178] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.

Claims

1. A robot, characterized in that, The robot includes a mobile chassis, a communication module, a memory, and a processor. The mobile chassis is used to propel the robot to move autonomously. The communication module is used to enable communication between the robot and other robots. The memory is used to store computer-readable instructions that can be executed by the processor. When the processor executes the computer-readable instructions, it performs the following steps: Resource points and corresponding queuing queues are determined from the environmental map stored by the robot; the environmental map stored by the robot corresponds to the environmental maps stored by the other robots. When the robot goes to the resource point, control the robot to move towards the queue at the queuing point; When the robot moves to a queuing point in the queuing point queue, a target point that is not occupied by the other robot is selected from the resource point and the queuing point queue based on at least one of queuing efficiency and the robot's communication range; Control the robot to move to the target point until the target point is the resource point; When the robot moves to a queuing point in the queuing queue, based on at least one of queuing efficiency and the robot's communication range, a target point not occupied by other robots is selected from the resource points and the queuing queue, including: When the robot is in the queue and its communication range covers the queue, the robot's target point is determined based on queuing efficiency; when the robot is in the queue and its communication range cannot cover the queue, the robot's target point is determined based on the adjacent points occupied by the robot in the queue.

2. The robot according to claim 1, characterized in that, The step of determining resource points and corresponding queuing queues from the environmental map stored by the robot includes: Based on the robot's resource request, resource points are determined in the physical locations of the environment map; Determine the queue of the queuing point corresponding to the resource point.

3. The robot according to claim 2, characterized in that, Determining the queue corresponding to the resource point includes: The number of queuing points is determined based on the resource demand corresponding to the resource points. From the physical locations, select physical locations within a preset distance of the resource point according to the number of queuing points; The selected physical locations are assigned a corresponding order to obtain a queuing point queue.

4. The robot according to claim 1, characterized in that, The control of the robot to move toward the queuing point includes: Determine the target point that the robot needs to reach, and the target points that the other robots need to reach; Based on the target point to be reached by the robot and the target points to be reached by the other robots, path planning is performed to obtain the path planning result; Based on the path planning results, the robot's forward movement order is determined, and it moves towards the queue at the queuing point according to the forward movement order.

5. The robot according to claim 1, characterized in that, The method further includes: Within the communication range of the robot, it communicates with other robots to obtain communication results; When the robot is in the queue and its communication range covers the queue, based on the communication results, it is determined whether the location the robot wants to reach conflicts with the location the other robots want to reach; the location to reach belongs to a queue in the queue. Determining the robot's target point based on queuing efficiency includes: If there is no conflict, the robot's target point is determined based on queuing efficiency from the desired location.

6. The robot according to claim 5, characterized in that, Determining the robot's target point based on queuing efficiency at the desired location includes: Determine whether there is a preset candidate point between the position the robot wants to reach and the queuing point occupied by the robot; the preset candidate point is a candidate queuing point in the robot's advance process; If they exist, the number of times the robot needs to move forward and the target point for each move forward are determined based on the position the robot needs to reach, the preset candidate point, and the queue point occupied by the robot.

7. The robot according to claim 6, characterized in that, After determining whether there is a preset candidate point between the location the robot wants to reach and the queuing point occupied by the robot, the method further includes: If not, the number of times the robot moves forward and the target point for each move are determined based on the position the robot wants to reach and the queue point it occupies.

8. The robot according to claim 1, characterized in that, The processor is also configured to perform the following steps when executing the computer-readable instructions: Once the robot arrives at the resource point, it executes the task operation corresponding to the resource point. After completing the task, control the robot to move away from the resource point and the queuing queue.

9. A queue scheduling method for robots, characterized in that, The robot includes a mobile chassis and a communication module. The mobile chassis is used to drive the robot to move autonomously, and the communication module is used to enable communication between the robot and other robots. The queue scheduling method includes the steps implemented by the robot according to any one of claims 1-8.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the steps performed by the robot according to any one of claims 1-8.

Citation Information

Patent Citations

  • Queuing scheduling method and device

    CN111736538A

  • Robot queuing method, robot and computer readable storage medium

    CN112099491A