IP Library Granted Patent US 10,207,407
Granted Patent B1
US 10,207,407 · App. 15/805,704 · Granted Feb 19, 2019

Robotic operation libraries

Inventor: James Joseph Kuffner (Mountain View, CA)
Assignee: X Development LLC
B25J9/1671Y10S901/31Y10S901/50
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 10,207,407
App. No.
15/805,704
Granted
Feb 19, 2019
Kind
B1
Abstract

Example implementations relate to robotic operations libraries. An example library may include sets of operation instructions and other information for robotic devices to use to complete desired tasks. For instance, a respective set of operation instructions is determined based on successive simulations in which a virtual robotic device comprising an adjustable configuration initially based on the given configuration of a robotic device performs operations related to a task in an adjustable virtual environment until one or more simulations result in the virtual robotic device performing respective operations that complete the task at a success level that satisfies a predefined threshold. The library may provide a set of instructions for performing operations to a robotic device based on a query received from the robotic device that includes information indicative of a configuration and an environment of the robotic device.

Claims (61)

1. A method comprising:

receiving, at a computing system associated with a library having sets of instructions for robotic devices with various configurations to perform operations in various environments, a query from a first robotic device requesting instructions for performing operations related to a first task, wherein the query includes information indicative of an environment of the first robotic device and a configuration of the first robotic device;

based on the information indicative of the environment of the first robotic device and the configuration of the first robotic device, using the library to generate a first set of instructions to cause the first robotic device to perform the operations related to the first task; and

providing, by the computing system, the first set of instructions to the first robotic device to cause the first robotic device to perform the operations related to the first task.

2. The method of claim 1 , wherein using the library to generate the first set of instructions to cause the first robotic device to perform the operations related to the first task comprises:

performing a set of successive simulations in which a virtual robotic device comprising an adjustable configuration initially based on the configuration of the first robotic device performs a plurality of operations related to the first task in an adjustable virtual environment until one or more simulations of the set of successive simulations results in the virtual robotic device performing respective operations that complete the first task at a success level that satisfies a predefined threshold; and

based on the set of successive simulations, generating the first set of instructions to cause the first robotic device to perform the operations related to the first task.

3. The method of claim 2 , wherein consecutive simulations in the set of successive simulations in which the virtual robotic device comprising the adjustable configuration initially based on the configuration of the first robotic device performs the plurality of operations related to the first task in the adjustable virtual environment comprises:

one or more adjustments to the adjustable configuration, the plurality of operations related to the first task, or the adjustable virtual environment.

4. The method of claim 2 , wherein the predefined threshold is a predefined range of percentages for successful completion of the first task.

5. The method of claim 1 , further comprising:

receiving results associated with the first robotic device performing the operations related to the first task based on the first set of instructions; and

adjusting one or more sets of instructions of the library based on the results.

6. The method of claim 5 , wherein adjusting the one or more sets of instructions of the library based on the results comprises:

adjusting the first set of instructions based on the results; and

storing the adjusted first set of instructions in the library.

7. The method of claim 1 , wherein the library operates in a cloud network.

8. A system comprising:

a library having sets of instructions for robotic devices with various configurations to perform operations in various environments;

at least one processor; and

a memory having stored thereon executable instructions that, upon execution by the at least one processor, cause the system to perform functions comprising:

receiving a query from a first robotic device requesting instructions for performing operations related to a first task, wherein the query includes information indicative of an environment of the first robotic device and a configuration of the first robotic device;

based on the information indicative of the environment of the first robotic device and the configuration of the first robotic device, using the library to generate a first set of instructions to cause the first robotic device to perform the operations related to the first task; and

providing the first set of instructions to the first robotic device to cause the first robotic device to perform the operations related to the first task.

9. The system of claim 8 , further comprising:

receiving a second query from a second robotic device requesting instructions for performing operations related to a second task, wherein the second query includes information indicative of an environment of the second robotic device and a configuration of the second robotic device, and wherein the second task is similar to the first task and the configuration of the second robotic device is similar to the configuration of the first robotic device;

determining whether the first set of instructions for performing the operations related to the first task enables the second robotic device to complete the second task; and

based on determining that the first set of instructions enables the second robotic device to complete the second task, providing the first set of instructions to the second robotic device.

10. The system of claim 8 , further comprising:

