IP Library Granted Patent US 12,202,140
Granted Patent B2
US 12,202,140 · App. 18/379,597 · Granted Jan 21, 2025

Simulating multiple robots in virtual environments

Inventors: Matthew Bennice (San Jose, CA); Paul Bechard (Ogdensburg, NY)
Assignee: GOOGLE LLC
B25J9/1605B25J9/0084
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,202,140
App. No.
18/379,597
Granted
Jan 21, 2025
Kind
B2
Abstract

Implementations are provided for operably coupling multiple robot controllers to a single virtual environment, e.g., to generate training examples for training machine learning model(s). In various implementations, a virtual environment may be simulated that includes an interactive object and a plurality of robot avatars that are controlled independently and contemporaneously by a corresponding plurality of robot controllers that are external from the virtual environment. Sensor data generated from a perspective of each robot avatar of the plurality of robot avatars may be provided to a corresponding robot controller. Joint commands that cause actuation of one or more joints of each robot avatar may be received from the corresponding robot controller. Joint(s) of each robot avatar may be actuated pursuant to corresponding joint commands. The actuating may cause two or more of the robot avatars to act upon the interactive object in the virtual environment.

Claims (38)

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

simulating a three-dimensional virtual environment that includes a plurality of robot avatars that are controlled independently and contemporaneously by a corresponding plurality of robot controllers that are external from the virtual environment;

operating the plurality of robot avatars at frequencies that correspond to real-world frequencies of the respective robot controllers that control the plurality of robot avatars;

receiving, from each robot controller of the plurality of robot controllers, joint commands that cause actuation of one or more joints of the respective robot avatar of the plurality of robot avatars that is controlled by the robot controller;

actuating one or more joints of each robot avatar of the plurality of robot avatars pursuant to corresponding joint commands;

to account for a deviation of a lagging robot avatar of the plurality of robot avatars from an expected operational frequency of the lagging robot avatar, temporarily pausing operations of one or more other robot avatars of the plurality of robot avatars; and

generating and storing training data for a machine learning model based on interactions between the plurality of robot avatars and the virtual environment.

2. The method of claim 1 , further comprising operating a simulated world clock of the virtual environment at a given frequency, wherein the frequencies at which the plurality of robot avatars are operated are less than or equal to the given frequency of the simulated world clock.

3. The method of claim 2 , wherein the pausing comprises pausing the simulated world clock until the lagging robot avatar advances to a next stage of operation.

4. The method of claim 3 , further comprising pausing operations of one or more other robot avatars of the plurality of robot avatars until the lagging robot avatar advances to the next stage of operation.

5. The method of claim 1 , further comprising generating, for each robot avatar of the plurality of robot avatars, a directed acyclic graph with nodes that represent components of the robot avatar.

6. The method of claim 5 , wherein the directed acyclic graph is a dependency graph in which edges between nodes represent dependencies between the components represented by the nodes.

7. The method of claim 6 , wherein at least one node representing a simulated sensor of the robot avatar imposes a delay on output of the simulated sensor being passed up the directed acyclic graph, wherein the delay corresponds to a frequency of a real-world sensor corresponding to the simulated sensor.

8. The method of claim 6 , wherein one or more nodes of the directed acyclic graph represent a simulated environmental condition of the virtual environment.

9. The method of claim 6 , wherein one or more nodes of the directed acyclic graph represent a simulated condition of a simulated sensor of the robot avatar.

10. A system comprising one or more processors and memory storing instructions that, in response to execution by the one or more processors, cause the one or more processors to:

simulate a three-dimensional virtual environment that includes a plurality of robot avatars that are controlled independently and contemporaneously by a corresponding plurality of robot controllers that are external from the virtual environment;

operate the plurality of robot avatars at frequencies that correspond to real-world frequencies of the respective robot controllers that control the plurality of robot avatars;

receive, from each robot controller of the plurality of robot controllers, joint commands that cause actuation of one or more joints of the respective robot avatar of the plurality of robot avatars that is controlled by the robot controller;

actuate one or more joints of each robot avatar of the plurality of robot avatars pursuant to corresponding joint commands;

to account for a deviation of a lagging robot avatar of the plurality of robot avatars from an expected operational frequency of the lagging robot avatar, temporarily pause operations of one or more other robot avatars of the plurality of robot avatars; and

generate and store training data for a machine learning model based on interactions between the plurality of robot avatars and the virtual environment.

11. The system of claim 10 , further comprising instructions to operate a simulated world clock of the virtual environment at a given frequency, wherein the frequencies at which the plurality of robot avatars are operated are less than or equal to the given frequency of the simulated world clock.

12. The system of claim 11 , wherein the instructions to pause include instructions to pause the simulated world clock until the lagging robot avatar advances to a next stage of operation.

13. The system of claim 12 , further comprising instructions to pause operations of one or more other robot avatars of the plurality of robot avatars until the lagging robot avatar advances to the next stage of operation.

14. The system of claim 10 , further comprising instructions to generate, for each robot avatar of the plurality of robot avatars, a directed acyclic graph with nodes that represent components of the robot avatar.

15. The system of claim 14 , wherein the directed acyclic graph is a dependency graph in which edges between nodes represent dependencies between the components represented by the nodes.

16. The system of claim 15 , wherein at least one node representing a simulated sensor of the robot avatar imposes a delay on output of the simulated sensor being passed up the directed acyclic graph, wherein the delay corresponds to a frequency of a real-world sensor corresponding to the simulated sensor.

