IP Library Granted Patent US 12,472,630
Granted Patent B2
US 12,472,630 · App. 18/582,266 · Granted Nov 18, 2025

Simulation driven robotic control of real robot(s)

Inventors: Yunfei Bai (Fremont, CA); Tigran Gasparian (Munich, DE); Brent Austin (Munich, DE); Andreas Christiansen (Lengdorf, DE); Matthew Bennice (San Jose, CA); Paul Bechard (Ogdensburg, NY)
Assignee: GDM Holding LLC
B25J9/1671B25J9/1661B25J9/1697
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,472,630
App. No.
18/582,266
Granted
Nov 18, 2025
Kind
B2
Abstract

Active utilization of a robotic simulator in control of one or more real world robots. A simulated environment of the robotic simulator can be configured to reflect a real world environment in which a real robot is currently disposed, or will be disposed. The robotic simulator can then be used to determine a sequence of robotic actions for use by the real world robot(s) in performing at least part of a robotic task. The sequence of robotic actions can be applied, to a simulated robot of the robotic simulator, to generate a sequence of anticipated simulated state data instances. The real robot can be controlled to implement the sequence of robotic actions. The implementation of one or more of the robotic actions can be contingent on a real state data instance having at least a threshold degree of similarity to a corresponding one of the anticipated simulated state data instances.

Claims (46)

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

configuring a simulated environment, of a robotic simulator that simulates the simulated environment and a simulated robot, based on real environment state data that is based on one or more sensor-based observations of a real environment;

determining, using the robotic simulator, a first candidate sequence of robotic actions and a second candidate sequence of robotic actions, for use in controlling a real robot, in the real environment, in performing at least part of a robotic task;

applying, to the simulated robot of the robotic simulator and with the simulated environment after the configuring, the first candidate sequence of robotic actions to generate first simulated state data;

applying, to the simulated robot of the robotic simulator and with the simulated environment after the configuring, the second candidate sequence of robotic actions to generate second simulated state data;

determining, based on the first simulated state data and the second simulated state data, to utilize the first candidate sequence of robotic actions, in lieu of the second candidate sequence of robotic actions, for use in controlling the real robot in performing at least part of the robotic task;

determining, prior to causing the real robot to implement the first candidate sequence of robotic actions and based on comparing a portion of the simulated environment to a corresponding portion of updated real environment state data, that a degree of similarity between the portion of the simulated environment and the corresponding portion of the updated real environment state data satisfies a threshold; and

in response to determining to utilize the first candidate sequence of robotic actions and based on the degree of similarity between the portion of the simulated environment and the corresponding portion of the updated real environment state data satisfying the threshold:

causing the real robot to implement the first candidate sequence of robotic actions.

2 . The method of claim 1 , wherein determining, based on the first simulated state data and the second simulated state data, to utilize the first candidate sequence of robotic actions, in lieu of the second candidate sequence of robotic actions, comprises:

generating one or more first features based on the first simulated data;

generating one or more second features based on the second simulated data; and

determining to utilize the first candidate sequence of robotic actions based on comparing the first features to the second features.

3 . The method of claim 2 , wherein the one or more first features include a first task success feature and a first efficiency feature, and wherein the one or more second features include a second task success feature and a second efficiency feature.

4 . The method of claim 2 , wherein the one or more first features include a first task success feature and the one or more second features include a second task success feature.

5 . The method of claim 2 , wherein the one or more first features include a first efficiency feature, and wherein the one or more second features include a second efficiency feature.

6 . The method of claim 1 , wherein the first candidate sequence of robotic actions indicates a corresponding sequence of control commands to be implemented at corresponding time steps.

7 . The method of claim 6 , wherein in implementing the first candidate sequence of robotic actions the real robot sends the control commands, indicated by the first candidate sequence of robotic actions, to corresponding actuators of the real robot.

8 . A method implemented by one or more processors, the method comprising:

configuring a simulated environment, of a robotic simulator that simulates the simulated environment, based on real environment state data that is based on one or more sensor-based observations of a real environment;

determining, using the robotic simulator, a candidate sequence of robotic actions for use in controlling a real robot, in the real environment, in performing at least part of a robotic task, wherein determining the candidate sequence of robotic actions comprises:

processing simulated state data that simulates real state data that is fully incapable of being generated utilizing any sensors in the real environment, wherein the simulated state data is generated from a simulated viewpoint that corresponds to a real viewpoint, in the real environment, and wherein none of the sensors in the real environment are capable of, without human intervention, capturing real vision data from the real viewpoint, in the real environment, that corresponds to the simulated viewpoint from which the simulated state data is generated; and

causing the real robot to implement the candidate sequence of robotic actions.

9 . The method of claim 8 , wherein the simulated viewpoint is an overhead viewpoint.

10 . The method of claim 8 , wherein the simulated state data simulates the real state data that is fully incapable of being generated utilizing any sensors in the real environment by being generated from a simulated sensor of a particular type and wherein none of any sensors in the real environment are of the particular type.

11 . The method of claim 8 , wherein the candidate sequence of robotic actions indicates a corresponding sequence of control commands to be implemented at corresponding time steps.

12 . A system, comprising:

memory storing instructions;

one or more processors executing the instructions to:

configure a simulated environment, of a robotic simulator that simulates the simulated environment and a simulated robot, based on real environment state data that is based on one or more sensor-based observations of a real environment;

determine, using the robotic simulator, a first candidate sequence of robotic actions and a second candidate sequence of robotic actions, for use in controlling a real robot, in the real environment, in performing at least part of a robotic task;

