本願は、ロボット技術に関し、特に、ロボットスケジューリング方法、装置、電子機器及び記憶媒体に関する。This application relates to robotics technology, and in particular to a robot scheduling method, device, electronic device, and storage medium.
人工知能の急速な発展に伴い、ロボットは徐々に人々の生活に入り、人々に便利を提供する。例えば、同じ店舗(例えば、レストラン又はホテルなど)において、ユーザは、特定の呼び出し装置(例えば、携帯電話又は腕時計など)を介して、店舗におけるランダムなロボット又は特定のロボットを指定して、ロボットに特定のタスクを実行させることができる。すると、ロボットをどのようにスケジューリングするかという問題が生じる。With the rapid development of artificial intelligence, robots are gradually entering people's lives and providing convenience to them. For example, in the same store (e.g., restaurant or hotel), a user can use a specific calling device (e.g., mobile phone or watch) to specify a random robot or a specific robot in the store to perform a specific task. This raises the question of how to schedule robots.
従来技術において、通常、時間公平原則を採用してスケジューリングを行い、即ち、タスクが生成された時間に従って各タスクをランダム又は指定のロボットに順次送信する。このような方式は、絶対的な公平性を保証することができるが、スケジューリングに参加するロボットが複数あり、先行タスクがランダムタスクであり、且つそれにロボットAをランダムに割り当て、後続タスクがロボットAに指定するタスクである場合、該後続タスクは先行タスクの完了を待ってから行う必要があるため、全体のスケジューリング効率が低く、ロボットの利用率を確保することができない。In conventional technology, scheduling is typically performed using the principle of time fairness, i.e., each task is sent sequentially to a random or designated robot according to the time the task was created. While this method can guarantee absolute fairness, if there are multiple robots participating in scheduling, and the preceding task is a random task to which robot A is randomly assigned, and the subsequent task is a task designated for robot A, the subsequent task must wait for the preceding task to be completed before it can be performed, resulting in low overall scheduling efficiency and failure to ensure robot utilization.
本願の一部の実施例は、従来技術におけるスケジューリング効率が低く、ロボットの利用率を確保できない問題を解決するためのロボットスケジューリング方法、装置、電子機器及び記憶媒体を提供することを目的とする。Some embodiments of the present application aim to provide a robot scheduling method, device, electronic device, and storage medium that solve the problem of low scheduling efficiency and inability to ensure robot utilization in conventional technology.
第1態様において、本願の実施例は、複数の配信対象タスクを取得し、ここで、前記複数の配信対象タスクは、それぞれ複数のオリジナルタスクキューにおけるキューの先頭に位置する複数のタスクを含み、前記複数のオリジナルタスクキューは、生成された順序に従ってキューの先頭からキューの末尾までソートされたランダムロボットタスクキューと、複数のロボットのうちの少なくとも2つのロボットに対応する少なくとも2つの指定ロボットタスクキューとを含み、前記複数の配信対象タスクのタイプは、ランダムロボットタスクと指定ロボットタスクとを含むことと、各配信対象タスクのタイプ、各ロボットのタスク数及び状態に基づいて、生成された順序に従って各配信対象タスクに対するスケジューリング対象ロボットを決定し、前記配信対象タスクを前記スケジューリング対象ロボットに配信することと、各オリジナルタスクキューにおける残りのタスクに対して、上記操作を繰り返し実行することと、を含む、ロボットスケジューリング方法を提供する。In a first aspect, an embodiment of the present application provides a robot scheduling method including: acquiring a plurality of tasks to be delivered, wherein the plurality of tasks to be delivered include a plurality of tasks located at the head of a plurality of original task queues, the plurality of original task queues including a random robot task queue sorted from the head of the queue to the tail of the queue in the order in which they were created, and at least two designated robot task queues corresponding to at least two robots among the plurality of robots; types of the plurality of tasks to be delivered include random robot tasks and designated robot tasks; determining a robot to be scheduled for each task to be delivered in the order in which it was created based on the type of each task to be delivered and the number and status of each robot's tasks; delivering the tasks to be delivered to the robot to be scheduled; and repeatedly performing the above operation for the remaining tasks in each original task queue.
第2態様において、本願の実施例は、複数の配信対象タスクを取得するように構成され、ここで、前記複数の配信対象タスクは、それぞれ複数のオリジナルタスクキューの先頭に位置する複数のタスクを含み、前記複数のオリジナルタスクキューは、生成された順序に従ってキューの先頭からキューの末尾までソートされたランダムロボットタスクキューと、複数のロボットのうちの少なくとも2つのロボットに対応する少なくとも2つの指定ロボットタスクキューとを含み、前記複数の配信対象タスクのタイプは、ランダムロボットタスクと指定ロボットタスクとを含む配信対象タスク取得モジュールと、各配信対象タスクのタイプ、各ロボットのタスク数及び状態に基づいて、生成された順序に従って各配信対象タスクに対するスケジューリング対象ロボットを決定し、前記配信対象タスクを前記スケジューリング対象ロボットに配信するためのロボットスケジューリングモジュールと、各オリジナルタスクキューにおける残りのタスクに対して、上記操作を繰り返し実行するための循環実行モジュールと、を含む、ロボットスケジューリング装置をさらに提供する。In a second aspect, an embodiment of the present application further provides a robot scheduling device configured to acquire a plurality of tasks to be delivered, wherein the plurality of tasks to be delivered includes a plurality of tasks located at the top of a plurality of original task queues, the plurality of original task queues including a random robot task queue sorted from the top of the queue to the bottom of the queue in the order in which they were created, and at least two designated robot task queues corresponding to at least two robots among the plurality of robots, and the types of the plurality of tasks to be delivered include random robot tasks and designated robot tasks; a robot scheduling module for determining a robot to be scheduled for each task to be delivered in the order in which it was created based on the type of each task to be delivered and the number and status of each robot's tasks, and distributing the tasks to be delivered to the robot to be scheduled; and a cyclic execution module for repeatedly performing the above operation on the remaining tasks in each original task queue.
第3態様において、本願の実施例は、1つ又は複数のプロセッサと、1つ又は複数のプログラムを記憶するためのメモリと、を含み、前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに上記のロボットスケジューリング方法を実現させる電子機器をさらに提供する。In a third aspect, an embodiment of the present application further provides an electronic device including one or more processors and a memory for storing one or more programs, the one or more programs, when executed by the one or more processors, causing the one or more processors to implement the robot scheduling method described above.
第4態様において、本願の実施例は、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体をさらに提供し、当該プログラムがプロセッサによって実行されると、上記のロボットスケジューリング方法が実現される。In a fourth aspect, an embodiment of the present application further provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, realizes the robot scheduling method described above.
本願の実施例の技術案において、各ロボットに対して対応する指定ロボットタスクキューを設定するとともに、ランダムロボットタスクキューを設定し、指定ロボットタスクキューとランダムロボットタスクキューにそれぞれ対応する指定ロボットタスクとランダムロボットタスクを配置する。スケジューリングポリシーを実行する場合、各タスクキューからキューの先頭に位置するタスクを配信対象タスクとして取得し、次に、これらの配信対象タスクに対して、生成された順序に従ってスケジューリングを行い、タスクのタイプ、各ロボットのタスク数及び状態に基づいて、各配信対象タスクに対応するスケジューリング対象ロボットを決定する。このように、スケジューリングポリシーを実行するたびにランダムタスク又は各ロボットの指定タスクに対してスケジューリングを行うため、従来技術において全てのタスクをまとめて時間公平原則に従ってスケジューリングする過程において、先行タスクと後続タスクで指定されたロボットが衝突することにより後続の全てのタスクの渋滞待ちの問題を回避し、ロボットのスケジューリング効率と利用率を向上させる。In the technical proposal of the present application, a designated robot task queue is set for each robot, and a random robot task queue is set, with the designated robot task and random robot task queues being assigned to the designated robot task queue and the random robot task queue, respectively. When executing a scheduling policy, the task at the top of each task queue is retrieved as the target task. These target tasks are then scheduled in the order in which they were created, and the robot to be scheduled for each target task is determined based on the task type, the number of tasks for each robot, and their status. In this way, scheduling is performed for random tasks or the designated tasks for each robot each time the scheduling policy is executed. This avoids the problem of congestion for all subsequent tasks due to collisions between robots designated for preceding and subsequent tasks, which occurs in the prior art process of scheduling all tasks together according to the principle of time fairness, and improves the scheduling efficiency and utilization rate of robots.
1つ又は複数の実施例は、それに対応する図面における画像によって例示的に説明され、これらの例示的な説明は実施例を限定するものではない。One or more embodiments are illustratively described by images in corresponding drawings, and these illustrative descriptions are not intended to be limiting of the embodiments.
  以下、図面及び実施例を参照しながら本願をさらに詳細に説明する。ここで説明される具体的な実施例は、本願を説明するためのものに過ぎず、本願を限定するものではないことを理解されたい。加えて、説明を容易にするために、添付の図面は、本願の実施例に関連する部分のみを示し、構造のすべてではないことにさらに留意されたい。
  実施例1  The present application will be described in more detail below with reference to the drawings and examples. It should be understood that the specific examples described herein are merely for the purpose of illustrating the present application and are not intended to limit the present application. In addition, it should be further noted that, for ease of explanation, the accompanying drawings only show parts relevant to the embodiments of the present application, and not all of the structures.
 Example 1
