IP Library Granted Patent US 12,346,116
Granted Patent B2
US 12,346,116 · App. 18/466,535 · Granted Jul 1, 2025

Online authoring of robot autonomy applications

Inventors: Samuel Seifert (Boston, MA); Leland Hepler (Boston, MA)
Assignee: Boston Dynamics, Inc.
G05D1/0221
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,346,116
App. No.
18/466,535
Granted
Jul 1, 2025
Kind
B2
Abstract

A method for online authoring of robot autonomy applications includes receiving sensor data of an environment about a robot while the robot traverses through the environment. The method also includes generating an environmental map representative of the environment about the robot based on the received sensor data. While generating the environmental map, the method includes localizing a current position of the robot within the environmental map and, at each corresponding target location of one or more target locations within the environment, recording a respective action for the robot to perform. The method also includes generating a behavior tree for navigating the robot to each corresponding target location and controlling the robot to perform the respective action at each corresponding target location within the environment during a future mission when the current position of the robot within the environmental map reaches the corresponding target location.

Claims (62)

1. A method comprising:

receiving, at data processing hardware of a robot, from at least one sensor, sensor data associated with an environment of the robot based on a first traversal of the environment by one or more robots;

generating, by the data processing hardware, an environmental map representative of the environment based on the received sensor data;

identifying, by the data processing hardware, for performance at a first target location within the environment, a first plurality of actions available for selection based on the first traversal of the environment by the one or more robots, wherein the first plurality of actions available for selection is linked to the first target location;

providing, by the data processing hardware, to a user computing device, data indicative of the environmental map and the first plurality of actions available for selection;

receiving, by the data processing hardware, from the user computing device, data indicative of a first selected action for the robot to perform at the first target location chosen from the first plurality of actions available for selection;

based on receiving the data indicative of the first selected action for the robot to perform at the first target location, generating, by the data processing hardware, a mission, wherein the mission indicates the robot is to navigate from a location of the robot to the first target location based on the first plurality of actions available for selection being linked to the first target location, to determine that the location of the robot corresponds to the first target location, to perform the first selected action based on determining that the location of the robot corresponds to the first target location, and to navigate to a second target location; and

instructing, by the data processing hardware, the robot to autonomously perform the mission, wherein performance of the mission corresponds to a second traversal of the environment by the robot.

2. The method of claim 1 , wherein a second plurality of actions available for selection is linked to the second target location, wherein the second plurality of actions available for selection are different relative to the first plurality of actions available for selection, and wherein the mission further indicates the robot is to perform a second selected action, chosen from the second plurality of actions available for selection, at the second target location based on determining that the location of the robot corresponds to the second target location.

3. The method of claim 1 , further comprising:

identifying for performance at the second target location, a second plurality of actions available for selection based on the first traversal of the environment by the one or more robots;

providing, to the user computing device, data indicative of the second plurality of actions available for selection; and

receiving, from the user computing device, data indicative of a second selected action for the robot to perform at the second target location chosen from the second plurality of actions available for selection, wherein the mission further indicates the robot is to determine that the location of the robot corresponds to the second target location and to perform the second selected action at the second target location based on determining that the location of the robot corresponds to the second target location.

4. The method of claim 1 , further comprising:

identifying for performance at the second target location, the first plurality of actions available for selection based on the first traversal of the environment by the one or more robots; and

receiving, from the user computing device, data indicative of a second selected action for the robot to perform at the second target location chosen from the first plurality of actions available for selection, wherein the mission further indicates the robot is to determine that the location of the robot corresponds to the second target location and to perform the second selected action at the second target location based on determining that the location of the robot corresponds to the second target location.

5. The method of claim 1 , further comprising:

generating a behavior tree based on the first selected action, wherein the behavior tree links the first target location to the first selected action, and wherein the mission is based on the behavior tree.

6. The method of claim 1 , further comprising:

receiving, from the user computing device, an action recording request requesting recordation of the first selected action for the robot to perform at the first target location; and

automatically linking the first selected action to the first target location in response to receiving the action recording request.

7. The method of claim 1 , wherein generating the mission comprises further comprising:

generating instructions for performance of the first selected action at the first target location.

8. The method of claim 1 , wherein the first traversal of the environment and the second traversal of the environment are a traversal of a same portion of the environment.

