Patent · US9486922B2 · B2 · US
Systems and methods for determining a status of a component of a device
- (11) Publication number
- US9486922B2
- (21) Application number
- 15/085,239
- (22) Filing date
- 2016-03-30
- (30) Priority date
- 2012-02-07
- (43) Publication date
- 2016-11-08
- (45) Date of grant
- 2016-11-08
- (51) IPC
- B25J 9/16; G05B 19/04; H04L 29/08
- (52) CPC
- B25J Manipulators; chambers provided with manipulation devices: 9/1692, 5/005, 9/1674
- B62D Motor vehicles; trailers: 55/075
- G05B Control or regulating systems in general; functional elements of such systems; monitoring or testing arrangements for such systems or elements: 2219/39413
- G06F Electric digital data processing: 9/5072
- H04L Transmission of digital information, e.g. telegraphic communication: 67/12
- (73) Assignee
- X Development LLC
- (72) Inventors
- James J. Kuffner, Jr.; Ryan Hickman
- (54) Title
- Systems and methods for determining a status of a component of a device
- (57) Abstract
Methods and systems for determining a status of a component of a device are provided. An example method includes triggering an action of a component of a device, and responsively receiving information associated with the action of the component from a sensor. The method further includes a computing system having a processor and a memory comparing the information with calibration data and determining a status of the component based on the comparison. In some examples, the calibration data may include information derived from data received from a pool of one or more devices utilizing same or similar components as the component. The determined status may include information associated with a performance of the component with respect to performances of same or similar components of the pool of devices. In one example, the device may self-calibrate the component based on the status.
- Full text
- View on Google Patents
Claims (20)
- A method comprising: initializing, by one or more computing devices, a robotic device; providing, by the one or more computing devices, instructions to cause an actuator of the robotic device to perform a predetermined movement upon initialization of the robotic device; responsively receiving, by the one or more computing devices, information associated with the predetermined movement of the actuator of the robotic device; comparing, by the one or more computing devices, the received information with calibration data comprising information derived from data received from a pool of one or more robotic devices utilizing same or similar actuators, wherein the data received from the pool comprises information associated with respective movements of respective actuators of the one or more robotic devices of the pool; and determining, by the one or more computing devices, a status of the actuator of the robotic device based on the comparison, wherein the status comprises information associated with a performance of the actuator.
- The method of claim 1, wherein the calibration data further comprises information responsively received and associated with the actuator of the robotic device in response to a previous movement of the actuator, and wherein comparing the information comprises performing a regression test.
- The method of claim 1, wherein the method is performed by the robotic device, and the method further comprises: querying a server for the calibration data; and receiving from the server the calibration data.
- The method of claim 1, wherein the pool of robotic devices includes anonymous robotic devices.
- The method of claim 4, wherein the information derived from data received from the pool of robotic devices utilizing same or similar actuators comprises real-time data from the pool of robotic devices, and the method further comprises: modifying the calibration data based on the real-time data from the pool of robotic devices.
- The method of claim 1, wherein the method is performed by a server.
- The method of claim 6, further comprising: storing the information associated with the actuator of the robotic device in a database in the server, wherein information associating an identity of the robotic device and the information associated with the actuator is secured within the server.
- The method of claim 1, further comprising: the robotic device calibrating the actuator based on the status of the actuator.
- The method of claim 8, wherein calibrating the actuator comprises modifying an offset of the actuator such that the information associated with the actuator is substantially consistent with a population mean, wherein the population mean is derived from the data received from the pool of robotic devices.
- The method of claim 8, wherein the method is performed on a continuous basis so as to calibrate the actuator based on changing conditions in an environment in which the robotic device resides.
- The method of claim 1, further comprising: providing a display of the status of the actuator, wherein the display comprises information associated with the pool of robotic devices.
- The method of claim 11, wherein the display comprises information associated with a percentile of the status of the actuator with respect to the information derived from the data received from the pool of robotic devices.
- The method of claim 1, further comprising: generating an alert configured to be provided to other entities based on the status, wherein the alert comprises the status.
- A non-transitory computer readable memory having stored therein instructions executable by one or more computing devices to cause the one or more computing devices to perform functions comprising: initializing a robotic device; providing instructions to cause an actuator of the robotic device to perform a predetermined movement upon initialization of the robotic device; responsively receiving information associated with the predetermined movement of the actuator of the robotic device; comparing the received information with calibration data comprising information derived from data received from a pool of one or more robotic devices utilizing same or similar actuators, wherein the data received from the pool comprises information associated with respective movements of respective actuators of the one or more robotic devices of the pool; and determining a status of the actuator of the robotic device based on the comparison, wherein the status comprises information associated with a performance of the actuator.
- The non-transitory computer readable memory of claim 14, wherein the information derived from data received from the pool of robotic devices utilizing same or similar actuators comprises real-time data from the pool of robotic devices, and further comprising instructions executable by the computing device to perform functions comprising: modifying the calibration data based on the real-time data from the pool of robotic devices.
- The non-transitory computer readable memory of claim 14, further comprising instructions executable by the computing device to perform functions comprising: generating an alert configured to be provided to other entities based on the status, wherein the alert comprises the status.
- The non-transitory computer readable memory of claim 14, wherein the calibration data further comprises information responsively received and associated with the actuator of the robotic device in response to a previous movement of the actuator, and wherein comparing the information comprises performing a regression test.
- A system comprising: a robotic device, configured to: receive via a network information associated with instructions for performing a movement of an actuator of the robotic device; and in response to performing the movement, transmit via the network information associated with the movement of the actuator received from a sensor; and a computing component comprising a processor and a memory coupled to the processor and capable of communicating with a pool of one or more robotic devices over the network, the computing component configured to: provide instructions to cause an actuator of the robotic device to perform a predetermined movement upon initialization of the robotic device; responsively receive information associated with the predetermined movement of the actuator of the robotic device from the sensor; compare the received information with calibration data comprising information derived from data received from a pool of one or more robotic devices utilizing same or similar actuators, wherein the data received from the pool comprises information associated with respective movements of respective actuators of the one or more robotic devices of the pool; and determine a status of the actuator of the robotic device based on the comparison, wherein the status comprises information associated with a performance of the actuator.
- The system of claim 18, wherein the computing component is further configured to: provide a display of the status of the actuator, wherein the display comprises information associated with the pool of robotic devices.
- The system of claim 18, wherein the display comprises information associated with a percentile of the status of the actuator with respect to the information derived from the data received from the pool of robotic devices.
Description
This disclosure relates to robot cloud computing, and in examples, to determining a status of a component of a robotic device in a robot-cloud interaction.
Cloud computing refers to provision of computational resources via a computer network. In a traditional model of computing, both data and software are fully contained on a user's computer. In cloud computing, however, the user's computer may contain relatively little software or data (perhaps a minimal operating system and web browser, for example), and may serve as a display terminal for processes occurring on a network of computers. A common shorthand provided for a cloud computing service (or even an aggregation of existing cloud services) is “the cloud”.
Cloud computing has been referred to as “client-server computing”, however, there may be distinctions between general cloud computing and client-server computing. For example, client-server computing may include a distributed application structure that partitions tasks or workloads between providers of a resource or service (e.g., servers), and service requesters (e.g., clients). Client-server computing generally involves a one-to-one relationship between the server and the client, whereas cloud computing includes generic services that can be accessed by generic clients (e.g., a one-to-one relationship or connection may not be required). Thus, cloud computing generally includes client-server computing, and additional services and functionality.
Citations (29)
- US20080256517A1
- US7600593B2
- US20100178982A1
- US8947522B1
- US8594845B1
- US9205886B1
- US8380652B1
- US8380349B1
- US8996429B1
- US8386078B1
- US8406926B1
- US8718822B1
- US8447863B1
- US8452451B1
- US8639644B1
- US8972055B1
- US8374421B1
- US8307061B1
- US8386079B1
- US8525853B1
- US8918208B1
- US8930022B1
- US8428777B1
- US9008839B1
- US9024771B1
- US9327404B2
- US8321364B1
- US8965104B1
- US8532820B1
Record as JSON
{
"publication_number": "US9486922B2",
"country": "US",
"kind": "B2",
"title": "Systems and methods for determining a status of a component of a device",
"abstract": "Methods and systems for determining a status of a component of a device are provided. An example method includes triggering an action of a component of a device, and responsively receiving information associated with the action of the component from a sensor. The method further includes a computing system having a processor and a memory comparing the information with calibration data and determining a status of the component based on the comparison. In some examples, the calibration data may include information derived from data received from a pool of one or more devices utilizing same or similar components as the component. The determined status may include information associated with a performance of the component with respect to performances of same or similar components of the pool of devices. In one example, the device may self-calibrate the component based on the status.",
"claims": [
"1. A method comprising: initializing, by one or more computing devices, a robotic device; providing, by the one or more computing devices, instructions to cause an actuator of the robotic device to perform a predetermined movement upon initialization of the robotic device; responsively receiving, by the one or more computing devices, information associated with the predetermined movement of the actuator of the robotic device; comparing, by the one or more computing devices, the received information with calibration data comprising information derived from data received from a pool of one or more robotic devices utilizing same or similar actuators, wherein the data received from the pool comprises information associated with respective movements of respective actuators of the one or more robotic devices of the pool; and determining, by the one or more computing devices, a status of the actuator of the robotic device based on the comparison, wherein the status comprises information associated with a performance of the actuator.",
"2. The method of claim 1, wherein the calibration data further comprises information responsively received and associated with the actuator of the robotic device in response to a previous movement of the actuator, and wherein comparing the information comprises performing a regression test.",
"3. The method of claim 1, wherein the method is performed by the robotic device, and the method further comprises: querying a server for the calibration data; and receiving from the server the calibration data.",
"4. The method of claim 1, wherein the pool of robotic devices includes anonymous robotic devices.",
"5. The method of claim 4, wherein the information derived from data received from the pool of robotic devices utilizing same or similar actuators comprises real-time data from the pool of robotic devices, and the method further comprises: modifying the calibration data based on the real-time data from the pool of robotic devices.",
"6. The method of claim 1, wherein the method is performed by a server.",
"7. The method of claim 6, further comprising: storing the information associated with the actuator of the robotic device in a database in the server, wherein information associating an identity of the robotic device and the information associated with the actuator is secured within the server.",
"8. The method of claim 1, further comprising: the robotic device calibrating the actuator based on the status of the actuator.",
"9. The method of claim 8, wherein calibrating the actuator comprises modifying an offset of the actuator such that the information associated with the actuator is substantially consistent with a population mean, wherein the population mean is derived from the data received from the pool of robotic devices.",
"10. The method of claim 8, wherein the method is performed on a continuous basis so as to calibrate the actuator based on changing conditions in an environment in which the robotic device resides.",
"11. The method of claim 1, further comprising: providing a display of the status of the actuator, wherein the display comprises information associated with the pool of robotic devices.",
"12. The method of claim 11, wherein the display comprises information associated with a percentile of the status of the actuator with respect to the information derived from the data received from the pool of robotic devices.",
"13. The method of claim 1, further comprising: generating an alert configured to be provided to other entities based on the status, wherein the alert comprises the status.",
"14. A non-transitory computer readable memory having stored therein instructions executable by one or more computing devices to cause the one or more computing devices to perform functions comprising: initializing a robotic device; providing instructions to cause an actuator of the robotic device to perform a predetermined movement upon initialization of the robotic device; responsively receiving information associated with the predetermined movement of the actuator of the robotic device; comparing the received information with calibration data comprising information derived from data received from a pool of one or more robotic devices utilizing same or similar actuators, wherein the data received from the pool comprises information associated with respective movements of respective actuators of the one or more robotic devices of the pool; and determining a status of the actuator of the robotic device based on the comparison, wherein the status comprises information associated with a performance of the actuator.",
"15. The non-transitory computer readable memory of claim 14, wherein the information derived from data received from the pool of robotic devices utilizing same or similar actuators comprises real-time data from the pool of robotic devices, and further comprising instructions executable by the computing device to perform functions comprising: modifying the calibration data based on the real-time data from the pool of robotic devices.",
"16. The non-transitory computer readable memory of claim 14, further comprising instructions executable by the computing device to perform functions comprising: generating an alert configured to be provided to other entities based on the status, wherein the alert comprises the status.",
"17. The non-transitory computer readable memory of claim 14, wherein the calibration data further comprises information responsively received and associated with the actuator of the robotic device in response to a previous movement of the actuator, and wherein comparing the information comprises performing a regression test.",
"18. A system comprising: a robotic device, configured to: receive via a network information associated with instructions for performing a movement of an actuator of the robotic device; and in response to performing the movement, transmit via the network information associated with the movement of the actuator received from a sensor; and a computing component comprising a processor and a memory coupled to the processor and capable of communicating with a pool of one or more robotic devices over the network, the computing component configured to: provide instructions to cause an actuator of the robotic device to perform a predetermined movement upon initialization of the robotic device; responsively receive information associated with the predetermined movement of the actuator of the robotic device from the sensor; compare the received information with calibration data comprising information derived from data received from a pool of one or more robotic devices utilizing same or similar actuators, wherein the data received from the pool comprises information associated with respective movements of respective actuators of the one or more robotic devices of the pool; and determine a status of the actuator of the robotic device based on the comparison, wherein the status comprises information associated with a performance of the actuator.",
"19. The system of claim 18, wherein the computing component is further configured to: provide a display of the status of the actuator, wherein the display comprises information associated with the pool of robotic devices.",
"20. The system of claim 18, wherein the display comprises information associated with a percentile of the status of the actuator with respect to the information derived from the data received from the pool of robotic devices."
],
"description_excerpt": "This disclosure relates to robot cloud computing, and in examples, to determining a status of a component of a robotic device in a robot-cloud interaction.\n\nCloud computing refers to provision of computational resources via a computer network. In a traditional model of computing, both data and software are fully contained on a user's computer. In cloud computing, however, the user's computer may contain relatively little software or data (perhaps a minimal operating system and web browser, for example), and may serve as a display terminal for processes occurring on a network of computers. A common shorthand provided for a cloud computing service (or even an aggregation of existing cloud services) is “the cloud”.\n\nCloud computing has been referred to as “client-server computing”, however, there may be distinctions between general cloud computing and client-server computing. For example, client-server computing may include a distributed application structure that partitions tasks or workloads between providers of a resource or service (e.g., servers), and service requesters (e.g., clients). Client-server computing generally involves a one-to-one relationship between the server and the client, whereas cloud computing includes generic services that can be accessed by generic clients (e.g., a one-to-one relationship or connection may not be required). Thus, cloud computing generally includes client-server computing, and additional services and functionality.",
"cpc": [
"B25J 9/1692",
"B25J 5/005",
"B25J 9/1674",
"B62D 55/075",
"G05B 2219/39413",
"G06F 9/5072",
"H04L 67/12"
],
"ipc": [
"B25J 9/16",
"G05B 19/04",
"H04L 29/08"
],
"assignees": [
"X Development LLC"
],
"inventors": [
"James J. Kuffner, Jr.",
"Ryan Hickman"
],
"filing_date": "2016-03-30",
"publication_date": "2016-11-08",
"grant_date": "2016-11-08",
"priority_date": "2012-02-07",
"application_number": "US-201615085239-A",
"family_id": "52117362",
"cited_by_count": 2,
"citations": [
"US20080256517A1",
"US7600593B2",
"US20100178982A1",
"US8947522B1",
"US8594845B1",
"US9205886B1",
"US8380652B1",
"US8380349B1",
"US8996429B1",
"US8386078B1",
"US8406926B1",
"US8718822B1",
"US8447863B1",
"US8452451B1",
"US8639644B1",
"US8972055B1",
"US8374421B1",
"US8307061B1",
"US8386079B1",
"US8525853B1",
"US8918208B1",
"US8930022B1",
"US8428777B1",
"US9008839B1",
"US9024771B1",
"US9327404B2",
"US8321364B1",
"US8965104B1",
"US8532820B1"
]
}
Record 4,492 of 8,000 in Patents full text (MLC-0201). Request the full dataset.