Orchestration in heterogeneous drone swarms

A drone system for orchestration in heterogeneous drone swarms is configured to perform operations comprising receiving, at a lead drone of a drone swarm, from a candidate drone, a request to join the drone swarm; transmitting a swarm directive to the candidate drone; evaluating the candidate drone to determine whether the candidate drone is compatible with the swarm directive; and adjusting the swarm directive to accommodate the candidate drone when the candidate drone is compatible with the swarm directive, to add the candidate drone to the drone swarm.

TECHNICAL FIELD

Embodiments described herein generally relate to autonomous robots, and in particular, to systems and methods for orchestration in heterogeneous drone swarms.

BACKGROUND

Autonomous robots, which may also be referred to or include drones, unmanned aerial vehicles, and the like, are vehicles that operate partially or fully without human direction. Autonomous robots use geo-positioning for a variety of purposes including navigation, mapping, and surveillance.

DETAILED DESCRIPTION

Drones may be used in a variety of situations. In some cases, multiple drones may operate within shared airspace. Drones flown under independent direction in close proximity to one another are at risk of collision or interference. Independent drone control decreases the overall quantity of drones that could be flown in the same airspace.

For a given event that may attract drones and drone operators, such as a fire, a sporting event, a natural disaster, etc., having two or three drones operating in the same area may not cause issues. However, as the number of drones increase, at some point, a mid-air collision becomes nearly certain. What is needed is a mechanism to orchestrate and coordinate drone swarms. The orchestration provides a mechanism for drones to join or leave a swarm in a coordinated manner. Further, the orchestration enables manual or autonomous drone operation, based on various factors. Also, the orchestration provides each drone in the swarm the ability to observe the event in a fair manner. The orchestration also provides the ability to adapt to an evolving point of interest, or points of interest, as an event unfolds. For instance, in a forest fire, the drone swarm may be interested in a first hot spot, but later when another hot spot ignites, the drone swarm may be redirected to cover both the first and second hot spots, or move to the second hot spot. Additional aspects of drone orchestration are disclosed herein.

While the term “drone” is used within this document, it is understood that the usage applies broadly to any type of autonomous or semi-autonomous robots or vehicles, which may include un-crewed vehicles, driverless cars, robots, unmanned aerial vehicles, or the like.

FIG. 1is a block diagram illustrating a drone100, according to an embodiment. The drone100may include an airframe102, a landing support structure104, a flight mechanism106, and a control environment108. The airframe102may be made of polymers, metals, etc. Other components of the drone100may be secured to the airframe102.

The flight mechanism106may include mechanisms that propel the drone100through the air. For example, the flight mechanism106may include propellers, rotors, turbofans, turboprops, etc. The flight mechanism106may operably interface with avionics110. The avionics110may be part of the control environment108(as shown inFIG. 1) or as standalone components. The avionics110may include an accelerometer112, an altimeter114, a camera116, a compass118, gyroscopes120, and a global positioning system (GPS) receiver122.

The various components of the avionics110may be standalone components or may be part of an autopilot system or other avionics package. For example, the altimeter114and GPS receiver122may be part of an autopilot system that include one or more axes of control. For instance, the autopilot system may be a two-axis autopilot that may maintain a preset course and hold a preset altitude. The avionics110may be used to control in-flight orientation of the drone100. For example, the avionics110may be used to control orientation of the drone100about pitch, bank, and yaw axes while in flight. As the drone100approaches a power source, the drone100may need to maintain a particular angle, position, or orientation in order to facilitate coupling with the power source.

In many cases, the drone100operates autonomously within the parameters of some general protocol. For example, the drone100may be directed to deliver a package to a certain residential address or a particular geo-coordinate. The drone100may act to achieve this directive using whatever resources it may encounter along the way.

In other cases where the drone100does not operate in fully autonomous mode, the camera116may allow an operator to pilot the drone100. Non-autonomous, or manual flight, may be performed for a portion of the drone's operational duty cycle, while the rest of the duty cycle is performed autonomously.

The control environment108may also include applications124, a drone operating system (OS)126, and a trusted execution environment (TEE)128. The applications124may include services to be provided by the drone100. For example, the applications124may include a surveillance program that may utilize the camera116to perform aerial surveillance. The applications124may include a communications program that allows the drone100to act as a cellular repeater or a mobile Wi-Fi hotspot. Other applications may be used to operate or add additional functionality to the drone100. Applications may allow the drone100to monitor vehicle traffic, survey disaster areas, deliver packages, perform land surveys, perform in light shows, or other activities including those described elsewhere in this document. In many of these operations drones are to handle maneuvering around obstacles to locate a target.

