IP Library Granted Patent US 12,645,215
Granted Patent B2
US 12,645,215 · App. 18/408,719 · Granted Jun 2, 2026

Unmanned aerial vehicle modular command priority determination and filtering system

Inventors: Brett Michael Bethke (Millbrae, CA); Bernard J. Michini (Plymouth Meeting, PA); Jonathan Anders Lovegren (San Francisco, CA); Patrick Michael Bouffard (Albany, CA)
Assignee: Skydio, Inc.
G05D1/0016G05D1/0011G05D1/0061G05D1/0088G05D1/102G05D1/22G05D1/221G05D1/222G05D1/228G05D1/49G08G5/55G08G5/57B64U2101/26B64U2101/30B64U2201/10B64U2201/104B64U2201/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,645,215
App. No.
18/408,719
Granted
Jun 2, 2026
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for unmanned aerial vehicle modular command priority determination and filtering system. One of the methods includes enabling control of the UAV by a first control source that provides modular commands to the UAV, each modular command being a command associated with performance of one or more actions by the UAV. Modular commands from a second control source requesting control of the UAV are received. The second control source is determined to be in control of the UAV based on priority information associated with each control source. Control of the UAV is enabled by the second control source, and modular commands are implemented.

Claims (59)

1 . A method implemented by an unmanned aerial vehicle (UAV) comprising one or more processors, the method comprising:

receiving, by a source determination system included in the UAV and from a first control source that provides modular commands to the UAV, one or more first modular commands, the first modular commands associated with performance of one or more actions by the UAV;

receiving, by the source determination system included in the UAV and from a second control source that provides modular commands to the UAV, one or more second modular commands, the second modular commands associated with performance of one or more actions by the UAV;

determining, by executing, with the UAV's onboard processors, a non-transitory machine-implemented arbitration algorithm, and based on a policy profile stored in memory of the UAV and associated with the UAV's current mode of operation or mission state, a priority for the first and second control sources, the arbitration algorithm accessing sensor data and mission-state parameters;

filtering, by the source determination system, one or more of the received first or second modular commands prior to the commands reaching a flight-control stack, the filtering comprising executing, with the UAV's onboard processors, a modular-command gatekeeping engine that blocks modular commands failing arbitration criteria;

wherein the first control source and the second control source comprise independent software modules executing concurrently on the UAV, each configured to generate digitally encoded modular commands; and

enabling, by the source determination system, control of the UAV by the first or second control source by implementing one or more non-discarded first or second modular commands.

2 . The method of claim 1 , wherein filtering comprises:

receiving from the first control source repeated instances of the same modular command;

determining a number of repeated instances that the same modular command has been received; and

discarding some of the repeated instances of the same modular command if the number of instances of the repeated modular command exceeds a threshold value, wherein the threshold value is defined in the policy profile based on a mission context.

3 . The method of claim 1 , wherein filtering comprises:

receiving from the first control source a modular command to travel to a waypoint;

determining, based on telemetry data and a configuration profile, whether the UAV has sufficient battery capacity to travel to the waypoint; and

discarding the modular command if the UAV lacks sufficient battery capacity to travel to the waypoint.

4 . The method of claim 1 , wherein filtering comprises:

assigning the first control source to a command group based on operational phase; and

discarding commands received from a non-assigned source for the command group.

5 . The method of claim 1 , wherein the priority is associated with a trust level defined in a UAV-accessible policy profile, the trust level varying based on UAV operational context.

6 . The method of claim 1 , wherein each modular command is validated using a configuration file specifying UAV capabilities, limitations, or mission-specific constraints.

7 . The method of claim 1 , further comprising:

in response to a request from the first control source for a particular modular command, transmitting to the first control source one or more parameters required to generate a valid modular command.

8 . The method of claim 1 , wherein filtering comprises:

receiving a request from the first or second control source to cancel a modular command; and

discarding from implementation the modular command requested to be canceled.

9 . The method of claim 1 , wherein the first control source is an onboard application executing on the UAV.

10 . The method of claim 1 , further comprising:

maintaining, by the source determination system, a queue of modular commands tagged with source and priority metadata; and

executing the modular commands based on queue order and priority hierarchy.

11 . An apparatus, comprising:

one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media that, when executed by one or more processors of an unmanned vehicle (UV), direct the UV to:

receive, from a first control source executing as an independent software module on the UV, first modular commands associated with performance of one or more actions by the UV;

receive, from a second control source executing as an independent software module on the UV, second modular commands associated with performance of one or more actions by the UV;