17. The system of claim 15 , wherein one or more nodes of the directed acyclic graph represent a simulated environmental condition of the virtual environment.

18. The system of claim 15 , wherein one or more nodes of the directed acyclic graph represent a simulated condition of a simulated sensor of the robot avatar.

19. At least one non-transitory computer-readable medium comprising instructions that, in response to execution by one or more processors, cause the one or more processors to:

simulate a three-dimensional virtual environment that includes a plurality of robot avatars that are controlled independently and contemporaneously by a corresponding plurality of robot controllers that are external from the virtual environment;

operate the plurality of robot avatars at frequencies that correspond to real-world frequencies of the respective robot controllers that control the plurality of robot avatars;

receive, from each robot controller of the plurality of robot controllers, joint commands that cause actuation of one or more joints of the respective robot avatar of the plurality of robot avatars that is controlled by the robot controller;

actuate one or more joints of each robot avatar of the plurality of robot avatars pursuant to corresponding joint commands;

to account for a deviation of a lagging robot avatar of the plurality of robot avatars from an expected operational frequency of the lagging robot avatar, temporarily pause operations of one or more other robot avatars of the plurality of robot avatars; and

generate and store training data for a machine learning model based on interactions between the plurality of robot avatars and the virtual environment.

20. The at least one non-transitory computer-readable medium of claim 19 , further comprising instructions to operate a simulated world clock of the virtual environment at a given frequency, wherein the frequencies at which the plurality of robot avatars are operated are less than or equal to the given frequency of the simulated world clock.

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 3, 2024
From: BENNICE, MATTHEW; BECHARD, PAUL
To: X DEVELOPMENT LLC
Reel/Frame 067595/0302 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 3, 2024
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 067595/0304 →
Continuity (2)
Continuation 17069684 · Oct 13, 2020
Related Publication 20240033904A1 · Feb 1, 2024
References Cited (30)
US 9811074B1 · Aichele et al. · 2017 [cited by applicant]
US 10792810B1 · Beckman et al. · 2020 [cited by applicant]
US 20160031082A1 · Hazan et al. · 2016 [cited by applicant]
US 20190344441A1 · Rottmann · 2019 [cited by applicant]
US 20200122321A1 · Khansari Zadeh et al. · 2020 [cited by applicant]
US 20200276705A1 · Shah · 2020 [cited by applicant]
US 20200276708A1 · Shah · 2020 [cited by applicant]
US 20210023703A1 · Ma · 2021 [cited by applicant]
US 20220111517A1 · Bennice · 2022 [cited by applicant]
EP 0923011 · 1999 [cited by applicant]
JP H05324022 · 1993 [cited by applicant]
JP 2010214556 · 2010 [cited by applicant]
JP 2019081242A · 2019 [cited by applicant]
JP 2019111588A · 2019 [cited by applicant]
JP 2019212041 · 2019 [cited by applicant]
WO 2015134391 · 2015 [cited by applicant]
WO 2020071174 · 2020 [cited by applicant]
Sun et al; A Synchronization Approach to Trajectory Tracking of Multiple Mobile Robots While Maintaining Time-Varying Formations ; 2009, IEEE Transactions on Robotics, vol. 25, No. 5, Oct. 2009; pp. 1074-1086 (Year: 200… [cited by examiner]
Adit, Joshi; A Novel Approach for Validating Adaptive Cruise Control (ACC) Using Two Hardware-in-the-Loop (HIL) Simulation Benches; dated Apr. 2, 2019. [cited by applicant]
European Patent Office; International Search Report and Written Opinion of Application No. PCT/US2021/054369; 15 pages; dated Jan. 26, 2022. [cited by applicant]
Kuffner, James J. Jr.; Autonomous Agents for Real-Time Animation; Dissertation for Doctor of Philosophy; Stanford University; 180 pages; dated Dec. 1999. [cited by applicant]
Amazon Web Services, Inc.; Overview of Amazon Web Services; 95 pages; dated Jan. 2020. [cited by applicant]
Kapur, Pulkit; Introduction to Automatic Testing of Robotics Applications; AWS Robotics Blog; pp. 1-6; dated Jul. 1, 2020. [cited by applicant]
Brunner, B. et a.; Task Directed Programming of Sensor Based Robots; German Aerospace Research Establishment; 8 pages; dated 1995. [cited by applicant]
Kuffner, James J. Jr. et al.; Graphical Simulation and High-Level Control of Humanoid Robots; Department of Mechano-Informatics; IEEE; 6 pages; dated 2020. [cited by applicant]
Balakirsky, S. et al.; From Simulation to Real Robots with Predictable Results: Methods and Examples; Springer; 27 pages; dated 2009. [cited by applicant]
Tarnoff, N. et al.; Graphical Sinulation for Sensor Based Robot Programming; Journal of Intelligent and Robotic Systems; 14 pages; dated 1992. [cited by applicant]
Tully, Foote; tf: The Transform Library; IEEE; 6 pages; dated 2013. [cited by applicant]
Japanese Patent Office; notice of Reasons for Refusal issued in Application No. 2023521746; 14 pages; dated Apr. 25, 2024. [cited by applicant]
Japanese Patent Office; Decision of Rejection issued in Application No. 2023521746; 11 pages; dated Oct. 22, 2024. [cited by applicant]