The drone OS126may include drone controls130, a power management program132, and other components. The drone controls130may interface with the avionics110to control flight of the drone100. The drone controls130may optionally be a component of the avionics110, or be located partly in the avionics110and partly in the drone OS126. The power management program132may be used to manage battery use. For instance, the power management program132may be used to determine a power consumption of the drone100during a flight. For example, the drone100may need a certain amount of energy to fly to a destination and return to base. Thus, in order to complete a roundtrip mission, the drone100may need a certain battery capacity. As a result, the power management program132may cause the drone100to terminate a mission and return to base.

The TEE128may provide secured storage136, firmware, drivers and kernel138, a location processing program140, an altitude management program142, and a motion processing program146. The components of the TEE128may operate in conjunction with other components of the drone100. The altitude management program142may operate with the avionics110during flight.

The TEE128may provide a secure area for storage of components used to authenticate communications between drones or between a drone and a base station. For example, the TEE128may store SSL certificates or other security tokens. The data stored in the TEE128may be read-only data such that during operation the data cannot be corrupted or otherwise altered by malware or viruses.

The control environment108may include a central processing unit (CPU)148, a video/graphics card150, a battery152, a communications interface154, and a memory156. The CPU148may be used to execute operations, such as those described herein. The video/graphics card150may be used to process images or video captured by the camera116. The memory156may store data received by the drone100as well as programs and other software utilized by the drone100. For example, the memory156may store instructions that, when executed by the CPU148, cause the CPU148to perform operations such as those described herein. The communications interface154may include a radio, antenna, web server, wireless router, or other circuitry to provide wireless communication using Bluetooth, Wi-Fi, cellular, or other networks.

The battery152may provide power to the drone100. WhileFIG. 1shows a single battery, more than one battery may be utilized with drone100. WhileFIG. 1shows various components of the drone100, not all components shown inFIG. 1are required. More or fewer components may be used on a drone100according to the design and use requirements of the drone100.

The drone100may be an unmanned aerial vehicle (UAV), such as is illustrated inFIG. 1, in which case it includes one or more flight mechanisms (e.g., flight mechanism106) and corresponding control systems (e.g., control environment108). The drone may alternatively be a terrestrial drone, in which case it may include various wheels, tracks, legs, propellers, or other mechanisms to traverse over land. The drone may also be an aquatic drone, in which case it may use one of several types of marine propulsion mechanisms, such as a prop (propeller), jet drive, paddle wheel, whale-tail propulsion, or other type of propulsor.

Drones may be programmed or otherwise configured to perform a task of their own, such as to surveille an area by moving from waypoint to waypoint or by traversing a boundary of a geofence, for example. Other tasks may include traffic monitoring, news coverage, or the like. Additionally, a drone may be operated partially or fully by a human user.

A drone swarm is a group of two or more drones acting under common control. Drones in a drone swarm may move together in a tight group or may operate seemingly independent from one another while maintaining a cooperative flight plan.

A drone swarm includes a lead drone. The lead drone may be elected through various mechanisms. One example mechanism is a random time delay mechanism. Each drone that is a candidate for the leader position may initiate a random time delay using agreed upon parameters (e.g., random time between zero and ten seconds). A random value is calculated by each drone and the drones wait for the time represented by the random value. The first drone to awake take the leader role and broadcasts an identifier and other signaling to indicate that it is the leader. Other drones may abort their timers and join the swarm as subordinate drones.

The lead drone may use a communication circuit (e.g., communications interface154) and advertise a drone control channel. For instance, the lead drone may advertise a wireless access point or other beacon, which other drones may use to communicate with the lead drone. An application programming interface (API) may be provided over the advertised channel to allow onboarding drones to provide information about their capabilities and operation parameters.

FIGS. 2A-Care diagrams illustrating a sequence of an operational scenario, according to an embodiment. InFIG. 2A, a first drone200is operating in an operating theater around a target area202. An operating theater is a three-dimensional volume centered around the target area202. One may visualize the operating theater as a dome with the surface of the dome having a constant radius from the target area202(e.g., the dome is centered on the target area202). In other examples, the operating theater may be visualized as a tunnel, for instance when following a moving target area202. The target area202in this context may be the peloton in a bike race, a criminal fleeing police, an advancing fire line, or the like.

