IP Library Granted Patent US 10,730,181
Granted Patent B1
US 10,730,181 · App. 15/855,393 · Granted Aug 4, 2020

Enhancing robot learning

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,730,181
App. No.
15/855,393
Granted
Aug 4, 2020
Kind
B1
Abstract

Methods, systems, and apparatus, including computer-readable media storing executable instructions, for enhancing robot learning. In some implementations, a robot stores first embeddings generated using a first machine learning model, and the first embeddings include one or more first private embeddings that are not shared with other robots. The robot receives a second machine learning model from a server system over a communication network. The robot generates a second private embedding for each of the one or more first private embeddings using the second machine learning model. The robot adds the second private embeddings to the cache of the robot and removes the one or more first private embeddings from the cache of the robot.

Claims (69)

1. A method comprising:

storing, by a robot, first embeddings generated using a first machine learning model, wherein the robot stores the first embeddings in a cache of the robot, wherein the first embeddings include one or more first private embeddings that are not shared with other robots;

receiving, by the robot, a second machine learning model from a server system over a communication network;

generating, by the robot, a second private embedding for each of the one or more first private embeddings in the cache, wherein each of the second private embeddings is generated using the second machine learning model;

adding, by the robot, the second private embeddings to the cache of the robot; and

removing, by the robot, the one or more first private embeddings from the cache of the robot.

2. The method of claim 1 , wherein the first embeddings include one or more public embeddings that are shared with a server system; and

wherein the method further comprises:

determining that a particular embedding is a public embedding; and

after receiving the second machine learning model, removing the particular embedding from the cache of the robot based on determining that the particular embedding is a public embedding.

3. The method of claim 1 , further comprising storing, by the robot, sensor data used to generate the one or more first private embeddings;

wherein generating the second private embedding for each of the one or more first private embeddings in the cache comprises generating, using the second machine learning model, each of the second private embeddings from the stored sensor data used to generate the one or more first private embeddings; and

wherein the method further comprises storing the second private embeddings in the cache of the robot.

4. The method of claim 3 , wherein generating the second private embeddings from the stored sensor data comprises generating a second private embedding for an object by inputting, to the second machine learning model, feature values derived from the sensor data used to generate the first private embedding for the object.

5. The method of claim 1 , further comprising:

accessing, by the robot, metadata associated with a particular embedding of the first embeddings; and

determining that the particular embedding is a private embedding that is not shared with the server system by analyzing the metadata associated with the particular embedding using one or more sharing rules that are stored by the robot.

6. The method of claim 1 , wherein the first embeddings include one or more first public embeddings in addition to the one or more first private embeddings, and

the method further comprises providing, by the robot, the one or more first public embeddings to the server system and not providing the one or more first private embeddings to the server system.

7. The method of claim 6 , further comprising determining, for each of the first embeddings, whether to store sensor data used to generate the first embedding, wherein the determination whether to store sensor data used to generate a first embedding is based on whether the first embedding is private or public;

based on the determining, storing, by the robot, sensor data for each of the one or more first private embeddings, and not storing sensor data for the one or more first public embeddings.

8. The method of claim 1 , wherein the first embeddings generated by a first machine learning model include one or more received embeddings that were received by the robot from the server system over a communication network, and

the method further comprises:

determining that a particular embedding of the first embeddings is one of the received embeddings; and

after receiving the second machine learning model, removing the particular embedding from the cache based on determining that the particular embedding is one of the received embeddings.

9. The method of claim 1 , wherein the cache is a local cache stored on a data storage device of the robot.

10. The method of claim 1 , wherein the first machine learning model is a first neural network model, and wherein the second machine learning model is a second neural network model.

11. The method of claim 1 , further comprising:

obtaining, by the robot, sensor data describing an object;

generating, by the robot, an embedding for the object based on the sensor data;

determining, by the robot, whether to designate the embedding as a private embedding or a public embedding; and

storing, by the robot, the embedding and data designating whether the embedding is a private embedding or a public embedding.