determine, by executing machine-implemented arbitration algorithm and that accesses a policy profile store in UV memory and associated with a UV mode or mission state, a source priority for the first and second control sources using UV sensor data and mission-state parameters;

filter, via a modular-command gatekeeping engine executing on the UV and configured to block modular commands prior to reaching a flight-control stack, one or more of the first modular commands or second modular commands based on the determined source priority; and

enable control of the UV by implementing one or more non-discarded modular commands.

12 . The apparatus of claim 11 , wherein to filter, the program instructions, when executed by the one or more processors, further direct the UV to:

receive from the first control source repeated instances of the same modular command;

determine a number of repeated instances that the same modular command has been received; and

discard some of the repeated instances of the same modular command if the number of instances of the repeated modular command exceeds a threshold value, wherein the threshold value is defined in the policy profile based on a mission context.

13 . The apparatus of claim 11 , wherein to filter, the program instructions, when executed by the one or more processors, further direct the UV to:

receive from the first control source a modular command to travel to a waypoint;

determine, based on telemetry data and a configuration profile, whether the UV has sufficient battery capacity to travel to the waypoint; and

discard the modular command if the UV lacks sufficient battery capacity to travel to the waypoint.

14 . The apparatus of claim 11 , wherein to filter, the program instructions, when executed by the one or more processors, further direct the UV to:

assign the first control source to a command group based on operational phase; and

discard commands received from a non-assigned source for the command group.

15 . The apparatus of claim 11 , wherein the priority is associated with a trust level defined in a UV-accessible policy profile, the trust level varying based on UV operational context.

16 . The apparatus of claim 11 , wherein each modular command is validated using a configuration file specifying UV capabilities, limitations, or mission-specific constraints.

17 . The apparatus of claim 11 , wherein the program instructions, when executed by the one or more processors, further direct the UV to:

in response to a request from the first control source for a particular modular command, transmit to the first control source one or more parameters required to generate a valid modular command.

18 . The apparatus of claim 11 , wherein to filter, the program instructions, when executed by the one or more processors, further direct the UV to:

receive a request from the first or second control source to cancel a modular command; and

discard from implementation the modular command requested to be canceled.

19 . The apparatus of claim 11 , wherein the first control source is an onboard application executing on the UV.

20 . The apparatus of claim 11 , wherein the program instructions, when executed by the one or more processors, further direct the UV to:

maintain a queue of modular commands tagged with source and priority metadata; and