9. The method of claim 1 , further comprising:

receiving, from the user computing device, navigation instructions, wherein the navigation instructions instruct the robot to navigate to the first target location, wherein the mission is based on the navigation instructions.

10. The method of claim 1 , wherein the first plurality of actions available for selection corresponds to a first category of actions of a plurality of categories of actions.

11. The method of claim 1 , wherein the first plurality of actions available for selection comprises actions to interact with or evaluate an object in the environment.

12. The method of claim 1 , further comprising:

determining an orientation of the robot, wherein the mission is based on the orientation of the robot.

13. The method of claim 1 , further comprising:

providing, to the user computing device, second sensor data associated with the environment, wherein receiving the data indicative of the first selected action for the robot to perform at the first target location is based on providing the second sensor data.

14. The method of claim 1 , further comprising:

receiving, from the user computing device, data indicative of the first target location, wherein generating the mission is further based on receiving the data indicative of the first target location.

15. The method of claim 1 , wherein the at least one sensor comprises at least one of a stereo camera, scanning light-detection and ranging (LIDAR) sensor, or a scanning laser-detection and ranging (LADAR) sensor.

16. The method of claim 1 , further comprising:

receiving, from the user computing device, an input; and

capturing the sensor data based on the input.

17. A system comprising:

data processing hardware; and

memory in communication with the data processing hardware, the memory storing instructions that when executed on the data processing hardware cause the data processing hardware to:

receive, from at least one sensor, sensor data associated with an environment of a robot based on a first traversal of the environment by one or more robots;

generate an environmental map representative of the environment based on the received sensor data;

identify, for performance at a first target location within the environment, a first plurality of actions available for selection based on the first traversal of the environment by the one or more robots, wherein the first plurality of actions available for selection is linked to the first target location;

provide, to a user computing device, data indicative of the environmental map and the first plurality of actions available for selection;

receive, from the user computing device, data indicative of a first selected action for the robot to perform at the first target location chosen from the first plurality of actions available for selection;

based on receiving the data indicative of the first selected action for the robot to perform at the first target location, generate a mission, wherein the mission indicates the robot is to navigate from a location of the robot to the first target location based on the first plurality of actions available for selection being linked to the first target location, to determine that the location of the robot corresponds to the first target location, and to perform the first selected action based on determining that the location of the robot corresponds to the first target location, and to navigate to a second target location; and

instruct the robot to autonomously perform the mission, wherein performance of the mission corresponds to a second traversal of the environment by the robot.

18. The system of claim 17 , wherein a second plurality of actions available for selection is linked to the second target location, wherein the second plurality of actions available for selection are different relative to the first plurality of actions available for selection, and wherein the mission further indicates the robot is to perform a second selected action, chosen from the second plurality of actions available for selection, at the second target location based on determining that the location of the robot corresponds to the second target location.

19. A robot comprising:

at least one sensor;

at least two legs;

data processing hardware in communication with the at least one sensor; and

memory in communication with the data processing hardware, the memory storing instructions that when executed on the data processing hardware cause the data processing hardware to:

receive, from the at least one sensor, sensor data associated with an environment of the robot based on a first traversal of the environment by one or more robots;

generate an environmental map representative of the environment based on the received sensor data;

identify, for performance at a first target location within the environment, a first plurality of actions available for selection based on the first traversal of the environment by the one or more robots, wherein the first plurality of actions available for selection is linked to the first target location;

provide, to a user computing device, data indicative of the environmental map and the first plurality of actions available for selection;

receive, from the user computing device, data indicative of a first selected action for the robot to perform at the first target location chosen from the first plurality of actions available for selection;

based on receiving the data indicative of the first selected action for the robot to perform at the first target location, generate a mission, wherein the mission indicates the robot is to navigate from a location of the robot to the first target location based on the first plurality of actions available for selection being linked to the first target location, to determine that the location of the robot corresponds to the first target location, to perform the first selected action based on determining that the location of the robot corresponds to the first target location, and to navigate to a second target location; and

instruct the robot to autonomously perform the mission, wherein performance of the mission corresponds to a second traversal of the environment by the robot.

20. The robot of claim 19 , wherein a second plurality of actions available for selection is linked to the second target location, wherein the second plurality of actions available for selection are different relative to the first plurality of actions available for selection, and wherein the mission further indicates the robot is to perform a second selected action, chosen from the second plurality of actions available for selection, at the second target location based on determining that the location of the robot corresponds to the second target location.