12. The method of claim 11 , wherein determining whether to designate the embedding as a private embedding or a public embedding comprises:

determining a location of the object or the robot;

determining that the location is within a predetermined area for which information is not shared; and

based on determining that the location is within the predetermined area, designating the embedding as a private embedding.

13. The method of claim 11 , wherein determining whether to designate the embedding as a private embedding or a public embedding comprises:

determining an object type for the object observed by the robot;

determining that the object type is one of a predetermined set of object types; and

determining whether to designate the embedding as a private embedding or a public embedding based on determining that the object type is one of the predetermined set of object types.

14. The method of claim 11 , wherein determining whether to designate the embedding as a private embedding or a public embedding comprises:

accessing a sharing rule indicating one or more restrictions on sharing of information obtained by the robot, wherein the one or more restrictions limit sharing of information (i) observed by the robot at a time or place, or (ii) describing objects having an object type or object characteristic;

determining, based on the sensor data for the object, that the sharing rules restrict sharing of information for the object described by the sensor data; and

based on determining that the sharing rules restrict sharing of information for the object, designating the embedding for the object as a private embedding.

15. The method of claim 11 , further comprising receiving user input indicating one or more criteria comprising a time, place, object type, or object characteristic for which sharing of information is restricted; and

storing a sharing rule that designates embeddings for objects meeting the one or more criteria as private embeddings;

wherein determining whether to designate the embedding as a private embedding or a public embedding comprises determining whether the embedding satisfies the one or more criteria.

16. A robot comprising:

one or more processors; and

one or more machine-readable storage devices storing instructions that, when executed by the one or more processors, cause the robot to perform operations comprising:

storing, by the robot, first embeddings generated using a first machine learning model, wherein the robot stores the first embeddings in a cache of the robot, wherein the first embeddings include one or more first private embeddings that are not shared with other robots;

receiving, by the robot, a second machine learning model from a server system over a communication network;

generating, by the robot, a second private embedding for each of the one or more first private embeddings in the cache, wherein each of the second private embeddings is generated using the second machine learning model;

adding, by the robot, the second private embeddings to the cache of the robot; and

removing, by the robot, the one or more first private embeddings from the cache of the robot.

17. The robot of claim 16 , wherein the first embeddings include one or more public embeddings that are shared with a server system; and

wherein the operations further comprise:

determining that a particular embedding is a public embedding; and

after receiving the second machine learning model, removing the particular embedding from the cache of the robot based on determining that the particular embedding is a public embedding.

18. The robot of claim 16 , wherein the operations further comprise storing, by the robot, sensor data used to generate the one or more first private embeddings;

wherein generating the second private embedding for each of the one or more first private embeddings in the cache comprises generating, using the second machine learning model, each of the second private embeddings from the stored sensor data used to generate the one or more first private embeddings; and

wherein the operations further comprise storing the second private embeddings in the cache of the robot.

19. The robot of claim 18 , wherein generating the second private embeddings from the stored sensor data comprises generating a second private embedding for an object by inputting, to the second machine learning model, feature values derived from the sensor data used to generate the first private embedding for the object.

20. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause a robot to perform operations comprising:

storing, by the robot, first embeddings generated using a first machine learning model, wherein the robot stores the first embeddings in a cache of the robot, wherein the first embeddings include one or more first private embeddings that are not shared with other robots;

receiving, by the robot, a second machine learning model from a server system over a communication network;

generating, by the robot, a second private embedding for each of the one or more first private embeddings in the cache, wherein each of the second private embeddings is generated using the second machine learning model;

adding, by the robot, the second private embeddings to the cache of the robot; and

removing, by the robot, the one or more first private embeddings from the cache of the robot.

Assignments (3)
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 Jan 25, 2018
From: RAJKUMAR, NARESHKUMAR; LEGER, PATRICK; GUPTA, ABHINAV
To: X DEVELOPMENT LLC
Reel/Frame 044725/0080 →