IP Library Granted Patent US 12,372,944
Granted Patent B2
US 12,372,944 · App. 17/148,093 · Granted Jul 29, 2025

Causing a robot to execute a mission using a behavior tree and a leaf node library

Inventors: Jeffery Saunders (Quincy, MA); Benjamin C. Stringer (Boston, MA)
Assignee: Aurora Flight Sciences Corporation, a subsidiary of The Boeing Company
G05B19/4155G05D1/0088G05D1/0291G05D1/60G06N5/01G05B2219/33051G05B2219/50391G05D2101/10G05D2109/20
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,372,944
App. No.
17/148,093
Granted
Jul 29, 2025
Kind
B2
Abstract

A method is provided for causing one or more robots to execute a mission. The method includes determining a behavior tree in which the mission is modeled, and causing the one or more robots to execute the mission using the behavior tree and a leaf node library. The behavior tree is expressed as a directed tree of nodes including a switch node, a trigger node representing a selected task, and action nodes representing others of the tasks. The switch node is connected to the trigger node and the action nodes in a parent-child relationship in which the trigger node and the action nodes are children of the switch node. The trigger node is a first of the children that, when ticked by the switch node, returns an identifier of one of the action nodes to trigger the switch node to next tick the one of the action nodes.

Claims (109)

1. An apparatus for causing one or more aerial robots to execute a mission, the apparatus comprising:

a memory having computer-readable program code stored therein; and

processing circuitry configured to access the memory, and execute the computer-readable program code to cause the apparatus to at least:

identify the mission including tasks that are executable to cause the one or more aerial robots to execute respective maneuvers;

determine a behavior tree in which the mission is modeled, the behavior tree including a switch node, a trigger node representing a selected task, and action nodes representing others of the tasks,

the switch node connected to the trigger node and the action nodes in a parent-child relationship in which the trigger node and the action nodes are children of the switch node,

the trigger node being a first of the children that, when ticked by the switch node, returns an identifier of one of the action nodes to trigger the switch node to next tick the one of the action nodes, and

the action nodes include one or more of:

launch to hover,

transition up,

fly-to,

approach, or

vertical landing;

cause the one or more aerial robots to execute the mission using the behavior tree and a leaf node library including the tasks executable to cause the one or more aerial robots to execute the respective maneuvers;

detect occurrence of a contingency event during execution of the selected task,

the contingency event to provide an alternative task to the selected task; and

cause the one or more aerial robots to execute other respective maneuvers based on the alterative task causing the one or more aerial robots to execute maneuver commands using maneuver controls of the one or more aerial robots.

2. The apparatus of claim 1 , wherein the apparatus, on behalf of an aerial robot of the one or more aerial robots, is caused to at least:

access mission data including the behavior tree;

traverse the behavior tree; and

tick, based on the switch node being ticked, the trigger node to cause the trigger node representing the selected task to call on the leaf node library to execute the selected task and thereby cause the aerial robot to execute a respective maneuver, the trigger node returning the identifier.

3. The apparatus of claim 2 , wherein the apparatus, on behalf of an aerial robot of the one or more aerial robots, is caused to:

tick the one of the action nodes by the switch node according to the identifier, the ticking of the one of the action nodes causing the one of the action nodes representing one of the others of the tasks to call on the leaf node library to execute the one of the others of the tasks and thereby cause the aerial robot to execute another of the respective maneuvers.

4. The apparatus of claim 1 , wherein the tasks include a nominal sequence of selected tasks including the selected task and a next selected task, and an alternate task to be executed in place of the next selected task when a contingency event occurs during execution of the selected task, and

wherein the apparatus is caused to determine the behavior tree in which the others of the tasks represented by the action nodes include the next selected task and the alternate task.

5. The apparatus of claim 4 , wherein the apparatus, on behalf of an aerial robot of the one or more aerial robots, is caused to at least:

access mission data including the behavior tree in which the mission is modeled;

traverse the behavior tree; and

tick, based on the switch node being ticked, the trigger node to cause the trigger to call on the leaf node library to execute the selected task and thereby cause the aerial robot to execute a respective maneuver, the trigger node returning the identifier of the next selected task to the switch node absent occurrence of the contingency event.

6. The apparatus of claim 5 , wherein the apparatus, on behalf of an aerial robot of the one or more aerial robots, is caused to:

tick the one of the action nodes by the switch node according to the identifier, the ticking of the one of the action nodes causing the one of the action nodes representing the next selected task to call on the leaf node library to execute the next selected task and thereby cause the aerial robot to execute a third respective maneuver.

7. The apparatus of claim 4 , wherein the apparatus, on behalf of an aerial robot of the one or more aerial robots, is caused to at least:

access mission data including the behavior tree;

traverse the behavior tree; and

when the switch node is ticked,

tick the trigger node to cause the trigger node to call on the leaf node library to execute the selected task and thereby cause the aerial robot to execute a respective maneuver, and

detect occurrence of the contingency event during execution of the selected task, the trigger node returning the identifier of the alternate task to the switch node in response to the occurrence of the contingency event.

8. The apparatus of claim 1 , wherein the apparatus, on behalf of an aerial robot of the one or more aerial robots, is caused to at least:

dynamically replan the mission based on changes to the mission being made in real-time or near real-time as the mission is executed by the one or more aerial robots.

9. A method of causing one or more aerial robots to execute a mission, the method comprising:

identifying the mission including tasks that are executable to cause the one or more aerial robots to execute respective maneuvers;

determining a behavior tree in which the mission is modeled, the behavior tree including a switch node, a trigger node representing a selected task, and action nodes representing others of the tasks, the switch node connected to the trigger node and the action nodes in a parent-child relationship in which the trigger node and the action nodes are children of the switch node, the trigger node being a first of the children that, when ticked by the switch node, returns an identifier of one of the action nodes to trigger the switch node to next tick the one of the action nodes,

wherein the action nodes include one or more of:

launch to hover,

transition up,

fly-to,

approach, or

vertical landing;

causing the one or more aerial robots to execute the mission using the behavior tree and a leaf node library including the tasks executable to cause the one or more aerial robots to execute the respective maneuvers;

detecting occurrence of a contingency event during execution of the selected task, the contingency event to provide an alternative task to the selected task; and

causing the one or more aerial robots to execute other respective maneuvers based on the alterative task causing the one or more aerial robots to execute maneuver commands using maneuver controls of the one or more aerial robots.

10. The method of claim 9 , wherein causing the one or more aerial robots to execute the mission further includes for an aerial robot of the one or more aerial robots:

accessing mission data including the behavior tree;

traversing the behavior tree; and

ticking, based on the switch node being ticked, the trigger node to cause the trigger node representing the selected task to call on the leaf node library to execute the selected task and thereby cause the aerial robot to execute a respective maneuver, the trigger node returning the identifier.

11. The method of claim 10 , wherein causing the one or more aerial robots to execute the mission further includes for the aerial robot of the one or more aerial robots:

ticking the one of the action nodes by the switch node according to the identifier, the ticking of the one of the action nodes causing the one of the action nodes representing one of the others of the tasks to call on the leaf node library to execute the one of the others of the tasks and thereby cause the aerial robot to execute another of the respective maneuvers.

12. The method of claim 9 , wherein the tasks include a nominal sequence of selected tasks including the selected task and a next selected task, and an alternate task to be executed in place of the next selected task when a contingency event occurs during execution of the selected task, and

wherein determining the behavior tree includes determining the behavior tree in which the others of the tasks represented by the action nodes include the next selected task and the alternate task.

13. The method of claim 12 , wherein causing the one or more aerial robots to execute the mission includes for an aerial robot of the one or more aerial robots:

accessing mission data including the behavior tree;

traversing the behavior tree; and

ticking, based on the switch node being ticked, the trigger node to cause the trigger node to call on the leaf node library to execute the selected task and thereby cause the aerial robot to execute a respective maneuver, the trigger node returning the identifier of the next selected task to the switch node absent occurrence of the contingency event.

14. The method of claim 13 , wherein causing the one or more aerial robots to execute the mission further includes for the aerial robot of the one or more aerial robots:

ticking the one of the action nodes by the switch node according to the identifier, the ticking of the one of the action nodes causing the one of the action nodes representing the next selected task to call on the leaf node library to execute the next selected task and thereby cause the aerial robot to execute a third respective maneuver.

15. The method of claim 12 , wherein causing the one or more aerial robots to execute the mission includes for an aerial robot of the one or more aerial robots:

accessing mission data including the behavior tree;

traversing the behavior tree; and

ticking, based on the switch node being ticked, the trigger node to cause the trigger node to call on the leaf node library to execute the selected task and thereby cause the aerial robot to execute a respective maneuver; and

detecting occurrence of the contingency event during execution of the selected task, the trigger node returning the identifier of the alternate task to the switch node in response to the occurrence of the contingency event.

16. The method of claim 9 , further comprising:

dynamically replanning the mission based on changes to the mission being made in real-time or near real-time as the mission is executed by the one or more aerial robots.

17. A computer-readable storage medium for causing one or more aerial robots to execute a mission, the computer-readable storage medium being non-transitory and having computer-readable program code stored therein that, in response to execution by processing circuitry, causes an apparatus to at least:

identify the mission, the mission including tasks that are executable to cause the one or more aerial robots to execute respective maneuvers;

determine a behavior tree in which the mission is modeled, the behavior tree including a switch node, a trigger node representing a selected task, and action nodes representing others of the tasks, the switch node connected to the trigger node and the action nodes in a parent-child relationship in which the trigger node and the action nodes are children of the switch node, the trigger node being a first of the children that, when ticked by the switch node, returns an identifier of one of the action nodes to trigger the switch node to next tick the one of the action nodes,

wherein the action nodes include one or more of:

launch to hover,

transition up,

fly-to,

approach, or

vertical landing;

cause the one or more aerial robots to execute the mission using the behavior tree and a leaf node library including the tasks executable to cause the one or more aerial robots to execute the respective maneuvers;

detect occurrence of a contingency event during execution of the selected task,

the contingency event to provide an alternative task to the selected task; and

cause the one or more aerial robots to execute other respective maneuvers based on the alterative task causing the one or more aerial robots to execute maneuver commands using maneuver controls of the one or more aerial robots.

18. The computer-readable storage medium of claim 17 , wherein for an aerial robot of the one or more aerial robots, the apparatus is caused to at least:

access mission data including the behavior tree;

traverse the behavior tree; and

tick, based on the switch node being ticked, the trigger node to cause the trigger node to call on the leaf node library to execute the selected task and thereby cause the aerial robot to execute a respective maneuver, the trigger node returning the identifier.

19. The computer-readable storage medium of claim 18 , wherein, for the aerial robot of the one or more aerial robots, the apparatus is caused to:

tick the one of the action nodes by the switch node according to the identifier, the ticking of the one of the action nodes causing the one of the action nodes representing one of the others of the tasks to call on the leaf node library to execute the one of the others of the tasks and thereby cause the aerial robot to execute another of the respective maneuvers.

20. The computer-readable storage medium of claim 17 , wherein the tasks include a nominal sequence of selected tasks including the selected task and a next selected task, and an alternate task to be executed in place of the next selected task when a contingency event occurs during execution of the selected task, and

wherein the apparatus is caused to determine the behavior tree in which the others of the tasks represented by the action nodes include the next selected task and the alternate task.

21. The computer-readable storage medium of claim 20 , wherein for an aerial robot of the one or more aerial robots, the apparatus is caused to at least:

access mission data including the behavior tree;

traverse the behavior tree; and

tick, based on the switch node being ticked, the trigger node to cause the trigger node to call on the leaf node library to execute the selected task and thereby cause the aerial robot to execute a respective maneuver, the trigger node returning the identifier of the next selected task to the switch node absent occurrence of the contingency event.

22. The computer-readable storage medium of claim 21 , wherein for the aerial robot of the one or more aerial robots, the apparatus is caused to:

tick the one of the action nodes by the switch node according to the identifier, the ticking of the one of the action nodes causing the one of the action nodes representing the next selected task to call on the leaf node library to execute the next selected task and thereby cause the aerial robot to execute a third respective maneuver.

23. The computer-readable storage medium of claim 20 , wherein for an aerial robot of the one or more aerial robots, the apparatus is caused to at least:

access mission data including the behavior tree;

traverse the behavior tree;

when the switch node is ticked, tick the trigger node to cause the trigger node to call on the leaf node library to execute the selected task and thereby cause the aerial robot to execute a respective maneuver;

access mission data including the behavior tree in which the mission is modeled;

traverse the behavior tree;

