Unmanned aerial vehicle modular command priority determination and filtering system
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.
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.