The target area202is an area of interest. The target area202may be related to an event, such as a fire, car accident, sporting event, natural disaster, or the like. It is understood that multiple targets of interest202may exist in a single operating theater.

InFIG. 2A, the target area202is a relatively stationary event. The first drone200may perform several iterations of a flight path204. However, in some cases the event may be moving. For example, the event may be a race car event or a marathon. In this situation, the flight path204may follow the moving event.

InFIG. 2B, a second drone250enters the operating theater and signals to the first drone200an intent to create or join a swarm. Because the first drone200is not yet operating in a swarm, the request from the second drone250is treated as a request to create a swarm. Operating in a swarm provides advantages for each drone (200,250). For instance, by coordinating movements, each drone (200,250) may be able to operate closer to the target area202while alleviating concerns of collisions or other interference.

The iterations may be averaged to obtain a normalized flight path206(illustrated as the bold dashed line). The normalized flight path206may be computed with an average, a weighted average, or by other calculations to determine a route that approximates the first drone's operation over a measurement period (e.g., the last ten minutes of operation). The normalized flight path206is a part of a swarm directive. The normalized flight path206may include a series of way points to provide pathing. The normalized flight path206may also include an average altitude, an altitude range, a variance of the path (e.g., how wide the normalized flight path206may vary), an average flight velocity while traversing the normalized flight path206, or other parameters to describe and define the normalized flight path206. The swarm directive is shared with the second drone250.

The second drone250may provide the first drone200its own objectives. The objectives of the second drone250are expressed as a desired flight path, which may be parameterized as a series of waypoints, a three-dimensional geofence, a target geolocation, a target altitude, or the like. The second drone250also provides its flight capabilities to the first drone200. The flight capabilities may include aspects such as minimum/maximum flight speed, maximum g-force, turning radius, min/max altitude, acceleration capabilities, battery capacity, etc.

A negotiation process may occur as the second drone250attempts to join the swarm. Aspects of the operational capacities of each drone in the proposed swarm may be evaluated to ensure that the swarm is able to continue with its swarm directive (e.g., flight path). In the continuing example illustrated inFIG. 2B, the second drone250has accepted the existing swarm directive and has adjusted its flight plan to comply with the existing normalized flight path206.

InFIG. 2C, a third drone290approaches the drone swarm of drones200and250. The third drone290may receive the advertisement from the lead drone (e.g., first drone200), and communicate its capabilities and desired flight path292. The third drone290may also receive the swarm directive from the first drone200. In this case, the desired flight path292is significantly different from the swarm directive (e.g., normalized flight path206).

A second negotiation process occurs with respect to the addition of the third drone290to the swarm. The negotiation process may involve all drones already in the swarm (e.g., drones200,250), or may be conducted solely by the lead drone (e.g., drone200). Depending on various factors, the drone swarm may adjust its flight path to conform to the desired flight path292, the third drone290may adjust its operational parameters to adopt the drone swarm's directive (e.g., normalized flight path206), or some new derived path may be used, where the derived path accommodates both the swarm directive (normalized flight path206) and the desired flight path292.

As additional drones seek to join the drone swarm, similar information exchange and negotiation processes are used to determine whether to allow the new drone is added to the swarm and whether the swarm adjusts its swarm directive. Similarly, as drones leave a swarm, the remaining drones in the swarm may negotiate a new swarm directive based on the objectives of the remaining drones.

FIG. 3is a flowchart illustrating a process300for swarm management, according to an embodiment. A drone enters an area where another drone is already operating (e.g., operation theater) (state302). A swarm directive is advertised using a localized broadcast from a swarm leader declaring that a swarm exists and the properties of the swarm directive (e.g., altitude, position, radius, flight path, etc.). At decision block304, it is determined whether a swarm directive exists. If there is no swarm directive, then the indication is that there is no existing swarm operating in the area. There may be a swarm directive advertised that does not require a swarm.

For example, a drone may enter an area where other drones are present. The intent of those drone operators may be that they want to operate in close proximity but without a swarm. Drones operating in close proximity without a swarm may be involved in gameplay such as a racing or an obstacle course or other activities that do not require a swarm. In such a case, it will be useful to indicate to a drone entering the spatial area occupied by those drones that a swarm is not intended.

