# US 12,372,944 B2 · Causing a robot to execute a mission using a behavior tree and a leaf node library

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,372,944 B2
- Document ID: US12372944B2
- Status: Granted
- Kind: B2
- Application number: 17/148,093
- Filed: 2021-01-13
- Published: 2022-02-03
- Granted: 2025-07-29
- Earliest claimed: 2020-07-31
- Assignees: Aurora Flight Sciences Corporation, a subsidiary of The Boeing Company
- Applicants: Aurora Flight Sciences Corporation, A Subsidiary of the Boeing Company
- Inventors: Jeffery Saunders; Benjamin C. Stringer
- Web page: https://patentgrep.com/patent/US12372944B2

## CPC

- G05B 19/4155: characterised by program execution, i.e. part program or machine function execution, e.g. selection of a program
- G05B 19/042: using digital processors (G05B19/05 takes precedence)
- G05D 1/0088: {characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours (using knowledge based models G06N5/00)}
- G05D 1/0291: {Fleet control (monitoring fleets in traffic control systems for road vehicles G08G1/127, G08G1/127)}
- G05D 1/60: Intended control result
- G05D 1/695: for maintaining a fixed relative position of the vehicles, e.g. for convoy travelling or formation flight
- G06N 3/008: based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G05B 2219/33051: BBC behavior based control, stand alone module, cognitive, independent agent
- G05B 2219/45071: Aircraft, airplane, ship cleaning manipulator, paint stripping
- G05B 2219/50391: Robot
- G05D 2101/10: using artificial intelligence [AI] techniques
- G05D 2109/20: Aircraft, e.g. drones
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G05D: SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 2)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 4)

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.

### Claim 6 (depends on 5)

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.

### Claim 7 (depends on 4)

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.

### Claim 8 (depends on 1)

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.

### Claim 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.

### Claim 10 (depends on 9)

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.

### Claim 11 (depends on 10)

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.

### Claim 12 (depends on 9)

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.

### Claim 13 (depends on 12)

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.

### Claim 14 (depends on 13)

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.

### Claim 15 (depends on 12)

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.

### Claim 16 (depends on 9)

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.

### Claim 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.

### Claim 18 (depends on 17)

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.

### Claim 19 (depends on 18)

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.

### Claim 20 (depends on 17)

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.

### Claim 21 (depends on 20)

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.

### Claim 22 (depends on 21)

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.

### Claim 23 (depends on 20)

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.

### Claim 24 (depends on 17)

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.