Assignments (2)
CHANGE OF NAME Recorded Sep 19, 2023
From: BOSTON DYNAMICS, INC.
To: BOSTON DYNAMICS, INC.
Reel/Frame 066039/0408 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2023
From: SEIFERT, SAMUEL; HEPLER, LELAND
To: BOSTON DYNAMICS, INC.
Reel/Frame 064957/0608 →
Continuity (3)
Continuation 16884954 · May 27, 2020
Provisional Application 63009119 · Apr 13, 2020
Related Publication 20230418302A1 · Dec 28, 2023
References Cited (92)
US 6904334B2 · Asano et al. · 2005 [cited by applicant]
US 8060344B2 · Stathis · 2011 [cited by applicant]
US 8410732B2 · Kassow et al. · 2013 [cited by applicant]
US 8594844B1 · Gal · 2013 [cited by applicant]
US 8614559B2 · Kassow et al. · 2013 [cited by applicant]
US 8725273B2 · Lenser et al. · 2014 [cited by applicant]
US 8779715B2 · Kassow et al. · 2014 [cited by applicant]
US 8929603B1 · Maali et al. · 2015 [cited by applicant]
US 9592912B1 · Michini · 2017 [cited by examiner]
US 9747698B2 · Stathis · 2017 [cited by applicant]
US 9770823B2 · Huang · 2017 [cited by applicant]
US 9858712B2 · Stathis · 2018 [cited by applicant]
US 9876993B2 · Sablak et al. · 2018 [cited by applicant]
US 10155166B1 · Taylor et al. · 2018 [cited by applicant]
US 11331799B1 · Shafer · 2022 [cited by applicant]
US 11372408B1 · Webster et al. · 2022 [cited by applicant]
US 11416003B2 · Whitman et al. · 2022 [cited by applicant]
US 11787050B1 · Kaehler et al. · 2023 [cited by applicant]
US 11797016B2 · Seifert et al. · 2023 [cited by applicant]
US 20020169733A1 · Peters, II et al. · 2002 [cited by applicant]
US 20020183896A1 · Ogure et al. · 2002 [cited by applicant]
US 20040193321A1 · Anfindsen et al. · 2004 [cited by applicant]
US 20040199302A1 · Pillar et al. · 2004 [cited by applicant]
US 20050041839A1 · Saitou et al. · 2005 [cited by applicant]
US 20050126144A1 · Koselka et al. · 2005 [cited by applicant]
US 20050222713A1 · Kawabe et al. · 2005 [cited by applicant]
US 20090052740A1 · Sonoura · 2009 [cited by applicant]
US 20100036527A1 · Matsunaga et al. · 2010 [cited by applicant]
US 20110231016A1 · Goulding · 2011 [cited by applicant]
US 20120121161A1 · Eade et al. · 2012 [cited by applicant]
US 20120155775A1 · Ahn et al. · 2012 [cited by applicant]
US 20120158183A1 · Lim et al. · 2012 [cited by applicant]
US 20120197464A1 · Wang · 2012 [cited by examiner]
US 20120280087A1 · Coffman · 2012 [cited by examiner]
US 20130231779A1 · Purkayastha et al. · 2013 [cited by applicant]
US 20130338525A1 · Allen · 2013 [cited by applicant]
US 20140129027A1 · Schnittman · 2014 [cited by applicant]
US 20140336848A1 · Saund et al. · 2014 [cited by applicant]
US 20150269439A1 · Versace et al. · 2015 [cited by applicant]
US 20150296142A1 · Cappel-Porter et al. · 2015 [cited by applicant]
US 20160188977A1 · Kearns et al. · 2016 [cited by applicant]
US 20170329347A1 · Passot et al. · 2017 [cited by applicant]
US 20170358201A1 · Govers et al. · 2017 [cited by applicant]
US 20180141562A1 · Singhal · 2018 [cited by applicant]
US 20180181137A1 · Choi et al. · 2018 [cited by applicant]
US 20180236654A1 · Mozeika et al. · 2018 [cited by applicant]
US 20180364045A1 · Williams et al. · 2018 [cited by applicant]
US 20190086894A1 · Tenorth · 2019 [cited by applicant]
US 20190184572A1 · Hayashi · 2019 [cited by applicant]
US 20190185186A1 · Li · 2019 [cited by applicant]
US 20190307106A1 · Hartung et al. · 2019 [cited by applicant]
US 20200012239A1 · Yamamoto · 2020 [cited by examiner]
US 20200070343A1 · Thomaz et al. · 2020 [cited by applicant]
US 20200174484A1 · Eoh et al. · 2020 [cited by applicant]
US 20200206918A1 · Sun · 2020 [cited by applicant]
US 20210041243A1 · Fay et al. · 2021 [cited by applicant]
US 20210041878A1 · Seifert et al. · 2021 [cited by applicant]
US 20210181750A1 · Gogna · 2021 [cited by examiner]
US 20210318687A1 · Seifert et al. · 2021 [cited by applicant]
US 20210346557A1 · Brooks et al. · 2021 [cited by applicant]
US 20220083061A1 · Xie et al. · 2022 [cited by applicant]
US 20220113745A1 · Panigrahi et al. · 2022 [cited by applicant]
US 20220138612A1 · Vengertsev et al. · 2022 [cited by applicant]
US 20220139027A1 · Luo et al. · 2022 [cited by applicant]
US 20220194245A1 · Gonana et al. · 2022 [cited by applicant]
US 20220237910A1 · Hirai et al. · 2022 [cited by applicant]
US 20220258356A1 · Chi et al. · 2022 [cited by applicant]
US 20220305657A1 · Hong et al. · 2022 [cited by applicant]
US 20220388174A1 · Stathis et al. · 2022 [cited by applicant]
US 20230015335A1 · Gao et al. · 2023 [cited by applicant]
US 20230016514A1 · Zheng et al. · 2023 [cited by applicant]
US 20230087057A1 · Wang et al. · 2023 [cited by applicant]
US 20230215024A1 · Huang · 2023 [cited by applicant]
US 20230297118A1 · Yanks et al. · 2023 [cited by applicant]
US 20230400863A1 · Chen et al. · 2023 [cited by applicant]
US 20230418305A1 · Chestnutt et al. · 2023 [cited by applicant]
US 20240087738A1 · Wang et al. · 2024 [cited by applicant]
US 20240377843A1 · Ryde et al. · 2024 [cited by applicant]
WO WO2008060689 · 2008 [cited by applicant]
WO WO2021211251 · 2021 [cited by applicant]
WO WO2022256818 · 2022 [cited by applicant]
WO WO2023140928 · 2023 [cited by applicant]
Echegoyen et al., “Visual Servoing of Legged Robots”, J Math Image Vision, Apr. 29, 2011;42(2-3):196-211. [cited by applicant]
Girshick, R., “Fast R-CNN” Computer Vision and Pattern Recognition, arXiv:1504.08083 [cs.CV] version 2 dated Sep. 27, 2015 in 9 pages. [cited by applicant]
Hosoda et al., “Vision-Based Servoing Control for Legged Robots”. 1997 IEEE Inter'l Conf Robot Auto, Apr. 1997;4:3154-3159. [cited by applicant]
Hutchinson et al., “A Tutorial on Visual Servo Control” IEEE Trans Robot Autom. Oct. 1996; 12(5):651-670. [cited by applicant]
Rublee et al., “ORB: an efficient alternative to Sift or Surf”, 2011 Inter'l Conf Comp Vision. Nov. 6, 2011 (pp. 2564-2571), IEEE. [cited by applicant]
Scheper, “Behavior Trees for Evolutional Robotics Reducing the Reality Gap.” Jun. 18, 2014, 197 pages. [cited by applicant]
International Search Report and Written Opinion received in Application No. PCT/US2021/022928, mailed Jun. 1, 2021, 10 pages. [cited by applicant]
International Search Report and Written Opinion received in Application No. PCT/US2022/072714, mailed Sep. 19, 2022, 18 pages. [cited by applicant]
International Search Report and Written Opinion received in Application No. PCT/US2022/051064, mailed Mar. 29, 2023, 10 pages. [cited by applicant]
International Search Report and Written Opinion received in Application No. PCT/US2023/084269, mailed May 7, 2024, 15 pages. [cited by applicant]
Cited By (2)
US 12,585,292 US 12,632,051