execute the modular commands based on queue order and priority hierarchy.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2024
From: BETHKE, BRETT MICHAEL; MICHINI, BERNARD J.; LOVEGREN, JONATHAN ANDERS; BOUFFARD, PATRICK MICHAEL
To: UNMANNED INNOVATION, INC.
Reel/Frame 066077/0874 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2024
From: UNMANNED INNOVATION, INC.
To: AIRWARE, LLC
Reel/Frame 066078/0299 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2024
From: AIRWARE, LLC
To: SKYDIO, INC.
Reel/Frame 066078/0360 →
Continuity (4)
Continuation 15583097 · May 1, 2017
Continuation 15132106 · Apr 18, 2016
Provisional Application 62315903 · Mar 31, 2016
Related Publication 20240219903A1 · Jul 4, 2024
References Cited (67)
US 6498698B1 · Golowka et al. · 2002 [cited by applicant]
US 6498968B1 · Bush · 2002 [cited by applicant]
US 8260479B2 · Christenson et al. · 2012 [cited by applicant]
US 8515609B2 · Mcandrew et al. · 2013 [cited by applicant]
US 8600602B1 · Mcandrew et al. · 2013 [cited by applicant]
US 9108729B2 · Duggan et al. · 2015 [cited by applicant]
US 9127908B2 · Miralles · 2015 [cited by applicant]
US 9221538B2 · Takahashi · 2015 [cited by examiner]
US 9256225B2 · Downey et al. · 2016 [cited by applicant]
US 9256994B2 · Downey et al. · 2016 [cited by applicant]
US 9273981B1 · Downey et al. · 2016 [cited by applicant]
US 9310221B1 · Downey et al. · 2016 [cited by applicant]
US 9311760B2 · Downey et al. · 2016 [cited by applicant]
US 9340283B1 · Downey et al. · 2016 [cited by applicant]
US 9403593B2 · Downey et al. · 2016 [cited by applicant]
US 9406237B2 · Downey et al. · 2016 [cited by applicant]
US 9412278B1 · Gong et al. · 2016 [cited by applicant]
US 9607522B2 · Downey et al. · 2017 [cited by applicant]
US 9658619B1 · Bethke et al. · 2017 [cited by applicant]
US 9693547B1 · Moitier · 2017 [cited by applicant]
US 9817396B1 · Takayama · 2017 [cited by examiner]
US 20060121418A1 · Demarco et al. · 2006 [cited by applicant]
US 20070244608A1 · Rath et al. · 2007 [cited by applicant]
US 20070252029A1 · Karem · 2007 [cited by applicant]
US 20100084513A1 · Gariepy et al. · 2010 [cited by applicant]
US 20100145556A1 · Christenson et al. · 2010 [cited by applicant]
US 20100198514A1 · Miralles · 2010 [cited by applicant]
US 20110035149A1 · Mcandrew et al. · 2011 [cited by applicant]
US 20110130913A1 · Duggan et al. · 2011 [cited by applicant]
US 20120091284A1 · Goodarzi · 2012 [cited by applicant]
US 20120123628A1 · Duggan et al. · 2012 [cited by applicant]
US 20120203450A1 · Meyer et al. · 2012 [cited by applicant]
US 20130311009A1 · Mcandrew et al. · 2013 [cited by applicant]
US 20140032034A1 · Raptopoulos et al. · 2014 [cited by applicant]
US 20140324253A1 · Duggan · 2014 [cited by examiner]
US 20150120094A1 · Kimchi et al. · 2015 [cited by applicant]
US 20150225081A1 · Stabler et al. · 2015 [cited by applicant]
US 20150234387A1 · Mullan · 2015 [cited by examiner]
US 20160026515A1 · Frey et al. · 2016 [cited by applicant]
US 20160068267A1 · Liu · 2016 [cited by examiner]
US 20160070260A1 · Levien et al. · 2016 [cited by applicant]
US 20160070264A1 · Hu · 2016 [cited by examiner]
US 20160071419A1 · Heilman · 2016 [cited by applicant]
US 20160071420A1 · Heilman · 2016 [cited by applicant]
US 20160114903A1 · Claudel et al. · 2016 [cited by applicant]
US 20160203723A1 · Kube · 2016 [cited by applicant]
US 20160285774A1 · Downey et al. · 2016 [cited by applicant]
US 20160288905A1 · Gong · 2016 [cited by examiner]
US 20160364004A1 · Ekandem · 2016 [cited by examiner]
US 20160370800A1 · Chau · 2016 [cited by examiner]
US 20170146995A1 · Stamatovski et al. · 2017 [cited by applicant]
US 20170205826A1 · Smith et al. · 2017 [cited by applicant]
US 20170233071A1 · Pilskalns · 2017 [cited by examiner]
US 20170255802A1 · Falk et al. · 2017 [cited by applicant]
US 20180074520A1 · Liu · 2018 [cited by examiner]
US 20180231972A1 · Woon et al. · 2018 [cited by applicant]
US 20180233054A1 · Woon et al. · 2018 [cited by applicant]
US 20190011921A1 · Wang · 2019 [cited by examiner]
CN 105676872A · 2016 [cited by applicant]
EP 3398022B1 · 2020 [cited by examiner]
ArduPilot Copter. User Documentation [online]. ArduPilot Dev Team, 2016 [retrieved on Aug. 31, 2025]. Retrieved from the Internet: <URL: https://web.archive.org/web/20160328035310/http://ardupilot.org/copter/docs/introd… [cited by examiner]
ArduPilot, “Mission Commands,” https://ardupilot.org/copter/docs/common-mavlink-mission-command-messages-mav_cmd.html, 35 pages, downloaded Jan. 31, 2023. [cited by applicant]
Ardupilot, “Mission Planner Overview,” https://ardupilot.org/planner/docs/mission-planner-overview.html, 12 pages, 2021. [cited by applicant]
International Application No. PCT/US2017/024595, International Search Report, Written Opinion, 9 pages, Jul. 21, 2017. [cited by applicant]
Meier, Lorenz, “MAVLink Micro Air Vehicle Communication Protocol,” https://github.com/mavlink/c_library_v1/blob/753b694df1901f17239a03b1f10333319636638/minimal/mavlink_msg_hearbeat.h>, 8 pages, Aug. 14, 2015. [cited by applicant]
Meier, Lorenz, “MAVLink Micro Air Vehicle Communication Protocol,” https://web.archive.org/web/20160330202712/http://qgroundcontrol.org/mavlink/start, 39 pages, Mar. 30, 2016. [cited by applicant]
QGroundControl, “QGroundControl User Guide,” https://docs.qgroundcontrol.com/master/en, 2 pages, downloaded Aug. 2, 2022. [cited by applicant]