Local Idle Time Utilization in Centrally Controlled Mobile Robots
A method includes: storing, at a mobile robot, a local repository of self-assigned task definitions; determining, at a processor of the mobile robot, that a local activity metric associated with tasks assigned to the mobile robot by a central server meets an idle criterion; in response to determining that the local activity metric meets the idle criterion, selecting, by the processor, one of the self-assigned task definitions from the local repository; and initiating execution of a self-assigned task corresponding to the selected self-assigned task definition at the mobile robot.
1 . A method, comprising:
storing, at a mobile robot, a local repository of self-assigned task definitions;
determining, at a processor of the mobile robot, that a local activity metric associated with tasks assigned to the mobile robot by a central server meets an idle criterion;
in response to determining that the local activity metric meets the idle criterion, selecting, by the processor, one of the self-assigned task definitions from the local repository; and
initiating execution of a self-assigned task corresponding to the selected self-assigned task definition at the mobile robot.
2 . The method of claim 1 , further comprising: sending an indication of the selected self-assigned task definition to the central server.
3 . The method of claim 1 , further comprising:
after initiating execution of the selected self-assigned task, and prior to completion of the selected self-assigned task, receiving a task assignment from the central server; and
interrupting execution of the selected self-assigned task.
4 . The method of claim 3 , further comprising, prior to interrupting execution of the selected self-assigned task:
determining that a remaining execution time for the selected self-assigned task exceeds a threshold.
5 . The method of claim 1 , further comprising, prior to determining that the local activity metric meets the idle criterion, generating the local activity metric by:
determining an idle time period elapsed since completion of a latest task assigned to the mobile robot by the central server, without receipt of a further task assignment from the central server;
wherein determining that the local activity metric meets the idle criterion includes determining that the idle time period exceeds a threshold idle time period.
6 . The method of claim 5 , wherein the threshold idle time period is predetermined.
7 . The method of claim 5 , further comprising:
collecting, prior to generating the local activity metric, historical data defining previous idle time periods at the mobile robot; and
dynamically determining the threshold idle time period based on the historical data.
8 . The method of claim 1 , wherein each self-assigned task definition identifies a corresponding one of a plurality of subsystems of the mobile robot;
wherein the local activity metric meeting the idle criterion corresponds to one of the subsystems; and
wherein selecting the one of the self-assigned task definition includes restricting the selection to self-assigned task definitions identifying the one of the subsystems.
9 . The method of claim 1 , wherein selecting the one of the self-assigned task definitions from the local repository includes prioritizing the self-assigned task definitions according to at least one of:
(i) a location of the mobile robot;
(ii) a predetermined frequency of each self-assigned task;
(iii) time periods elapsed since respective previous performances of each self-assigned task;
(iv) a priority indicator included in at least one of the self-assigned task definitions;
(v) expected completion times of the self-assigned task;
(vi) a battery charge level of the mobile robot.
10 . The method of claim 1 , wherein the self-assigned task definitions include at least one of:
(i) a mapping task for a region of a facility in which the mobile robot is deployed;
(ii) a calibration task;
(iii) a data processing task; and
(iv) traveling to an area of the facility and generating output indicating that the mobile robot is available for task assignment.
11 . A mobile robot, comprising:
a memory storing a local repository of self-assigned task definitions;
a locomotive assembly;
a communications interface communicatively connecting the mobile robot with a central server; and
a processor configured to:
determine that a local activity metric associated with tasks assigned to the mobile robot by the central server meets an idle criterion;
in response to determining that the local activity metric meets the idle criterion, select one of the self-assigned task definitions from the local repository; and
initiate execution of a self-assigned task corresponding to the selected self-assigned task definition at the mobile robot.
12 . The mobile robot of claim 11 , wherein the processor is further configured to: send an indication of the selected self-assigned task to the central server.
13 . The mobile robot of claim 11 , wherein the processor is further configured to:
after initiating execution of the selected self-assigned task, and prior to completion of the selected self-assigned task, receive a task assignment from the central server; and
interrupt execution of the selected self-assigned task.
14 . The mobile robot of claim 13 , wherein the processor is further configured, prior to interrupting execution of the selected self-assigned task, to:
determine that a remaining execution time for the selected self-assigned task exceeds a threshold.
15 . The mobile robot of claim 11 , wherein the processor is further configured, prior to determining that the local activity metric meets the idle criterion, to generate the local activity metric by:
determining an idle time period elapsed since completion of a latest task assigned to the mobile robot by the central server, without receipt of a further task assignment from the central server;
wherein the processor is configured to determine that the local activity metric meets the idle criterion by determining that the idle time period exceeds a threshold idle time period.
16 . The mobile robot of claim 15 , wherein the threshold idle time period is predetermined.
17 . The mobile robot of claim 15 , wherein the processor is further configured to:
collect, prior to generating the local activity metric, historical data defining previous idle time periods at the mobile robot; and
determine the threshold idle time period based on the historical data.
18 . The mobile robot of claim 11 , wherein each self-assigned task definition identifies a corresponding one of a plurality of subsystems of the mobile robot;
wherein the local activity metric meeting the idle criterion corresponds to one of the subsystems; and
wherein the processor is further configured to select the one of the self-assigned task definition by restricting the selection to self-assigned task definitions identifying the one of the subsystems.
19 . The mobile robot of claim 11 , wherein the processor is further configured to select the one of the self-assigned task definitions from the local repository by prioritizing the self-assigned task definitions according to at least one of:
(i) a location of the mobile robot;
(ii) a predetermined frequency of each self-assigned task definition;
(iii) time periods elapsed since respective previous performances of each self-assigned task definition;
(iv) a priority indicator included in at least one of the self-assigned task definitions;
(v) expected completion times of the self-assigned task definitions;
(vi) a battery charge level of the mobile robot.
20 . The mobile robot of claim 11 , wherein the self-assigned task definitions include at least one of:
(i) a mapping task for a region of a facility in which the mobile robot is deployed;
(ii) a calibration task;
(iii) a data processing task; and
(iv) traveling to an area of the facility and generating output indicating that the mobile robot is available for task assignment.