At decision block306, it is determined whether the swarm directive requires a swarm. If not, then it is determined at decision block308, whether the new drone wants to join. If the new drone does not want to join the swarm, then the flow ends.

If the new drone wants to join or create a swarm, then it broadcasts an intent to join (operation310). If there is a swarm, then at decision block312, it is determined whether the swarm is accepting new drones. If the swarm is not accepting new drones into the swarm, then the swarm's boundary and path information is provided to the new drone (operation314). Sharing this information may allow for the new drone to operate in a manner that does not interfere with the existing swarms flight path or other operations.

If the swarm is accepting new drones, then the new drone and the swarm exchange information (operation316). The swarm may provide the swarm directive along with additional information about the swarm, such as operating characteristics, policies, and the like. The new drone may provide information about the drone's capabilities, a manifest, a desired flight plan, or the like. At decision block318, it is determined whether the new drone has provided any performance information, such as a minimum or maximum altitude, max g-force, velocity range, acceleration characteristics, and other operational parameters. If the new drone does not or cannot provide such performance information, then the swarm may observe the new drone (operation320). For instance, using onboard sensors of some or all of the drones in the swarm, the swarm leader may obtain information about the new drone's flight characteristics. A machine learning algorithm may be used to classify the new drone's operational characteristics to determine limits or abilities of the new drone.

At decision block322, it is determined whether the new drone has provided any objectives, for examples, in the form of a flight plan. If the new drone does not or cannot provide objectives, then the swarm may observe the new drone (operation320) to determine an objective. For example, the swarm may observe a flight path that the new drone consistently or repeatedly uses and derive an objective based on the observed behavior of the new drone.

If the new drone provides performance information or an objective, then the performance information is received (operation324) or the objective is received (operation326).

Using the information of an explicit or derived performance capabilities of the new drone, and the explicit or derived objective of the new drone, the drone swarm adjusts the swarm directive to accommodate the new drone's capabilities and objectives (operation328). Adjusting the swarm directive may include various operations, such as creating a new flight plan for the drone that increases or decreases average flight speed, adjusts banking or other aerial maneuvers, alters the flight plan to provide additional coverage of another event that may be happening in or near the operation theater, or the like.

The swarm performance is observed or monitored by the drone swarm (operation330). For instance, the drone swarm may not be adhering to the flight plan (drone swarm directive) because one or more drones are unable to maintain performance. If a drone is not performing to a standard reflected in the swarm directive, then the drone may be kicked out of the swarm (decision operation332). When a drone leaves, intentionally or unintentionally, the swarm directive may be adjusted for any remaining drones (operation328). If, after a drone has left either intentionally or not, it is determined whether there are any drones left in the drone swarm (decision block334). If there is only one drone left, or all drones abandon the swarm, then the flow ends. If there are still two or more drones operating together—the minimum number of drones to constitute a drone swarm—then the swarm directive is adjusted for any remaining drones (operation328).

Multiple swarms may operate near one another. Multiple swarms may operate to observe the same event and coordinate between each other from a leader drone of one swarm to a leader drone of another swarm. The leader drones may negotiate flight paths (swarm directives) that do not conflict or interfere with one another. For instance, one drone swarm may operate a lower altitude than another to avoid aerial collisions. Swarms may merge or split, depending on the overall capabilities of drones in a swarm, the objectives of the drones, environmental factors, or the like. Swarms may merge or split through a coordinated effort between lead drones. Swarms may also merge or split through a more organic process as individual drones opt to leave one swarm to join another.

FIG. 4is a flowchart illustrating a process400for orchestration in heterogeneous drone swarms, according to an embodiment. At402, a lead drone of a drone swarm receives, from a candidate drone, a request to join the drone swarm.

At404, a swarm directive is transmitted to the candidate drone. In an embodiment, the swarm directive comprises a flight path of the drone swarm.

At406, the candidate drone is evaluated to determine whether the candidate drone is compatible with the swarm directive. In an embodiment, evaluating the candidate drone includes transmitting to the candidate drone, a request for a drone profile and receiving the drone profile from the candidate drone. In a further embodiment, the drone profile includes operational characteristics of the candidate drone. In a related embodiment, the operational characteristics include a maximum g-force. In another embodiment, the operational characteristics include a maximum airspeed. In another embodiment, the operational characteristics include a maximum altitude.