図1は、本願の実施例1に係るロボットスケジューリング方法のフローチャートであり、本実施例は、例えば、同一の店舗でユーザによってトリガされたタスクに処理を担当するロボットを割り当てる場合に適用可能であり、該方法は、ロボットスケジューリング装置によって実行可能であり、該装置は、ソフトウェア及び/又はハードウェアの方式で実現可能であり、好ましくは、例えばコンピュータ機器又はサーバなどの電子機器に配置される。図1に示すように、当該方法は具体的に以下のステップを含む。Figure 1 is a flowchart of a robot scheduling method according to Example 1 of the present application. This example is applicable, for example, to assigning robots to process tasks triggered by a user in the same store. The method can be executed by a robot scheduling device, which can be implemented in software and/or hardware and is preferably located in an electronic device such as a computer or server. As shown in Figure 1, the method specifically includes the following steps:
S101、複数の配信対象タスクを取得し、ここで、複数の配信対象タスクは、それぞれ複数のオリジナルタスクキューにおけるキューの先頭に位置する複数のタスクを含み、複数のオリジナルタスクキューは、生成された順序に従ってキューの先頭からキューの末尾までソートされたランダムロボットタスクキューと、複数のロボットのうちの少なくとも2つのロボットに対応する少なくとも2つの指定ロボットタスクキューとを含み、複数の配信対象タスクのタイプは、ランダムロボットタスクと指定ロボットタスクとを含む。S101: Acquire a plurality of tasks to be delivered, wherein the plurality of tasks to be delivered include a plurality of tasks located at the head of a plurality of original task queues, the plurality of original task queues including a random robot task queue sorted from the head of the queue to the tail of the queue according to the order in which they were generated, and at least two designated robot task queues corresponding to at least two robots among the plurality of robots, and the types of the plurality of tasks to be delivered include random robot tasks and designated robot tasks.
一例において、店舗にN個のロボットがある場合、N個の指定ロボットタスクキュー及び1個のランダムロボットタスクキューを設定し、ユーザによってトリガされたタスクのタイプに応じて、タスクが生成された時間の前後順序に従って、対応するキューの先頭から末尾に排列し、即ち、キューの先頭のタスクの生成時間がより早い。例えば、ロボットを指定しないランダムタスク甲はランダムロボットタスクキューに置かれ、それぞれロボットA、ロボットBを指定する指定タスク乙と指定タスク丙は、それぞれロボットAとロボットBのそれぞれに対応する指定ロボットタスクキューに置かれ、もう1つのランダムタスク丁が生成されると、ランダムロボットタスクキューに置かれ且つランダムタスク甲の後に位置する。In one example, if a store has N robots, N designated robot task queues and one random robot task queue are set up. Depending on the type of task triggered by the user, the tasks are arranged from the front to the back of the corresponding queue in order of their creation time, i.e., the task at the top of the queue is the one that was created earlier. For example, random task A, which does not specify a robot, is placed in the random robot task queue, designated task B and designated task C, which specify robot A and robot B respectively, are placed in the designated robot task queues corresponding to robot A and robot B, respectively, and when another random task D is generated, it is placed in the random robot task queue and is positioned after random task A.
タスクが生成された後、いずれも対応するタスクキューに配置されて送信を待機する。スケジューリングポリシーは、一定の時間間隔で実行することができ、スケジューリングポリシーを実行するたびに、まず、各オリジナルタスクキューにおいてキューの先頭に位置するタスクを取得し、それを配信対象タスクとする。After tasks are generated, they are placed in the corresponding task queues and await transmission. The scheduling policy can be executed at regular time intervals, and each time the scheduling policy is executed, the task at the top of each original task queue is first obtained and designated as the task to be distributed.
S102、各配信対象タスクのタイプ、各ロボットのタスク数及び状態に基づいて、生成された順序に従って配信対象タスクごとにスケジューリング対象ロボットを決定し、配信対象タスクをスケジューリング対象ロボットに送信する。S102: Based on the type of each task to be distributed, the number of tasks for each robot, and their status, a robot to be scheduled is determined for each task to be distributed in the order in which they were generated, and the tasks to be distributed are sent to the robot to be scheduled.
スケジューリングポリシーを実行する過程において、各配信対象タスクの生成順序に従って、配信対象タスクごとにスケジューリング対象ロボットを順次決定する。例えば、全ての配信対象タスクの生成時間を比較し、生成時間が最も早いタスクを現在の配信対象タスクとし、それにスケジューリング対象ロボットを決定し、現在の配信対象タスクを決定されたスケジューリング対象ロボットに送信する。次に、残りの未処理の配信対象タスクのうち生成時間が最も早いタスクを新たな現在の配信対象タスクとしてスケジューリングし続け、これによって類推し、全ての配信対象タスクの処理が完了するまで続ける。In the process of executing the scheduling policy, the robot to be scheduled for each task to be distributed is determined sequentially according to the order in which each task to be distributed was generated. For example, the generation times of all tasks to be distributed are compared, and the task with the earliest generation time is designated as the current task to be distributed. A robot to be scheduled for this task is then determined, and the current task to be distributed is sent to the determined robot to be scheduled. Next, of the remaining unprocessed tasks to be distributed, the task with the earliest generation time is scheduled as the new current task to be distributed, and this process continues until all tasks to be distributed have been processed.
スケジューリング対象ロボットを決定する場合、タスクのタイプ、各ロボットのタスク数及び状態に基づいて行うことができる。例えば、現在の配信対象タスクがランダムロボットタスクである場合、全てのロボットからタスク数が最も少ないロボットを、現在の配信対象タスクの実行を担当するスケジューリング対象ロボットとして選択することにより、タスク処理の効率及び各ロボットの利用率を向上させることができる。現在の配信対象タスクが指定ロボットタスクである場合、該タスクで指定されたロボットを現在の配信対象タスクの処理を担当するスケジューリング対象ロボットとする。The robot to be scheduled can be determined based on the task type, the number of tasks for each robot, and its status. For example, if the current task to be distributed is a random robot task, the robot with the fewest tasks among all robots can be selected as the scheduled robot to execute the current task to be distributed, thereby improving the efficiency of task processing and the utilization rate of each robot. If the current task to be distributed is a designated robot task, the robot designated in that task will be the scheduled robot to process the current task to be distributed.
別の例では、ロボットの状態と組み合わせてスケジューリングを行うこともでき、例えば、まず各ロボットから現在呼び出し可能な状態のロボットを選択し、次に現在呼び出し可能なロボットから各タスクごとにスケジューリング対象ロボットを決定することにより、タスク配信の成功率を向上させる。ここで、ロボットの状態は、ロボットから報告された状態情報に基づいて決定することができる。例えば、ロボットの現在のネットワーク状態はオンラインであるが、ロボットが充電によりタスクを実行できない場合、この時の当該ロボットの状態は呼び出し不可である。なお、ロボットの状態は、実際の作業シーンに応じて決定されてもよく、本願の実施例はこれを限定しない。In another example, scheduling can be performed in combination with the robot's status. For example, first, a robot that is currently available for call is selected from each robot, and then a robot to be scheduled for each task is determined from the currently available robots, thereby improving the success rate of task distribution. Here, the robot's status can be determined based on status information reported by the robot. For example, if a robot's current network status is online, but the robot is unable to perform the task due to charging, the robot's status at this time is not available for call. Note that the robot's status may also be determined according to the actual work scene, and the embodiments of the present application are not limited to this.
S103、各オリジナルタスクキューにおける残りのタスクに対して、上記操作を繰り返し実行する。S103: Repeat the above operation for the remaining tasks in each original task queue.
具体的には、配信対象タスクをスケジューリング対象ロボットに送信した後、引き続けて各オリジナルタスクキューにおける残りのタスクについて、上記操作に従って繰り返し実行することができる。Specifically, after the tasks to be distributed are sent to the robots to be scheduled, the remaining tasks in each original task queue can be repeatedly executed according to the above operations.
もう一つの例において、スケジューリング対象ロボットは、タスクを受信するメッセージをフィードバックすることができ、該タスクの配信に成功したことを示すが、ネットワーク遅延などの原因により、スケジューリング対象ロボットが該タスクを受信できるとしても、そのフィードバックメッセージに遅延が存在する可能性がある。また、スケジューリング対象ロボットは、他の原因で該タスクを受け入れることができない可能性もあり、該タスクを受け入れるメッセージをフィードバックしない。したがって、本願の実施例において、タスクの配信の成功率を確保するために、スケジューリング対象ロボットがタスクを受け取るフィードバックメッセージを受信した場合にのみ、配信対象タスクの配信が成功したことを確認し、当該配信対象タスクをその所属するオリジナルタスクキューから削除し、そうでない場合にもその所属するオリジナルタスクキューに保留し、その元のキューにおける位置を保留することで、次回にスケジューリングポリシーを実行する際にタイムリーに配信することができる。当然のことながら、キューから削除する方式以外に、既に割り当てられたタスクに対して、他の方式で既に割り当てられたタスクをマークして、繰り返し割り当てを回避する目的を達成してもよい。In another example, the scheduled robot may feedback a message indicating that it has received the task, indicating that the task has been successfully delivered. However, due to factors such as network delays, even if the scheduled robot is able to receive the task, there may be a delay in the feedback message. Furthermore, the scheduled robot may be unable to accept the task for other reasons and may not feedback a message accepting the task. Therefore, in this embodiment, to ensure the success rate of task delivery, the scheduled robot confirms that the delivery of the task to be delivered has been successful only when it receives a feedback message indicating that it has received the task, and deletes the task from its original task queue. Otherwise, the task is retained in its original task queue and its position in the original queue is retained, allowing it to be delivered in a timely manner the next time the scheduling policy is executed. Naturally, in addition to deleting the task from the queue, other methods may be used to mark already assigned tasks to avoid repeated assignment.
上記S101-S103のステップに従ってスケジューリングポリシーを循環的に実行し、全てのオリジナルタスクキューに配信対象タスクがない場合、又はスケジューリング可能なロボットがない場合、実行を停止し、新しいタスクを生成した後に実行を続けることができる。例えば、上記停止条件が満たされるまで、一定の時間間隔で上記スケジューリングポリシーを実行してもよい。The scheduling policy is executed cyclically according to steps S101-S103 above. If there are no tasks to be delivered in all original task queues or no robots that can be scheduled, execution can be stopped and a new task can be generated before continuing. For example, the scheduling policy can be executed at regular time intervals until the stopping condition is met.
もう1つの例において、1つの店舗でA、B、Cの3台のロボットがあれば、異なるユーザによって甲、乙、丙、丁の4つのタスクが順番に開始される。ここで、甲はロボットを指定しなく、ランダムロボットタスクであり、乙と丙は、いずれもBロボットを指定し、丁はCロボットを指定し、乙、丙と丁は、いずれも指定ロボットタスクである。すると、甲はランダムロボットキューにあり、乙と丙はロボットBの指定ロボットキューにあり、乙は先頭にあり、丁はロボットCの指定ロボットキューにある。このとき、ロボットAのタスク数は0、ロボットBのタスク数は2、ロボットCのタスク数は1である。スケジューリングポリシーを実行する場合、まず、各オリジナルタスクキューから先頭に位置するタスクを配信対象タスクとして取得し、即ち、配信対象タスクは、甲、乙、丁を含む。ここで、生成順序に従って、まず甲のために割り当てを行い、甲がランダムロボットタスクであり、且つ現在のロボットAのタスク数が最も少ないため、ロボットAを甲のスケジューリング対象ロボットとし、タスク甲をロボットAに送信する。次にタスク乙のために割り当てを行い、タスク乙はロボットBを指定するため、ロボットBが現在呼び出し可能な状態にある場合、タスク乙をロボットBに送信する。最後にタスク丁のために割り当てを行い、ロボットCが現在呼び出し可能な状態にある場合、タスク丁をロボットCに送信する。この時、現在の全ての配信対象タスクは既に配信されており、ロボットA、B、Cがいずれもタスクを受信するメッセージをフィードバックすると、タスク甲、乙及び丁はいずれもそれが所属するオリジナルキューから削除される。次にスケジューリングポリシーを実行する際に、割り当てられたタスクが削除された後のオリジナルキューには、ロボットBが指定されたタスクキューに1つのタスク丙のみがあるため、タスク丙のために割り当てを行う。タスク丙がロボットBを指定するため、ロボットBが既に前のタスク乙を実行し終え、状態が呼び出し可能であることを報告した場合、タスク丙をロボットBに送信し、ロボットBが受信したメッセージをフィードバックした後、タスク丙をロボットBの指定されたロボットキューから削除し、そうでないと、タスク丙が現在配信できないことを示すため、ロボットBの指定されたロボットキューから削除せず、次回にスケジューリングポリシーを実行する時に配信し続ける。当然のことながら、上記スケジューリング過程において、いずれかのロボットがタスクを送信した後にタスクを受け入れたメッセージをフィードバックしない場合、対応するタスクはいずれもそれが所属するオリジナルタスクキューから削除されず、キューにおけるオリジナル位置に保留され、次回にスケジューリングポリシーを実行する際に配信される。In another example, if a store has three robots, A, B, and C, four tasks, A, B, C, and D, are started in sequence by different users. Here, A does not specify a robot and is a random robot task, B and C both specify robot B, and D specifies robot C, and B, C, and D are all designated robot tasks. Then, A is in the random robot queue, B and C are in robot B's designated robot queue, B is at the top, and D is in robot C's designated robot queue. Robot A has 0 tasks, robot B has 2 tasks, and robot C has 1 task. When executing the scheduling policy, the task at the top of each original task queue is first obtained as the task to be distributed. That is, the tasks to be distributed include A, B, and D. Here, assignment is first performed for A according to the order of generation. Since A is a random robot task and robot A currently has the fewest tasks, robot A is designated as the scheduled robot for A, and task A is sent to robot A. Next, an allocation is made for Task B. Task B specifies Robot B, so if Robot B is currently in a callable state, Task B is sent to Robot B. Finally, an allocation is made for Task D. If Robot C is currently in a callable state, Task D is sent to Robot C. At this time, all tasks currently to be delivered have already been delivered, and when Robots A, B, and C all feedback messages to receive the tasks, Tasks A, B, and D are all deleted from their original queues. Next, when the scheduling policy is executed, after the assigned tasks are deleted, only one Task C remains in the original queue, in the task queue specified by Robot B, so an allocation is made for Task C. Since Task C specifies Robot B, if Robot B has already completed the previous Task B and reported that it is in a callable state, Task C is sent to Robot B, and after Robot B feedbacks the received message, Task C is deleted from Robot B's specified robot queue; otherwise, since Task C indicates that it is currently unavailable for delivery, it is not deleted from Robot B's specified robot queue and will continue to be delivered the next time the scheduling policy is executed. Naturally, during the above scheduling process, if any robot does not feedback a message accepting the task after sending it, the corresponding task will not be deleted from the original task queue to which it belongs, but will be retained in its original position in the queue and will be delivered the next time the scheduling policy is executed.
なお、上記の例において、従来技術の時間公平原則に従ってスケジューリングを行うと、タスク甲のためにスケジューリング対象ロボットを決定する場合、ランダムに選択するため、ロボットB又はロボットCを選択する可能性がある。ロボットBを選択してタスク甲を実行すると、タスク乙を配信する時に、タスク乙がロボットBを指定するため、この時にロボットBがタスク甲を実行しており、時間を要するため、タスク乙は待機することしかできず、同様にロボットBが指定されたタスク丙も当然に待機する必要があり、同時に、タスク丁が指定したロボットがCであるが、タスク乙と丙がまだ配信されていないため、タスク丁も渋滞されて待機する。ロボットCを選択してタスク甲を実行し、タスク乙をロボットBに配信した後、タスク丙とタスク丁は依然として待機する必要がある。これにより、タスクの実行効率が大きく低下する。本願の実施例の技術案によれば、ランダムタスクの割り当て時に各ロボットの現在のタスク数を考慮するだけでなく、同時に、同一のロボットを指定するタスクがいずれも同一のキューに配置され、スケジューリングポリシーを実行するたびに各キューから先頭に位置するタスクを1つ選択して配信対象タスクとしてスケジューリングするため、従来技術においてロボットのスケジューリングが競合してタスクが無為に渋滞されて待機する問題が発生しない。上記の例において、タスク乙をロボットBに送信した後、タスク丙を処理することなく、タスク丁をロボットCに送信するため、タスク丁の渋滞待ちを引き起こすことがなく、タスクの実行効率を向上させる。In the above example, if scheduling were performed according to the time fairness principle of the prior art, when determining the robot to be scheduled for Task A, the selection would be made randomly, which could result in the selection of Robot B or Robot C. If Robot B is selected to execute Task A, when Task B is distributed, Task B specifies Robot B, which means that Robot B is executing Task A at the same time, which takes time, and Task B can only wait. Similarly, Task C, which specifies Robot B, must also wait. At the same time, Task D specifies Robot C, but Tasks B and C have not yet been distributed, so Task D is also congested and must wait. After Robot C is selected to execute Task A and Task B is distributed to Robot B, Tasks C and D still must wait. This significantly reduces task execution efficiency. According to the technical solution of the embodiments of the present application, not only is the current number of tasks for each robot taken into consideration when assigning random tasks, but at the same time, all tasks specifying the same robot are placed in the same queue. Each time the scheduling policy is executed, one task at the top of each queue is selected and scheduled as the task to be distributed. This eliminates the problem of robot scheduling conflicts causing tasks to wait idle and backed up, as occurs in conventional technology. In the above example, after sending Task B to Robot B, Task D is sent to Robot C without processing Task C, which prevents Task D from waiting in a backed up state and improves task execution efficiency.
本願の実施例の技術案において、各ロボットに対応する指定ロボットタスクキューを設定するとともに、ランダムロボットタスクキューを設定する。スケジューリングポリシーを実行する場合、各タスクキューから先頭に位置する配信対象タスクを取得し、次に、これらの配信対象タスクに対して、生成された順序に従ってスケジューリングを行い、タスクのタイプ、各ロボットのタスク数及び状態に基づいて、各配信対象タスクに対応するスケジューリング対象ロボットを決定する。次に、スケジューリング対象ロボットが受け入れた配信対象タスクは、それが所属するオリジナルタスクキューから削除することができ、その後、各オリジナルタスクキューにおける残りのタスクに対して、残りのタスクがないかスケジューリング可能なロボットがなくなるまで、上記スケジューリングポリシーを繰り返し実行する。このように、スケジューリングポリシーを実行するたびにランダムタスク又は各ロボットの指定タスクに対してスケジューリングを行うため、従来技術において時間公平原則に従ってスケジューリングを行う過程において、先行タスクと後続タスクとがロボットを割り当てる問題で衝突することにより後続タスクの全てが渋滞され待機する問題を回避し、ロボットのスケジューリング効率及び利用率を向上させる。In the technical solution of the present application, a designated robot task queue corresponding to each robot is set, and a random robot task queue is set. When executing the scheduling policy, the top task to be distributed is retrieved from each task queue. These tasks are then scheduled in the order in which they were created, and the scheduled robot corresponding to each task is determined based on the task type, the number of tasks for each robot, and its status. Tasks accepted by the scheduled robot are then deleted from the original task queue to which they belong. The scheduling policy is then repeatedly executed for the remaining tasks in each original task queue until there are no remaining tasks or no schedulable robots. In this way, scheduling is performed for random tasks or designated tasks for each robot each time the scheduling policy is executed. This avoids the problem of all subsequent tasks being backed up and waiting due to a conflict between a preceding task and a subsequent task when allocating a robot, which occurs in prior art scheduling according to the principle of time fairness, and improves the efficiency and utilization of robot scheduling.
好ましくは、別の例では、スケジューリング対象ロボットを決定する前に、現在の配信対象タスクの状態をチェックし、現在の配信対象タスクの状態がキャンセルされたか否かを判断し、キャンセルされた場合、実行するロボットを決定し続ける必要がなく、オリジナルタスクキュー及び配信対象タスクキューから直接削除すればよい。また、毎回タスクを送信した後、ロボットからフィードバックされたタスクの受け入れたメッセージを受信した場合のみ、タスクの割り当てが成功したことを示し、この時、該タスクの状態は受け入れたことであり、オリジナルタスクキュー及び配信対象タスクキューから削除することができ、そうでないと、該タスクをオリジナルタスクキューに保留する。現在の配信対象タスクキューの状態を検証することにより、配信が成功したタスクを繰り返し配信することを回避することができ、ユーザがキャンセルしたタスクを配信することによるロボットリソースの浪費を回避することもでき、タスク配信の正確性をさらに向上させ、ロボットスケジューリングの効率を向上させる。Preferably, in another example, before determining the robot to be scheduled, the status of the current task to be distributed is checked to determine whether the status of the current task to be distributed is canceled. If the status is canceled, there is no need to continue determining the robot to execute, and the task can be directly deleted from the original task queue and the task to be distributed queue. Furthermore, after each task is sent, only if a task acceptance message is received from the robot, indicating that the task assignment was successful, the task status is accepted and the task can be deleted from the original task queue and the task to be distributed queue; otherwise, the task is retained in the original task queue. By verifying the status of the current task to be distributed queue, it is possible to avoid repeatedly distributing tasks that have been successfully distributed and to avoid wasting robot resources by distributing tasks that have been canceled by the user, further improving the accuracy of task distribution and improving the efficiency of robot scheduling.
  もう1つの例において、配信対象タスク毎にスケジューリング対象ロボットを決定する過程において計時を行い、スケジューリング時間を得ることをさらに含んでもよい。スケジューリング時間は、スケジューリング対象ロボットを決定する前に、現在の配信対象タスクのスケジューリング時間が予め設定された閾値を超える場合、現在の配信対象タスクを、それが所属するオリジナルタスクキュー及び配信対象タスクキューから削除するために用いられる。つまり、各配信対象タスクに対してスケジューリングポリシーを実行する過程において、計時を行うことができる。例えば、1つの配信対象タスクが現在の配信対象タスクとして決定された時刻で計時を開始し、該配信対象タスクがスケジューリング対象ロボットに受け入れられたと決定された時刻で計時を停止して、スケジューリング時間を得ることができる。1つの配信対象タスクが、ロボットからフィードバックした受け入れのメッセージを受信していない等の原因により、まだオリジナルタスクキューから削除されていない場合、該タスクが再び現在の配信対象タスクになると、そのスケジューリング時間を判断する。そのスケジューリング時間がタイムアウトした場合、タスクが失敗したと考えられ、その所属するオリジナルタスクキューから削除することができ、タイムアウトしていない場合、その配信を継続することができる。同時に、計時を開始した後、タスクがオリジナルタスクキューから削除されていない場合、スケジューリング時間が予め設定された閾値を超えるか、又はタスクが完了してオリジナルタスクキューから削除されるまで、計時を継続する。完了されていないタスクがスケジューリングポリシーのループ内に無制限に存在することは、タスクの円滑な完了に影響するだけでなく、ロボットの利用率を低下させ、本願の実施例は、スケジューリング時間がタイムアウトしたか否かを監視することにより、この問題を効果的に防止できることが理解できる。
  実施例2  In another example, the method may further include timing the process of determining a robot to be scheduled for each task to be scheduled and obtaining a scheduling time. The scheduling time is used to delete the current task to be scheduled from its original task queue and the task queue to be scheduled if the scheduling time of the current task to be scheduled exceeds a preset threshold before determining the robot to be scheduled. That is, timing may be performed during the process of executing a scheduling policy for each task to be scheduled. For example, timing may be started at the time a task to be scheduled is determined to be the current task to be scheduled, and stopped at the time the task to be scheduled is determined to be accepted by the robot to be scheduled, thereby obtaining the scheduling time. If a task to be scheduled has not yet been deleted from the original task queue due to reasons such as not receiving an acceptance message from the robot, its scheduling time is determined when the task becomes the current task to be scheduled again. If the scheduling time times out, the task is considered to have failed and can be deleted from its original task queue. If the scheduling time has not timed out, its delivery can be continued. At the same time, if the task is not deleted from the original task queue after starting the timing, the timing continues until the scheduling time exceeds a preset threshold or the task is completed and deleted from the original task queue. It can be understood that the unlimited existence of an uncompleted task in the scheduling policy loop not only affects the smooth completion of the task but also reduces the utilization rate of the robot. It can be understood that the embodiment of the present application can effectively prevent this problem by monitoring whether the scheduling time has timed out.
 Example 2
