IP Library Granted Patent US 12,168,296
Granted Patent B1
US 12,168,296 · App. 17/463,870 · Granted Dec 17, 2024

Re-simulation of recorded episodes

Inventors: Matthew Bennice (San Jose, CA); Paul Bechard (San Jose, CA); Joséphine Simon (San Francisco, CA)
Assignee: GOOGLE LLC
B25J9/1605B25J9/163B25J9/1671
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 12,168,296
App. No.
17/463,870
Granted
Dec 17, 2024
Kind
B1
Abstract

Implementations are provided for generating a plurality of simulated training instances based on a recorded user-directed robot control episode, and training one or more robot control policies based on such training instances. In various implementations, a three-dimensional environment may be simulated and may include a robot controlled by an external robot controller. A user may operate the robot controller to control the robot in the simulated 3D environment to perform one or more robotic tasks. The user-directed robot control episode, including responses of the external robot controller and the simulated robot to user commands and/or the virtual environment, can be captured. Features of the captured user-directed robot control episode can be altered in order to generate a plurality of training instances. One or more robot control policies can then be trained based on the plurality of training instances.

Claims (43)

1. A method implemented using one or more processors, comprising:

simulating a three-dimensional (3D) environment, wherein the simulated 3D environment includes a simulated robot controlled by an external robot controller;

capturing a user-directed robot control episode in which the simulated robot performs one or more tasks, the user-directed robot control episode including:

first state data describing one or more states of the simulated 3D environment,

user command data describing joint commands issued by the external robot controller to control the simulated robot in the simulated 3D environment, wherein the joint commands are issued by the external robot controller in response to one or more user commands issued by a user to the external robot controller, and

second state data describing one or more states of the simulated robot;

altering the captured user-directed robot control episode to generate a plurality of training instances, wherein each training instance of the plurality comprises at least one of the joint commands captured in the user-directed robot control episode with a timing that is altered with respect to the same at least one of the joint commands of the user-directed robot control episode; and

training one or more robot control policies based on the plurality of training instances.

2. The method of claim 1 , wherein at least one training instance of the plurality of training instances is generated based on altering at least one feature of the first state data describing one or more states of the simulated 3D environment.

3. The method of claim 2 , wherein altering the at least one feature of the first state data describing one or more states of the simulated 3D environment includes altering a lighting condition of the simulated 3D environment.

4. The method of claim 2 , wherein altering the at least one feature of the first state data describing one or more states of the simulated 3D environment includes altering one or more textures or colors of one or more surfaces of the simulated 3D environment.

5. The method of claim 2 , wherein altering the at least one feature of the first state data describing one or more states of the simulated 3D environment includes altering a position of an interactive object in the simulated 3D environment.

6. The method of claim 1 , wherein altering one or more of the joint commands includes omitting one or more of the joint commands.

7. The method of claim 1 , wherein altering one or more of the joint commands includes altering a magnitude associated with one or more of the joint commands.

8. The method of claim 1 , wherein training the one or more robot control policies based on the plurality of training instances comprises, for each given training instance of the plurality of training instances:

simulating one or more robots in the simulated 3D environment to perform one or more of the tasks, and

training one or more of the robot control policies based on outcomes of the simulated robot performing one or more of the tasks in the simulated 3D environment.

9. A system, comprising:

one or more processors; and

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

simulating a three-dimensional (3D) environment, wherein the simulated 3D environment includes a simulated robot controlled by an external robot controller;

capturing a user-directed robot control episode in which the simulated robot performs one or more tasks, the user-directed robot control episode including:

first state data describing one or more states of the simulated 3D environment,

user command data describing joint commands issued by the external robot controller to control the simulated robot in the simulated 3D environment, wherein the joint commands are issued by the external robot controller in response to one or more user commands issued by a user to the external robot controller, and

second state data describing one or more states of the simulated robot;

altering the captured user-directed robot control episode to generate a plurality of training instances, wherein each training instance of the plurality of training instances comprises at least one of the joint commands captured in the user-directed robot control episode with a timing that is altered with respect to the same at least one of the joint commands of the user-directed robot control episode; and

training one or more robot control policies based on the plurality of training instances.

10. The system of claim 9 , wherein at least one training instance of the plurality of training instances is generated based on altering at least one feature of the first state data describing one or more states of the simulated 3D environment.

11. The system of claim 10 , wherein altering the at least one feature of the first state data describing one or more states of the simulated 3D environment includes altering a lighting condition of the simulated 3D environment.

12. The system of claim 10 , wherein altering the at least one feature of the first state data describing one or more states of the simulated 3D environment includes altering one or more textures or colors of one or more surfaces of the simulated 3D environment.

13. The system of claim 10 , wherein altering the at least one feature of the first state data describing one or more states of the simulated 3D environment includes altering a position of an interactive object in the simulated 3D environment.

14. The system of claim 9 , wherein altering one or more of the joint commands comprises altering a magnitude associated with one or more of the joint commands.

15. The system of claim 9 , wherein training the one or more robot control policies based on the plurality of training instances comprises, for each given training instance of the plurality of training instances:

simulating one or more robots in the simulated 3D environment to perform one or more of the tasks, and

training one or more of the robot control policies based on outcomes of the simulated robot performing one or more of the tasks in the simulated 3D environment.

16. A computer-readable storage medium comprising instructions that, when executed by at least one processor of a computing device, cause the at least one processor to:

simulate a three-dimensional (3D) environment, wherein the simulated 3D environment includes a simulated robot controlled by an external robot controller;

capture a user-directed robot control episode in which the simulated robot performs one or more tasks, the user-directed robot control episode including:

first state data describing one or more states of the simulated 3D environment,

user command data describing joint commands issued by the external robot controller to control the simulated robot in the simulated 3D environment, wherein the joint commands are issued by the external robot controller in response to one or more user commands issued by a user to the external robot controller, and

second state data describing one or more states of the simulated robot;

alter the captured user-directed robot control episode to generate a plurality of training instances, wherein each training instance of the plurality comprises at least one of the joint commands captured in the user-directed robot control episode with a timing that is altered with respect to the same at least one of the joint commands of the user-directed robot control episode; and

train one or more robot control policies based on the plurality of training instances.

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 Jun 14, 2023
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 063992/0371 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2021
From: BENNICE, MATTHEW; BECHARD, PAUL; SIMON, JOSÉPHINE
To: X DEVELOPMENT LLC
Reel/Frame 057566/0572 →
Cited By (3)
US 12,403,613 US 12,552,021 US 12,576,520