receiving a second query from a second robotic device requesting instructions for performing operations related to a second task, wherein the second query includes information indicative of an environment of the second robotic device and a configuration of the second robotic device, and wherein the second task is similar to the first task and the configuration of the second robotic device differs from the configuration of the first robotic device;

determining whether the first set of instructions for performing the operations related to the first task enables the second robotic device to complete the second task;

based on determining that the first set of instructions fails to enable the second robotic device to complete the second task, using the library to generate a second set of instructions to cause the second robotic device to perform the operations related to the second task; and

providing the second set of instructions to the second robotic device to cause the second robotic device to perform the operations related to the second task.

11. The system of claim 10 , further comprising:

receiving results associated with the second robotic device performing the operations related to the second task based on the second set of instructions;

adjusting the second set of instructions based on the results; and

storing the adjusted second set of instructions at the library.

12. The system of claim 10 , wherein determining whether the first set of instructions for performing operations related to the first task enables the second robotic device to complete the second task comprises:

performing a given simulation in which the virtual robotic device executes respective operations of the first set of instruction related to the second task, wherein the adjustable configuration of the virtual robotic device corresponds to the configuration of the second robotic device; and

based on results of the given simulation, determining whether the first set of instructions enables the second robotic device complete the second task.

13. The system of claim 8 , wherein providing the first set of instructions to the first robotic device to cause the first robotic device to perform the operations related to the first task includes:

providing respective simulations used to generate the first set of instructions along with the first set of instructions to the first robotic device.

14. The system of claim 8 , further comprising:

based on the information indicative of the environment of the first robotic device and the configuration of the first robotic device, using the library to generate an additional set of instructions to cause the first robotic device to perform the operations related to the first task; and

wherein providing the first set of instructions to the first robotic device to cause the first robotic device to perform the operations related to the first task further comprises:

providing the additional set of instructions along with the first set of instructions to the first robotic device.

15. A non-transitory computer-readable medium configured to store instructions, that when executed by one or more processors, cause a computing system to perform functions comprising:

receiving a query from a first robotic device requesting instructions for performing operations related to a first task, wherein the query includes information indicative of an environment of the first robotic device and a configuration of the first robotic device;

based on the information indicative of the environment of the first robotic device and the configuration of the first robotic device, using a library to generate a first set of instructions to cause the first robotic device to perform the operations related to the first task, wherein the library comprises sets of instructions for robotic devices with various configurations to perform operations in various environments; and

providing, by the computing system, the first set of instructions to the first robotic device to cause the first robotic device to perform the operations related to the first task.

16. The non-transitory computer-readable medium of claim 15 , wherein using the library to generate the first set of instructions to cause the first robotic device to perform the operations related to the first task comprises:

performing a set of successive simulations in which a virtual robotic device comprising an adjustable configuration initially based on the configuration of the first robotic device performs a plurality of operations related to the first task in an adjustable virtual environment until one or more simulations of the set of successive simulations results in the virtual robotic device performing respective operations that complete the first task at a success level that satisfies a predefined threshold; and

based on the set of successive simulations, generating the first set of instructions to cause the first robotic device to perform the operations related to the first task.

17. The non-transitory computer-readable medium of claim 16 , wherein consecutive simulations in the set of successive simulations in which the virtual robotic device comprising the adjustable configuration initially based on the configuration of the first robotic device performs the plurality of operations related to the first task in the adjustable virtual environment comprises:

one or more adjustments to the adjustable configuration, the plurality of operations related to the task, or the adjustable virtual environment.

18. The non-transitory computer-readable medium of claim 16 , wherein the predefined threshold is a predefined range of percentages for successful completion of the first task.

19. The non-transitory computer-readable medium of claim 15 , further comprising:

receiving results associated with the first robotic device performing the operations related to the first task based on the first set of instructions;

adjusting the first set of instructions based on the results; and

storing the adjusted first set of instructions at the library.

20. The non-transitory computer-readable medium of claim 15 , wherein the library operates in a cloud network.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: GOOGLE LLC
To: GDM HOLDING LLC
Reel/Frame 071109/0342 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2023
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 064658/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2017
From: GOOGLE INC.
To: X DEVELOPMENT LLC
Reel/Frame 044392/0837 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2017
From: KUFFNER, JAMES JOSEPH
To: GOOGLE INC.
Reel/Frame 044055/0473 →
Continuity (2)
Continuation 14834191 · Aug 24, 2015
Provisional Application 62041393 · Aug 25, 2014
Cited By (2)
US 12,669,800 US 12,715,117