← Back to projects

Modular Mission Execution Framework

Behavior-tree based mission architecture for autonomous aerospace systems.

Aurora Flight Sciences • 2019–2021

C++ Behavior Trees Autonomy ROS
Modular Mission Execution Framework cover image

This framework allows engineers to create complex behaviors and missions by arranging nodes into a Behavior Tree (Colledanchise 2017).

My vision for this project was to create a mission framework that treated pieces of autonomous functionality as LEGO bricks: modular, reusable, and expressive in the number of ways individually simple elements can be combined into nuanced and complex behavior.

With this vision in mind, I pioneered the project myself, building an early prototype on weekends before making a pitch for funding to leadership. It later grew into a multi-engineer effort, produced a patent application, and is positioned to serve as the mission structure on several autonomous vehicles.

Beyond Behavior Trees

Behavior Trees provide strong re-usability and expressiveness but are more commonly documented in small robotics applications and the video game industry. The challenge was transferring these benefits to the scale and safety rigor of an aerospace company deploying a common mission framework across many autonomous vehicles.

By implementing Behavior Trees in a distributed environment, nodes can be created, tested, and certified as separate software entities, allowing exchange between projects regardless of implementation language. The design also introduced a structured parameter approach that allows nodes to share information systematically, improving re-use and reconfiguration.

Code

I created the initial prototype in Python for ease of use, then transferred the core execution module to C++ with a teammate. I also wrote the GUI in Python with PyQt.

Patent Application

While Behavior Trees themselves are an established autonomy paradigm, this work allowed several novel contributions captured in a patent application submitted in May 2020.