Method, device and computer equipment for robot task scheduling
By receiving instructions from the call terminal, determining the task queue, and selecting the target robot, the problem of efficient scheduling in multi-robot environments is solved, and task execution efficiency is improved.
Patent Information
- Application Number
- CN202210129509.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-02-11
- Publication Date
- 2025-12-23
- Estimated Expiration
- 2042-02-11
AI Technical Summary
In environments with two or more robots, how to efficiently schedule each robot to perform tasks is a problem that urgently needs to be solved.
By receiving call instructions from the call terminal, the call task queue is determined and arranged in order of priority. The target robot is selected to assign tasks based on the call location information and scheduling score.
It improves the efficiency of multiple robots cooperating in performing tasks, optimizes robot scheduling, and achieves efficient task distribution.
Smart Images

Figure CN115533889B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of intelligent robots, and in particular to a robot task scheduling method and device, a computer device, a storage medium, and a computer program product. BACKGROUND
[0002] With the rise in labor costs, the operating costs of places such as shopping malls and restaurants have increased, and robots have begun to replace service personnel to provide services. Robots can be set up in shopping malls and restaurants to perform tasks such as welcoming, leading to seats, ordering, delivering food, and returning dishes, thereby relieving the pressure on human resources.
[0003] However, for places with two or more robots, how to efficiently schedule each robot is a problem that needs to be solved at present. SUMMARY
[0004] Therefore, it is necessary to provide a robot task scheduling method and device, a computer device, a computer readable storage medium, and a computer program product that can efficiently schedule robots to solve the above technical problems.
[0005] In a first aspect, the present application provides a robot task scheduling method. The method comprises:
[0006] receiving a call instruction sent by at least one call terminal, determining at least one call task corresponding to the call instruction; the call instruction includes call position information;
[0007] determining a call task queue composed of at least one call task, each call task in the call task queue is arranged in priority order;
[0008] determining a current call task in the call task queue according to the priority order corresponding to each call task, and determining at least one to-be-scheduled robot corresponding to the current call task according to the call position information of the current call task;
[0009] determining a target robot according to the scheduling score corresponding to each to-be-scheduled robot, and assigning the current call task to the target robot.
[0010] In one embodiment, after receiving the call instruction sent by the at least one call terminal, the method further comprises:
[0011] verifying the legality of the call instruction;
[0012] when the verification of the legality of the call instruction fails, discarding the call instruction;
[0013] The checking of the legality of the call instruction comprises at least one of the following: checking whether the call terminal is pre-registered, checking whether the call location information in the call instruction is located in a preset location range, and checking whether the call task corresponding to the call instruction has a priority order.
[0014] In one of the embodiments, before the determining of the call task queue composed of the at least one call task, the method further comprises:
[0015] Merging each call task corresponding to a plurality of call instructions sent by the same call terminal into one call task.
[0016] In one of the embodiments, before the determining of the call task queue composed of the at least one call task, the method further comprises:
[0017] According to the call location information in the at least one call instruction, merging a plurality of call tasks corresponding to at least one call instruction located in the same location range into one call task.
[0018] In one of the embodiments, the determining of the current call task in the call task queue according to the priority order corresponding to each call task and the determining of at least one to-be-scheduled robot corresponding to the current call task according to the call location information of the current call task comprise:
[0019] In the call task queue, determining the call task with the highest priority order in the to-be-assigned call tasks as the current call task.
[0020] Obtaining an idle robot list, the idle robot list comprising all schedulable robots currently in an idle state, each schedulable robot being pre-set with a priority processing order corresponding to each location information.
[0021] According to the call location information of the current call task, screening at least one schedulable robot satisfying the priority processing order corresponding to the call location information from the idle robot list, and taking the at least one schedulable robot as at least one to-be-scheduled robot corresponding to the current call task.
[0022] In one of the embodiments, the determining of the target robot according to the scheduling scores respectively corresponding to the at least one to-be-scheduled robot comprises:
[0023] According to a pre-set scheduling score index, calculating the scheduling score corresponding to each to-be-scheduled robot; the scheduling score index comprises at least one of distance, route congestion, remaining power, robot failure rate, and signal strength.
[0024] determining a target robot with the highest dispatch score.
[0025] In a second aspect, the present application provides a device for robot task scheduling. The device comprises:
[0026] a receiving module configured to receive a call instruction sent by at least one call terminal, and determine at least one call task corresponding to the call instruction, wherein the call instruction comprises call location information;
[0027] a determining module configured to determine a call task queue composed of the at least one call task, wherein the call tasks in the call task queue are arranged in a priority order;
[0028] The determining module is further configured to determine a current call task in the call task queue according to the priority order corresponding to each call task, and determine at least one robot to be dispatched corresponding to the current call task according to the call location information of the current call task.
[0029] a dispatching module configured to determine a target robot according to a dispatch score corresponding to each of the at least one robot to be dispatched, and assign the current call task to the target robot.
[0030] In a third aspect, the present application provides a computer device. The computer device comprises a memory and a processor, wherein the memory stores a computer program, and the processor is configured to invoke and execute the computer program to implement the following steps:
[0031] receiving a call instruction sent by at least one call terminal, and determining at least one call task corresponding to the call instruction, wherein the call instruction comprises call location information;
[0032] determining a call task queue composed of the at least one call task, wherein the call tasks in the call task queue are arranged in a priority order;
[0033] determining a current call task in the call task queue according to the priority order corresponding to each call task, and determining at least one robot to be dispatched corresponding to the current call task according to the call location information of the current call task;
[0034] determining a target robot according to a dispatch score corresponding to each of the at least one robot to be dispatched, and assigning the current call task to the target robot.
[0035] In a fourth aspect, the present application provides a computer readable storage medium. The computer readable storage medium has a computer program stored thereon, which, when invoked and executed by a processor, implements the following steps:
[0036] receiving a call instruction sent by at least one call terminal, and determining at least one call task corresponding to the call instruction, wherein the call instruction comprises call location information;
[0037] determining a call task queue composed of the at least one call task, wherein the call tasks in the call task queue are arranged in a priority order;
[0038] determining a current call task in the call task queue according to the priority order corresponding to each call task, and determining at least one robot to be dispatched corresponding to the current call task according to the call location information of the current call task;
[0039] determining a target robot according to a dispatch score corresponding to each of the at least one robot to be dispatched, and assigning the current call task to the target robot.
[0040] In a fifth aspect, the present application provides a computer program product. The computer program product comprises a computer program, which, when invoked and executed by a processor, implements the following steps:
[0041] receiving a call instruction sent by at least one call terminal, and determining at least one call task corresponding to the call instruction, wherein the call instruction comprises call location information;
[0042] determining a call task queue composed of the at least one call task, wherein the call tasks in the call task queue are arranged in a priority order;
[0043] determining a current call task in the call task queue according to the priority order corresponding to each call task, and determining at least one robot to be dispatched corresponding to the current call task according to the call location information of the current call task;
[0044] determining a target robot according to a dispatch score corresponding to each of the at least one robot to be dispatched, and assigning the current call task to the target robot.
[0045] The method, device, computer device, storage medium and computer program product for robot task scheduling, by receiving the call instruction sent by the call terminal, determining the corresponding call task, determining the call task queue, determining the to-be-scheduled robot that can process the call task according to the call location information of the call task, calculating the scheduling score of each to-be-scheduled robot, and determining the target robot that finally executes the call task. Therefore, different tasks can be distributed to different robots according to the scheduling strategy, and the efficiency of multiple robots in cooperative task execution is greatly improved. BRIEF DESCRIPTION OF DRAWINGS
[0046] Figure 1 An application environment diagram of the method for robot task scheduling in an embodiment;
[0047] Figure 2 A flowchart of the method for robot task scheduling in an embodiment;
[0048] Figure 3 A flowchart of the step of determining at least one to-be-scheduled robot in an embodiment;
[0049] Figure 4 A flowchart of the step of determining the target robot in an embodiment;
[0050] Figure 5 A flowchart of the step of the server scheduling the robot in an embodiment;
[0051] Figure 6 A structural block diagram of the device for robot task scheduling in an embodiment;
[0052] Figure 7 An internal structure diagram of the computer device in an embodiment. DETAILED DESCRIPTION
[0053] In order to make the purposes, technical solutions and advantages of the present application clearer, the present application is further described in detail below with reference to the drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and do not limit the present application.
[0054] The present application provides a method, device, computer device, computer readable storage medium and computer program product for robot task scheduling. A cloud control scheduling center receives multiple call tasks simultaneously and distributes the call tasks to robots, thereby efficiently scheduling the robots and improving the task execution efficiency of the robots. The cloud control scheduling center can be set on a server, such as a cloud platform set on an independent server or a server cluster composed of multiple servers.
[0055] The robot task scheduling method provided by the embodiments of the present application can be applied to an application environment as shown in Figure 1 The plurality of calling terminals 102 communicate with the server 104 through a network, and the server 104 communicates with the robots 106. When the calling terminal 102 initiates a call, the calling terminal 102 sends a call instruction to the server 104. After receiving the call instruction, the server 104 determines a corresponding call task and determines one of the plurality of robots 106 as a target robot for executing the call task. The server 104 distributes the call task to the target robot to complete the allocation, so as to schedule the target robot to execute the call task.
[0056] The calling terminal 102 can be, but is not limited to, various desktop computers, notebook computers, smart phones, tablet computers, Internet of Things devices, portable wearable devices, and the like. The portable wearable device can be a smart watch, a smart bracelet, a head-mounted device, or the like. The network can be the Internet, a mobile network, a local area network (LAN), a wide area network (WAN), a storage area network (SAN), one or more intranets, or the like, or an appropriate combination thereof. The type or protocol of the communication network between the server 104 and the calling terminal 102 is not limited in the present application. The data storage system can store data required to be processed by the server 104. The data storage system can be integrated on the server 104, or placed on a cloud or other network server. The server 104 can be implemented by an independent server or a server cluster composed of a plurality of servers.
[0057] In one embodiment, as shown in Figure 2 A robot task scheduling method is provided, which is applied to the server in Figure 1 The method comprises the following steps:
[0058] In step S202, a call instruction sent by at least one calling terminal is received, and at least one call task corresponding to the call instruction is determined. The call instruction includes call location information.
[0059] The calling terminal can be one or more, which can be set according to the actual application scene of the above method. For example, when the above method is applied in the scene of a restaurant, the calling terminal can be set at each position of the restaurant according to the arrangement of the restaurant, for example, the calling terminal can be a call bell set on a dining table. For another example, the calling terminal can be a watch with a calling function carried by one or more service personnel. The calling terminal can also be fixedly set at several fixed positions in the restaurant, for example, the restaurant is divided into a plurality of areas, and a calling terminal at a fixed position is set in each area. Exemplarily, the service personnel can operate the calling terminal carried by the service personnel to send a call instruction to the server.
[0060] For the sake of simplicity, the following embodiments will be exemplified by applying the above method to a restaurant, but those skilled in the art can understand that the above method is not limited to the above application scenarios, for example, the above method can also be applied to one or more of the following scenarios: a shopping mall, an office, a park, a parking lot, etc.
[0061] The call instruction includes call location information, which is used to indicate the specific location of the call initiation. For example, when the service personnel operates the call terminal at location A to initiate a call, the call terminal sends a call instruction to the server, which includes the call location information of location A. When the service personnel operates the same call terminal at location B to initiate a call, the call terminal sends a call instruction to the server, which includes the call location information of location B. For example, when the call terminal is fixedly arranged, the call instruction sent by the service personnel operating the call terminal to the server includes the location information of the call terminal.
[0062] The call instruction is used to instruct the robot to perform a call task. The call task includes but is not limited to tasks such as ordering, delivering food, delivering tableware, and recycling tableware. For example, the service personnel operates the call terminal at location A to send a call instruction to the server, so that the server dispatches a robot to location A or a table at location A to perform a call task of recycling tableware.
[0063] Specifically, the server receives a call instruction sent by one or more call terminals. In some cases, multiple call terminals can send call instructions at the same time, and the server receives these call instructions at the same time. When the server receives one or more call instructions, it determines the call task corresponding to the call instruction respectively. The call task can be pre-set, for example, all robots in the restaurant are used to perform the task of recycling tableware, so the call task corresponding to the call instruction is recycling tableware. In some embodiments, the call task can also be determined according to the call instruction, for example, the call instruction includes specific task information, so that the server can determine the call task corresponding to the call instruction according to the call instruction.
[0064] For example, when the service personnel operates the call terminal at the location of table 1 to initiate a call, the call terminal provides buttons of multiple call tasks such as "ordering", "delivering food", "recycling tableware", etc. The service personnel clicks the "recycling tableware" button, and the call terminal sends a call instruction to the server, which includes the location information of table 1 as the call location information, and includes the specific task information of "recycling tableware" in the call instruction. After receiving the call instruction, the server determines the corresponding call task as the call task of "recycling tableware" by analyzing the call instruction, and then dispatches a robot to table 1 to recycle tableware.
[0065] Step S204, determine a call task queue composed of at least one call task, and the call tasks in the call task queue are arranged in order of priority.
[0066] When the call task is determined, on one hand, the server may have received multiple call instructions initiated by multiple call terminals at the same time, thereby obtaining multiple call tasks; on the other hand, there may still be a call task that has not been completed before. Therefore, specifically, the server determines a call task queue composed of one or more call tasks, and arranges the call tasks in order of priority corresponding to each call task.
[0067] The call tasks have an order of priority, which can be pre-set and can be set as medium priority by default. A high-priority call is arranged at the front of the call task queue, and a low-priority call is arranged at the end of the task queue. For example, if the priority order of the “recycle tableware” call task initiated later is higher than that of the “order food” call task initiated earlier, the “recycle tableware” call task is arranged after the “order food” call task in the call task queue, and so on.
[0068] Step S206, determine a current call task in the call task queue according to the order of priority corresponding to each call task, and determine at least one to-be-scheduled robot corresponding to the current call task according to the call location information of the current call task.
[0069] Specifically, the server processes each call task in the call task queue in order of priority. For the convenience of description, the call task currently processed by the server is referred to as the current call task. For this current call task, the server determines at least one to-be-scheduled robot for executing the current call task from all schedulable robots that are not currently executing tasks, according to the call location information contained in the call instruction corresponding to the current call task.
[0070] For example, at least one robot with a distance less than a threshold value from the current call task is determined as a to-be-scheduled robot that can be used to execute the current call task. For another example, at least one robot with a remaining battery level greater than a threshold value is determined as a to-be-scheduled robot that can be used to execute the current call task, and so on.
[0071] In some embodiments, as shown in FIG. 8, determining a current call task in the call task queue according to the order of priority corresponding to each call task, and determining at least one to-be-scheduled robot corresponding to the current call task according to the call location information of the current call task, comprises: Figure 3 determining a current call task in the call task queue according to the order of priority corresponding to each call task, and determining at least one to-be-scheduled robot corresponding to the current call task according to the call location information of the current call task.
[0072] Step S302, in the call task queue, the highest priority call task in the call task to be allocated is determined as the current call task.
[0073] Step S304, an idle robot list is obtained, the idle robot list includes all schedulable robots currently in an idle state, and each schedulable robot is respectively preset with a priority processing order corresponding to each position information.
[0074] Step S306, according to the call position information of the current call task, at least one schedulable robot meeting the priority processing order corresponding to the call position information is screened from the idle robot list, and the at least one schedulable robot is taken as at least one to-be-scheduled robot corresponding to the current call task.
[0075] For example, the robot prioritizes call tasks at position A, and then prioritizes call tasks at position B, so for this robot, the priority order of position A is higher than that of position B. In some cases, the restaurant is divided into multiple areas, each area includes at least one call position, accordingly, the robot can be preset with a priority order corresponding to each area. For example, robot 1 is preset to prioritize call tasks in area P, which includes position A, position B, etc.
[0076] Specifically, the server takes the call task with the highest priority in the call task queue as the current call task. For the current call task, the server obtains an idle robot list, which includes all schedulable robots currently in an idle state. According to the call position information of the current call task, the server screens at least one schedulable robot meeting the priority order corresponding to the call position information from all schedulable robots in the idle robot list, in other words, at least one schedulable robot prioritizing the call position information, and takes the at least one schedulable robot as at least one to-be-scheduled robot corresponding to the current call task.
[0077] For example, robot 1 and robot 2 are both preset to prioritize call tasks at position A, so for the current call task, the corresponding call position information is position A, then the server can screen robot 1 and robot 2, and take robot 1 and robot 2 as to-be-scheduled robots corresponding to the current call task.
[0078] In the above embodiment, by pre-setting the priority order of performing the calling task at each position for each robot, for the current calling task with the highest priority order of the task, the robot with the highest position priority is assigned to perform, which can greatly improve the operation efficiency of the robot, realize the scheduling optimization of each robot, and the calling tasks can be efficiently cooperated between each robot.
[0079] In step S208, a target robot is determined according to the scheduling score corresponding to each of the at least one robot to be scheduled, and the current calling task is assigned to the target robot.
[0080] Specifically, after determining the at least one robot to be scheduled, the server calculates the scheduling score corresponding to each of the at least one robot to be scheduled by using the pre-set scheduling score index, so as to determine the target robot for executing the current calling task from the at least one robot to be scheduled according to the size of the scheduling score. When there is only one robot to be scheduled, the server determines the robot to be scheduled as the target robot. Then, the server assigns the current calling task to the target robot to enable the target robot to execute the current calling task, thereby completing the scheduling of the robot.
[0081] In some embodiments, as shown in the first aspect, Figure 4 determining the target robot according to the scheduling score corresponding to each of the at least one robot to be scheduled includes:
[0082] In step S402, the scheduling score corresponding to each of the at least one robot to be scheduled is calculated according to the pre-set scheduling score index. The scheduling score index at least includes one of distance, route congestion, remaining power, machine failure rate, and signal strength.
[0083] In step S404, the robot to be scheduled with the highest scheduling score is determined as the target robot.
[0084] The scheduling score index is a pre-set score index for determining the target robot, including but not limited to one or more of distance, route congestion, remaining power, machine failure rate, and signal strength.
[0085] Specifically, the server calculates the scheduling score corresponding to each of the at least one robot to be scheduled according to the pre-set scheduling score index, and then determines the robot to be scheduled with the highest scheduling score as the target robot.
[0086] In some cases, the server calculates a dispatch score for each robot to be dispatched according to one of the dispatch score indicators. For example, the server calculates a dispatch score for each robot to be dispatched according to a distance between a current location of the robot to be dispatched and a location indicated by the call location information. The closer the distance, the higher the dispatch score. The server then selects a robot to be dispatched that is closest to the location indicated by the call location information as the target robot from the at least one robot to be dispatched.
[0087] For another example, the server calculates a dispatch score for each robot to be dispatched according to a route congestion between a current location of the robot to be dispatched and a location indicated by the call location information. The more congested the route, the lower the dispatch score. The server then selects a robot to be dispatched that has the least congested route as the target robot from the at least one robot to be dispatched. The route congestion may be, for example, a number of robots performing tasks on the route.
[0088] For another example, the server calculates a dispatch score for each robot to be dispatched according to a remaining power of the robot to be dispatched. The more the remaining power, the higher the dispatch score. The server then selects a robot to be dispatched that has the most remaining power as the target robot from the at least one robot to be dispatched.
[0089] For another example, the server calculates a dispatch score for each robot to be dispatched according to a robot failure rate of the robot to be dispatched. The higher the robot failure rate, the lower the dispatch score. The server then selects a robot to be dispatched that has the lowest robot failure rate as the target robot from the at least one robot to be dispatched.
[0090] For another example, the server calculates a dispatch score for each robot to be dispatched according to a signal strength of the robot to be dispatched. The higher the signal strength, the higher the dispatch score. The server then selects a robot to be dispatched that has the highest signal strength as the target robot from the at least one robot to be dispatched, and so on.
[0091] Of course, the application is not limited thereto. In some embodiments, the server calculates a total dispatch score for each robot to be dispatched according to a plurality of dispatch score indicators.
[0092] For example, the server calculates a dispatch score for each robot to be dispatched according to each dispatch score indicator and sums the dispatch scores to obtain a total dispatch score. For another example, each dispatch score indicator is assigned a different weight. The server calculates a dispatch score for each robot to be dispatched according to each dispatch score indicator according to the weight assigned to the dispatch score indicator to obtain a total dispatch score. The server performs the above operations for each robot to be dispatched. The server then selects a robot to be dispatched that has the highest total dispatch score as the target robot from the at least one robot to be dispatched.
[0093] The method for robot task scheduling can distribute different tasks to different robots according to a scheduling strategy, and greatly improves the efficiency of multiple robots in cooperative task execution.
[0094] In some embodiments, after receiving the call instruction sent by the at least one call terminal, the method further includes: verifying the legality of the call instruction; and discarding the call instruction when the verification of the legality of the call instruction fails.
[0095] Specifically, after receiving the call instruction sent by the call terminal, the server first verifies the legality of the call instruction. If the call instruction is legal, the subsequent steps are continued; otherwise, if the verification of the legality of the call instruction fails, the call instruction is discarded. The verification of the legality of the call instruction includes at least one of the following: verifying whether the call terminal is pre-registered, verifying whether the call location information in the call instruction is located in a preset location range, and verifying whether the call task corresponding to the call instruction has a priority order.
[0096] The verification of whether the call terminal is pre-registered is to verify whether the call terminal initiating the call is pre-bound to the current restaurant. For example, the server extracts the MAC address (Media Access Control Address) of the call terminal included in the call instruction, and determines whether the MAC address is pre-stored and bound to the current restaurant. If the server pre-stores the MAC address and the MAC address is associated with the current restaurant, the server verifies that the call terminal is pre-registered.
[0097] The verification of whether the call location information in the call instruction is located in a preset location range is to verify whether the call terminal is a call terminal set in the restaurant. The preset location range is, for example, the location range of the restaurant. For example, when the call location information in the call instruction is located outside the location range of the restaurant, the server determines that the legality of the call instruction fails, and the server discards the call instruction.
[0098] The verification of whether the call task corresponding to the call instruction has a priority order is to verify whether the call instruction is incorrect. In some cases, the call instruction may be incomplete or incorrect due to packet loss or network interference. Therefore, the server verifies whether the call task corresponding to the call instruction has a priority order. If the call task in the call instruction does not carry a priority order, the server determines that the legality of the call instruction fails, and discards the call instruction.
[0099] In some embodiments, the server checks the legality of the call instruction, and when any of the above legality checks fails, the call instruction is discarded; only when all legality checks pass, the server executes the subsequent process.
[0100] In the above embodiments, by checking the legality of the call instruction, the illegal or incorrect call instruction is removed, and the server avoids executing the subsequent process for the illegal or incorrect call instruction, thereby improving the efficiency and accuracy of the server in scheduling the robot for tasks.
[0101] Since the call terminal may need to wait for a certain period of time from the moment of initiating the call to the moment when the server schedules the robot to perform the call task, and during this period, the call terminal may initiate a call again. Therefore, in some embodiments, before determining the call task queue consisting of at least one call task, the method further comprises: merging each call task corresponding to a plurality of call instructions sent by the same call terminal into one call task. Specifically, after the server receives the call instruction, it merges each call task corresponding to a plurality of call instructions sent by the same call terminal into one call task corresponding to the call terminal. In this way, by merging each call task corresponding to a plurality of call instructions sent by the same call terminal into one call task, the server avoids scheduling the robot to perform the task repeatedly, reduces unnecessary resource consumption, and further improves the efficiency of the server in scheduling the robot for tasks.
[0102] When the call tasks are all of the same type, for example, all are "recycling tableware" call tasks, a plurality of call tasks corresponding to the same call location can be merged into one call task. Therefore, in some embodiments, before determining the call task queue consisting of at least one call task, the method further comprises: according to the call location information in the at least one call instruction, merging a plurality of call tasks corresponding to at least one call instruction located in the same location range into one call task.
[0103] Specifically, after the server receives the at least one call instruction, it merges a plurality of call tasks corresponding to the call instructions located in the same location range into one call task according to the call location information in each call instruction. For example, for a location range in which location A is located, the service personnel initiates a call through the call terminal multiple times, and the server merges the call tasks corresponding to a plurality of call instructions corresponding to the location A into one call task. In this way, by merging a plurality of call tasks corresponding to at least one call instruction located in the same location range into one call task, the server avoids scheduling the robot to perform the task repeatedly, reduces unnecessary resource consumption, and further improves the efficiency of the server in scheduling the robot for tasks.
[0104] In one specific scenario example, a task with a call task of "recycling tableware" (referred to as a "back plate task") is taken as an example for illustration. At present, the recycling tableware work in the restaurant is mainly completed by service personnel, back hall cleaning personnel or full-time table collectors, but there are certain disadvantages. If the service personnel performs the recycling tableware work, the service personnel's hands will be full of oil stains, and the service personnel cannot provide any service for customers before all the recycling tableware work is completed, and the service quality is seriously affected. If the back hall cleaning personnel is responsible for the recycling tableware work, the back hall cleaning personnel needs to put down the cleaning work, and then go to the lobby after dressing up, which affects the work efficiency. If a full-time table collector is set, it is undoubtedly a large increase in labor cost for the restaurant. Therefore, multiple robots are set in the restaurant to perform the recycling tableware task, and correspondingly, the robot is referred to as a recycling robot.
[0105] In order to quickly respond to the task, the recycling robot is usually located at the front hall parking point, and the service personnel initiates a call instruction through a call terminal (such as a call device, a smart watch, a tablet computer, and a smart induction scale). The server allocates multiple simultaneously initiated tasks to multiple robots according to a scheduling strategy, so that the robots go to different places to perform the recycling tableware task.
[0106] For example, Figure 5As shown, the server schedules the robot in the following process: after the calling terminal initiates a call, the server receives the call instruction and performs legality verification to verify the legality of the call instruction; if the legality verification of the call instruction fails, it is determined that the call fails, and the call instruction is discarded. If the call instruction is legal, the call task corresponding to the call instruction is arranged in the call task queue. When processing a call task, the server polls whether there is an idle robot, and if all robots are executing tasks, it waits for a certain time (for example, 5s) and then polls again. When there is an idle robot, the server obtains the idle robot list and filters the robots in the idle robot list according to the call location information in the call instruction to obtain a to-be-scheduled robot group composed of multiple to-be-scheduled robots. Then, the server calculates according to the pre-set scheduling score index, determines the target robot according to the scheduling score, that is, determines the to-be-scheduled robot with the highest scheduling score as the target robot, and instructs the target robot to go to execute the backplate task. For example, for a to-be-scheduled robot, if the distance X (unit: meter) satisfies the condition 0 < X < 50, the scheduling score is 3 points, if it satisfies 50 < X < 100, the scheduling score is 2 points, and if it satisfies 100 < X, the scheduling score is 1 point. For another example, if the to-be-scheduled robot executes the call task route congestion condition (the number of robots executing tasks) satisfies the condition 0 < X < 3, the scheduling score is 3 points, if it satisfies the condition 3 < X < 6, the scheduling score is 2 points, and if it satisfies the condition 6 < X, the scheduling score is 1 point. For another example, if the remaining power of the to-be-scheduled robot (%) satisfies the condition 50 < X < 100, the scheduling score is 3 points, if it satisfies the condition 10 < X < 50, the scheduling score is 2 points, and if it satisfies the condition 10 < X, the scheduling score is 1 point. For another example, if the to-be-scheduled robot has a machine failure rate (%) that satisfies the condition 0 < X < 3, the scheduling score is 3 points, if it satisfies the condition 3 < X < 6, the scheduling score is 2 points, and if it satisfies the condition 6 < X, the scheduling score is 1 point. For another example, if the signal strength (level) of the to-be-scheduled robot satisfies the condition 0 < X < 1, the scheduling score is 1 point, if it satisfies the condition 1 < X < 3, the scheduling score is 2 points, and if it satisfies the condition 3 < X, the scheduling score is 3 points. According to the total scheduling score of each to-be-scheduled robot, the server determines the target robot to execute the backplate task. Thus, the call is successful, and the entire call process corresponding to the call instruction ends.
[0107] For example, it is assumed that there are robot 1, robot 2 and robot 3 in the idle state in the restaurant. Among them, robot 1 and robot 2 are set to preferentially process the backplate task of position A (that is, the priority order of position A is the highest), and robot 3 is set to preferentially process the backplate task of position B.
[0108] When the service personnel initiates a call at location A through the call terminal, the call terminal sends a call instruction to the server. After receiving the call instruction, the server determines that the corresponding call task is to go to location A to perform a backplate task. Then the server arranges the task in the call task queue. When the server processes the call task, according to the location A indicated by the call location information in the call instruction, and according to the respective priority processing order of the currently idle robots, the server determines the robots that have priority to process location A, i.e. robot 1 and robot 2. Then, according to the pre-set scheduling score indicators of distance, route congestion, remaining power, machine failure rate, and signal strength, the server calculates the scheduling scores of robot 1 and robot 2, and selects the robot with the highest scheduling score as the target robot to perform the call task.
[0109] In some embodiments, when the server polling result is that all robots are performing tasks, the call terminal can display a prompt "the machine is busy, please wait" in the waiting time to remind the service personnel or the customer to wait.
[0110] In some embodiments, when the server is performing the task scheduling process, the server receives a task termination instruction sent by the call terminal, cancels the current scheduling process, and returns the information that the call task corresponding to the call instruction is cancelled to the call terminal. The call terminal can display a prompt "cancellation successful".
[0111] In some embodiments, when the server is performing the task scheduling process, the target robot is powered off. After the robot is powered on, it continues to perform the call task.
[0112] In some embodiments, when the server is performing the task scheduling process, the target robot is unbound from the restaurant. Then the server cancels the call task.
[0113] In some embodiments, when the server is performing the task scheduling process, the restaurant is logged out. Then the server sends a scheduling failure message to the corresponding call terminal.
[0114] In some embodiments, when the server is performing the task scheduling process, the call terminal initiates a task termination instruction, but due to network or other reasons, the robot does not receive the task termination instruction. Then the robot continues to perform the call task.
[0115] It should be understood that although the steps in the flowcharts involved in the above embodiments are shown in sequence according to the arrows, the steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified herein, the execution of the steps is not strictly limited in sequence, and the steps can be executed in other sequences. Moreover, at least some of the steps in the flowcharts involved in the above embodiments can include multiple steps or multiple stages, which are not necessarily executed at the same time, but can be executed at different times, and the execution sequence of the steps or stages is not necessarily sequential, but can be executed alternately or alternately with at least part of other steps or steps or stages in other steps.
[0116] Based on the same inventive concept, the embodiments of the present application also provide a robot task scheduling device for implementing the robot task scheduling method described above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme described in the above method, so the specific limitations in one or more robot task scheduling device embodiments provided below can refer to the limitations of the robot task scheduling method in the above, which will not be repeated here.
[0117] In one embodiment, as shown in Figure 6 A robot task scheduling device 600 is provided, comprising a receiving module 601, a determining module 602 and a scheduling module 603, wherein:
[0118] The receiving module is configured to receive a call instruction sent by at least one call terminal, and determine at least one call task corresponding to the call instruction; the call instruction comprises call location information.
[0119] The determining module is configured to determine a call task queue composed of the at least one call task, and arrange the call tasks in the call task queue in a priority order.
[0120] The determining module is further configured to determine a current call task in the call task queue according to the priority order corresponding to each call task, and determine at least one to-be-scheduled robot corresponding to the current call task according to the call location information of the current call task.
[0121] The scheduling module is configured to determine a target robot according to a scheduling score corresponding to each to-be-scheduled robot, and assign the current call task to the target robot.
[0122] In some embodiments, the apparatus further comprises a verification module configured to verify legality of the call instruction; discard the call instruction when the verification of the legality of the call instruction fails; and wherein the verification of the legality of the call instruction comprises at least one of the following: verifying whether the call terminal is pre-registered, verifying whether the call location information in the call instruction is within a preset location range, and verifying whether the call task corresponding to the call instruction has a priority order.
[0123] In some embodiments, the apparatus further comprises a merging module configured to merge a plurality of call tasks corresponding to a plurality of call instructions sent by the same call terminal into one call task.
[0124] In some embodiments, the merging module is further configured to merge a plurality of call tasks corresponding to at least one call instruction within the same location range into one call task according to the call location information in the at least one call instruction.
[0125] In some embodiments, the determining module is further configured to determine, in the call task queue, a call task with the highest priority order among the call tasks to be assigned as a current call task; obtain an idle robot list comprising all schedulable robots currently in an idle state, each schedulable robot being pre-provided with a priority processing order corresponding to each location information; and according to the call location information of the current call task, filter at least one schedulable robot satisfying the priority processing order corresponding to the call location information from the idle robot list, and take the at least one schedulable robot as at least one schedulable robot corresponding to the current call task.
[0126] In some embodiments, the scheduling module is further configured to calculate a scheduling score corresponding to each schedulable robot according to a pre-set scheduling score index; the scheduling score index comprises at least one of distance, route congestion, remaining power, robot failure rate, and signal strength; and determine a schedulable robot with the highest scheduling score as a target robot.
[0127] Each module in the apparatus for robot task scheduling described above can be realized wholly or partially by software, hardware, and combinations thereof. Each module described above can be embedded in or independent of a processor in a computer device in hardware form, or stored in a memory in a computer device in software form, so as to be called and executed by a processor to perform operations corresponding to each module.
[0128] In one embodiment, a computer device, which can be a server, is provided, and an internal structure diagram of the computer device can be as shown in Figure 7As shown in the figure. The computer device includes a processor, a memory, an input / output interface (Input / Output, referred to as I / O) and a communication interface. Among them, the processor, the memory and the input / output interface are connected through the system bus, and the communication interface is connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capability. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operating system and the computer program in the non-volatile storage medium to run. The database of the computer device is used to store call instructions and other data. The input / output interface of the computer device is used to exchange information between the processor and external devices. The communication interface of the computer device is used to communicate with external terminals through network connection. The computer program is executed by the processor to implement a robot task scheduling method.
[0129] Those skilled in the art can understand that, Figure 7 The structure shown in the figure is only a block diagram of part of the structure related to the scheme of the present application, and does not constitute a limitation on the computer device to which the scheme of the present application is applied. The specific computer device can include more or fewer components than those shown in the figure, or combine certain components, or have a different component arrangement.
[0130] In one embodiment, a computer device is provided, comprising a memory and a processor, the memory storing a computer program, and the processor executing the computer program to implement the following steps: receiving a call instruction sent by at least one call terminal, determining at least one call task corresponding to the call instruction; the call instruction includes call location information; determining a call task queue composed of at least one call task, each call task in the call task queue being arranged in priority order; determining a current call task in the call task queue according to the priority order corresponding to each call task, and determining at least one robot to be scheduled corresponding to the current call task according to the call location information of the current call task; determining a target robot according to the scheduling score corresponding to each robot to be scheduled, and assigning the current call task to the target robot.
[0131] In one embodiment, the processor executing the computer program further implements the following steps: verifying the legality of the call instruction; discarding the call instruction when the verification of the legality of the call instruction fails; wherein the verification of the legality of the call instruction includes at least one of the following: verifying whether the call terminal is pre-registered, verifying whether the call location information in the call instruction is located in a preset location range, and verifying whether the call task corresponding to the call instruction has a priority order.
[0132] In one embodiment, the processor, when executing the computer program, also implements the following steps: merging the call tasks corresponding to the multiple call instructions sent by the same call terminal into one call task.
[0133] In one embodiment, the processor, when executing the computer program, also implements the following steps: merging the multiple call tasks corresponding to the at least one call instruction located in the same location range into one call task according to the call location information in the at least one call instruction.
[0134] In one embodiment, the processor, when executing the computer program, also implements the following steps: determining the call task with the highest priority in the call tasks to be allocated as the current call task in the call task queue; obtaining a list of idle robots, the list of idle robots including all schedulable robots currently in an idle state, each schedulable robot being pre-set with a priority processing order corresponding to each location information; and filtering at least one schedulable robot satisfying the priority processing order corresponding to the call location information of the current call task from the list of idle robots according to the call location information of the current call task, and taking the at least one schedulable robot as at least one schedulable robot corresponding to the current call task.
[0135] In one embodiment, the processor, when executing the computer program, also implements the following steps: calculating the dispatch score of each schedulable robot according to a pre-set dispatch score index; the dispatch score index at least including one of distance, route congestion, remaining power, robot failure rate, and signal strength; and determining the schedulable robot with the highest dispatch score as the target robot.
[0136] In one embodiment, a computer readable storage medium is provided, and the computer readable storage medium stores a computer program, and the computer program, when executed by a processor, implements the following steps: receiving a call instruction sent by at least one call terminal, and determining at least one call task corresponding to the call instruction; the call instruction including call location information; determining a call task queue composed of the at least one call task, and arranging the call tasks in the call task queue according to priority orders; determining a current call task in the call task queue according to the priority orders of the call tasks, and determining at least one schedulable robot corresponding to the current call task according to the call location information of the current call task; determining a target robot according to the dispatch scores of the at least one schedulable robot, and allocating the current call task to the target robot.
[0137] In one embodiment, the computer program, when executed by the processor, further implements the following steps: verifying legality of the call instruction; discarding the call instruction when the verification of the legality of the call instruction fails; wherein the verification of the legality of the call instruction comprises at least one of the following: verifying whether the call terminal is pre-registered, verifying whether the call location information in the call instruction is located in a preset location range, and verifying whether the call task corresponding to the call instruction has a priority order.
[0138] In one embodiment, the computer program, when executed by the processor, further implements the following steps: merging the call tasks corresponding to the multiple call instructions sent by the same call terminal into one call task.
[0139] In one embodiment, the computer program, when executed by the processor, further implements the following steps: merging the multiple call tasks corresponding to the at least one call instruction located in the same location range into one call task according to the call location information in the at least one call instruction.
[0140] In one embodiment, the computer program, when executed by the processor, further implements the following steps: determining the call task with the highest priority order in the to-be-assigned call tasks as the current call task in the call task queue; obtaining an idle robot list, the idle robot list including all schedulable robots currently in an idle state, each schedulable robot being pre-set with a priority processing order corresponding to each location information; filtering at least one schedulable robot satisfying the priority processing order corresponding to the call location information of the current call task from the idle robot list according to the call location information of the current call task, and taking the at least one schedulable robot as at least one to-be-scheduled robot corresponding to the current call task.
[0141] In one embodiment, the computer program, when executed by the processor, further implements the following steps: calculating a scheduling score corresponding to each to-be-scheduled robot according to a pre-set scheduling score index; the scheduling score index at least includes one of distance, route congestion, remaining power, robot failure rate, and signal strength; and determining the to-be-scheduled robot with the highest scheduling score as the target robot.
[0142] In one embodiment, a computer program product is provided, comprising a computer program which, when executed by a processor, implements the following steps: receiving a call instruction sent by at least one calling terminal, determining at least one call task corresponding to the call instruction; the call instruction comprising call location information; determining a call task queue composed of the at least one call task, the call tasks in the call task queue being arranged in a priority order; determining a current call task in the call task queue according to the priority order corresponding to each call task, determining at least one to-be-scheduled robot corresponding to the current call task according to the call location information of the current call task; determining a target robot according to the scheduling scores respectively corresponding to the at least one to-be-scheduled robot, and assigning the current call task to the target robot.
[0143] In one embodiment, the computer program, when executed by the processor, further implements the following steps: verifying the legality of the call instruction; discarding the call instruction when the verification of the legality of the call instruction fails; wherein the verification of the legality of the call instruction comprises at least one of the following: verifying whether the calling terminal is pre-registered, verifying whether the call location information in the call instruction is located in a preset location range, and verifying whether the call task corresponding to the call instruction has a priority order.
[0144] In one embodiment, the computer program, when executed by the processor, further implements the following steps: merging each call task corresponding to a plurality of call instructions sent by the same calling terminal into one call task.
[0145] In one embodiment, the computer program, when executed by the processor, further implements the following steps: merging a plurality of call tasks corresponding to at least one call instruction located in the same location range into one call task according to the call location information in the at least one call instruction.
[0146] In one embodiment, the computer program, when executed by the processor, further implements the following steps: determining, in the call task queue, a call task with the highest priority order in the call task to be assigned as a current call task; obtaining an idle robot list, the idle robot list comprising all schedulable robots currently in an idle state, each schedulable robot being pre-set with a priority processing order corresponding to each location information; filtering at least one schedulable robot satisfying the priority processing order corresponding to the call location information from the idle robot list according to the call location information of the current call task, and taking the at least one schedulable robot as at least one to-be-scheduled robot corresponding to the current call task.
[0147] In one embodiment, the computer program, when executed by the processor, further implements the following steps: calculating a scheduling score corresponding to each robot to be scheduled according to a preset scheduling score index; the scheduling score index at least includes one of distance, road congestion, remaining power, machine failure rate, and signal strength; and determining the robot to be scheduled with the highest scheduling score as the target robot.
[0148] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be completed by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer readable storage medium. When the computer program is executed, it can include the processes of the above-mentioned embodiments. Any reference to memory, database or other medium used in the embodiments provided in the present 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 storage, high-density embedded non-volatile memory, resistive memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration but not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The database involved in the embodiments provided in the present application can include at least one of a relational database and a non-relational database. The non-relational database can include a distributed database based on a block chain, etc., without being limited thereto. The processor involved in the embodiments provided in the present application can be a general-purpose processor, a central processing unit, a graphics processing unit, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., without being limited thereto.
[0149] The technical features of the above embodiments can be combined in any manner. To make the description concise, not all possible combinations of the technical features in the above embodiments are described, but as long as the combinations of the technical features do not exist contradictions, they should be considered as the scope of the present disclosure.
[0150] The above embodiments only express several implementation ways of the present application, and the description is specific and detailed, but it should not be understood as a limitation to the patent scope of the present application. It should be pointed out that for ordinary skilled in the art, without departing from the concept of the present application, several modifications and improvements can be made, which all belong to the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the appended claims.
Claims
1. A method of robot task scheduling, characterized by, The method comprises: receiving a call instruction sent by at least one call terminal, and determining at least one call task corresponding to the call instruction; the call instruction comprises call position information; determining a call task queue composed of at least one call task, and arranging each call task in the call task queue in a priority order; determining a current call task in the call task queue according to the priority order corresponding to each call task, and determining at least one robot to be dispatched corresponding to the current call task according to the call position information of the current call task; determining a target robot according to a dispatch score corresponding to each robot to be dispatched, and assigning the current call task to the target robot; wherein the step of determining a current call task in the call task queue according to the priority order corresponding to each call task, and determining at least one robot to be dispatched corresponding to the current call task according to the call position information of the current call task comprises: determining, in the call task queue, a call task with the highest priority order in the call task to be assigned as the current call task; obtaining an idle robot list, wherein the idle robot list comprises all schedulable robots currently in an idle state, and each schedulable robot is respectively provided with a priority processing order corresponding to each position information; screening, in the idle robot list, at least one schedulable robot satisfying the priority processing order corresponding to the call position information according to the call position information of the current call task, and taking the at least one schedulable robot as at least one robot to be dispatched corresponding to the current call task; wherein the step of determining a target robot according to a dispatch score corresponding to each robot to be dispatched comprises: calculating a dispatch score corresponding to each dispatch score index for each robot to be dispatched according to a pre-set dispatch score index, and summing up to obtain a total dispatch score; the dispatch score index comprises distance, route congestion, remaining power, robot failure rate, and signal strength; selecting a robot to be dispatched with the highest total dispatch score as the target robot.
2. The method of claim 1, wherein, After receiving the call instruction sent by at least one call terminal, the method further comprises: verifying the legality of the call instruction; when the verification of the legality of the call instruction fails, discarding the call instruction; wherein the verification of the legality of the call instruction comprises at least one of the following: verifying whether the call terminal is pre-registered, verifying whether the call position information in the call instruction is located in a pre-set position range, and verifying whether the call task corresponding to the call instruction has a priority order.
3. The method of claim 1, wherein, Before determining the call task queue composed of at least one call task, the method further comprises: merging each call task corresponding to a plurality of call instructions sent by the same call terminal into one call task.
4. The method of claim 1, wherein, Before determining the call task queue composed of at least one call task, the method further comprises: According to call position information in at least one of the call instructions, a plurality of call tasks corresponding to at least one of the call instructions located in a same position range are merged into one call task.
5. An apparatus for robot task scheduling, the apparatus comprising: The device comprises: a receiving module configured to receive call instructions sent by at least one call terminal and determine at least one call task corresponding to the call instructions, wherein the call instructions comprise call position information; a determining module configured to determine a call task queue composed of the at least one call task, and arrange the call tasks in the call task queue in order of priority; the determining module is further configured to determine a current call task in the call task queue according to the order of priority of each call task, and determine at least one robot to be dispatched corresponding to the current call task according to call position information of the current call task; a scheduling module configured to determine a target robot according to a scheduling score of each of the at least one robot to be dispatched, and assign the current call task to the target robot; the determining module is further configured to determine a call task with the highest priority in the call task queue to be assigned as a current call task, obtain a list of idle robots, wherein the list of idle robots comprises all schedulable robots currently in an idle state, each of the schedulable robots is preconfigured with a priority processing order corresponding to each position information, and filter at least one schedulable robot satisfying the priority processing order corresponding to the call position information from the list of idle robots according to the call position information of the current call task, and take the at least one schedulable robot as at least one robot to be dispatched corresponding to the current call task; the scheduling module is further configured to calculate a scheduling score of each robot to be dispatched corresponding to each scheduling score index according to preconfigured scheduling score indexes, sum up the scheduling scores to obtain a total scheduling score, and select a robot to be dispatched with the highest total scheduling score as a target robot, wherein the scheduling score indexes comprise distance, route congestion, remaining power, robot failure rate, and signal strength.
6. The apparatus of claim 5, wherein, The device further comprises a verifying module configured to verify the legality of the call instructions, and discard the call instructions when the verification of the legality of the call instructions fails, wherein the verification of the legality of the call instructions comprises at least one of the following: verifying whether the call terminal is pre-registered, verifying whether the call position information in the call instructions is located in a preconfigured position range, and verifying whether the call task corresponding to the call instructions has an order of priority.
7. The apparatus of claim 5, wherein, The device further comprises a merging module configured to merge each call task corresponding to a plurality of call instructions sent by a same call terminal into one call task.
8. A computer device comprising a memory and a processor, the memory storing a computer program, characterized in that, The processor is configured to invoke and execute the computer program to implement the steps of the method in any one of claims 1 to 4.
9. A computer readable storage medium having stored thereon a computer program, characterized in that, The computer program is configured to be invoked and executed by the processor to implement the steps of the method in any one of claims 1 to 4.
10. A computer program product comprising a computer program, characterized in that, The computer program, which is invoked by the processor and executed, implements the steps of the method according to any one of claims 1 to 4.
Citation Information
Patent Citations
Scheduling method and device for service robot
CN107291078A
Robot scheduling method and device
CN112766663A