apply, to the simulated robot of the robotic simulator and with the simulated environment after the configuring, the first candidate sequence of robotic actions to generate first simulated state data;

apply, to the simulated robot of the robotic simulator and with the simulated environment after the configuring, the second candidate sequence of robotic actions to generate second simulated state data;

determine, based on the first simulated state data and the second simulated state data, to utilize the first candidate sequence of robotic actions, in lieu of the second candidate sequence of robotic actions, for use in controlling the real robot in performing at least part of the robotic task;

determine, prior to causing the real robot to implement the first candidate sequence of robotic actions and based on comparing a portion of the simulated environment to a corresponding portion of updated real environment state data, that a degree of similarity between the portion of the simulated environment and the corresponding portion of the updated real environment state data satisfies a threshold; and

in response to determining to utilize the first candidate sequence of robotic actions and based on the degree of similarity between the portion of the simulated environment and the corresponding portion of the updated real environment state data satisfying the threshold:

cause the real robot to implement the first candidate sequence of robotic actions.

13 . The system of claim 12 , wherein in determining, based on the first simulated state data and the second simulated state data, to utilize the first candidate sequence of robotic actions, in lieu of the second candidate sequence of robotic actions, one or more of the processors are to:

generate one or more first features based on the first simulated data;

generate one or more second features based on the second simulated data; and

determine to utilize the first candidate sequence of robotic actions based on comparing the first features to the second features.

14 . The system of claim 13 , wherein the one or more first features include a first task success feature and a first efficiency feature, and wherein the one or more second features include a second task success feature and a second efficiency feature.

15 . The system of claim 14 , wherein the one or more first features include a first task success feature and the one or more second features include a second task success feature.

16 . The system of claim 14 , wherein the one or more first features include a first efficiency feature, and wherein the one or more second features include a second efficiency feature.

17 . The system of claim 13 , wherein the first candidate sequence of robotic actions indicates a corresponding sequence of control commands to be implemented at corresponding time steps.

18 . The system of claim 17 , wherein in implementing the first candidate sequence of robotic actions the real robot sends the control commands, indicated by the first candidate sequence of robotic actions, to corresponding actuators of the real robot.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2025
From: GOOGLE LLC
To: GDM HOLDING LLC
Reel/Frame 071465/0754 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 4, 2024
From: X DEVELOPMENT LLC
To: GOOGLE LLC
Reel/Frame 067612/0579 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2024
From: BAI, YUNFEI; GASPARIAN, TIGRAN; AUSTIN, BRENT; CHRISTIANSEN, ANDREAS; BENNICE, MATTHEW; BECHARD, PAUL
To: X DEVELOPMENT LLC
Reel/Frame 067612/0584 →
Continuity (3)
Continuation 17337815 · Jun 3, 2021
Provisional Application 63132582 · Dec 31, 2020
Related Publication 20240190004A1 · Jun 13, 2024
References Cited (32)
US 9671777B1 · Aichele · 2017 [cited by applicant]
US 10058995B1 · Sampedro et al. · 2018 [cited by applicant]
US 10792810B1 · Beckman et al. · 2020 [cited by applicant]
US 11275673B1 · Dolan · 2022 [cited by examiner]
US 20170334066A1 · Levine et al. · 2017 [cited by applicant]
US 20190084151A1 · Bai et al. · 2019 [cited by applicant]
US 20190321974A1 · Leon · 2019 [cited by applicant]
US 20200249654A1 · Edwards · 2020 [cited by applicant]
US 20200376675A1 · Bai · 2020 [cited by applicant]
US 20200380085A1 · Behrendt · 2020 [cited by examiner]
US 20210078167A1 · Khansari Zadeh et al. · 2021 [cited by applicant]
US 20210089040A1 · Ebrahimi Afrouzi · 2021 [cited by applicant]
US 20210122046A1 · Sun · 2021 [cited by examiner]
US 20210387343A1 · Imajo · 2021 [cited by examiner]
US 20210387350A1 · Oleynik · 2021 [cited by applicant]
US 20220016763A1 · Chen · 2022 [cited by applicant]
US 20220118618A1 · Oleynik · 2022 [cited by applicant]
US 20220203535A1 · Bai · 2022 [cited by applicant]
CN 110023965 · 2019 [cited by applicant]
CN 111602144 · 2020 [cited by applicant]
CN 111796517 · 2020 [cited by applicant]
CN 113767389 · 2021 [cited by applicant]
EP 3733355 · 2020 [cited by applicant]
JP H07328968 · 1995 [cited by applicant]
JP 2017185577 · 2017 [cited by applicant]
JP 2020044591 · 2020 [cited by applicant]
JP 2020140641 · 2020 [cited by applicant]
China National Intellectual Property Administration; Notification of First Office Action issued in Application No. 202180088815.8; 12 pages; dated May 19, 2024. [cited by applicant]
European Patent Office; International Search Report and Written Opinion issued in Application No. PCT/US2021/085353; 11 pages; dated Apr. 20, 2022. [cited by applicant]
Hoffmann, H. “Perception through visuomotor anticipation in a mobile robot.” Neural Networks 20(1), 2007, pp. 22-33. [cited by applicant]
Japanese Patent Office; Notice of Reasons for Rejection issue in Application No. 2023-510627; 20 pages, dated Aug. 19, 2024. [cited by applicant]
China National Intellectual Property Administration; Notice of Grant issued in Application No. 202180088815.8; 7 pages; dated Nov. 13, 2024. [cited by applicant]