Methods and systems for distributing tasks among robotic devices
First Claim
1. A method performed by a device, the method comprising:
- receiving from a first device information associated with an assigned task of the first device, wherein the assigned task involves an interaction with an environment and comprises a plurality of subtasks;
determining whether the assigned task can be executed in less time with assistance from one or more additional devices;
determining one or more available devices that can assist in executing the assigned task by executing at least one of the plurality of subtasks, wherein the one or more available devices include a device that is idle and that is configured to execute at least one of the plurality of subtasks;
ranking devices from the one or more available devices based on an amount of usage over time of the one or more available devices;
selecting a second device from among the one or more available devices based on the ranking of the one or more available devices;
determining a first subtask from the plurality of subtasks for the second device to execute based on capabilities of the second device;
sending to the second device instructions to execute the determined first subtask;
storing the information associated with the assigned task of the first device;
determining a pattern of assigned tasks based on the stored information and previously stored information associated with previously assigned tasks of a pool of devices; and
determining a task prediction based on the pattern of assigned tasks, the task prediction estimating a future task and a future time at which the future task is to be executed.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for distributing tasks among robotic devices are described. A server may receive from a first device, information associated with an assigned task of the first device. The server may determine whether the assigned task can be executed more efficiently with assistance from additional devices, and may further determine available devices that can assist in executing the assigned task. The determined available devices may be ranked according to an amount of usage of the devices over time, and a second device may be selected from the available devices based on the ranking. A subtask of the assigned task may then be determined from a plurality of subtasks of the assigned task based on capabilities of the selected second device. An instruction may then be sent to the second device, instructing the second device to execute the determined subtask.
80 Citations
22 Claims
-
1. A method performed by a device, the method comprising:
-
receiving from a first device information associated with an assigned task of the first device, wherein the assigned task involves an interaction with an environment and comprises a plurality of subtasks; determining whether the assigned task can be executed in less time with assistance from one or more additional devices; determining one or more available devices that can assist in executing the assigned task by executing at least one of the plurality of subtasks, wherein the one or more available devices include a device that is idle and that is configured to execute at least one of the plurality of subtasks; ranking devices from the one or more available devices based on an amount of usage over time of the one or more available devices; selecting a second device from among the one or more available devices based on the ranking of the one or more available devices; determining a first subtask from the plurality of subtasks for the second device to execute based on capabilities of the second device; sending to the second device instructions to execute the determined first subtask; storing the information associated with the assigned task of the first device; determining a pattern of assigned tasks based on the stored information and previously stored information associated with previously assigned tasks of a pool of devices; and determining a task prediction based on the pattern of assigned tasks, the task prediction estimating a future task and a future time at which the future task is to be executed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer readable memory having stored thereon instructions executable by a computing device to cause the computing device to execute functions comprising:
-
receiving from a first device information associated with an assigned task of the first device, wherein the assigned task involves an interaction with an environment and comprises a plurality of subtasks; determining whether the assigned task can be executed in less time with assistance from one or more additional devices; determining one or more available devices that can assist in executing the assigned task by executing at least one of the plurality of subtasks, wherein the one or more available devices include a device that is idle and that is configured to execute at least one of the plurality of subtasks; ranking devices from the one or more available devices based on an amount of usage over time of the one or more available devices; selecting a second device from among the one or more available devices based on the ranking of the one or more available devices; determining a first subtask from the plurality of subtasks for the second device to execute based on capabilities of the second device; and sending to the second device instructions to execute the determined first subtask; storing the information associated with the assigned task of the first device; determining a pattern of assigned tasks based on the stored information and previously stored information associated with previously assigned tasks of a pool of devices; and determining a task prediction based on the pattern of assigned tasks, the task prediction estimating a future task and a future time at which the future task is to be executed. - View Dependent Claims (18)
-
-
19. A device comprising:
-
a processor; and memory including instructions stored therein executable by the processor to perform functions comprising; receiving from a first device information associated with an assigned task of the first device, wherein the assigned task involves an interaction with an environment and comprises a plurality of subtasks; determining whether the assigned task can be executed in less time with assistance from one or more additional devices; determining one or more available devices that can assist in executing the assigned task by executing at least one of the plurality of subtasks, wherein the one or more available devices include a device that is idle and that is configured to execute at least one of the plurality of subtasks; ranking devices from the one or more available devices based on an amount of usage over time of the one or more available devices; selecting a second device from among the one or more available devices based on the ranking of the one or more available devices; determining a first subtask from the plurality of subtasks for the second device to execute based on capabilities of the second device; sending to the second device instructions to execute the determined first subtask; storing the information associated with the assigned task of the first device; determining a pattern of assigned tasks based on the stored information and previously stored information associated with previously assigned tasks of a pool of devices; and determining a task prediction based on the pattern of assigned tasks, the task prediction estimating a future task and a future time at which the future task is to be executed. - View Dependent Claims (20)
-
-
21. A system comprising:
-
a first device; and a second device configured to; receive from the first device information associated with an assigned task of the first device, wherein the assigned task involves an interaction with an environment and comprises a plurality of subtasks; determine whether the assigned task can be executed in less time with assistance from one or more additional devices; determine one or more available devices that can assist in executing the assigned task by executing at least one of the plurality of subtasks, wherein the one or more available devices include a device that is idle and that is configured to execute at least one of the plurality of subtasks; rank devices from the one or more available devices based on an amount of usage over time of the one or more available devices; select a third device from among the one or more available devices based on the ranking of the one or more available devices; determine a first subtask from the plurality of subtasks for the third device to execute based on capabilities of the third device; cause the first device to send to the third device instructions to execute the determined first subtask; storing the information associated with the assigned task of the first device; determining a pattern of assigned tasks based on the stored information and previously stored information associated with previously assigned tasks of a pool of devices; and determining a task prediction based on the pattern of assigned tasks, the task prediction estimating a future task and a future time at which the future task is to be executed. - View Dependent Claims (22)
-
Specification