In an embodiment, evaluating the candidate drone includes transmitting to the candidate drone, a request for a drone objective and receiving the drone objective from the candidate drone. In a further embodiment, the drone objective includes a target operational theater. In a related embodiment, the drone objective includes a target flight path.

In an embodiment, evaluating the candidate drone includes observing the candidate drone to determine an estimated drone profile. In a further embodiment, the estimated drone profile includes operational characteristics of the candidate drone. In a related embodiment, the operational characteristics include a maximum g-force. In another embodiment, the operational characteristics include a maximum airspeed. In another embodiment, the operational characteristics include a maximum altitude.

In a further embodiment, observing the candidate drone includes obtaining image data about the candidate drone and analyzing the image data to determine flight characteristics or drone capabilities of the candidate drone.

In an embodiment, evaluating the candidate drone includes observing the candidate drone to determine an estimated drone objective. In a further embodiment, the estimated drone objective includes a target operational theater. In a related embodiment, the estimated drone objective includes a target flight path. In a further embodiment, observing the candidate drone includes obtaining image data about the candidate drone and analyzing the image data to determine a flight path of the candidate drone.

At408, the swarm directive is adjusted to accommodate the candidate drone when the candidate drone is compatible with the swarm directive, to add the candidate drone to the drone swarm. In an embodiment, adjusting the swarm directive to accommodate the candidate drone includes modifying the swarm directive based on at least one of: an operational capability of the candidate drone or an proposed flight path of the candidate drone.

A processor subsystem may be used to execute the instruction on the machine-readable medium. The processor subsystem may include one or more processors, each with one or more cores. Additionally, the processor subsystem may be disposed on one or more physical devices. The processor subsystem may include one or more specialized processors, such as a graphics processing unit (GPU), a digital signal processor (DSP), a field programmable gate array (FPGA), or a fixed function processor.

Circuitry or circuits, as used in this document, may comprise, for example, singly or in any combination, hardwired circuitry, programmable circuitry such as computer processors comprising one or more individual instruction processing cores, state machine circuitry, and/or firmware that stores instructions executed by programmable circuitry. The circuits, circuitry, or modules may, collectively or individually, be embodied as circuitry that forms part of a larger system, for example, an integrated circuit (IC), system on-chip (SoC), desktop computers, laptop computers, tablet computers, servers, smart phones, etc.

Example computer system700includes at least one processor702(e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both, processor cores, compute nodes, etc.), a main memory704and a static memory706, which communicate with each other via a link708(e.g., bus). The computer system700may further include a video display unit710, an alphanumeric input device712(e.g., a keyboard), and a user interface (UI) navigation device714(e.g., a mouse). In one embodiment, the video display unit710, input device712and UI navigation device714are incorporated into a touch screen display. The computer system700may additionally include a storage device716(e.g., a drive unit), a signal generation device718(e.g., a speaker), a network interface device720, and one or more sensors (not shown), such as a global positioning system (GPS) sensor, compass, accelerometer, gyrometer, magnetometer, or other sensor.