図2は本願の実施例2に係るロボットスケジューリング方法においてどのようにスケジューリング対象ロボットを決定するかに関する方法のフローチャートであり、本実施例は上記実施例に基づいてスケジューリング対象ロボットを決定する方法のフロー、即ち上記実施例におけるS102をさらに最適化する。図2に示すように、前記方法は以下のステップを含む。Figure 2 is a flowchart of a method for determining a robot to be scheduled in a robot scheduling method according to Example 2 of the present application. This example further optimizes the flow of the method for determining a robot to be scheduled based on the above example, i.e., S102 in the above example. As shown in Figure 2, the method includes the following steps:
S201、生成した順序に従って複数の配信対象タスクをソートし、配信対象タスクキューを構成する。S201: Sort multiple tasks to be distributed according to the order in which they were generated, and create a queue of tasks to be distributed.
すなわち、複数の配信対象タスクを決定した後、生成された順序に従ってこれらの配信対象タスクを再びソートし、ソートされた配信対象タスクに従って配信対象タスクキューを形成することができる。In other words, after determining multiple tasks to be distributed, these tasks to be distributed can be sorted again according to the order in which they were generated, and a queue of tasks to be distributed can be formed according to the sorted tasks to be distributed.
S202、配信対象タスクキューから先頭に位置する配信対象タスクを現在の配信対象タスクとして取得する。S202: The delivery target task located at the top of the delivery target task queue is obtained as the current delivery target task.
S203、現在の配信対象タスクのタイプ、各ロボットのタスク数及び状態に基づいて、現在の配信対象タスクに対するスケジューリング対象ロボットを決定し、現在の配信対象タスクをスケジューリング対象ロボットに配信する。S203: Determine the robot to be scheduled for the current task to be distributed based on the type of task to be distributed, the number of tasks for each robot, and its status, and distribute the current task to the robot to be scheduled.
S204、現在の配信対象タスクキューが空であるか否かを判断し、空ではない場合、配信対象タスクキューにおける残りの配信対象タスクに対して、配信対象タスクキューが空になるまで、S202に繰り返して実行する。S204: Determine whether the current delivery target task queue is empty. If it is not empty, repeat S202 for the remaining delivery target tasks in the delivery target task queue until the delivery target task queue is empty.
現在の配信対象タスクキューが空であるか否かを判断し、空である場合、現在の配信対象タスクキューにおけるタスクが全て処理されたことを示すことが理解できる。It determines whether the current task queue to be delivered is empty, and if it is, it can be understood that this indicates that all tasks in the current task queue to be delivered have been processed.
スケジューリングポリシーを1回実行することは、現在の配信対象タスクキューにおける各配信対象タスクを配信し、各配信対象タスクに対応するスケジューリング対象ロボットを決定することである。当該プロセスも1つの循環プロセスであり、即ち、配信対象タスクキューが空になるまで、配信対象タスクキューにおける各タスクが生成した順序に従って配信する。Executing the scheduling policy once distributes each task currently in the queue of tasks to be distributed and determines the robot to be scheduled for each task. This process is also a cyclical process, meaning that tasks in the queue of tasks to be distributed are distributed in the order they were created until the queue of tasks to be distributed is empty.
なお、現在の配信対象タスクをスケジューリング対象ロボットに配信した後、該現在の配信対象タスクを配信対象タスクキューから削除してもよいが、該現在の配信対象タスクは依然としてそれが所属するオリジナルタスクキューにあり、該配信対象タスクを実行するロボットが該タスクを受け入れたメッセージを返すまで、オリジナルタスクキューから該配信対象タスクを削除する。Note that after the current task to be distributed is distributed to the scheduled robot, the current task to be distributed may be deleted from the task queue to be distributed. However, the current task to be distributed will still be in the original task queue to which it belongs, and will be deleted from the original task queue until the robot executing the task to be distributed returns a message that it has accepted the task.
  本願の実施例の技術案は、配信対象タスクを配信対象タスクキューに構成し、生成された順序に従って配信対象タスクキューにおけるタスクに対してスケジューリング対象ロボットを決定して配信することにより、配信対象タスクキューにおける各タスクの時間公平性を確保する。同時に、ロボットが受け入れたと確定されていないタスクについて、現在の配信対象タスクキューのみから削除し、それが所属するオリジナルキューから削除しないので、ロボットに受け入れられる前に、該タスクが再び新しい配信対象タスクに現れ、これにより、各タスクがいずれもロボットに配信されてロボットに実行されることを確保し、タスク実行の成功率を向上させる。
  実施例3  The technical solution of the embodiment of the present application organizes tasks to be distributed into a task queue to be distributed, and determines and distributes robots to be scheduled for tasks in the task queue to be distributed according to the order in which they were generated, thereby ensuring time fairness for each task in the task queue to be distributed. At the same time, for a task that has not been confirmed as accepted by a robot, it is only deleted from the current task queue to be distributed, not from the original queue to which it belongs, so that the task will reappear in a new task queue to be distributed before being accepted by a robot, thereby ensuring that all tasks are distributed to and executed by the robot and improving the success rate of task execution.
 Example 3