tick, based on the switch node being ticked, the trigger node to cause the trigger node to call on the leaf node library to execute the selected task and thereby cause the aerial robot to execute a respective maneuver; and

detect occurrence of the contingency event during execution of the selected task, the trigger node returning the identifier of the alternate task to the switch node in response to the occurrence of the contingency event.

24. The computer-readable storage medium of claim 17 , wherein aerial robot of the one or more aerial robots, the apparatus is caused to:

dynamically replan the mission based on changes to the mission being made in real-time or near real-time as the mission is executed by the one or more aerial robots.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME TO READ AURORA FLIGHT SCIENCES CORPORATION PREVIOUSLY RECORDED AT REEL: 054908 FRAME: 0995. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 22, 2021
From: SAUNDERS, JEFFERY; STRINGER, BENJAMIN C.
To: AURORA FLIGHT SCIENCES CORPORATION, A SUBSIDIARY OF THE BOEING COMPANY
Reel/Frame 055734/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2021
From: SAUNDERS, JEFFERY; STRINGER, BENJAMIN C.
To: AURORA FLIGHT SCIENCES CORPORATION
Reel/Frame 054908/0995 →
Continuity (2)
Provisional Application 63059397 · Jul 31, 2020
Related Publication 20220035339A1 · Feb 3, 2022
References Cited (27)
US 7103447B2 · Di Profio · 2006 [cited by examiner]
US 8571745B2 · Pack · 2013 [cited by examiner]
US 9557742B2 · Paduano · 2017 [cited by applicant]
US 10453351B2 · Choi et al. · 2019 [cited by applicant]
US 10742738B2 · Rangarajan · 2020 [cited by examiner]
US 10878706B2 · Saunders · 2020 [cited by examiner]
US 11338434B2 · Tenorth · 2022 [cited by examiner]
US 11379287B2 · Neeter · 2022 [cited by examiner]
US 11429101B2 · Ryan · 2022 [cited by examiner]
US 11527165B2 · Sprengart · 2022 [cited by examiner]
US 12165529B2 · Durno · 2024 [cited by examiner]
US 20170019479A1 · Rangarajan et al. · 2017 [cited by applicant]
US 20190086894A1 · Tenorth · 2019 [cited by applicant]
US 20190095725A1 · Kalghatgi et al. · 2019 [cited by applicant]
US 20190324456A1 · Saunders · 2019 [cited by applicant]
US 20200050950A1 · Hadad Segev · 2020 [cited by examiner]
US 20200118446A1 · Saunders · 2020 [cited by applicant]
US 20220035339A1 · Saunders · 2022 [cited by examiner]
US 20220332344A1 · Matsunami · 2022 [cited by examiner]
Andreas Klockner. Behavior Trees for UAV Mission Management. In Matthias Horbach, editor, Informatik 2013: Informatik angepasst an Mensch, Organisation und Umwelt, vol. P-220 of GI-Edition-Lecture Notes in Informatics (… [cited by examiner]
Sprague et al., “Improving Modularity of AUV Control Systems Using Behavior Trees”, Cornell University Library, Nov. 2018, 6 pgs. [cited by applicant]
Menglu et al., “A Modular Mission Management System for Micro Aerial Vehicles”, 2018 IEEE 14th International Conference on Control and Automation (ICCA), IEEE, Jun. 2018, pp. 293-299. [cited by applicant]
European Search Report issued Dec. 8, 2021 in European Application No. 21187635.4. [cited by applicant]
Ogren, P. “Increasing Modularity of UAV Control Systms using Computer Game Behavior Trees”, American Institute of Aeornautics and Astronautics, Sep. 2012, pp. 1-8. [cited by applicant]
“Behavior tree (artificial intelligence, robotics and control)”, Wikipedia, Dec. 2020, retrieved from https://en.wikipedia.org/w/index.phptitle=Behavior_tree_(artificial_intelligence,_robotics_and_control) oldid=9949541… [cited by applicant]
Davies, J. et al., “Comparative Analysis of ACAS-Xu and DAIDALUS Detect-and-Avoid Systems”, NASA, Feb. 2018, pp. 1-36. [cited by applicant]
Munoz, C. et al., “DAIDALUS: Detect and Avoid Alerting Logic for Unmanned Systems”, NASA. Sep. 2015, pp. 1-12. [cited by applicant]