The storage device716includes a machine-readable medium722on which is stored one or more sets of data structures and instructions724(e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions724may also reside, completely or at least partially, within the main memory704, static memory706, and/or within the processor702during execution thereof by the computer system700, with the main memory704, static memory706, and the processor702also constituting machine-readable media.

Additional Notes & Examples

Example 1 is a drone system for orchestration in heterogeneous drone swarms, the system comprising: a processor subsystem; and memory comprising instructions, which when executed by the processor subsystem, cause the processor subsystem to perform the operations comprising: receiving, at a lead drone of a drone swarm, from a candidate drone, a request to join the drone swarm; transmitting a swarm directive to the candidate drone; evaluating the candidate drone to determine whether the candidate drone is compatible with the swarm directive; and adjusting the swarm directive to accommodate the candidate drone when the candidate drone is compatible with the swarm directive, to add the candidate drone to the drone swarm.

In Example 2, the subject matter of Example 1 includes, wherein the swarm directive comprises a flight path of the drone swarm.

In Example 3, the subject matter of Examples 1-2 includes, wherein the instructions for evaluating the candidate drone comprise instructions to perform operations comprising: transmitting to the candidate drone, a request for a drone profile; and receiving the drone profile from the candidate drone.

In Example 4, the subject matter of Example 3 includes, wherein the drone profile includes operational characteristics of the candidate drone.

In Example 5, the subject matter of Example 4 includes, wherein the operational characteristics include a maximum g-force.

In Example 6, the subject matter of Examples 4-5 includes, wherein the operational characteristics include a maximum airspeed.

In Example 7, the subject matter of Examples 4-6 includes, wherein the operational characteristics include a maximum altitude.

In Example 8, the subject matter of Examples 1-7 includes, wherein the instructions for evaluating the candidate drone comprise instructions to perform operations comprising: transmitting to the candidate drone, a request for a drone objective; and receiving the drone objective from the candidate drone.

In Example 9, the subject matter of Example 8 includes, wherein the drone objective includes a target operational theater.

In Example 10, the subject matter of Examples 8-9 includes, wherein the drone objective includes a target flight path.

In Example 11, the subject matter of Examples 1-10 includes, wherein the instructions for evaluating the candidate drone comprise instructions to perform operations comprising observing the candidate drone to determine an estimated drone profile.

In Example 12, the subject matter of Example 11 includes, wherein the estimated drone profile includes operational characteristics of the candidate drone.

In Example 13, the subject matter of Example 12 includes, wherein the operational characteristics include a maximum g-force.

In Example 14, the subject matter of Examples 12-13 includes, wherein the operational characteristics include a maximum airspeed.

In Example 15, the subject matter of Examples 12-14 includes, wherein the operational characteristics include a maximum altitude.

In Example 16, the subject matter of Examples 11-15 includes, wherein the instructions for observing the candidate drone comprise instructions to perform operations comprising: obtaining image data about the candidate drone; and analyzing the image data to determine flight characteristics or drone capabilities of the candidate drone.

In Example 17, the subject matter of Examples 1-16 includes, wherein the instructions for evaluating the candidate drone comprise instructions to perform operations comprising observing the candidate drone to determine an estimated drone objective.

In Example 18, the subject matter of Example 17 includes, wherein the estimated drone objective includes a target operational theater.

In Example 19, the subject matter of Examples 17-18 includes, wherein the estimated drone objective includes a target flight path.

In Example 20, the subject matter of Examples 17-19 includes, wherein the instructions for observing the candidate drone comprise instructions to perform operations comprising: obtaining image data about the candidate drone; and analyzing the image data to determine a flight path of the candidate drone.

In Example 21, the subject matter of Examples 1-20 includes, wherein the instructions for adjusting the swarm directive to accommodate the candidate drone comprise instructions to perform operations comprising modifying the swarm directive based on at least one of: an operational capability of the candidate drone or an proposed flight path of the candidate drone.

Example 22 is a method of orchestration in heterogeneous drone swarms, the method comprising: receiving, at a lead drone of a drone swarm, from a candidate drone, a request to join the drone swarm; transmitting a swarm directive to the candidate drone; evaluating the candidate drone to determine whether the candidate drone is compatible with the swarm directive; and adjusting the swarm directive to accommodate the candidate drone when the candidate drone is compatible with the swarm directive, to add the candidate drone to the drone swarm.

In Example 23, the subject matter of Example 22 includes, wherein the swarm directive comprises a flight path of the drone swarm.

In Example 24, the subject matter of Examples 22-23 includes, wherein evaluating the candidate drone comprises: transmitting to the candidate drone, a request for a drone profile; and receiving the drone profile from the candidate drone.

In Example 25, the subject matter of Example 24 includes, wherein the drone profile includes operational characteristics of the candidate drone.

In Example 26, the subject matter of Example 25 includes, wherein the operational characteristics include a maximum g-force.

In Example 27, the subject matter of Examples 25-26 includes, wherein the operational characteristics include a maximum airspeed.

In Example 28, the subject matter of Examples 25-27 includes, wherein the operational characteristics include a maximum altitude.

In Example 29, the subject matter of Examples 22-28 includes, wherein evaluating the candidate drone comprises: transmitting to the candidate drone, a request for a drone objective; and receiving the drone objective from the candidate drone.

In Example 30, the subject matter of Example 29 includes, wherein the drone objective includes a target operational theater.

In Example 31, the subject matter of Examples 29-30 includes, wherein the drone objective includes a target flight path.

In Example 32, the subject matter of Examples 22-31 includes, wherein evaluating the candidate drone comprises observing the candidate drone to determine an estimated drone profile.

In Example 33, the subject matter of Example 32 includes, wherein the estimated drone profile includes operational characteristics of the candidate drone.

In Example 34, the subject matter of Example 33 includes, wherein the operational characteristics include a maximum g-force.

In Example 35, the subject matter of Examples 33-34 includes, wherein the operational characteristics include a maximum airspeed.

In Example 36, the subject matter of Examples 33-35 includes, wherein the operational characteristics include a maximum altitude.

In Example 37, the subject matter of Examples 32-36 includes, wherein observing the candidate drone comprises: obtaining image data about the candidate drone; and analyzing the image data to determine flight characteristics or drone capabilities of the candidate drone.

In Example 38, the subject matter of Examples 22-37 includes, wherein evaluating the candidate drone comprises observing the candidate drone to determine an estimated drone objective.

In Example 39, the subject matter of Example 38 includes, wherein the estimated drone objective includes a target operational theater.

In Example 40, the subject matter of Examples 38-39 includes, wherein the estimated drone objective includes a target flight path.

In Example 41, the subject matter of Examples 38-40 includes, wherein observing the candidate drone comprises: obtaining image data about the candidate drone; and analyzing the image data to determine a flight path of the candidate drone.

In Example 42, the subject matter of Examples 22-41 includes, wherein adjusting the swarm directive to accommodate the candidate drone comprises modifying the swarm directive based on at least one of: an operational capability of the candidate drone or an proposed flight path of the candidate drone.

Example 43 is at least one machine-readable medium including instructions, which when executed by a machine, cause the machine to perform operations of any of the methods of Examples 22-42.

Example 44 is an apparatus comprising means for performing any of the methods of Examples 22-42.

Example 45 is an apparatus for orchestration in heterogeneous drone swarms, the apparatus comprising: means for receiving, at a lead drone of a drone swarm, from a candidate drone, a request to join the drone swarm; means for transmitting a swarm directive to the candidate drone; means for evaluating the candidate drone to determine whether the candidate drone is compatible with the swarm directive; and means for adjusting the swarm directive to accommodate the candidate drone when the candidate drone is compatible with the swarm directive, to add the candidate drone to the drone swarm.

In Example 46, the subject matter of Example 45 includes, wherein the swarm directive comprises a flight path of the drone swarm.

In Example 47, the subject matter of Examples 45-46 includes, wherein the means for evaluating the candidate drone comprise: means for transmitting to the candidate drone, a request for a drone profile; and means for receiving the drone profile from the candidate drone.

In Example 48, the subject matter of Example 47 includes, wherein the drone profile includes operational characteristics of the candidate drone.

In Example 49, the subject matter of Example 48 includes, wherein the operational characteristics include a maximum g-force.

In Example 50, the subject matter of Examples 48-49 includes, wherein the operational characteristics include a maximum airspeed.

In Example 51, the subject matter of Examples 48-50 includes, wherein the operational characteristics include a maximum altitude.

In Example 52, the subject matter of Examples 45-51 includes, wherein evaluating the candidate drone comprises: transmitting to the candidate drone, a request for a drone objective; and receiving the drone objective from the candidate drone.

In Example 53, the subject matter of Example 52 includes, wherein the drone objective includes a target operational theater.

In Example 54, the subject matter of Examples 52-53 includes, wherein the drone objective includes a target flight path.

In Example 55, the subject matter of Examples 45-54 includes, wherein the means for evaluating the candidate drone comprise means for observing the candidate drone to determine an estimated drone profile.

In Example 56, the subject matter of Example 55 includes, wherein the estimated drone profile includes operational characteristics of the candidate drone.

In Example 57, the subject matter of Example 56 includes, wherein the operational characteristics include a maximum g-force.

In Example 58, the subject matter of Examples 56-57 includes, wherein the operational characteristics include a maximum airspeed.

In Example 59, the subject matter of Examples 56-58 includes, wherein the operational characteristics include a maximum altitude.

In Example 60, the subject matter of Examples 55-59 includes, wherein the means for observing the candidate drone comprise: means for obtaining image data about the candidate drone; and means for analyzing the image data to determine flight characteristics or drone capabilities of the candidate drone.

In Example 61, the subject matter of Examples 45-60 includes, wherein the means for evaluating the candidate drone comprise means for observing the candidate drone to determine an estimated drone objective.

In Example 62, the subject matter of Example 61 includes, wherein the estimated drone objective includes a target operational theater.

In Example 63, the subject matter of Examples 61-62 includes, wherein the estimated drone objective includes a target flight path.

In Example 64, the subject matter of Examples 61-63 includes, wherein the means for observing the candidate drone comprise: means for obtaining image data about the candidate drone; and means for analyzing the image data to determine a flight path of the candidate drone.

In Example 65, the subject matter of Examples 45-64 includes, wherein the means for adjusting the swarm directive to accommodate the candidate drone comprise means for modifying the swarm directive based on at least one of: an operational capability of the candidate drone or an proposed flight path of the candidate drone.

Example 66 is at least one machine-readable medium including instructions for orchestration in heterogeneous drone swarms, the instructions when executed by a machine, cause the machine to perform the operations comprising: receiving, at a lead drone of a drone swarm, from a candidate drone, a request to join the drone swarm; transmitting a swarm directive to the candidate drone; evaluating the candidate drone to determine whether the candidate drone is compatible with the swarm directive; and adjusting the swarm directive to accommodate the candidate drone when the candidate drone is compatible with the swarm directive, to add the candidate drone to the drone swarm.

In Example 67, the subject matter of Example 66 includes, wherein the swarm directive comprises a flight path of the drone swarm.

In Example 68, the subject matter of Examples 66-67 includes, wherein the instructions for evaluating the candidate drone comprise instructions for: transmitting to the candidate drone, a request for a drone profile; and receiving the drone profile from the candidate drone.

In Example 69, the subject matter of Example 68 includes, wherein the drone profile includes operational characteristics of the candidate drone.

In Example 70, the subject matter of Example 69 includes, wherein the operational characteristics include a maximum g-force.

In Example 71, the subject matter of Examples 69-70 includes, wherein the operational characteristics include a maximum airspeed.

In Example 72, the subject matter of Examples 69-71 includes, wherein the operational characteristics include a maximum altitude.

In Example 73, the subject matter of Examples 66-72 includes, wherein the instructions for evaluating the candidate drone comprise instructions for: transmitting to the candidate drone, a request for a drone objective; and receiving the drone objective from the candidate drone.

In Example 74, the subject matter of Example 73 includes, wherein the drone objective includes a target operational theater.

In Example 75, the subject matter of Examples 73-74 includes, wherein the drone objective includes a target flight path.

In Example 76, the subject matter of Examples 66-75 includes, wherein the instructions for evaluating the candidate drone comprise instructions for observing the candidate drone to determine an estimated drone profile.

In Example 77, the subject matter of Example 76 includes, wherein the estimated drone profile includes operational characteristics of the candidate drone.

In Example 78, the subject matter of Example 77 includes, wherein the operational characteristics include a maximum g-force.

In Example 79, the subject matter of Examples 77-78 includes, wherein the operational characteristics include a maximum airspeed.

In Example 80, the subject matter of Examples 77-79 includes, wherein the operational characteristics include a maximum altitude.

In Example 81, the subject matter of Examples 76-80 includes, wherein the instructions for observing the candidate drone comprise instructions for: obtaining image data about the candidate drone; and analyzing the image data to determine flight characteristics or drone capabilities of the candidate drone.

In Example 82, the subject matter of Examples 66-81 includes, wherein the instructions for evaluating the candidate drone comprise instructions for observing the candidate drone to determine an estimated drone objective.

In Example 83, the subject matter of Example 82 includes, wherein the estimated drone objective includes a target operational theater.

In Example 84, the subject matter of Examples 82-83 includes, wherein the estimated drone objective includes a target flight path.

In Example 85, the subject matter of Examples 82-84 includes, wherein the instructions for observing the candidate drone comprise instructions for: obtaining image data about the candidate drone; and analyzing the image data to determine a flight path of the candidate drone.

In Example 86, the subject matter of Examples 66-85 includes, wherein the instructions for adjusting the swarm directive to accommodate the candidate drone comprise instructions for: modifying the swarm directive based on at least one of: an operational capability of the candidate drone or an proposed flight path of the candidate drone.

Example 87 is at least one machine-readable medium including instructions that, when executed by processing circuitry, cause the processing circuitry to perform operations to implement of any of Examples 1-86.

Example 88 is an apparatus comprising means to implement of any of Examples 1-86.

Example 89 is a system to implement of any of Examples 1-86.

Example 90 is a method to implement of any of Examples 1-86.