図3は、本願の実施例3における、配信対象タスクがランダム型ロボットタスクである場合のロボットスケジューリング方法のフローチャートである。本実施例は、上記実施例に基づいてさらに最適化する。図3に示すように、前記方法は以下のステップを含む。Figure 3 is a flowchart of a robot scheduling method in Example 3 of the present application when the task to be distributed is a random robot task. This example is further optimized based on the above example. As shown in Figure 3, the method includes the following steps:
S301、生成した順序に従って複数の配信対象タスクをソートし、配信対象タスクキューを構成する。S301: Sort multiple tasks to be distributed according to the order in which they were generated, and create a queue of tasks to be distributed.
S302、配信対象タスクキューから先頭に位置する配信対象タスクを現在の配信対象タスクとして取得する。S302: The delivery target task at the top of the delivery target task queue is obtained as the current delivery target task.
S303、現在の配信対象タスクのタイプを判断し、現在の配信対象タスクがランダムロボットタスクである場合、S304を実行する。S303: Determine the type of task currently being distributed, and if the task currently being distributed is a random robot task, execute S304.
S304、各ロボットの状態に基づいて、複数の現在スケジューリング可能なロボットを決定し、各現在スケジューリング可能なロボットに対応する指定ロボットタスクキューにおけるタスク数を取得する。S304: Determine multiple robots that can currently be scheduled based on the status of each robot, and obtain the number of tasks in the designated robot task queue corresponding to each currently schedulable robot.
具体的には、全てのロボットの現在の状態に基づいて現在スケジューリング可能なロボットを取得することができ、さらにそれに対応する指定ロボットタスクキューにおけるタスク数を取得することができる。Specifically, you can obtain the robots that are currently available for scheduling based on the current status of all robots, and then obtain the corresponding number of tasks in the specified robot task queue.
例示的には、まず、現在のネットワークがオンラインであるロボットから、呼び出し禁止状態にあるロボットを除去し、その後、呼び出したことがあり且つタスクの受け入れを拒否するロボットを除去することができる。このとき、除去された後にロボットが残っていない場合、タスクが失敗したと判定し、呼出側にタスクの配信が失敗したことを通知し、現在の配信対象タスクをその所属するオリジナルキューから削除することができる。除去された後に依然として残りのロボットが存在する場合、その中から一時的に呼び出し不可能なロボットを除去することができ、除去された後に残りのロボットが存在しない場合、現在の配信対象タスクが一時的に配信できないことを示し、次回のスケジューリングを待ち、現在の配信対象タスクを現在の配信対象タスクキューから削除するが、依然としてそれが所属するオリジナルタスクキューに保留することができる。上記除去操作を経た後にも残りのロボットが存在する場合、残りのロボットを現在スケジューリング可能なロボットとして決定することができる。上記除去操作により、現在スケジューリング可能なロボットに対してタスク配信を行うことで、タスク配信の成功率をさらに向上させ、ロボットのスケジューリング効率を向上させることができる。For example, robots that are currently online on the network can be first removed from the list of robots that are prohibited from being called, and then robots that have been called but refuse to accept tasks can be removed. If no robots remain after the removal, the task is determined to have failed, the caller is notified that the task delivery failed, and the currently targeted task can be deleted from its original queue. If robots remain after the removal, robots that cannot be called temporarily can be removed from among them. If no robots remain after the removal, it indicates that the currently targeted task cannot be delivered, and the task can be deleted from the currently targeted task queue to wait for the next scheduling, but can still be held in its original task queue. If robots remain after the above removal operation, the remaining robots can be determined to be currently schedulable robots. By performing the above removal operation to deliver tasks to currently schedulable robots, the success rate of task delivery can be further improved, and robot scheduling efficiency can be improved.
S305、現在の配信対象タスクが複数の現在スケジューリング可能なロボットのうちの任意のターゲットロボットに配信されたか否かを判断し、YESと判断した場合、S306を実行してからS308を実行し、NOと判断した場合、S307を実行してからS308を実行する。S305: Determine whether the current task to be distributed has been distributed to any target robot among multiple robots that can currently be scheduled. If the answer is YES, execute S306 and then S308. If the answer is NO, execute S307 and then S308.
S306、該ターゲットロボットを現在の配信対象タスクのスケジューリング対象ロボットとする。S306: The target robot is set as the scheduled robot for the current task to be distributed.
S307、タスク数が最も少ない現在スケジューリング可能なロボットを現在の配信対象タスクのスケジューリング対象ロボットとして選択する。S307: The currently schedulable robot with the fewest number of tasks is selected as the robot to be scheduled for the currently distributed task.
S308、現在の配信対象タスクをスケジューリング対象ロボットに送信する。S308: Send the current task to be distributed to the robot to be scheduled.
具体的には、タスクが送信された後、ロボットが受け入れたことを示すメッセージを受信する場合にのみ、それが所属するオリジナルタスクキューから削除されるが、当該メッセージは必ずしもすぐに受信されない。したがって、スケジューリングポリシーが実行されるたびに、現在の配信対象タスクがすでに送信されたことがある。したがって、現在の配信対象タスクが現在スケジューリング可能なロボットのうちの任意のターゲットロボットに配信されたことが確認された場合、タスクの配信が成功していないか、または当該ターゲットロボットが受け入れられていない可能性がある。したがって、現在の配信対象タスクを再び当該ターゲットロボットに配信する必要がある。このように、同一のタスクを異なるロボットに送信してタスクが重複して処理されることを避けることができ、ロボットのスケジューリング効率を向上させることに有利である。Specifically, after a task is sent, it is deleted from the original task queue to which it belongs only if a robot receives a message indicating acceptance, but this message is not necessarily received immediately. Therefore, each time the scheduling policy is executed, the currently targeted task may have already been sent. Therefore, if it is confirmed that the currently targeted task has been distributed to any target robot among the currently schedulable robots, it is possible that the task distribution was not successful or that the target robot has not accepted it. Therefore, the currently targeted task needs to be distributed to the target robot again. In this way, it is possible to avoid duplicate processing of tasks by sending the same task to different robots, which is advantageous for improving the scheduling efficiency of robots.
しかし、さらに説明する必要があるのは、現在の配信対象タスクが一度送信されたが、送信されたロボットが現在スケジューリング可能なロボットの範囲内にない場合、その時に送信されたロボットが何らかの原因で該タスクを受けておらず、且つ該ロボットが現在スケジューリング不可能であることを示し、この場合、再度該ロボットに送信する必要がなく、現在の配信対象タスクが送信されていない場合と同様に、S307を実行し、それに対してスケジューリング対象ロボットを決定する。具体的には、タスク数が最も少ない現在スケジューリング可能なロボットを現在の配信対象タスクのスケジューリング対象ロボットとして選択することができる。ランダムロボットタスクについて、現在処理対象タスクの数が最も少ないロボットを選択して実行することにより、後続のタスクの渋滞待ちの可能性を最大限に低減し、タスク処理の効率及びロボットの利用率を向上させることができる。However, it is worth explaining further that if the currently targeted task has been sent once, but the sent robot is not within the range of robots that can currently be scheduled, this indicates that the robot that was sent at that time did not receive the task for some reason and that the robot is currently not schedulable. In this case, there is no need to send it to the robot again, and S307 is executed to determine the robot to be scheduled for it, just as in the case where the currently targeted task has not been sent. Specifically, the currently schedulable robot with the fewest number of tasks can be selected as the robot to be scheduled for the currently targeted task. For random robot tasks, selecting and executing the robot with the fewest number of tasks currently being processed minimizes the possibility of congestion for subsequent tasks, improving task processing efficiency and robot utilization.
  さらに、別の例では、上記S306は、
  ターゲットロボットに対してロボットロックの取得に成功できるか否かを判断すること、
  YESと判断された場合、ターゲットロボットをロックし、再びターゲットロボットを現在の配信対象タスクのスケジューリング対象ロボットとすること、
  NOと判断された場合、現在の配信対象タスクが送信されたことを示すこと、を含んでもよい。  Furthermore, in another example, the above step S306 is
 determining whether a robot lock can be successfully obtained on the target robot;
 If the answer is YES, lock the target robot and set the target robot as the scheduled robot for the current task to be distributed again.
 If the determination is NO, it may include indicating that the current task to be delivered has been sent.
一例において、同時に複数の異なるタスクを同一のロボットに送信することを回避するとともに、ロボットをスケジューリングする際に当該ロボットが他の遠隔要求等の影響を受けることを回避するために、ロボットにタスクを送信する前にロボットをロックし、ロックの時間長さ、例えば6Sを設定することができる。ロック後の該時間内に、該ロボットは他のタスク又は命令を受けない。あるロボットがロックされていない場合、該ロボットロックの取得に成功することができる。したがって、上記操作において、ターゲットロボットのロボットロックの取得に成功する場合、ターゲットロボットがスケジューリングされていないことを示し、ターゲットロボットをロックし、再びターゲットロボットを現在の配信対象タスクのスケジューリング対象ロボットとし、現在の配信対象タスクをターゲットロボットに送信することができる。逆に、ロボットロックの取得に成功できない場合、ターゲットロボットにタスクを送信したことがあり、且つ該ターゲットロボットがまだロック状態にあることを示す。この場合、その後、現在の配信対象タスクを現在の配信対象タスクキューから削除して次回のスケジューリングを待つことができる。In one example, to avoid sending multiple different tasks to the same robot at the same time and to prevent the robot from being affected by other remote requests when scheduling the robot, the robot can be locked before sending a task to it and a lock time period, such as 6 seconds, can be set. During this time, the robot will not receive other tasks or commands. If a robot is not locked, the robot lock can be successfully acquired. Therefore, in the above operation, if the robot lock of the target robot is successfully acquired, it indicates that the target robot is not scheduled, and the target robot can be locked and re-assigned as the scheduled robot for the current task to be distributed, and the current task to be distributed can be sent to the target robot. Conversely, if the robot lock cannot be successfully acquired, it indicates that a task has been sent to the target robot and the target robot is still locked. In this case, the current task to be distributed can then be removed from the current task to be distributed queue and await the next scheduling.
  それに対応して、上記S307は、
  タスク数が小さい順に、複数の現在スケジューリング可能なロボットをソートすること、
  ソート後の順序に従って、各現在スケジューリング可能なロボットのロボットロックを順次取得すること、
  ロボットロックの取得に初めて成功した現在スケジューリング可能なロボットにロボットロックを追加し、それを現在の配信対象タスクのスケジューリング対象ロボットとすること、を含んでもよい。  Correspondingly, the above S307 is
 Sorting the multiple currently schedulable robots in ascending order of task number;
 sequentially acquiring a robot lock for each currently schedulable robot according to the sorted order;
 The robot lock may be added to the currently schedulable robot that first succeeds in acquiring the robot lock, and the robot may be designated as the robot to be scheduled for the currently distributed task.
ここで、タスク数が最も少ないロボットは必ずしもロックの取得に成功することができないため、ソートされた複数の現在スケジューリング可能なロボットに対してロボットロックの取得を順次試み、どのロボットが先に取得することができれば、該ロボットをスケジューリング対象ロボットとすることができる。Here, since the robot with the fewest number of tasks will not necessarily be successful in acquiring the lock, attempts are made to acquire the robot lock sequentially for the sorted robots that are currently available for scheduling, and the robot that is able to acquire the lock first can be selected as the robot to be scheduled.
S309、現在の配信対象タスクにスケジューリング成功マークを設定する。S309: Mark the current task to be distributed as a successful scheduler.
S310、ランダムロボットタスクキューから現在の配信対象タスクの次のタスクを取得し、それを配信対象タスクキューに入れ、現在の配信対象タスクキューを得る。S310: Obtain the next task after the current task to be distributed from the random robot task queue, place it in the task queue to be distributed, and obtain the current task queue to be distributed.
S311、現在の配信対象タスクキューを改めてソートする。S311: Re-sort the current task queue for distribution.
S312、改めてソートされた配信対象タスクキュー内の残りの配信対象タスクについて、S302の実行に戻る。S312: Return to execution of S302 for the remaining tasks to be delivered in the re-sorted task queue to be delivered.
好ましくは、S302の実行に戻る前に、改めてソートされた配信対象タスクキューが空であるか否かを判断してもよく、空である場合、S302の実行に戻る必要がない。あるいは、S310を実行する前に、ランダムロボットタスクキューが空であるか否かを判断してもよく、ランダムロボットタスクキューが空であると決定された場合、S310-S312を実行する必要がない。Preferably, before returning to execution of S302, it may be determined whether the re-sorted delivery target task queue is empty, and if it is empty, it is not necessary to return to execution of S302. Alternatively, before executing S310, it may be determined whether the random robot task queue is empty, and if it is determined that the random robot task queue is empty, it is not necessary to execute S310-S312.
具体的には、ランダムロボットタスクに対してスケジューリングポリシーを実行する過程において、現在の配信対象タスクをスケジューリング対象ロボットに送信した後、S309-S311を実行する。任意の配信対象タスクキューがスケジューリング成功にマークされた場合、該タスクを配信対象タスクキューから削除し、次にランダムロボットタスクキューからその次のタスクを取得し、他の配信対象タスクとともに新たな配信対象タスクキューを構成し、新たな配信対象タスクキューにおける各タスクを改めてソートし、該新たな配信対象タスクキューに対してS302の実行に戻り、キューにおけるタスクが空になるまでロボットスケジューリングを再度行い、現在の周期のスケジューリングポリシーを完成することを示す。このようにする目的は、ランダムロボットタスクにとって、現在のタスクが配信された後、ランダムロボットタスクキューにおける次のランダムロボットタスクにランダムに割り当て可能なロボットが存在する可能性があるためであり、該次のランダムロボットタスクを配信対象タスクキューに配置しないと、該タスクの実行に影響を与える。したがって、タスク実行の効率を向上させるために、ランダムロボットタスクキューにおける次のタスクも現在の配信対象タスクキューに入れて、改めてソートしてスケジューリングすることができる。Specifically, in the process of executing the scheduling policy for a random robot task, after sending the current target task to the scheduled robot, steps S309-S311 are executed. If any target task queue is marked as successfully scheduled, the task is deleted from the target task queue, the next task is obtained from the random robot task queue, and a new target task queue is created together with the other target tasks. Tasks in the new target task queue are re-sorted, and execution of step S302 is returned to the new target task queue. Robot scheduling is then performed again until the queue is empty, completing the scheduling policy for the current cycle. The purpose of this is that for a random robot task, after the current task is distributed, there may be a robot that can be randomly assigned to the next random robot task in the random robot task queue. If this next random robot task is not placed in the target task queue, the execution of the task will be affected. Therefore, to improve task execution efficiency, the next task in the random robot task queue can also be placed in the current target task queue, re-sorted, and scheduled.
  本願の実施例の技術案において、ランダムロボットタスクについて、現在呼び出し可能であり且つタスク数が最も少ないロボットを選択してスケジューリングし、タスク配信の成功率を確保するとともに、後続のタスクの渋滞待ちの可能性を低減し、ロボットの利用率を向上させる。
  実施例4  In the technical proposal of the embodiments of the present application, for random robot tasks, the robot that can currently be called and has the fewest number of tasks is selected and scheduled, ensuring the success rate of task distribution, reducing the possibility of subsequent tasks being congested, and improving the utilization rate of the robot.
 Example 4
