# US 12,759,145 B2 · Local idle time utilization in centrally controlled mobile robots

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,759,145 B2
- Document ID: US12759145B2
- Status: Granted
- Kind: B2
- Application number: 17/971,030
- Filed: 2022-10-21
- Published: 2024-04-25
- Granted: 2026-10-13
- Earliest claimed: 2022-10-21
- Assignees: Skild-Fetch LLC
- Applicants: Skild-Fetch LLC
- Inventors: Melonee Wise; Aaron Hoy; Derek King; Micaela Angeli; Chinmay Shah
- Web page: https://patentgrep.com/patent/US12759145B2

## CPC

- B25J 9/1661: {characterised by task planning, object-oriented languages}
- B25J 9/1653: {parameters identification, estimation, stiffness, accuracy, error analysis}
- B25J 9/1664: {characterised by motion, path, trajectory planning}
- B25J 9/1692: {Calibration of manipulator}
- B25J: MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES ({manipulators specially adapted for use in surgery A61B34/70; manipulators used in cleaning hollow articles B08B9/04}; manipulators associated with rolling mills B21B39/20; manipulators associated with forging machines B21J13/10; {manipulators associated with picking-up and placing mechanisms B23P19/007}; means for holding wheels or parts thereof B60B30/00; {vehicles with ground-engaging propulsion means, e.g. walking members B62D57/02, B62D57/032; devices for picking-up and depositing articles or materials between conveyors B65G47/90, B65G47/91; manipulators with gripping or holding means for transferring packages B65H67/065}; cranes B66C; {manipulators used in the protection or supervision of pipe-line installations F17D5/00; walking equipment adapted for nuclear steam-generators F22B37/006}; manipulators specially adapted for, or associated with, nuclear reactors G21C; {apparatus used for handling wafers during manufacture or treatment of semiconductor H10P72/50})

## Abstract

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.

## Claims

### Claim 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 of the mobile robot, 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;
wherein each of the self-assigned tasks corresponding to the self-assigned task definitions is independently executable by the processor of the mobile robot where no task is assigned to the mobile robot by the central server; and
wherein the idle criterion is assessed on a per-subsystem basis, such that the self-assigned task can be executed simultaneously with one or more of the tasks assigned to the mobile robot by the central server.

### Claim 2 (depends on 1)

The method of claim 1, further comprising: sending an indication of the selected self-assigned task definition to the central server.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 3)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 5)

The method of claim 5, wherein the threshold idle time period is predetermined.

### Claim 7 (depends on 5)

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.

### Claim 8 (depends on 1)

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.

### Claim 9 (depends on 1)

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.

### Claim 10 (depends on 1)

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.

### Claim 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;
wherein each of the self-assigned tasks corresponding to the self-assigned task definitions is independently executable by the processor of the mobile robot where no task is assigned to the mobile robot by the central server; and
wherein the idle criterion is assessed on a per-subsystem basis, such that the self-assigned task can be executed simultaneously with one or more of the tasks assigned to the mobile robot by the central server.

### Claim 12 (depends on 11)

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.

### Claim 13 (depends on 11)

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.

### Claim 14 (depends on 13)

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.

### Claim 15 (depends on 11)

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.

### Claim 16 (depends on 15)

The mobile robot of claim 15, wherein the threshold idle time period is predetermined.

### Claim 17 (depends on 15)

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.

### Claim 18 (depends on 11)

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.

### Claim 19 (depends on 11)

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.

### Claim 20 (depends on 11)

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.
