IP Library Granted Patent US 9,802,309
Granted Patent B2
US 9,802,309 · App. 14/804,621 · Granted Oct 31, 2017

Methods and systems for generating instructions for a robotic system to carry out a task

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,802,309
App. No.
14/804,621
Granted
Oct 31, 2017
Kind
B2
Abstract

Example embodiments may relate to robot-cloud interaction. In particular, a cloud-based service may receive a query from a first robotic system including sensor data, a request for instructions to carry out a task, and information associated with a configuration of the first robotic system. The cloud-based service may then identify stored data including a procedure previously used by a second robotic system to carry out the task and information associated with a configuration of the second robotic system. The cloud-based service may then generate instructions for the first robotic system to carry out the task based at least in part on the sensor data, the procedure used by the second robotic system to carry out the task, the information associated with the configuration of the first robotic system, and the information associated with the configuration of the second robotic system.

Claims (60)

1. A method comprising:

receiving a query from a first robotic system having one or more sensors, wherein the query comprises sensor data obtained from the one or more sensors, a request for instructions to carry out a task, and information associated with a configuration of the first robotic system;

identifying stored data comprising a procedure previously used by a second robotic system to carry out the task or a similar task and information associated with a configuration of the second robotic system;

generating, by one or more processors, instructions for the first robotic system to carry out the task based at least in part on the sensor data, the procedure used by the second robotic system to carry out the task or the similar task, the information associated with the configuration of the first robotic system, and the information associated with the configuration of the second robotic system;

executing a simulation based on the generated instructions;

obtaining results of the simulation and responsively determining a confidence measure, based on the results, related to a measure that the generated instructions allow for successful performance of the task; and

generating, by the one or more processors, updated instructions to carry out the task, by the first robotic system, based on the confidence measure being below a threshold.

2. The method of claim 1 , further comprising:

determining that the confidence measure is above the threshold; and

in response to determining that the confidence measure is above the threshold, sending, to the first robotic system, a confirmation message indicating that the generated instructions allow for successful performance of the task.

3. The method of claim 1 , further comprising:

determining that the confidence measure is below the threshold; and

in response to determining that the confidence measure is below the threshold, conducting an iterative procedure until the confidence measure is above the threshold, wherein iterations of the iterative procedure comprise:

executing a subsequent simulation based on the generated updated instructions.

4. The method of claim 3 , wherein iterations of the iterative procedure further comprise:

obtaining results of the subsequent simulation and responsively determining a subsequent confidence measure, based on the results, related to a measure that the generated updated instructions allow for successful performance of the task; and

generating subsequent updated instructions to carry out the task based on the subsequent confidence measure being below the threshold.

5. The method of claim 1 , wherein the one or more sensors comprise one or more of:

a camera, a depth sensor, a motion detector, and a range sensor.

6. The method of claim 1 , wherein the configuration of the first robotic system is the same as the configuration of the second robotic system.

7. The method of claim 1 , wherein the configuration of the first robotic system is different than the configuration of the second robotic system.

8. The method of claim 7 , wherein the configuration of the first robotic system comprises a first set of end effectors, wherein the configuration of the second robotic system comprises a second set of end effectors, and wherein the first set of end effectors is at least partially different than the second set of end effectors.

9. The method of claim 8 , further comprising:

determining a difference between the first set of end effectors and the second set of end effectors, wherein generating the instructions for the first robotic system to carry out the task is further based at least in part on the determined difference.

10. The method of claim 7 , wherein the configuration of the first robotic system comprises a first set of sensors, wherein the configuration of the second robotic system comprises a second set of end sensors, and wherein the first set of sensors is at least partially different than the second set of sensors, the method further comprising:

determining a difference between the first set of sensors and the second set of sensors, wherein generating the instructions for the first robotic system to carry out the task is further based at least in part on the determined difference.

11. The method of claim 7 , wherein the configuration of the first robotic system results in a first set of movement capabilities, wherein the configuration of the second robotic system results in a second set of movement capabilities, and wherein the first set of movement capabilities is at least partially different than the second set of movement capabilities, the method further comprising:

determining a difference between the first set of movement capabilities and the second set of movement capabilities, wherein generating the instructions for the first robotic system to carry out the task is further based at least in part on the determined difference.

12. A non-transitory computer readable medium having stored therein instructions executable by one or more processors to cause a computing system to perform functions comprising:

receiving a query from a first robotic device having a plurality of sensors, wherein the query comprises sensor data obtained from the plurality of sensors, a request for instructions to carry out a task, and information associated with a configuration of the first robotic device;