図4は、本願の実施例4における、配信対象タスクが指定ロボットタスクである場合のロボットスケジューリング方法のフローチャートである。本実施例は、上記実施例に基づいてさらに最適化する。図4に示すように、前記方法は以下のステップを含む。Figure 4 is a flowchart of a robot scheduling method in Example 4 of the present application when the task to be distributed is a designated robot task. This example is further optimized based on the above example. As shown in Figure 4, the method includes the following steps:
S401、生成した順序に従って複数の配信対象タスクをソートし、配信対象タスクキューを構成する。S401: Sort multiple tasks to be distributed according to the order in which they were generated, and create a queue of tasks to be distributed.
S402、配信対象タスクキューから先頭に位置する配信対象タスクを現在の配信対象タスクとして取得する。S402: The delivery target task at the top of the delivery target task queue is obtained as the current delivery target task.
S403、現在の配信対象タスクのタイプを判断し、指定ロボットタスクである場合、S404を実行する。S403: Determine the type of task currently being distributed, and if it is a designated robot task, execute S404.
S404、該現在の配信対象タスクに対応する指定ロボットが現在スケジューリング可能であるか否かを判断し、YESと判断した場合、S405を実行し、NOと判断した場合、S406を実行する。S404: Determine whether the designated robot corresponding to the current task to be distributed is currently schedulable. If the answer is YES, execute S405; if the answer is NO, execute S406.
例えば、現在の配信対象タスクにおいて指定されたロボットの報告状態が呼び出し可能である場合、現在はスケジューリング可能であると考えられる。For example, if the reporting status of the robot specified in the currently targeted task is invokable, it is currently considered schedulable.
S405、指定ロボットのロボットロックの取得に成功できるか否かを判断し、YESと判断するとS407を実行し、NOと判断するとS410を実行する。S405: Determine whether the robot lock for the specified robot can be successfully acquired. If the answer is YES, execute S407; if the answer is NO, execute S410.
S407、指定ロボットをロックし、指定ロボットを現在の配信対象タスクのスケジューリング対象ロボットとする。S407: Lock the specified robot and make it the robot to be scheduled for the current task to be distributed.
S408、現在の配信対象タスクをスケジューリング対象ロボットに送信する。S408: Send the current task to be distributed to the robot to be scheduled.
S410、現在の配信対象タスクを配信対象タスクキューから削除する。S410: Delete the current task to be distributed from the task queue to be distributed.
ロボットをロックする目的については、上記実施例と同様であり、ここでは説明を省略する。The purpose of locking the robot is the same as in the previous example, so we will not explain it here.
S411、現在の配信対象タスクキューが空であるか否かを判断し、NOと判断すると、まだ配信されていないタスクがあることを示し、そして、S402の実行に戻って今回のスケジューリングポリシーを実行し続け、そうでないと、今回のスケジューリングポリシーを終了する。S411: Determine whether the current task queue to be delivered is empty. If the result is NO, this indicates that there are tasks that have not yet been delivered, and then return to execution of S402 to continue executing the current scheduling policy; if not, terminate the current scheduling policy.
上記S404において、指定ロボットが現在スケジューリング可能であるか否かを判断し、スケジューリング不可能であると判断すると、S406を実行し続ける。In S404 above, it is determined whether the specified robot is currently schedulable, and if it is determined that it is not schedulable, S406 continues to be executed.
S406、指定ロボットが一時的にスケジューリング不可であるか否かを判断し、YESと判断した場合、S410を実行し、NOと判断した場合、S409を実行してから、S410を実行する。S406: Determine whether the specified robot is temporarily unschedulable. If the answer is YES, execute S410. If the answer is NO, execute S409 and then execute S410.
S409、現在の配信対象タスクをその所属するオリジナルタスクキューから削除する。S409: Delete the current task to be distributed from the original task queue to which it belongs.
いくつかのスケジューリング不可能なロボットは、一時的な問題によって一時的にスケジューリング不可能である可能性があり、その後、スケジューリング可能な状態に回復する可能性があり、次にタスクを再度配信する時に成功する可能性がある。したがって、指定ロボットが一時的にスケジューリング不可である場合、現在の配信対象タスクを現在の配信対象タスクキューから削除し、再びこの指定ロボットを割り当てるのを待つことができる。指定ロボットが一時的にスケジューリング不可ではない場合、該指定ロボットが確かにスケジューリングできないことを示し、現在の配信対象タスクをその所属するオリジナルタスクキューから直接削除し、該タスク配信が失敗したと判定し、タスク呼び出し側に通知することができる。Some unschedulable robots may be temporarily unschedulable due to a temporary problem, and may later recover to a schedulable state, and may be successful the next time the task is distributed again. Therefore, if a designated robot is temporarily unschedulable, the currently distributed task can be removed from the currently distributed task queue and await reassignment of this designated robot. If the designated robot is not temporarily unschedulable, it can indicate that the designated robot is indeed unschedulable, directly remove the currently distributed task from the original task queue to which it belongs, determine that the task distribution has failed, and notify the task caller.
  本願の実施例の技術案では、指定されたロボットが現在スケジューリング可能であると決定された後に、指定されたロボットタスクを当該ロボットに送信し、タスク送信の成功率を保証する。
  実施例5  In the technical solution of the embodiment of the present application, after it is determined that a designated robot is currently schedulable, the designated robot task is sent to the robot, and the success rate of the task transmission is guaranteed.
 Example 5
