Controlling distributed device operations
First Claim
1. A computer-implemented method comprising:
- receiving, by one or more computing systems of a centralized server system that manages operations of a plurality of controller devices in multiple geographical locations, information about the plurality of controller devices that includes workload information indicating current loads of the plurality of controller devices, wherein each controller device controls an associated mechanical system and has capabilities to receive and implement instructions to perform multiple types of actions to modify operations of the associated mechanical system;
receiving, by the one or more computing systems, a request to perform a specified task that involves manipulating an environment in one of the multiple geographical locations, the specified task having a specified priority and a specified time for completion;
selecting, by the one or more computing systems, and in response to the received request, a group of devices to implement a specified type of operation associated with performing the specified task, wherein the group of devices includes multiple controller devices of the plurality, and wherein the selecting is based at least in part on the current loads of the multiple controller devices enabling the multiple controller devices to complete the specified type of operation by the specified time for completion at the specified priority;
sending, by the one or more computing systems and to each of the multiple controller devices, first instructions over one or more computer networks to control the mechanical system associated with the controller device to perform the specified type of operation;
evaluating, by the one or more computing systems, performance of each of the multiple controller devices for the specified type of operation, including scoring the performance of each controller device according to one or more specified criteria;
determining, by the one or more computing systems, one or more of the multiple controller devices to be primary devices for performing future operations of the specified type based at least in part on the evaluated performance of the one or more controller devices; and
in response to a subsequent request to perform the specified type of operation, sending, by the one or more computing systems and to each of the primary devices, additional instructions to perform the specified type of operation to control the mechanical system associated with the primary device, wherein the sending of the additional instructions is performed without sending the second instructions to other controller devices of the multiple controller devices that are not the primary devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for controlling distributed operations of devices, such as for devices that are each part of or otherwise associated with a mechanical system containing actuators to manipulate a surrounding environment and optionally further containing sensors to obtain information from the surrounding environment, and with such a device controlling the associated system to perform industrial operations. The described techniques may include identifying a group of multiple such devices to perform one or more assigned tasks, such as in a cooperative distributed manner with each device performing part of the assigned tasks, and/or in a competitive manner with some or all devices independently performing at least one assigned task. The performances of the devices may further be evaluated in various manners, and the devices selected to perform one or more tasks may be identified in various manners (including based at least in part on past performance evaluations).
70 Citations
30 Claims
-
1. A computer-implemented method comprising:
-
receiving, by one or more computing systems of a centralized server system that manages operations of a plurality of controller devices in multiple geographical locations, information about the plurality of controller devices that includes workload information indicating current loads of the plurality of controller devices, wherein each controller device controls an associated mechanical system and has capabilities to receive and implement instructions to perform multiple types of actions to modify operations of the associated mechanical system; receiving, by the one or more computing systems, a request to perform a specified task that involves manipulating an environment in one of the multiple geographical locations, the specified task having a specified priority and a specified time for completion; selecting, by the one or more computing systems, and in response to the received request, a group of devices to implement a specified type of operation associated with performing the specified task, wherein the group of devices includes multiple controller devices of the plurality, and wherein the selecting is based at least in part on the current loads of the multiple controller devices enabling the multiple controller devices to complete the specified type of operation by the specified time for completion at the specified priority; sending, by the one or more computing systems and to each of the multiple controller devices, first instructions over one or more computer networks to control the mechanical system associated with the controller device to perform the specified type of operation; evaluating, by the one or more computing systems, performance of each of the multiple controller devices for the specified type of operation, including scoring the performance of each controller device according to one or more specified criteria; determining, by the one or more computing systems, one or more of the multiple controller devices to be primary devices for performing future operations of the specified type based at least in part on the evaluated performance of the one or more controller devices; and in response to a subsequent request to perform the specified type of operation, sending, by the one or more computing systems and to each of the primary devices, additional instructions to perform the specified type of operation to control the mechanical system associated with the primary device, wherein the sending of the additional instructions is performed without sending the second instructions to other controller devices of the multiple controller devices that are not the primary devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A non-transitory computer-readable medium having stored contents that cause one or more computing systems of a centralized server system, which manages operations of a plurality of controller devices in multiple geographical locations, to perform automated operations including at least:
-
receiving, by the one or more computing systems, information about the plurality of controller devices that includes workload information indicating current loads of the plurality of controller devices, wherein each controller device controls an associated mechanical system and has capabilities to receive and implement instructions to perform multiple types of actions to modify operations of the associated mechanical system; receiving, by the one or more computing systems, a request to perform a specified task that involves manipulating an environment in one of the multiple geographical locations with a specified priority and by a specified time for completion; selecting, by the one or more computing systems, and in response to the received request, a group of devices to implement a specified type of operation associated with performing the specified task, wherein the group of devices includes multiple controller devices of the plurality, and wherein the selecting is based at least in part on the current loads of the multiple controller devices enabling the multiple controller devices to complete the specified type of operation by the specified time for completion and for the specified priority; sending, by the one or more computing systems and to each of the multiple controller devices, first instructions over one or more computer networks to control the mechanical system associated with the controller device to perform the specified type of operation; evaluating, by the one or more computing systems, performance of each of the multiple controller devices for the specified type of operation, including scoring the performance of each controller device according to one or more specified criteria; determining, by the one or more computing systems, one or more of the multiple controller devices to be primary devices for performing future operations of the specified type based at least in part on the evaluated performance of the one or more controller devices; and in response to a subsequent request to perform the specified type of operation, sending, by the one or more computing systems and to each of the primary devices, additional instructions to perform the specified type of operation to control the mechanical system associated with the primary device, wherein the sending of the additional instructions is performed without sending the second instructions to other controller devices of the multiple controller devices that are not the primary devices.
-
-
30. A system comprising:
-
one or more hardware processors of one or more computing systems that are part of a centralized server system managing operations of a plurality of controller devices in multiple geographical locations; and one or more memories with stored instructions that, when executed by at least one of the one or more hardware processors, cause the system to perform automated operations including at least; receiving information about the plurality of controller devices that includes workload information indicating current loads of the plurality of controller devices, wherein each controller device controls an associated mechanical system and has capabilities to receive and implement instructions to perform multiple types of actions to modify operations of the associated mechanical system; receiving a request to perform a specified task that involves manipulating an environment in one of the multiple geographical locations with a specified priority and by a specified time for completion; selecting, in response to the received request, a group of devices to implement a specified type of operation associated with performing the specified task, wherein the group of devices includes multiple controller devices of the plurality, and wherein the selecting is based at least in part on the current loads of the multiple controller devices enabling the multiple controller devices to complete the specified type of operation by the specified time for completion and for the specified priority; sending, to each of the multiple controller devices, first instructions over one or more computer networks to control the mechanical system associated with the controller device to perform the specified type of operation; evaluating performance of each of the multiple controller devices for the specified type of operation, including scoring the performance of each controller device according to one or more specified criteria; determining one or more of the multiple controller devices to be primary devices for performing future operations of the specified type based at least in part on the evaluated performance of the one or more controller devices; and in response to a subsequent request to perform the specified type of operation, sending, to each of the primary devices, additional instructions to perform the specified type of operation to control the mechanical system associated with the primary device, wherein the sending of the additional instructions is performed without sending the second instructions to other controller devices of the multiple controller devices that are not the primary devices.
-
Specification