identifying stored data comprising a procedure previously used by a second robotic device to carry out the task or a similar task and information associated with a configuration of the second robotic device;

generating instructions for the first robotic device to carry out the task based at least in part on the sensor data, the procedure used by the second robotic device to carry out the task or the similar task, the information associated with the configuration of the first robotic device, and the information associated with the configuration of the second robotic device;

execute a simulation based on the generated instructions;

obtaining results of the simulation and responsively determining a confidence measure, based on the results, related to a measure that the generated instructions allow for successful performance of the task; and

generating updated instructions to carry out the task, by the first robotic device, based on the confidence measure being below a threshold.

13. The non-transitory computer readable medium of claim 12 , wherein the first robotic device comprises an on-board computing device configured to execute the simulation, wherein the on-board computing device is further configured for communication with the computing system via one or more communication networks, and wherein executing the simulation comprises sending, to the first robotic device, the generated instructions and a command to execute the simulation prior to carrying out the task.

14. The non-transitory computer readable medium of claim 12 , the functions further comprising:

determining that the confidence measure is above the threshold;

in response to determining that the confidence measure is above the threshold, sending, to the first robotic device, a confirmation message indicating that the generated instructions allow for successful performance of the task and a request for a report, after carrying out the task, related to performance of the task; and

receiving the report from the first robotic device.

15. The non-transitory computer readable medium of claim 14 , the functions further comprising:

determining that the report indicates successful performance of the task; and

in response to determining that the report indicates successful performance of the task, storing, in a database associated with the computing system, the report and the generated instructions.

16. The non-transitory computer readable medium of claim 15 , wherein the first robotic device comprises memory storage, the functions further comprising:

in response to determining that the report indicates successful performance of the task, sending, to the first robotic device, an indication to store the generated instructions at the memory storage.

17. The non-transitory computer readable medium of claim 14 , the functions further comprising:

determining that the report indicates unsuccessful performance of the task; and

in response to determining that the report indicates unsuccessful performance of the task, generating second updated instructions to carry out the task based on the report.

18. A method comprising:

receiving a query from a first robotic system having one or more sensors, wherein the query comprises sensor data obtained from the one or more sensors, a request for instructions to carry out an environment interaction, and information associated with a configuration of the first robotic system;

identifying stored data comprising a procedure previously used by a second robotic system to carry out the environment interaction and information associated with a configuration of the second robotic system;

generating instructions for the first robotic system to carry out the environment interaction based at least in part on the sensor data, the procedure used by the second robotic system to carry out the environment interaction, the information associated with the configuration of the first robotic system, and the information associated with the configuration of the second robotic system;

conducting an iterative procedure until a confidence measure is above a threshold, wherein the confidence measure is related to a measure that the generated instructions allow for successful performance of the environment interaction, and wherein iterations of the iterative procedure comprise:

executing a simulation based on the generated instructions;

obtaining results of the simulation and responsively determining the confidence measure based on the results; and

updating the generated instructions to carry out the environment interaction, by the first robotic system, based on the confidence measure being below the threshold.

19. The method of claim 18 , wherein the environment interaction comprises an interaction with an object, and wherein the request for instructions comprises one or more of: a request for object recognition, a request for a 3D model of the object, and a request for strategies to grasp the object.

20. The method of claim 19 , wherein the sensor data comprises data related to one or more characteristics of the object.

21. The method of claim 18 , wherein the environment interaction comprises a robot-to-human interaction, and wherein the request for instructions comprises a request for etiquette tips.

22. The method of claim 18 , wherein the sensor data comprises image data, and wherein the request for instructions comprises a request for Optical Character Recognition (OCR) over the image data.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: GOOGLE LLC
To: GDM HOLDING LLC
Reel/Frame 071109/0342 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE REMOVAL OF THE INCORRECTLY RECORDED APPLICATION NUMBERS 14/149802 AND 15/419313 PREVIOUSLY RECORDED AT REEL: 44144 FRAME: 1. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Mar 4, 2024
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 068092/0502 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2023
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 064658/0001 →
CHANGE OF NAME Recorded Oct 6, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044144/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2016
From: GOOGLE INC.
To: X DEVELOPMENT LLC
Reel/Frame 039900/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2015
From: KUFFNER, JAMES JOSEPH; RUSSELL, JARED STEPHEN
To: GOOGLE INC.
Reel/Frame 036142/0870 →