図5は、本願の実施例5に係るロボットスケジューリング方法のフローチャートである。Figure 5 is a flowchart of a robot scheduling method according to Example 5 of the present application.
図に示すように、タスクスケジューリングタイマーにより、3秒ごとにスケジューリングポリシーを起動する(S1)。店舗で利用可能なロボットに基づいて、各ロボットに対応する指定ロボットタスクキューSSRを設定し、ランダムロボットタスクキューSSSを設定する(S2)。リアルタイムで生成されたタスクは、タイプに応じてそれぞれ対応するキューに入れられる。次に、SSRとSSSキューからそれぞれ先頭のタスクを取得し、各タスクが生成した時間に従ってソートし、配信対象タスクキューSSを構成する(S3)。また、店舗に対応する現在のロボットリストRLを取得することもできる(S4)。As shown in the figure, a scheduling policy is initiated every three seconds by a task scheduling timer (S1). Based on the robots available in the store, a designated robot task queue SSR corresponding to each robot is set, and a random robot task queue SSS is set (S2). Tasks generated in real time are placed in the corresponding queue according to their type. Next, the top tasks are obtained from the SSR and SSS queues, and sorted according to the time each task was generated to form a distribution target task queue SS (S3). It is also possible to obtain a current robot list RL corresponding to the store (S4).
スケジューリングポリシーを実行するたびに、配信対象タスクキューに対してスケジューリングを行う循環プロセスである。まず、SSから先頭のタスクを現在の配信対象タスクとして取得する(S5)。次に、まず、該タスクの状態を判断し(S6)、該タスクがキャンセルされた又は受け入れられた場合、SSR又はSSSキューから削除し(S7)、この時、配信対象タスクキューが空であるか否かを判断し(S37)、配信対象タスクキューにまだ配信されていないタスクがある場合、現在の配信対象タスクをSSから削除した後(S51)、SSから先頭のタスクを取得するステップ、即ちS5に戻る。現在の配信対象タスクがキャンセルされなく、又は受け入れられていない場合、そのスケジューリング時間がタイムアウトしたか否かを引き続き判断する(S8)。タイムアウトした場合、タスクの割り当てが失敗したと判定し(S9)、それを所属するオリジナルキュー(即ちSSR又はSSS)から削除した後(S10)、配信対象タスクキューが空であるか否かを判断し(S37)、タイムアウトしていない場合、当該タスクを割り当て続け、当該タスクがランダムロボットタスクであるか否かを判断する(S11)。This is a cyclical process in which scheduling is performed on the task queue to be distributed each time a scheduling policy is executed. First, the top task from SS is obtained as the current task to be distributed (S5). Next, the status of the task is determined (S6). If the task is canceled or accepted, it is deleted from the SSR or SSS queue (S7). At this time, it is determined whether the task queue to be distributed is empty (S37). If there are tasks in the task queue to be distributed that have not yet been distributed, the current task to be distributed is deleted from SS (S51), and the process returns to the step of obtaining the top task from SS, i.e., S5. If the current task to be distributed is not canceled or accepted, it is determined whether its scheduling time has timed out (S8). If the time has timed out, it is determined that the task allocation has failed (S9), and it is deleted from the original queue (i.e., SSR or SSS) to which it belongs (S10). It is then determined whether the task queue to be distributed is empty (S37). If the time has not timed out, the task continues to be assigned and it is determined whether the task is a random robot task (S11).
現在の配信対象タスクがランダムロボットタスクである場合、まずRLリストから呼び出し禁止状態にあるロボットを除去し(S12)、次に呼び出し履歴且つ拒否のロボットを除去し(S13)、この時にRLリストが空である場合(S14)、タスクの割り当てが失敗したと判定し(S15)、タスクを所属するオリジナルのSSSキューから除去し(S16)、RLリストが空でない場合、スケジューリング開始をマークし、計時し(S17)、その後、呼び出し不可のロボットを除去し(S18)、この時にRLリストが空である場合(S19)、次回に現在の配信対象タスクをスケジューリングするのを待ち(S21)、空でない場合、該タスクに対して実行するロボットを決定する。具体的には、まず、現在の配信対象タスクがあるロボットに割り当てられたことがあり、且つ該ロボットが依然として現在のRLリストにあるか否かを判断し(S20)、そうである場合、ロボットロックの取得に成功したか否かを判断し(S22)、成功した場合、該ロボットを6Sにロックし(S24)、現在の配信対象タスクを該ロボットに再度配信し(S27)、同時に該現在の配信対象タスクをスケジューリング成功としてマークし(S29)、ロボットロックの取得に成功しなかった場合、該ロボットが6S内にタスクを1回配信したことを示し、次回のスケジューリングを待ってもよく(S25)、該現在の配信対象タスクがロボットに配信されたことがなく、又は配信されたが該ロボットが現在のRLリストにない場合、残りのロボットにおいて、各ロボットに対応するSSRキューの長さが小さい順に、これらの残りのロボットをソートし(S23)、即ち、各ロボットに対応する指定ロボットタスクの数に従ってソートし、ソート後の各ロボットに対してロボットロックを順次取得し(S26)、ロボットロックの取得に成功したか否かを判断し(S28)、ロックの取得に初めて成功したロボットを現在のロボットと決定し、該ロボットにロックし(S30)、タスクを該ロボットに配信する(S32)。タスクを該ロボットに配信した後、該タスクのスケジューリングが成功するとマークすることができる(S33)。なお、ランダムロボットタスクを配信する過程において、ランダムロボットタスクのスケジューリングが成功するとマークしたか否かを判断し(S34)、成功した場合、SSSから次のタスクを取得し(S35)、それをSSに入れ、現在のSSを改めてソートし(S36)、その後、ソート後の新しいSSキューに対して、今回のスケジューリングポリシーを実行し続ける。If the current task to be distributed is a random robot task, first remove robots that are in a prohibited state from being called from the RL list (S12), then remove robots with a call history and rejected status (S13), and if the RL list is empty at this time (S14), determine that the task allocation has failed (S15), remove the task from the original SSS queue to which it belongs (S16), and if the RL list is not empty, mark the start of scheduling and start timing (S17), then remove robots that cannot be called (S18), and if the RL list is empty at this time (S19), wait for the next time the current task to be distributed is scheduled (S21), and if it is not empty, determine the robot to execute for the task. Specifically, first, it is determined whether the current task to be distributed has been assigned to a robot before and the robot is still in the current RL list (S20). If so, it is determined whether the robot lock has been successfully acquired (S22). If successful, the robot is locked in 6S (S24), and the current task to be distributed is distributed to the robot again (S27). At the same time, the current task to be distributed is marked as a successful scheduling (S29). If the robot lock has not been successfully acquired, it indicates that the robot has distributed the task once within 6S, and may wait for the next scheduling (S25). If the currently selected task has never been distributed to a robot, or if it has been distributed but the robot is not currently on the RL list, the remaining robots are sorted in ascending order of the length of their corresponding SSR queues (S23), i.e., sorted according to the number of designated robot tasks for each robot. Robot locks are acquired sequentially for each sorted robot (S26), and a determination is made as to whether the robot lock acquisition was successful (S28). The first robot to successfully acquire the lock is determined to be the current robot and locked to that robot (S30). The task is then distributed to that robot (S32). After the task is distributed to the robot, the scheduling of the task can be marked as successful (S33). During the process of distributing a random robot task, a determination is made as to whether the scheduling of the random robot task has been marked as successful (S34). If successful, the next task is obtained from the SSS (S35), added to the SS, and the current SS is re-sorted (S36). The current scheduling policy is then continued to be executed on the new sorted SS queue.
現在の配信対象タスクが指定ロボットタスクである場合、まず、指定ロボットに現在タスクがマークされているか否かを判断し(S38)、YESの場合、次回のスケジューリングを待ち(S39)、NOの場合、スケジューリング開始をマークして計時する(S40)。その後、指定ロボットの状態が呼び出し可能であるか否かを判断し(S41)、呼び出し不可であれば一時的に呼び出し不可か否かを引き続き判断する(S43)。指定ロボットの状態が呼び出し可能であると判断された場合、該指定ロボットをスケジューリング対象ロボットとし(S42、S49、S50及びS46を実行する)、指定ロボットの状態が一時的に呼び出し不可である場合、次回のスケジューリングを待ち(S44)、一時的に呼び出し不可でない場合、ロボット状態が呼び出し禁止であることを示し(S45)、この場合、タスク失敗をマークし、呼び出し側に通知し(S47)、該タスクをオリジナルのSSRキューから除去する(S48)。その後、配信対象タスクキューSSが空でない場合、現在の配信対象タスクをSSキューから除去した後、SSから先頭のタスクを取得するステップを実行し続け、今回のスケジューリングポリシーを実行し続ける。If the current task to be distributed is a designated robot task, first determine whether the designated robot currently has a task marked (S38). If yes, wait for the next scheduling (S39). If no, mark the start of scheduling and start timing (S40). Then, determine whether the designated robot's status is callable (S41). If not, determine whether it is temporarily uncallable (S43). If it is determined that the designated robot's status is callable, the designated robot is designated as the robot to be scheduled (S42, S49, S50, and S46 are executed). If the designated robot's status is temporarily uncallable, wait for the next scheduling (S44). If it is not temporarily uncallable, indicate that the robot status is uncallable (S45). In this case, mark the task as failed, notify the caller (S47), and remove the task from the original SSR queue (S48). If the distribution target task queue SS is not empty, remove the current task to be distributed from the SS queue, and continue executing the step of obtaining the top task from SS, thereby continuing to execute the current scheduling policy.
SSキューが空である場合、今回のスケジューリングポリシーの実行が完了し、次の実行周期で次のスケジューリングポリシーが起動されるのを待ってもよい。If the SS queue is empty, execution of the current scheduling policy is complete and you can wait for the next scheduling policy to be launched in the next execution cycle.
  本願の実施例の技術案において、各ロボットに対応する指定ロボットタスクキューを設定するとともに、ランダムロボットタスクキューを設定する。スケジューリングポリシーを実行する場合、各タスクキューから先頭に位置する配信対象タスクを取得し、次に、これらの配信対象タスクに対して、生成された順序に従って順次スケジューリングを行い、タスクのタイプ、各ロボットのタスク数及び状態に基づいて、各配信対象タスクに対応するスケジューリング対象ロボットを決定する。次に、スケジューリング対象ロボットに受け入れられた配信対象タスクは、それが所属するオリジナルタスクキューから削除することができ、そして、削除後の各オリジナルタスクキューに対して、上記スケジューリングポリシーを、配信対象タスクがないかスケジューリング可能なロボットがなくなるまで繰り返し実行する。このように、スケジューリングポリシーを実行するたびにランダムロボットタスク又は指定ロボットタスクに対してスケジューリングを行うため、従来技術において時間公平原則に従ってスケジューリングを行う過程において、先行タスクと後続タスクがロボットを割り当てる問題で衝突することによる後続タスクの全ての渋滞待ちの問題を回避し、ロボットのスケジューリング効率と利用率を向上させる。
  実施例6  In the technical solution of the present embodiment, a designated robot task queue corresponding to each robot is set, and a random robot task queue is set. When executing the scheduling policy, the top target task in each task queue is retrieved, and these target tasks are then scheduled in the order in which they were created. The scheduled robot corresponding to each target task is determined based on the task type, the number of tasks for each robot, and the status of each robot. The target task accepted by the scheduled robot is then deleted from its original task queue, and the scheduling policy is then repeatedly executed for each original task queue after deletion until there are no target tasks or no schedulable robots. In this way, scheduling is performed for random robot tasks or designated robot tasks each time the scheduling policy is executed. This avoids the problem of all subsequent tasks waiting in a queue due to a conflict between a preceding task and a subsequent task in assigning a robot, which occurs in the prior art when scheduling according to the principle of time fairness, and improves the scheduling efficiency and utilization rate of robots.
 Example 6
  図6は本願の実施例6に係るロボットスケジューリング装置の構造模式図である。本実施例は、例えば、ユーザがトリガしたタスクに対して、同じ店舗で処理を担当するロボットを割り当てる場合に適用できる。当該装置は、本願の任意の実施例に記載のロボットスケジューリング方法を実現することができる。図6に示されるように、装置は、具体的に、
  複数の配信対象タスクを取得するように構成され、ここで、前記複数の配信対象タスクは、それぞれ複数のオリジナルタスクキューにおけるキューの先頭に位置する複数のタスクを含み、複数のオリジナルタスクキューは、生成された順序に従ってキューの先頭からキューの末尾までソートされたランダムロボットタスクキューと、複数のロボットのうちの少なくとも2つのロボットに対応する少なくとも2つの指定ロボットタスクキューとを含み、各オリジナルタスクキューにおけるタスクは、生成された順序に従ってキューの先頭からキューの末尾までソートされ、複数の配信対象タスクのタイプは、ランダムロボットタスクと指定ロボットタスクとを含む配信対象タスク取得モジュールと、
  各配信対象タスクのタイプ、各ロボットのタスク数及び状態に基づいて、生成された順序に従って各配信対象タスクに対するスケジューリング対象ロボットを決定し、配信対象タスクをスケジューリング対象ロボットに送信するロボットスケジューリングモジュールと、
  各オリジナルタスクキューにおける残りのタスクに対して、上記操作を繰り返し実行する循環実行モジュールと、を含む。  FIG. 6 is a structural schematic diagram of a robot scheduling device according to a sixth embodiment of the present application. This embodiment can be applied, for example, to a case where a robot in charge of processing a task triggered by a user is assigned in the same store. The device can implement the robot scheduling method described in any of the embodiments of the present application. As shown in FIG. 6, the device specifically:
 a delivery target task acquisition module configured to acquire a plurality of delivery target tasks, wherein the plurality of delivery target tasks include a plurality of tasks located at the head of a queue in a plurality of original task queues, respectively, the plurality of original task queues including a random robot task queue sorted from the head of the queue to the tail of the queue according to the order in which they were generated, and at least two designated robot task queues corresponding to at least two robots among the plurality of robots, the tasks in each original task queue being sorted from the head of the queue to the tail of the queue according to the order in which they were generated, and the types of the plurality of delivery target tasks include random robot tasks and designated robot tasks;
 a robot scheduling module that determines a robot to be scheduled for each task to be delivered in accordance with the generated order based on the type of each task to be delivered, the number of tasks of each robot, and the status of each robot, and transmits the task to be delivered to the robot to be scheduled;
 and a cyclic execution module that repeatedly executes the above operation on the remaining tasks in each original task queue.
  好ましくは、ロボットスケジューリングモジュール602は、
  生成された順序に従って複数の配信対象タスクをソートし、配信対象タスクキューを構成する配信対象タスクキュー構成ユニットと、
  発行対象タスクキューから先頭に位置する配信対象タスクを現在の配信対象タスクとして取得する先頭タスク取得ユニットと、
  現在の配信対象タスクのタイプ、各ロボットのタスク数及び状態に基づいて、現在の配信対象タスクに対するスケジューリング対象ロボットを決定し、現在の配信対象タスクをスケジューリング対象ロボットに配信するスケジューリング対象ロボット決定ユニットと、
  配信対象タスクキュー内の残りの配信対象タスクについて、上記の配信対象タスクキューから現在の配信対象タスクとして先頭に位置する配信対象タスクを取得する動作を、配信対象タスクキューが空になるまで繰り返し実行する循環実行ユニットと、を含む。  Preferably, the robot scheduling module 602:
 a delivery target task queue configuration unit that sorts the plurality of delivery target tasks according to the order in which they were generated and configures a delivery target task queue;
 a top task acquisition unit that acquires a top target task from the issue target task queue as a current target task;
 a scheduling target robot determination unit that determines a scheduling target robot for a current distribution target task based on the type of the current distribution target task, the number of tasks of each robot, and a state of each robot, and distributes the current distribution target task to the scheduling target robot;
 and a cyclic execution unit that repeatedly executes an operation of acquiring the top target task to be delivered from the target task queue as the current target task to be delivered, for the remaining target tasks to be delivered in the target task queue, until the target task queue is empty.
  好ましくは、スケジューリング対象ロボット決定ユニットは、
  各ロボットの状態に基づいて、複数の現在スケジューリング可能なロボットを決定し、各現在スケジューリング可能なロボットに対応する指定ロボットタスクキューにおけるタスク数を取得するスケジューリング可能なロボット取得サブユニットと、
  タスク数が最も少ない現在スケジューリング可能なロボットを、現在の配信対象タスクのスケジューリング対象ロボットとして選択するスケジューリング対象ロボット決定サブユニットと、を含む。  Preferably, the scheduling target robot determination unit
 a schedulable robot acquisition subunit that determines a plurality of currently schedulable robots based on the state of each robot, and acquires the number of tasks in the designated robot task queue corresponding to each currently schedulable robot;
 and a scheduling target robot determination subunit that selects a currently schedulable robot with the smallest number of tasks as a scheduling target robot for the currently distributed task.
  好ましくは、スケジューリング対象ロボット決定サブユニットは、具体的に、
  タスク数の小さい順に従って、現在スケジューリング可能なロボットをソートし、
  ソート後の順序に従って、各現在スケジューリング可能なロボットのロボットロックを順次取得し、
  ロボットロックの取得に初めて成功した現在スケジューリング可能なロボットにロボットロックを追加し、それを現在の配信対象タスクのスケジューリング対象ロボットとする。  Preferably, the scheduling target robot determination subunit specifically:
 Sort the robots that can currently be scheduled according to the number of tasks, starting with the smallest.
 Sequentially acquire the robot lock for each currently schedulable robot according to the sorted order;
 A robot lock is added to the currently schedulable robot that first succeeds in acquiring the robot lock, and the robot is set as the robot to be scheduled for the task currently being distributed.
  好ましくは、スケジューリング対象ロボット決定ユニットは、判断処理サブユニットをさらに含み、具体的には、
  現在の配信対象タスクが複数の現在スケジューリング可能なロボットのいずれかに配信されたか否かを判断し、
  YESと判断された場合、再び当該ターゲットロボットを現在の配信対象タスクのスケジューリング対象ロボットとし、
  NOと判断した場合、上記タスク数が最も少ない現在スケジューリング可能なロボットを現在の配信対象タスクのスケジューリング対象ロボットとして選択する操作を実行する。  Preferably, the scheduling target robot determination unit further includes a judgment processing subunit, specifically:
 determining whether the currently targeted task has been distributed to any of the plurality of currently schedulable robots;
 If the answer is YES, the target robot is again set as the robot to be scheduled for the current task to be delivered,
 If the determination is NO, an operation is performed to select the currently schedulable robot with the smallest number of tasks as the robot to be scheduled for the task to be currently distributed.
  好ましくは、判断処理ユニットは、当該ターゲットロボットを現在の配信対象タスクのスケジューリング対象ロボットとする操作を実行する場合、具体的には、
  ターゲットロボットに対してロボットロックの取得に成功できるか否かを判断し、
  YESと判断された場合、ターゲットロボットをロックし、該ターゲットロボットを現在の配信対象タスクのスケジューリング対象ロボットとし、
  NOと判断された場合、現在の配信対象タスクが配信されたことを示す。  Preferably, when the determination processing unit executes an operation to set the target robot as a scheduled robot for the current task to be delivered, specifically,
 determining whether a robot lock can be successfully acquired on the target robot;
 If the answer is YES, the target robot is locked and the target robot is set as the robot to be scheduled for the current task to be distributed.
 If the determination is NO, it indicates that the current task to be distributed has been distributed.
  好ましくは、スケジューリング対象ロボット決定ユニットは、スケジューリングマーク処理サブユニットをさらに含み、現在の配信対象タスクのタイプがランダムロボットタスクであり、且つ現在の配信対象タスクが既にスケジューリング対象ロボットに配信されている場合、スケジューリングマーク処理サブユニットは、具体的に、
  現在の配信対象タスクに対してスケジューリング成功マークを設定し、
  ランダムロボットタスクキューから現在の配信対象タスクの次のタスクを取得し、それを配信対象タスクキューに入れ、現在の配信対象タスクキューを得、
  現在の配信対象タスクキューを再びソートし、再びソートされた配信対象タスクキューにおける残りの配信対象タスクに対して、上記配信対象タスクキューから先頭に位置するタスクを取得して現在の配信対象タスクとする操作を実行する。  Preferably, the scheduling target robot determination unit further includes a scheduling mark processing subunit, and when the type of the current task to be distributed is a random robot task, and the current task to be distributed has already been distributed to the scheduling target robot, the scheduling mark processing subunit specifically:
 Mark the current delivery task as successful,
 Get the next task after the current target task from the random robot task queue, put it into the target task queue, and get the current target task queue.
 The current delivery target task queue is sorted again, and an operation is executed for the remaining delivery target tasks in the re-sorted delivery target task queue to acquire the task located at the top of the delivery target task queue and set it as the current delivery target task.
  好ましくは、スケジューリング対象ロボット決定ユニットは、指定ロボットタスク第1処理サブユニットをさらに含み、現在の配信対象タスクのタイプが指定ロボットタスクである場合、指定ロボットタスク第1処理サブユニットは、具体的に、
  指定ロボットタスクに対応する指定ロボットが現在スケジューリング可能であることに応答して、指定ロボットに対するロボットロックの取得に成功できるか否かを判断し、
  YESと判断された場合、指定ロボットをロックし、指定ロボットを現在の配信対象タスクのスケジューリング対象ロボットとし、
  NOと判断された場合、上記の現在の配信対象タスクを配信対象タスクキューから削除する操作を直接実行する。  Preferably, the scheduling target robot determination unit further includes a designated robot task first processing subunit, and when the type of the current delivery target task is a designated robot task, the designated robot task first processing subunit specifically:
 determining whether a robot lock can be successfully acquired for the designated robot in response to the designated robot corresponding to the designated robot task being currently available for scheduling;
 If the answer is YES, the designated robot is locked and the designated robot is set as the robot to be scheduled for the current task to be distributed.
 If the determination is NO, the operation of deleting the current task to be delivered from the task queue to be delivered is directly executed.
  好ましくは、スケジューリング対象ロボット決定ユニットは、指定ロボットタスク第2処理サブユニットをさらに含み、現在の配信対象タスクのタイプが指定ロボットタスクである場合、指定ロボットタスク第2処理サブユニットは、具体的に、
  指定ロボットタスクに対応する指定ロボットが現在スケジューリング不可であることに応答して、指定ロボットが一時的にスケジューリング不可であるか否かを判断し、
  YESと判断された場合、上記の現在の配信対象タスクを配信対象タスクキューから削除する操作を直接実行し、
  NOと判断された場合、現在の配信対象タスクをそれが所属するオリジナルタスクキューから削除した後、上記の現在の配信対象タスクを配信対象タスクキューから削除する操作を実行する。  Preferably, the scheduling target robot determination unit further includes a designated robot task second processing subunit, and when the type of the current delivery target task is a designated robot task, the designated robot task second processing subunit specifically:
 In response to the designated robot corresponding to the designated robot task being currently unschedulable, determining whether the designated robot is temporarily unschedulable;
 If the answer is YES, the operation of deleting the current task to be distributed from the task queue to be distributed is directly executed;
 If the determination is NO, the current task to be distributed is deleted from the original task queue to which it belongs, and then the operation of deleting the current task to be distributed from the task queue to be distributed is executed.
  好ましくは、ロボットスケジューリングモジュール602は、状態チェックユニットをさらに含み、状態チェックユニットは、具体的に、
  スケジューリング対象ロボットを決定する前に、現在の配信対象タスクの状態が受け入れ済みまたは取り消し済みである場合、現在の配信対象タスクを、それが所属するオリジナルタスクキューから削除し、上記の現在の配信対象タスクを配信対象タスクキューから削除する操作の実行へ移行する。  Preferably, the robot scheduling module 602 further includes a status check unit, and the status check unit specifically includes:
 Before determining the robot to be scheduled, if the state of the current task to be distributed is accepted or canceled, the current task to be distributed is deleted from the original task queue to which it belongs, and the process proceeds to execute the operation of deleting the current task to be distributed from the task queue to be distributed.
  好ましくは、ロボットスケジューリングモジュール602は、スケジューリング計時ユニットをさらに含み、スケジューリング計時ユニットは、
  現在の配信対象タスクに対してスケジューリング対象ロボットを決定する過程において計時を行い、スケジューリング時間を得、
  ここで、スケジューリング時間は、スケジューリング対象ロボットを決定する前に、現在の配信対象タスクのスケジューリング時間が予め設定された閾値を超えた場合、現在の配信対象タスクをそれが所属するオリジナルタスクキューから削除し、次に配信対象タスクキューから削除するために用いられる。  Preferably, the robot scheduling module 602 further includes a scheduling timing unit, which is configured to:
 The scheduling time is obtained by timing the process of determining the robot to be scheduled for the current task to be delivered.
 Here, the scheduling time is used to delete the current task to be delivered from the original task queue to which it belongs and then from the task queue to be delivered if the scheduling time of the current task to be delivered exceeds a preset threshold before determining the robot to be scheduled.
  本願の実施例に係るロボットスケジューリング装置は、本願の任意の実施例に係るロボットスケジューリング方法を実行することができ、方法の実行に対応する機能モジュール及び有益な効果を備える。
  実施例7  The robot scheduling device according to the embodiments of the present application can execute the robot scheduling method according to any embodiment of the present application, and includes functional modules and beneficial effects corresponding to the execution of the method.
 Example 7
図7は本願の実施例7に係る電子機器の構造模式図である。図7は、本願の実施例を実現するための例示的な電子機器712のブロック図を示す。図7に示す電子機器712は一例に過ぎず、本願の実施例の機能及び使用範囲を制限するものではない。Figure 7 is a structural schematic diagram of an electronic device according to a seventh embodiment of the present application. Figure 7 shows a block diagram of an exemplary electronic device 712 for implementing the seventh embodiment of the present application. The electronic device 712 shown in Figure 7 is merely an example and does not limit the functionality or scope of use of the seventh embodiment of the present application.
図7に示すように、電子機器712は、汎用コンピューティングデバイスの形式で表現される。電子機器712のコンポーネントは、1つ又は複数のプロセッサ又は処理ユニット716、メモリ728、異なるシステムコンポーネント(メモリ728及び処理ユニット716を含む)を接続するバス718を含んでもよいが、これらに限定されない。As shown in FIG. 7, electronic device 712 is represented in the form of a general-purpose computing device. Components of electronic device 712 may include, but are not limited to, one or more processors or processing units 716, memory 728, and a bus 718 connecting different system components (including memory 728 and processing unit 716).
バス718は、メモリバスまたはメモリコントローラ、周辺バス、グラフィックスアクセラレーションポート、プロセッサ、または複数のバス構造のうちの任意のバス構造を使用するローカルバスを含む、いくつかのタイプのバス構造のうちの1つまたは複数を示す。例示的に、これらのアーキテクチャは、工業標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MAC)バス、強化型ISAバス、ビデオ電子標準協会(VESA)ローカルバス及び周辺コンポーネント相互接続(PCI)バスを含むが、これらに限定されない。Bus 718 may represent one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, a graphics acceleration port, a processor, or a local bus using any of a number of bus structures. Illustratively, these architectures include, but are not limited to, an Industry Standard Architecture (ISA) bus, a MicroChannel Architecture (MAC) bus, an Enhanced ISA bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus.
電子機器712は、典型的には、複数種のコンピュータシステム読み取り可能な媒体を含む。これらの媒体は、電子機器712によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性及び不揮発性媒体、リムーバブル及びノンリムーバブル媒体を含む。Electronic device 712 typically includes multiple types of computer system-readable media. These media may be any available media that can be accessed by electronic device 712, including volatile and nonvolatile media, removable and non-removable media.
メモリ728は、揮発性メモリ形式のコンピュータシステム読み取り可能な媒体、例えばランダムアクセスメモリ(RAM)730及び/又はキャッシュメモリ732を含んでもよい。電子機器712は、他のリムーバブル/ノンリムーバブル、揮発性/不揮発性コンピュータシステム記憶媒体をさらに含んでもよい。単なる例として、ストレージシステム734は、ノンリムーバブルの不揮発性磁気媒体(図7には示されていないが、一般的に「ハードディスクドライブ」と呼ばれる)の読み書きに用いられてもよい。図7には示されていないが、リムーバブルの不揮発性磁気ディスク(例えば「フロッピーディスク」)の読み書きに用いられる磁気ディスクドライブ、及びリムーバブルの不揮発性光ディスク(例えばCD-ROM、DVD-ROM又は他の光媒体)の読み書きに用いられる光ディスクドライブを提供することができる。これらの場合、各ドライブは、1つ又は複数のデータ媒体インタフェースを介してバス718に接続されてもよい。メモリ728は、本願の各実施例の機能を実行するように構成される1セット(例えば、少なくとも1つ)のプログラムモジュールを有する少なくとも1つのプログラム又はプログラム製品を記憶することができる。Memory 728 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 730 and/or cache memory 732. Electronics 712 may also include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 734 may be used to read from and write to non-removable, non-volatile magnetic media (not shown in FIG. 7, but commonly referred to as a "hard disk drive"). Although not shown in FIG. 7, a magnetic disk drive used to read from and write to removable, non-volatile magnetic disks (e.g., "floppy disks") and an optical disk drive used to read from and write to removable, non-volatile optical disks (e.g., CD-ROMs, DVD-ROMs, or other optical media) may be provided. In these cases, each drive may be connected to bus 718 via one or more data medium interfaces. Memory 728 may store at least one program or program product having a set (e.g., at least one) program module configured to perform the functions of each embodiment of the present application.
1セット(少なくとも1つ)のプログラムモジュール742を有するプログラム/ユーティリティツール740は、例えばメモリ728に記憶されてもよく、このようなプログラムモジュール742は、オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール及びプログラムデータを含むが、これらに限定されず、これらの例における何れか又はある組み合わせには、ネットワーク環境の実現が含まれてもよい。プログラムモジュール742は、通常、本願に記載の実施例における機能及び/又は方法を実行する。A program/utility tool 740 having a set (at least one) program module 742 may be stored, for example, in memory 728. Such program modules 742 may include, but are not limited to, an operating system, one or more application programs, other program modules, and program data, any or some combination of which may include implementing a network environment. The program modules 742 typically perform the functions and/or methods of the embodiments described herein.
電子機器712は、1つ又は複数の外部機器714(例えば、キーボード、ポインティングデバイス、ディスプレイ724など)と通信してもよく、ユーザが当該電子機器712とインタラクションできるようにする1つ又は複数の機器と通信してもよく、及び/又は当該電子機器712が1つ又は複数の他のコンピューティング機器と通信できるようにする任意の機器(例えば、ネットワークカード、モデムなど)と通信してもよい。この通信は、入出力インタフェース722を介して行うことができる。また、電子機器712は、ネットワークアダプタ720を介して1つ又は複数のネットワーク(例えばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)及び/又はパブリックネットワーク、例えばインターネット)と通信することもできる。図に示すように、ネットワークアダプタ720は、バス718を介して電子機器712の他のモジュールと通信する。なお、図示しないが、電子機器712と組み合わせて他のハードウェア及び/又はソフトウェアモジュールを使用することができ、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライバ及びデータバックアップ記憶システムなどを含むが、これらに限定されない。The electronic device 712 may communicate with one or more external devices 714 (e.g., a keyboard, a pointing device, a display 724, etc.), one or more devices that allow a user to interact with the electronic device 712, and/or any device (e.g., a network card, a modem, etc.) that allows the electronic device 712 to communicate with one or more other computing devices. This communication may occur via an input/output interface 722. The electronic device 712 may also communicate with one or more networks (e.g., a local area network (LAN), a wide area network (WAN), and/or a public network such as the Internet) via a network adapter 720. As shown, the network adapter 720 communicates with other modules of the electronic device 712 via a bus 718. Although not shown, other hardware and/or software modules may be used in combination with the electronic device 712, including, but not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drivers, and data backup storage systems.
  処理ユニット716は、メモリ728に記憶されたプログラムを実行することにより、様々な機能アプリケーション及びデータ処理を実行し、例えば、本願の実施例に係るロボットスケジューリング方法を実現する。
  実施例8  The processing unit 716 executes programs stored in the memory 728 to perform various functional applications and data processing, for example, to implement the robot scheduling method according to the embodiment of the present application.
 Example 8
本願の実施例8は、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体をさらに提供し、当該プログラムがプロセッサによって実行されると、本願の実施例に係るロボットスケジューリング方法が実現される。Example 8 of the present application further provides a computer-readable storage medium on which a computer program is stored, and when the program is executed by a processor, the robot scheduling method according to the example of the present application is realized.
本願の実施例のコンピュータ記憶媒体は、1つ又は複数のコンピュータ読み取り可能な媒体の任意の組み合わせを採用することができる。コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な信号媒体またはコンピュータ読み取り可能な記憶媒体であってもよい。コンピュータ読み取り可能な記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、又は半導体のシステム、装置若しくはデバイス、又はこれらの任意の組み合わせであってもよいが、これらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的な例(非網羅的なリスト)は、1つ又は複数の導線を有する電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能なプログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、光記憶デバイス、磁気記憶デバイス、又は上記の任意の適切な組み合わせを含む。本明細書において、コンピュータ読み取り可能な記憶媒体は、プログラムを含む又は記憶する任意の有形媒体であってもよく、当該プログラムは、命令実行システム、装置又はデバイスによって使用され又はそれらと組み合わせて使用されてもよい。The computer storage medium of the embodiments of the present application may be any combination of one or more computer-readable media. The computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. The computer-readable storage medium may be, for example, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples (non-exhaustive list) of computer-readable storage media include an electrical connection having one or more conductors, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. As used herein, a computer-readable storage medium may be any tangible medium that contains or stores a program, which may be used by or in combination with an instruction execution system, apparatus, or device.
コンピュータ読み取り可能な信号媒体は、ベースバンドにおいて、または搬送波の一部として伝搬されるデータ信号を含んでよく、コンピュータ読み取り可能なプログラムコードを搬送する。このような伝播されたデータ信号は、電磁信号、光信号又は上記の任意の適切な組み合わせを含むが、これらに限定されない様々な形式を採用することができる。コンピュータ読み取り可能な信号媒体は、コンピュータ読み取り可能な記憶媒体以外の任意のコンピュータ読み取り可能な媒体であってもよく、当該コンピュータ読み取り可能な媒体は、命令実行システム、装置又はデバイスによって使用される又はそれらと組み合わせて使用されるプログラムを送信、伝播又は伝送することができる。A computer-readable signal medium may include a propagated data signal, either in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including, but not limited to, electromagnetic signals, optical signals, or any suitable combination of the above. A computer-readable signal medium may be any computer-readable medium other than a computer-readable storage medium, which is capable of transmitting, propagating, or transporting a program for use by or in connection with an instruction execution system, apparatus, or device.
コンピュータ読み取り可能な媒体に含まれるプログラムコードは、無線、電線、光ケーブル、RFなど、またはこれらの任意の適切な組み合わせを含むがこれらに限定されない任意の適切な媒体で伝送されてもよい。The program code contained in the computer-readable medium may be transmitted over any suitable medium, including, but not limited to, wireless, wire, optical cable, RF, etc., or any suitable combination thereof.
本願の操作を実行するためのコンピュータプログラムコードは、Java、Smalltalk、C++などのオブジェクト指向のプログラミング言語を含み、「C」言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を更に含む、1つまたは複数のプログラミング言語またはそれらの組み合わせで記述されてもよい。プログラムコードは、完全にユーザコンピュータで実行されてもよく、部分的にユーザコンピュータで実行されてもよく、独立したソフトウェアパッケージとして実行されてもよく、部分的にユーザコンピュータで部分的にリモートコンピュータで実行されてもよく、又は完全にリモートコンピュータ若しくはサーバで実行されてもよい。リモートコンピュータに関する場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザコンピュータに接続されてもよく、又は、外部コンピュータに接続されてもよい(例えば、インターネットサービスプロバイダを利用してインターネットを介して接続される)。Computer program code for carrying out the operations of the present application may be written in one or more programming languages, or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, C++, and the like, and further including conventional procedural programming languages such as "C" or similar programming languages. The program code may run entirely on the user computer, partially on the user computer, as a separate software package, partially on the user computer and partially on a remote computer, or entirely on a remote computer or server. When referring to a remote computer, the remote computer may be connected to the user computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet Service Provider).
  注意すべきことは、上記は本願の好ましい実施例及び適用される技術原理に過ぎない。当業者が理解できるように、本願はここに記載の特定の実施例に限定されず、当業者にとって本願の保護範囲から逸脱することなく、様々な明らかな変更、再調整及び代替を行うことができる。従って、以上の実施例により本願を詳細に説明したが、本願は以上の実施例に限定されるものではなく、本願の構想を逸脱しない限り、より多くの他の同等の実施例を含んでもよく、本願の範囲は添付の特許請求の範囲によって決められる。
  It should be noted that the above are only preferred embodiments and applied technical principles of the present application. As can be understood by those skilled in the art, the present application is not limited to the specific embodiments described herein, and various obvious modifications, adjustments, and substitutions can be made by those skilled in the art without departing from the scope of protection of the present application. Therefore, although the present application has been described in detail by the above embodiments, the present application is not limited to the above embodiments, and may include many other equivalent embodiments as long as they do not deviate from the concept of the present application, and the scope of the present application is determined by the appended claims.
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| CN202111240287.1ACN113971519B (en) | 2021-10-25 | 2021-10-25 | A robot scheduling method, device, electronic equipment and storage medium | 
| CN202111240287.1 | 2021-10-25 | ||
| PCT/CN2022/124487WO2023071769A1 (en) | 2021-10-25 | 2022-10-11 | Robot scheduling method and apparatus, and electronic device and storage medium | 
| Publication Number | Publication Date | 
|---|---|
| JP2024541019A JP2024541019A (en) | 2024-11-06 | 
| JP7728974B2true JP7728974B2 (en) | 2025-08-25 | 
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| JP2024525116AActiveJP7728974B2 (en) | 2021-10-25 | 2022-10-11 | Robot scheduling method, device, electronic device, and storage medium | 
| Country | Link | 
|---|---|
| JP (1) | JP7728974B2 (en) | 
| CN (1) | CN113971519B (en) | 
| WO (1) | WO2023071769A1 (en) | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| CN113971519B (en)* | 2021-10-25 | 2023-06-23 | 上海擎朗智能科技有限公司 | A robot scheduling method, device, electronic equipment and storage medium | 
| CN115063060A (en)* | 2022-08-22 | 2022-09-16 | 江西制造职业技术学院 | Robot scheduling method and system | 
| CN117076091B (en)* | 2023-10-12 | 2024-01-26 | 宁波银行股份有限公司 | Multi-engine interface scheduling method and device, electronic equipment and storage medium | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| JP2005327007A (en) | 2004-05-13 | 2005-11-24 | Firmware Systems Inc | Integrated computer control program, recording medium for recording its program and integrated system | 
| JP2008090507A (en) | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | Job execution scheduling program, job execution scheduling method, and job execution scheduling apparatus | 
| US20180200965A1 (en) | 2017-01-13 | 2018-07-19 | Autodesk, Inc. | Multi-tool scheduling for cooperative manufacturing | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US10737377B2 (en)* | 2016-03-15 | 2020-08-11 | Kindred Systems Inc. | Systems, devices, articles, and methods for robots in workplaces | 
| EP3588405A1 (en)* | 2018-06-29 | 2020-01-01 | Tata Consultancy Services Limited | Systems and methods for scheduling a set of non-preemptive tasks in a multi-robot environment | 
| CN110806933B (en)* | 2019-11-05 | 2022-06-10 | 中国建设银行股份有限公司 | Batch task processing method, device, equipment and storage medium | 
| CN113360254B (en)* | 2020-03-06 | 2025-01-10 | 北京搜狗科技发展有限公司 | Task scheduling method and system | 
| CN113448743B (en)* | 2020-03-25 | 2024-02-23 | 伊姆西Ip控股有限责任公司 | Method, electronic device and computer program product for task processing | 
| CN111782360B (en)* | 2020-06-28 | 2023-08-11 | 中国工商银行股份有限公司 | Distributed task scheduling method and device | 
| CN112286665A (en)* | 2020-11-05 | 2021-01-29 | 深圳壹账通智能科技有限公司 | Automatic task issuing method, execution method, equipment and storage medium | 
| CN113157409A (en)* | 2021-03-25 | 2021-07-23 | 北京来也网络科技有限公司 | AI-based RPA task scheduling method, device, electronic equipment and storage medium | 
| CN113971519B (en)* | 2021-10-25 | 2023-06-23 | 上海擎朗智能科技有限公司 | A robot scheduling method, device, electronic equipment and storage medium | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| JP2005327007A (en) | 2004-05-13 | 2005-11-24 | Firmware Systems Inc | Integrated computer control program, recording medium for recording its program and integrated system | 
| JP2008090507A (en) | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | Job execution scheduling program, job execution scheduling method, and job execution scheduling apparatus | 
| US20180200965A1 (en) | 2017-01-13 | 2018-07-19 | Autodesk, Inc. | Multi-tool scheduling for cooperative manufacturing | 
| Publication number | Publication date | 
|---|---|
| CN113971519A (en) | 2022-01-25 | 
| JP2024541019A (en) | 2024-11-06 | 
| WO2023071769A1 (en) | 2023-05-04 | 
| CN113971519B (en) | 2023-06-23 | 
| Publication | Publication Date | Title | 
|---|---|---|
| JP7728974B2 (en) | Robot scheduling method, device, electronic device, and storage medium | |
| KR100509794B1 (en) | Method of scheduling jobs using database management system for real-time processing | |
| EP0362105A2 (en) | Method for processing program threads of a distributed application program by a host computer and an intelligent work station in an SNA LU 6.2 network environment | |
| CN109814985B (en) | A task scheduling method and scheduler, computing device and system | |
| WO2005069155A2 (en) | Method and apparatus for task schedulin in a multi-processor system based on memory requirements | |
| CN103197968A (en) | Thread pool processing method and system capable of fusing synchronous and asynchronous features | |
| CN111338773A (en) | Distributed timed task scheduling method, scheduling system and server cluster | |
| CN111831408A (en) | Asynchronous task processing method and device, electronic equipment and medium | |
| CN106681840A (en) | Tasking scheduling method and device for cloud operating system | |
| CN111427675A (en) | Data processing method and device and computer readable storage medium | |
| CN112965817B (en) | Resource management method and device and electronic equipment | |
| CN105187327A (en) | Distributed message queue middleware | |
| WO2021159831A1 (en) | Programming platform user code running method, platform, node, device and medium | |
| CN111163140A (en) | Method, apparatus and computer readable storage medium for resource acquisition and allocation | |
| CN115617497B (en) | Thread processing method, scheduling component, monitoring component, server and storage medium | |
| EP0862113A2 (en) | Autonomous agent architecture | |
| JP2904483B2 (en) | Scheduling a periodic process | |
| CN112559148A (en) | Execution method, execution device and execution system of ordered tasks | |
| US8869171B2 (en) | Low-latency communications | |
| CN118819748A (en) | A task scheduling method, scheduling management system and multi-core processor | |
| CN117112121A (en) | Distributed task processing system, method, apparatus and computer program product | |
| CN115509713A (en) | A task processing method, system device, electronic apparatus, and storage medium | |
| CN116302456B (en) | Meta universe computing resource scheduling system | |
| CN113204434B (en) | Planned task execution method and device based on k8s and computer equipment | |
| CN102891806A (en) | Dispatching method and device for bulk operation using limited resource | 
| Date | Code | Title | Description | 
|---|---|---|---|
| A621 | Written request for application examination | Free format text:JAPANESE INTERMEDIATE CODE: A621 Effective date:20240425 | |
| A977 | Report on retrieval | Free format text:JAPANESE INTERMEDIATE CODE: A971007 Effective date:20250319 | |
| A131 | Notification of reasons for refusal | Free format text:JAPANESE INTERMEDIATE CODE: A131 Effective date:20250410 | |
| A521 | Request for written amendment filed | Free format text:JAPANESE INTERMEDIATE CODE: A523 Effective date:20250707 | |
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) | Free format text:JAPANESE INTERMEDIATE CODE: A01 Effective date:20250718 | |
| A61 | First payment of annual fees (during grant procedure) | Free format text:JAPANESE INTERMEDIATE CODE: A61 Effective date:20250813 | |
| R150 | Certificate of patent or registration of utility model | Ref document number:7728974 Country of ref document:JP Free format text:JAPANESE INTERMEDIATE CODE: R150 |