System and method for managing a platoon of unmanned aerial vehicles (UAVs).

The system improves UAV safety and efficiency by forming coordinated platoons based on intent messages, addressing collision risks and enhancing air traffic management.

JP2026097746APending Publication Date: 2026-06-16TOYOTA JIDOSHA KK

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
TOYOTA JIDOSHA KK
Filing Date
2025-11-14
Publication Date
2026-06-16

AI Technical Summary

Technical Problem

The increasing number of UAVs in airspace leads to potential collisions with static and dynamic objects, posing safety and efficiency challenges, especially in urban environments.

Method used

A system and method for forming and managing a platoon of UAVs by receiving intent messages, grouping them into coordinated formations based on air corridors and planned paths, and generating coordinated flight paths and parameters using a processor and memory system.

Benefits of technology

Enhances safety and efficiency by reducing air resistance, energy consumption, and collision risks, while improving air traffic management and capacity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026097746000001_ABST
    Figure 2026097746000001_ABST
Patent Text Reader

Abstract

A system and method for managing a platoon of unmanned aerial vehicles (UAVs). [Solution] The systems, methods, and other embodiments described herein relate to the formation and management of platoons or formations of unmanned aerial vehicles (UAVs). In one embodiment, the method includes receiving intent messages from a plurality of UAVs, each indicating an air corridor and planned path for each UAV. The method also includes grouping a group of UAVs into a platoon based on the air corridors and planned paths in the plurality of intent messages, and generating a coordinated flight path and coordinated flight parameters for the platoon. The method also includes flying the group of UAVs based on the coordinated flight path and coordinated flight parameters.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The subject matter described herein generally relates to unmanned aerial vehicles (UAVs), and more specifically, to forming and managing a formation of UAVs.

Background Art

[0002] An unmanned aerial vehicle (UAV) refers to an aircraft that does not include a pilot on board. For example, a UAV can be autonomously operated by a computer system with little or no input from a ground-based operator. A UAV may be semi-autonomous, meaning that specific flight operations by a ground-based operator are complemented by the autonomous operation of an autonomous flight module. In any case, a UAV is an aircraft in which a pilot is not physically present on or inside the aircraft. Such an aircraft may include passengers. However, in a UAV, the passengers do not operate the aircraft. A UAV can take various forms, including drones, vertical takeoff and landing vehicles (VTOLs), and electric vertical takeoff and landing vehicles (eVTOLs).

[0003] UAVs are being used more and more widely in society. For example, some organizations are experimenting with using UAVs as vehicles for delivering goods. As another example, similar to autonomous vehicles, autonomous UAVs may transport passengers from one location to another. In the not-too-distant future, UAVs may fly in large numbers in the airspace of major metropolitan areas.

Summary of the Invention

[0004] In one embodiment, an exemplary system and method relate to a technique for improving the flight of UAVs by grouping a plurality of UAVs into a formation.

[0005] In one embodiment, a UAV platoon system for forming and managing a platoon of UAVs is disclosed. The UAV platoon system includes a processor and memory communicably coupled to the processor. The memory stores instructions that, when executed by the processor, cause the processor to receive intent messages from a plurality of UAVs, each containing an air corridor and planned path for each UAV. The machine-readable instructions also include instructions for (1) grouping a group of UAVs into a platoon based on the air corridors and planned paths in the plurality of intent messages, and (2) generating a coordinated flight path and coordinated flight parameters for the platoon. The machine-readable instructions also include instructions for flying the group of UAVs based on the coordinated flight path and coordinated flight parameters.

[0006] In one embodiment, a non-temporary computer-readable recording medium is disclosed for forming and managing a platoon of UAVs, and which, when executed by one or more processors, includes instructions causing one or more processors to perform one or more functions. The instructions include instructions for receiving intent messages from a plurality of UAVs, including air corridors and planned routes for each UAV. The instructions also include instructions for (1) grouping a group of UAVs into a platoon based on the air corridors and planned routes in the plurality of intent messages, and (2) generating coordinated flight paths and coordinated flight parameters for the platoon. The instructions also include instructions for flying a group of UAVs based on the coordinated flight paths and coordinated flight parameters.

[0007] In one embodiment, a method for forming and managing a platoon of UAVs is disclosed. In one embodiment, the method includes receiving intent messages from a plurality of UAVs, including air corridors and planned routes for each UAV. The method also includes (1) grouping a group of UAVs into a platoon based on the air corridors and planned routes in the plurality of intent messages, and (2) generating a coordinated flight path and coordinated flight parameters for the platoon. The method also includes flying the group of UAVs based on the coordinated flight path and coordinated flight parameters. [Brief explanation of the drawing]

[0008] The accompanying drawings are incorporated into and constitute part of this specification and illustrate various systems, methods, and other embodiments of the disclosure. It should be understood that the boundaries of elements shown in the drawings (e.g., boxes, groups of boxes, or other shapes) represent one embodiment of the boundary. In some embodiments, one element may be designed as multiple elements, or multiple elements may be designed as one element. In some embodiments, an element shown as an internal component of another element may be implemented as an external component, and vice versa. Furthermore, elements may not be drawn to scale. [Figure 1] Figure 1 shows one embodiment of a UAV in which the systems and methods disclosed herein may be implemented. [Figure 2] Figure 2 shows one embodiment of a UAV platoon system associated with forming and managing a platoon of UAVs. [Figure 3] Figure 3 shows one embodiment of the UAV platoon system shown in Figure 2 in a cloud computing environment. [Figure 4] Figure 4 shows one embodiment of the UAV platoon system shown in Figure 2 in a peer-to-peer computing environment. [Figure 5] Figure 5 shows the formation and management of a UAV platoon. [Figure 6] Figure 6 shows a flowchart of one embodiment of a method associated with forming and managing a platoon of UAVs. [Figure 7] Figure 7 shows a flowchart of one embodiment of a method associated with forming and managing a platoon of UAVs. [Modes for carrying out the invention]

[0009] Systems, methods, and other embodiments relating to improving the control and use of UAVs are disclosed herein. As described above, safe and appropriate UAV implementations offer useful and innovative possibilities. For example, advancements in UAVs can provide additional means for UAVs to converge in the airspace and connect people in different geographical areas. For instance, one can imagine unmanned eVTOLs flying over large metropolitan areas without relying on complex and densely populated ground road networks, transporting products and people across vast and difficult-to-navigate regions.

[0010] However, because the existence and use of UAVs are relatively new, several issues regarding their safe and reliable use need to be addressed. For example, as the number of UAVs increases, the likelihood of collisions between UAVs also increases. Furthermore, when used in urban environments, UAVs are at increased risk of colliding with static objects such as buildings and infrastructure, as well as dynamic objects such as other aircraft, ground vehicles, and pedestrians. Therefore, this specification aims to improve the safety and efficiency of eVTOLs, VTOLs, drones, and other UAVs and to promote the wider implementation of their capabilities.

[0011] Specifically, this specification describes a system for forming a convoy / platoon of UAVs moving in a coordinated manner. Specifically, a UAV sends an intent message to a remote server or to another UAV in a peer-to-peer system. Based on this intent message, the UAV itself or the remote server groups the UAVs together as a platoon moving in a coordinated manner along a common flight path, for example, in a specific flight formation.

[0012] Intention messages may contain various pieces of information that can be used to group UAVs. For example, an intention message may include the UAV's predicted flight path, an identifier for the air corridor in which the UAV is flying, the wind / air currents the UAV is experiencing, and data indicating whether the UAV is connected to air traffic control. In examples where a convoy is formed in a peer-to-peer network, intention messages between UAVs can offload connections from ground-based air traffic control in case of communication loss. In some examples, in addition to intention messages, the system may group UAVs based on additional information such as information from air traffic control and / or weather data.

[0013] After grouping, each UAV is flown or controlled in a manner that demonstrates coordinated flight. For example, the UAVs may be arranged in a lead / follower configuration, where the follower UAV follows the flight path of the lead UAV.

[0014] Thus, the disclosed systems, methods, and other embodiments improve UAV operations by enhancing efficiency, cost reduction, and safety in UAV operations. Specifically, platooning can improve UAV efficiency by reducing air resistance, similar to how birds fly in a V-formation. For example, by having the leading UAV absorb most of the air resistance, the following UAVs can reduce their energy consumption. This can result in energy savings and increased flight range. In other words, UAVs flying in a platoon can reduce operating costs.

[0015] Furthermore, platoon flight can reduce air traffic congestion and, if necessary, increase air traffic capacity without compromising the safety of UAVs, cargo, and / or passengers. Moreover, platooning can further improve safety by ensuring that UAVs maintain a safe and constant distance from one another, thereby reducing the risk of mid-air collisions.

[0016] Referring to Figure 1, an example of UAV100 is shown. As used herein, Unmanned Aerial Vehicle 100 means any form of air transport that can be powered by a motor or otherwise and is not piloted by an onboard operator. UAV100 may include an occupant, but in UAV100, such occupant does not control the flight characteristics or flight systems of UAV100. That is, UAV100 is not defined by the presence or absence of an individual on board the aircraft, but by the absence of an onboard operator, where flight commands are received from a ground operator or an autonomous control system.

[0017] The UAV100 also includes various elements. In various embodiments, it will be understood that it is not necessarily required that the UAV100 have all of the elements shown in Figure 1. The UAV100 may have different combinations of the various elements shown in Figure 1. Furthermore, the UAV100 may have additional elements in addition to those shown in Figure 1. In some configurations, the UAV100 may be implemented without having one or more of the elements shown in Figure 1. Although various elements are shown as being located within the UAV100 in Figure 1, it will be understood that one or more of these elements may be located outside the UAV100. Furthermore, the elements shown may be physically separated by a large distance. For example, as mentioned above, one or more components of the disclosed system may be implemented within the UAV100, while further components of the system may be implemented in a cloud computing environment or other system separated from the UAV100.

[0018] Some of the possible elements of UAV 100 are shown in Figure 1 and will be described in conjunction with subsequent figures. However, for the purpose of brevity of this specification, a description of some of the elements shown in Figure 1 is provided after the description of Figures 2-7. Furthermore, for the sake of simplicity and clarity of the drawings, it should be understood that, where appropriate, reference numerals are repeated in different drawings to point to corresponding or similar elements. In addition, numerous specific details are disclosed to provide a full understanding of the embodiments described herein. However, those skilled in the art will understand that the embodiments described herein can be carried out using various combinations of these elements. In any case, UAV 100 includes a UAV platoon system 146 implemented to perform the methods and other functions disclosed herein relating to forming and managing a platoon of UAVs based on intent messages transmitted or transmitted from various UAVs.

[0019] As will be described in more detail, the UAV platoon system 146 is implemented in various embodiments partially within the UAV 100 and also as a cloud-based service. For example, in one approach, the functionality associated with at least one module of the UAV platoon system 146 is implemented within the UAV 100, while further functionality is implemented within the remote computing system. Thus, the UAV platoon system 146 may include a local instance in the UAV 100 and a remote instance operating within the remote computing system.

[0020] Furthermore, the UAV platoon system 146, located within the UAV 100, functions in cooperation with the communication system 148. In one embodiment, the communication system 148 communicates according to one or more communication standards. For example, the communication system 148 may include multiple different antennas / transmitters and / or other hardware elements to communicate at different frequencies and according to their respective protocols. In one configuration, the communication system 148 may communicate via communication protocols such as Wi-Fi, dedicated short-range communication (DSRC), vehicle-to-infrastructure communication (V2I), vehicle-to-vehicle communication (V2V), vehicle-to-object communication (V2X), or another suitable protocol for communication between the UAV 100 and other entities in a cloud environment. Furthermore, the communication system 148 may, in one configuration, communicate further according to protocols such as Global Mobile Communication System (GSM), GSM Evolutionary Enhanced Data Rate (EDGE), Long-Term Evolution (LTE), 5G, or other communication technologies that enable the UAV 100 to communicate with various remote devices (e.g., cloud-based servers).

[0021] Specific examples of communication protocols include: (1) air-to-ground communication protocols (e.g., the fourth generation (4G), fifth generation (5G), and sixth generation (6G), etc.), (2) air-to-air communication protocols such as Long-Term Evolution (LTE) sidelink, 5G New Radio (5G NR) sidelink, 6G sidelink, etc., (3) DSRC protocols such as Institute of Electrical and Electronics Engineers (IEEE) 802.11p, and (4) next-generation Vehicle-to-Everything (V2X) communication protocols such as IEEE 802.11bd. As further examples, there are: (1) High-Altitude Platform Systems (HAPS), Low Earth Orbit (LEO) satellites, Medium Earth Orbit (MEO) satellites, and Geostationary Orbit (GEO) satellites (e.g., Narrowband Internet of Things (NBIoT) Non-Terrestrial Network (NTN), LTE Extended Machine-Type Communication (eMTC) NTN, 5G NR NTN, 6G NTN), etc. for non-terrestrial networks (NTN), and (2) low-power wide-area networks (e.g., Long Range (LoRa (registered trademark)), IEEE 802.11ah), etc. In any case, the UAV platoon system 146 can utilize various wireless communication technologies to provide communication to other entities such as components of a cloud computing environment.

[0022] Referring to FIG. 2, one embodiment of the UAV platoon system 146 of FIG. 1 is further shown. The UAV platoon system 146 is shown as including a processor 256. In an example where the UAV platoon system 146 is implemented within the UAV 100 (shown in FIG. 4), the processor 256 can be an example of the processor 102 of the UAV 100 in FIG. 1. In an example where the UAV platoon system 146 is formed on a remote server (shown in FIG. 3), the processor 256 can be the processor of that remote server.

[0023] In one embodiment, the UAV swarm system 146 includes a memory 258 that stores a group module 260, a flight information module 262, and a control module 264. The memory 258 is a random access memory (RAM), a read-only memory (ROM), a hard disk drive, a flash memory, or other suitable memory for storing the modules 260, 262, and 264. The modules 260, 262, and 264 are, for example, computer-readable instructions that, when executed by a processor 256, cause the processor 256 to perform the various functions disclosed herein. In an alternative configuration, the modules 260, 262, and 264 are elements independent of the memory 258, for example, composed of hardware elements. Thus, the modules 260, 262, and 264 are alternatively application-specific integrated circuits (ASICs), hardware-based controllers, combinations of logic gates, or other hardware-based solutions.

[0024] Furthermore, in one embodiment, the UAV swarm system 146 includes a data store 250. In an example where the UAV swarm system 146 is implemented within the UAV 100, the data store 250 can be an example of the data store 130 of the UAV in FIG. 1. In an example where the UAV swarm system 146 is formed on a remote server, the data store 250 can be the data store of that remote server.

[0025] The data store 250 is, in one embodiment, an electronic data structure stored in the memory 258 or another data storage device and is configured to include routines that can be executed by the processor 256 for purposes such as analyzing the stored data, providing the stored data, sorting the stored data, etc. Thus, in one embodiment, the data store 250 stores data used by the modules 260, 262, and 264 when these modules perform various functions.

[0026] In one embodiment, the data store 250 stores grouping data 252. Generally, the grouping data 252 is data processed by the group module 260 while grouping various UAVs 100 into platoons. For example, in some examples, as will be described in more detail below, the UAVs 100 are grouped based on air corridors and planned routes for candidate UAVs. Thus, the grouping data 252 may include at least air corridor information and planned route information for various UAVs 100. That is, each air corridor may be associated with an identifier that distinguishes it from other air corridors. In some examples, this identifier may be alphanumeric.

[0027] In one example, the air corridors that serve as the basis for grouping UAV100s can be vertical or horizontal. For example, UAV100s that generally move horizontally can be grouped into horizontal air corridors. In another example, UAV100s may move vertically between horizontal air corridors or take off from a building. In this example, UAV100s that move vertically can be grouped based on the vertical air corridor in which the UAV is moving.

[0028] As described above, this information may be received from the UAV 100 via the communication system 266, which may be an example of the communication system 148 of the UAV 100 when the UAV platoon system 146 is implemented within the UAV 100, or another similar type of communication system on a remote server.

[0029] In one example, the air corridor and planned route for UAV100 may be received via intent messages received from various UAVs. In one example, the grouping data 252 may include other information extracted from intent messages from various UAV100s. In one example, the intent message includes location data for each UAV100. Examples of location data include Global Positioning System (GPS) coordinates or other location data. In another example, the location data includes the altitude of each UAV100. As described above, UAV100s may be grouped based on the air corridor in which they fly. In some examples, the air corridor is defined at least in part by an altitude range. Therefore, altitude data may be used to identify the air corridor for each UAV100. In another example, the intent message may directly identify the air corridor in which the UAV100 is flying by identifiers as described above.

[0030] In another example, positional information may indicate the orientation of the UAV100. For instance, during flight, the UAV100 may have pitch (i.e., rotation around the left-right axis) and rotation (i.e., rotation around the front-back axis). This information may also be included in the positional data and may be used to group specific UAV100s.

[0031] In another example, location data may include future location data for each UAV100. Specifically, in some examples, location data may include planned routes for each UAV100 over a specified time window. For example, an intent message may indicate the planned route for each UAV100 over a time window of a few seconds.

[0032] In one example, the format of the planned route data can vary. For instance, the planned route may include a sequence of numbers defining the latitude / longitude of the UAV100 at various points in time, or it may otherwise identify the position of the UAV100 based on time. In one particular example, the planned route data may also include dynamics data as the UAV100 moves along its route. Examples of dynamics data for a planned route include the time-based velocity, acceleration, and / or deceleration of the UAV100 along the planned route, as well as the dynamics (e.g., velocity, acceleration, deceleration, etc.) as the UAV100 performs specific maneuvers (e.g., takeoff, landing, turning). This and other information may be included in the grouping data 252 as position data for each UAV100.

[0033] In another example, intent messages may include data characteristics for each UAV100. For example, UAV characteristic data may indicate the type, size, and / or shape of the UAV100. For example, it may be desirable to group UAV100s together based on their type (e.g., eVTOL, VTOL, drone) and size (e.g., small, medium, and large), and UAV100s of similar type, size, and / or shape may exhibit similar flight characteristics that are useful for grouping and coordinated flight. For example, a large eVTOL carrying passengers may not be able to accelerate, decelerate, or turn as quickly as a smaller eVTOL carrying smaller payloads. Therefore, this UAV characteristic data can be used when grouping UAV100s. In another example, UAV characteristic data may include dynamic capabilities / ranges for the UAV100. Examples of dynamic capabilities / ranges for the UAV100 include the minimum / maximum airspeed of the UAV, the range of horizontal and / or vertical acceleration and deceleration of the UAV, and the turning radius. While there is a specific mention of certain dynamic capabilities / ranges, other dynamic capabilities / ranges for the UAV100 may also be included in grouping data 252.

[0034] Another example of UAV characteristic data is air traffic control connectivity status data. That is, UAV characteristic data may indicate whether UAV100 is communicating with or under the control of air traffic control. Air traffic control connectivity status data may also include the identifier of the associated air traffic control. In some cases, platooning may be permitted when under the supervision of air traffic control, as air traffic control provides guidance and safety to aircraft under its authority.

[0035] As another example, one example of UAV characteristic data is the cargo of a UAV100. That is, some UAV100s may carry cargo (e.g., in package delivery), while others may carry passengers. In either case, the cargo of a UAV100 may define certain coordinated flight parameters. For example, sharp turns and rapid acceleration / deceleration may cause discomfort to passengers. Therefore, it may be desirable to group passenger-carrying UAV100s with other passenger-carrying UAV100s that may have milder flight parameters, rather than grouping them with cargo-carrying UAV100s that may be able to travel at higher speeds because there are no passengers and considerations regarding passenger safety and comfort are unnecessary.

[0036] In any case, this data and other data may be extracted from intent messages received from various UAVs 100 and processed, parsed, and / or cataloged for use by the group module 260 to form a platoon of UAVs 100. In one embodiment, the data store 250 stores grouping data 252 together with metadata that characterizes various aspects of the grouping data 252. For example, the metadata may include a timestamp / datestamp when the separate grouping data 252 was generated. The metadata may also identify the UAVs 100 to which the grouping data 252 is associated. Thus, when the group module 260 identifies sufficiently similar grouping data 252, the group module 260 may identify each UAV 100 to be grouped based on the metadata associated with the grouping data 252. The flight information module 262 may generate flight commands for the platoon, and the control module 264 may fly the platooned UAVs 100 to demonstrate coordinated flight.

[0037] In some examples, the grouping data 252 may include additional data, such as weather data collected from a weather station via a communication system 266. Weather data can also influence whether a particular UAV 100 can be grouped, or should be grouped at all. For example, strong winds in a certain area may make it unsuitable for any UAV 100, or UAV 100 that is particularly susceptible to adverse effects from wind (e.g., a small UAV 100 without position control, or a UAV 100 carrying certain cargo such as passengers), to be grouped into a platoon. Therefore, in this example, in addition to relying on data extracted from intent messages, the grouping data 252 may include additional data such as weather data. That is, the UAV platoon system 16 may receive discretized packets indicating information from a weather station.

[0038] In another example, the grouping data 252 may include additional data, such as data that can be received from air traffic control via the communication system 266. That is, the UAV platoon system 146 may receive discretized packets indicating information from air traffic control.

[0039] Air traffic control data can be of various types and generally indicate non-weather-based environmental conditions and restrictions on air travel. For example, air traffic control data may include restrictions on general travel and / or restrictions on travel within specific air corridors. For instance, a particular air corridor may allow both passenger and cargo transport, some air corridors may be reserved for cargo transport only (i.e., passenger transport is not permitted), and others may be reserved for passenger transport and not for cargo transport. Air traffic control data may include this information and, along with cargo indicators extracted from intent messages, may lead to the grouping of UAVs.

[0040] Air traffic control data may also indicate other travel restrictions. For example, platooning may be prohibited during certain times of the day. Therefore, air traffic control data can record these and other travel restrictions.

[0041] As another example, a particular air corridor may have limitations on air traffic capacity. For instance, a certain number of UAV100s may not be permitted within a single air corridor. Air traffic control data may indicate any limitations on a particular air corridor, and whether the capacity within that air corridor has reached or exceeded those limits.

[0042] As another example, air traffic control data may indicate temporary restrictions / circumstances that prevent UAV platooning. For instance, a communication network that manages coordinated platoon flight may be out of service. Therefore, air traffic control data may indicate this temporary restriction or another temporary restriction, which the group module 260 may use to avoid grouping. While specific air traffic control data is mentioned, the grouping data 252 may include other types of data on which the group module 260 may base its grouping of any UAV 100.

[0043] In one embodiment, the data store 250 further includes a grouping model 254, which can be used by a group module 260 to group UAVs 100 into platoons. As described above, UAVs 100 having similar characteristics (e.g., similar air corridors, planned routes, UAV characteristics, etc.) can be grouped into platoons and fly together in formation. Therefore, the group module 260 can compare air corridors, planned routes, position data, UAV 100 characteristics, and other information to determine if they are sufficiently similar to be grouped. That is, the grouping model 254 may include criteria, indicators, or algorithms for the group module 260 to evaluate whether the grouping data 252 associated with different UAVs 100 are sufficiently similar to form a platoon with each UAV 100. In some examples, this comparison may be performed to determine whether two data points match. For example, the group module 260 may compare air corridor identifiers. If the air corridor identifiers match and the planned routes for each UAV100 (e.g., planned routes over a given time window) match, then each UAV100 can be grouped into a platoon. In other examples, this comparison may be more complex. For example, the grouping model 254 may include a threshold that serves as a criterion for determining similarity. For example, the grouping model 254 may include a threshold on which the differences between planned routes are compared to determine whether the differences between the planned routes are similar enough to justify combining each UAV100 into a platoon. For example, the planned routes of two UAV100s may be similar but not identical. In this example, the grouping module 260 may determine, based on a threshold in the grouping model 254 or another algorithm, that the planned routes of two UAV100s are similar enough to be grouped, but this may involve a change in the flight path of at least one of the two UAV100s.

[0044] In another example, whether UAV100s are grouped together is based on additional operational metrics. Examples of such additional metrics include safety, energy efficiency, air corridor capacity, and cargo metrics. For example, a platoon size exceeding a threshold may indicate an increased risk to the cargo or passengers within the UAV100, or to multiple UAV100s. Therefore, if a platoon contains more UAV100s than the threshold, the formation of the platoon may be limited to a number below the threshold.

[0045] As another example, and as mentioned above, it may be desirable to group UAVs based on the type of cargo. For example, it may be desirable to group cargo UAVs because carrying cargo can enable faster flight and flight maneuvers that would normally be uncomfortable for passengers (e.g., sharp turns, rapid acceleration / deceleration). In this example, the grouping model 254 includes cargo indices, criteria, and algorithms used to evaluate cargo-related data for various UAVs 100 when grouping.

[0046] As yet another example, the ability to group UAV100s and the size of the platoon may be based on the capacity of the air corridor. That is, there may be a threshold for the number of UAV100s that can be allowed within the air corridor, and this threshold may vary based on criteria such as the type of UAV100 in the airspace, time of day, and weather conditions. In this example, the grouping model 254 may include criteria, thresholds, and algorithms for determining whether a safe and efficient UAV platoon can be formed, which may be cataloged in different environmental conditions in several examples. While specific safety indicators are mentioned, other indicators such as energy, air corridor capacity, and cargo indicators may also be evaluated when grouping UAV100s.

[0047] Thresholds and indices may vary based on several factors, including the type of UAV, weather conditions, overall air traffic, and time of day. Therefore, the grouping model 254 can be any model that guides the analysis and processing of the grouping data 252 under various circumstances. In any case, the grouping model 254 may include weights, thresholds, variables, offset values, algorithms, parameters, and other elements on which the group module 260 relies to output a platoon of UAVs 100. For example, specific values, weights, thresholds, variables, offset values, algorithms, parameters, and other elements may be input by the administrator of the UAV platoon system 146 and / or learned via a machine learning model. Specific indices for grouping by the UAVs 100 may vary and be determined empirically, or learned by a machine learning model (supervised or unsupervised) trained on historical datasets. Examples of machine learning models include, but are not limited to, logistic regression models, support vector machine (SVM) models, naive Bayes models, decision tree models, linear regression models, k-nearest neighbor models, random forest models, boosting algorithm models, and hierarchical clustering models. While specific models are mentioned herein, group models can be of various types.

[0048] The UAV platoon system includes a group module 260, which in one embodiment includes instructions to a processor 256 to (1) receive intent messages from a plurality of UAVs 100. The intent messages include various information, including air corridors and planned routes for each UAV 100. As illustrated in Figure 1, each UAV 100 may include a processor 102, an autonomous flight module 144, and various flight systems 118 that generate or receive data to facilitate the unmanned flight of the UAV 100. As part of the operation of the UAV 100, these components may generate intent messages containing various data, as described above, in relation to the position and movement characteristics of the UAV 100, as well as various characteristics of the UAV 100 itself. For example, the navigation system 126 of the UAV 100 may generate and / or store a planned route for the UAV 100. The planned route can take various forms, for example, including a sequence of longitude and latitude waypoints along the UAV100's route, and in some examples, the route may be smoothed rather than consisting of jagged straight lines connecting the waypoints. Similarly, aircraft sensors 106, such as GPS or other position sensors, can determine the position and altitude of the UAV100. In some examples, the UAV100's data store 130 may include other information, such as the air corridor in which the UAV100 is located. In certain examples, the processor 102 can calculate the air corridor in which the UAV100 is located, relying on the information in the data store 130. For example, each air corridor may be associated with a specific altitude range. Thus, together with the altitude information of the UAV100 determined by the aircraft sensors 106, the processor 102 can determine the air corridor in which the UAV100 is located. This information and other information can be packaged as an intent message, which may be a data package containing various types of information, and transmitted to the group module 260.

[0049] The UAV platoon system 146 can process information about various intent messages, whether on a remote server or on one of the grouped UAVs 100, to form a group of UAVs 100. That is, a communication system 266 on the remote server or one of the UAVs 100 can communicate with the UAVs 100 via each communication system 148, receive / transmit intent messages, and store such intent messages as grouping data 252 in the data store 250.

[0050] The group module 260 includes instructions for the processor 256 to group a set of UAVs 100 into a platoon based on the air corridors and planned paths in multiple intent messages. That is, each intent message includes, in addition to other matters, the air corridor for each UAV 100 and the planned path for that UAV 100. Based on the similarity of such UAVs 100, the group module 260 can associate a particular UAV 100 having the same or similar air corridor identifier and / or planned path.

[0051] For example, as described above, each air corridor may have an identifier, such as an alphanumeric identifier, that distinguishes one air corridor from another. An air corridor associated with a particular UAV 100 may be stored on the UAV 100, or calculated by the UAV 100, and transmitted to the UAV platoon system 146. UAV 100s that are in the same air corridor and have the same or similar planned routes over a predetermined time window may be grouped together. UAV 100s may be grouped based on a common horizontal or vertical air corridor. That is, a UAV 100 moving horizontally may be in a horizontal air corridor, and a UAV 100 moving vertically may be in a vertical air corridor. In either case, an air corridor may be associated with a specific identifier that is referenced in intent messages from the UAV 100s present in each air corridor.

[0052] Furthermore, the UAVs 100 can be grouped based on their planned routes. That is, an autonomously controlled UAV 100 flies along a route, which may be generated by the UAV 100's autonomous flight module 144 and / or navigation system 126. In this example, this flight route may be included in an intent message logged and transmitted within the UAV 100. The group module 260 can compare the planned routes and group UAVs 100 having planned routes with a similarity threshold, which may be stored in the grouping model 254. In one example, the similarity used to group waypoints may include distance thresholds between waypoints in the planned routes. Thus, the group module 260 can identify similarities between waypoints of different planned routes and average, combine, or otherwise aggregate the differences between waypoints. If these differences are less than a predetermined threshold determined by the grouping model 254, the group module 260 may group the associated UAVs 100 into a platoon. The planned route included in the intent message may be, for example, a route spanning a specific period of time, ranging from a few seconds to several minutes. Therefore, even if multiple UAV100s have different start and end locations, or different routes between the start and end locations, these UAV100s can be grouped together if their analysis of their planned routes in seconds matches each other, or if the differences between them are within a threshold. If the planned routes differ by more than the difference threshold defined in the grouping model 254, the UAV platoon may be dissolved, or the branching UAV100s may be removed from the platoon and proceed to their respective intended destinations.

[0053] While specific references have been made to comparisons based on a single criterion (e.g., comparing air corridors with each other, and comparing planned routes with each other), in one example, group module 260 can perform multi-factor comparisons. For example, each variable (e.g., air corridor and planned route) may have differences within a threshold, or the differences between planned routes may be weighted in some way and combined into an aggregated representation of the differences between air corridors and planned routes of different UAV100s.

[0054] Furthermore, as described above, the group module 260 may group the UAVs 100 based on other content in the intent message, such as flight dynamics (e.g., speed, acceleration / deceleration rate, maneuver rate, etc.), UAV characteristic data, and connection status data with air traffic control. In these examples, the group module 260 may weight each factor individually or aggregated to determine which UAVs 100 can be grouped into platoons.

[0055] As a concrete example, the group module 260 can analyze similarly classified grouping data 252 (e.g., planned route, air corridor, UAV dynamic range, UAV characteristics) and determine if they are sufficiently similar to each other. Furthermore, each UAV 100 may have unique and specific characteristics (e.g., speed range, acceleration / deceleration range, turning radius, and maneuver execution rate). Therefore, rather than grouping perfectly matching UAV 100s, the group module 260 can associate UAV 100s that have a similarity threshold defined by predetermined criteria, indicators, and thresholds defined in the grouping model 254. In other words, the group module 260 can cluster various UAV 100s based on each intent message. Various grouping algorithms such as centroid-based clustering, density-based clustering, distribution-based clustering, and hierarchical clustering can be implemented. While specific multi-factor clustering operations are mentioned, the group module 260 can implement any type of clustering algorithm that groups UAV 100s considering multiple data categories.

[0056] In one configuration, the group module 260 implements and / or uses a machine learning algorithm. In one configuration, a machine learning algorithm such as a convolutional neural network (CNN) is embedded within the group module 260 to perform semantic segmentation on the grouping data 252, deriving further information. Naturally, in further embodiments, the group module 260 may use a different machine learning algorithm or implement a different method for performing semantic segmentation, which may include a deep convolutional encoder-decoder architecture, a multiscale contextual aggregation method using extended convolution, or other suitable method for generating semantic labels for distinct object classes represented in the image. Regardless of which particular method the group module 260 implements, the group module 260 may provide an output with semantic labels that identify the objects represented in the grouping data 252. In this way, the group module 260 may generate a group of UAVs 100 that should perform coordinated flight along a specific route.

[0057] Once the group module 260 identifies air corridors, planned routes, and other sufficiently similar data, it identifies the UAV100 associated with the similar dataset, for example, through metadata that identifies each UAV100. The identifier may be passed to the control module 264, which may use such identifier when flying each UAV100, controlling each UAV100, or transmitting flight data to each UAV100, and such flight data controls the movement of each UAV100.

[0058] In one or more configurations, the UAV platoon system 146 implements one or more machine learning algorithms. As described herein, machine learning algorithms include, but are not limited to, deep neural networks (DNNs) including transformer networks, convolutional neural networks, recurrent neural networks (RNNs), support vector machines (SVMs), clustering algorithms, hidden Markov models, etc. It should be understood that various forms of machine learning algorithms may have different applications, such as agent modeling and machine perception.

[0059] Furthermore, it should be understood that machine learning algorithms are generally trained to perform defined tasks. Therefore, unless otherwise specified, training a machine learning algorithm is understood to be distinct from the general use of that machine learning algorithm. That is, the UAV platoon system 146 or another system generally trains machine learning algorithms according to specific training methods, which may include supervised learning, self-supervised learning, reinforcement learning, etc. In contrast to training / learning a machine learning algorithm, the UAV platoon system 146 implements a machine learning algorithm to perform inference. Therefore, the general use of a machine learning algorithm is described as inference.

[0060] It should be understood that the group module 260, in combination with the grouping model 254, can form a computational model such as a neural network model. In any case, when the group module 260 is implemented with a neural network model or another model, in one embodiment it implements the functional aspects of the grouping model 254, and further aspects such as trained weights can be stored in the data store 250. Thus, the grouping model 254 is generally integrated with the group module 260 as a cohesive functional structure.

[0061] The UAV platoon system 146 includes a flight information module 262, which, when executed by the processor 256, includes instructions causing the processor 256 to generate coordinated flight paths and coordinated flight parameters for the platoon. As described above, coordinated flight between UAVs 100 has several advantages, including energy efficiency, because the UAVs 100 can fly in a formation that reduces wind resistance. In another example, coordinated flight between UAVs 100 can reduce air traffic because, instead of multiple small entities (i.e., individual UAVs 100s) flying independently within the air corridor, a larger but fewer entity (i.e., a UAV platoon) can navigate a particular air corridor in a coordinated manner. Therefore, the flight information module 262 generates flight information about the platoon.

[0062] The coordinated flight path may be the positional coordinates of waypoints that the platoon follows over time. Similar to the planned paths of individual UAVs, the waypoints of the coordinated flight path may include a series of waypoints that may follow a map-based path or avoid obstacles such as buildings. Therefore, the flight information module 262 may rely on map data 132 that indicates static objects such as buildings and other obstacles that may exist within a given area and should be avoided.

[0063] In one example, a flight path may represent a path that passes through a predetermined airway. That is, airspace can be comprised of an airway network, just as the ground is covered by a road network on which wheeled vehicles travel. Therefore, a flight path can guide a platoon through an airway within airspace along a specific airway. In another example, a flight path for a platoon may be one of the planned paths of the UAV100s forming the platoon, a combination (e.g., an average) of the planned paths of the individual UAV100s forming the platoon, or another predetermined planned path, which may be determined by machine learning operations.

[0064] In addition to generating coordinated flight paths, the flight information module 262 may generate coordinated flight parameters for a platoon, which indicate how different UAVs 100 should fly within the platoon. The selected flight parameters can be of various types. For example, the speed of the UAVs 100 along the path, or the speed of the UAVs 100 at different points along the path, may be flight parameters. In another example, the flight parameters may be formation (e.g., single column vs. V-formation). Other examples include the duration of the platoon, acceleration range, deceleration range, and boundaries for the time required to complete specific aerial maneuvers (e.g., takeoff, landing, turning, etc.).

[0065] In a specific example, the speed of the UAV100s in a platoon may be a flight parameter. That is, the flight information module 262 may determine the speed for each UAV100 in the platoon. In one example, the flight parameters (e.g., speed, acceleration range, deceleration range, and boundaries for the time required to complete a particular aerial maneuver) may be those indicated in the intent message of one of the UAV100s in the platoon, a combination (e.g., an average) of the flight parameters of the individual UAV100s forming the platoon, or other predetermined flight parameters, which may be within the limits of each UAV100 in the platoon and, in some cases, may be determined by machine learning operations and may be within those limits.

[0066] In another example, the flight information module 262 may determine the platoon formation. Generally, the platoon may define a lead-follower formation in which the UAVs 100 are arranged in a single-column formation, with each following UAV 100 flying directly behind the UAV 100 in front of it. In another example, instead of flying in a single-column formation, the UAVs 100 may be arranged in a V-formation, with each following UAV 100 positioned behind and to the side of the UAV 100 in front of it.

[0067] In another example, the flight information module 262 may determine the duration of the platoon. Upon expiration of this duration, the UAV 100 may return to a state where it is individually controlled by the vehicle-mounted autonomous flight module 144 or a ground-based controller. Examples of other flight parameters that can be set include acceleration range, deceleration range, and maneuver execution boundary. The maneuver execution boundary may indicate upper and lower time limits for when the UAV 100 should perform a particular maneuver. For example, the flight information module 262 may instruct the UAV 100 in the platoon to perform a 90-degree turn in a specific direction for 5 seconds.

[0068] As another example, the flight information module 262 may set the follow distance. The follow distance may be the distance over which a following UAV 100 follows a leading UAV 100 within a platoon. This value may be set based on various indicators that may be defined by the group module 260. Another example of an operational indicator used to define coordinated flight parameters is air corridor capacity. For example, during one segment of a flight, a UAV 100 may be required to fly within an air corridor with a capacity below a threshold. However, at another point in time, a UAV 100 may fly into an area where the air corridor capacity exceeds the threshold. In this example, a UAV 100 may be instructed to move to another air corridor in which it can operate so that the number of UAV 100s in the air corridor does not exceed its threshold. That is, operational indicators (e.g., safety, energy, air corridor capacity, and cargo) may be used to define a platoon and, in this example, also to define the coordinated flight path and / or coordinated flight parameters.

[0069] In this example and other examples, the coordinated flight path and coordinated flight parameters may be set for each UAV100. For example, each UAV100 in a platoon may have different parameters. As a specific example, a following UAV100 in a platoon may be positioned behind a leading UAV100, and as a result may have a different absolute position in the airspace relative to the leading UAV100.

[0070] The UAV platoon system 146 includes a control module 264, which, when executed by the processor 256, includes instructions to the processor 256 to fly a set of UAVs 100 based on a coordinated flight path and coordinated flight parameters. Initially, the control module 264 may establish a communication link with the grouped UAVs 100. This may include a handshake operation in which a request to establish a communication link is sent to the UAVs 100 identified by metadata, and the communication link is authorized. Once this communication link is established, control data can be transmitted by the flight systems 118 of the UAVs 100 in the platoon. That is, the control module 264 may configure the components of the UAVs 100 in the platoon to follow the coordinated flight path and coordinated flight parameters.

[0071] Specifically, the control module 264 may transmit control signals that modify the operation of different flight systems 118 of the UAV 100 to follow a coordinated flight path. In a particular example, the control module 264 may transmit a signal that modifies the propulsion system 120 to operate the rotors of the UAV 100 to move the UAV 100 along a particular path at a particular speed. In another example, the control module 264 may transmit control signals that provide the navigation system 126 with flight paths and parameters. In this example, the navigation system 126, in coordination with other flight systems 118 and / or the autonomous flight module 144, controls the various flight systems 118 so that the UAV 100 flies along the indicated flight path with various coordinated flight parameters. As described above, flying a set of UAVs 100 may include having the processor 256 control at least one of the flight plan, flight parameters, flight formation, flight speed, platoon duration, acceleration range, deceleration range, or maneuver execution boundary.

[0072] As shown in Figure 2, the UAV platoon system 146 is generally an abstract form of the UAV platoon system 146 that can be implemented between the UAV 100 and a remote server-based environment or a peer-to-peer environment. Figure 3 shows an example of a remote server 368 that can be implemented with the UAV platoon system 146. As shown in Figure 3, at least part of the UAV platoon system 146 is embodied within the remote server 368.

[0073] In one or more methods, the remote server 368 can facilitate communication between multiple different UAVs 100-1, 100-2, and 100-3, and can acquire and distribute information among UAVs 100-1, 100-2, and 100-3. Specifically, as described above, the remote server 368 can receive intent messages 370-1, 370-2, and 370-3 from various UAVs 100-1, 100-2, and 100-3 via their respective communication systems 148 and 266. The group module 260 can then group UAVs 100-1, 100-2, and 100-3 as described above, and can control the flight of UAVs 100-1, 100-2, and 100-3 as described above.

[0074] As described above, each of the UAVs 100-1, 100-2, and 100-3 may generate intent messages 370-1, 370-2, and 370-3. Intent messages 370-1, 370-2, and 370-3 include various data, such as the air corridor in which each UAV 100 resides and the planned flight path for each UAV 100. In addition to this information, intent messages 370-1, 370-2, and 370-3 may include other information, as described above, such as the location information of each UAV 100, the UAV characteristic data of each UAV 100, and the connection status data with air traffic control for each UAV 100. Generally, the group module 260 includes an instruction to the processor 256 to group a group of UAVs 100 based on at least one of this location data, UAV characteristic data, and connection status data with air traffic control.

[0075] Next, specific examples of some of the content of intent messages 370-1, 370-2, and 370-3 are provided. As described above, intent messages 370-1, 370-2, and 370-3 may include, among other information, location information for each UAV100-1, 100-2, and 100-3, such as GPS coordinates, altitude, pitch, and roll. Illustrative information that may be included in the location information may include a numerical representation of the GPS station identifier, the latitude and longitude of the UAV100, the speed of the UAV100, the bearing of the UAV100, the altitude of the UAV100, the pitch of the UAV100, and the roll of the UAV100. As described above, the specific numerical values ​​of each data point can be compared with information extracted from the intent messages 370 of other UAV100s while grouping various UAV100s together.

[0076] Location information may also include instructions for the UAV100's planned route. In one example, intent messages 370-1, 370-2, and 370-3 may include a numerical representation of the planned route. Generally, the UAV100's route can be defined as a series of waypoints along the route. In some examples, the planned route may have a smoothed shape rather than a rigid straight line connection between adjacent waypoints. For example, the planned route may include a representation of the UAV100's clothoid curve. A clothoid curve is a sequence of numbers that defines the curved path of an object moving from one point to another. In another example, the planned route may be a sequence of latitude and longitude coordinates for different waypoints along this planned route.

[0077] As described above, intent messages 370-1, 370-2, and 370-3 may also include the dynamic range of the UAV100 along the planned route. For example, intent message 370 may indicate the speed range (e.g., 20–25 mph), the acceleration and deceleration ranges, and the percentage of time a particular maneuver will be performed. In some examples, the dynamic range may be expressed as multiple numerical representations of the speed range and other dynamic values ​​(e.g., acceleration range of -1 to +1 meters per second squared).

[0078] Intent messages 370-1, 370-2, and 370-3 may also include other information such as UAV characteristics (e.g., UAV size, UAV shape, UAV type, UAV cargo, UAV dynamic range, etc.). As mentioned above, grouping may be based on these criteria. In other examples, flight information may also be based on these criteria. For example, when transporting passengers, the planned route may avoid certain areas. In another example, when UAV100s in a platoon are smaller, the time limit for performing a particular maneuver may be shortened so that the smaller UAV100s can perform that maneuver more quickly.

[0079] As described above, intent messages 370-1, 370-2, and 370-3 may also include identifiers of the air corridor in which each UAV100 is flying. In one example, this may include an integer value indicating the identifier of the air corridor in which the UAV100 is located. In another example, part of the identifier (e.g., a prefix integer) or a completely different integer value may indicate that the UAV is not located within the air corridor. That is, the UAV100 may be flying over an area outside the air corridor defined for that area. In this example, a prefix bit or a separate integer value may be appended to or replaced by the air corridor identifier. In this example, the presence of a UAV100 outside the air corridor may prevent each UAV100 from joining the group.

[0080] Intent messages 370-1, 370-2, and 370-3 may also include an integer value indicating the identifier of the air traffic control associated with each UAV100 (e.g., the one controlling the UAV100). Similarly, a prefix portion (e.g., a prefix bit) or another integer value may indicate that each UAV100 is not connected to any air traffic control.

[0081] Intent messages 370-1, 370-2, and 370-3 may include other information, such as integer values ​​indicating wind / airflow measured by the environmental sensor 108. Such integer values ​​may reflect wind speed and wind direction, among other pieces of information. This information may be used alone or in conjunction with meteorological data collected by weather stations to identify wind conditions unsuitable for platoon formation or to modify the configuration of a UAV platoon based on meteorological conditions (e.g., to determine the number, type, and speed of UAVs 100 in the platoon).

[0082] Intentional messages 370-1, 370-2, and 370-3 may also include a duration, which may be an integer value indicating the time the current conditions are being detected. That is, this duration may reflect the period during which the UAV100 is in a particular air corridor, the period during which the current wind / airflow conditions are being recorded, the period during which the UAV100 is communicating with a particular air traffic control, etc. Other examples of information that may be included in an intent message include an integer representation indicating the duration of a platoon, and an integer representation indicating the preferred formation of the platoon.

[0083] As described above, the data in intent messages 370-1, 370-2, and 370-3 may be used (1) to group specific UAV100s into a platoon as described above, and (2) to define a coordinated flight plan and / or parameters for the platoon. To control the operation of the UAV100s within the platoon, the control module 264 may include instructions to the processor to transmit coordinated flight paths and parameters to the UAV100s in order to achieve coordinated flight. In some examples, as illustrated in Figure 7, this may include transmitting modified intent messages to the UAV100s. For example, a modified intent message may include different planned paths for the UAV100s within the platoon. In one example, a modified intent message may include signals to reconfigure the flight system 118 of the UAV100s to fly along the coordinated flight path using the coordinated flight parameters. For example, a modified intent message may contain signals to reconfigure the UAV100 to operate within a dynamic range (e.g., speed threshold, acceleration / deceleration threshold, maneuver threshold, etc.) for flight planning. Each UAV100 can then extract and process the signals within the intent message to control its own flight. In this example, the control module 264 controls the flight of the UAV100s in the platoon by transmitting these modified intent messages.

[0084] Figure 4 shows one embodiment of the aircraft platoon system of Figure 2 in a peer-to-peer computing environment. In the example illustrated in Figure 4, instead of relying on server 368, each UAV 100-1, 100-2, and 100-3 may have its own UAV platoon system 146-1, 146-2, and 146-3, respectively. Thus, one of the UAVs 100 may control the grouping of UAVs 100, the generation of flight information, and the control of the other UAVs 100 in the platoon. For example, the first UAV 100-1 may broadcast a request for intent message 370. In response to this request, the other UAVs 100-2 and 100-3 may transmit their respective intent messages 370-2 and 370-3. As described above, the first UAV 100-1 can compare the information in intent messages 370-2 and 370-3 with the intent message 370-1 of the first UAV 100-1 and identify UAVs 100-2 and 100-3 that are suitable to join the platoon with the first UAV 100-1. In other words, the functions described above for the UAV platoon system 146 can be implemented in the UAV 100 itself. This can avoid any problems that may arise, for example, when communication between the UAV 100 and the remote server 368 is lost due to interference from urban infrastructure. Thus, as shown, the UAV platoon system 146 may include individual instances within the UAV 100 that work together to acquire, analyze, and distribute the described information.

[0085] Figure 5 illustrates the formation and management of UAV platoon 572. As described above, the airspace may be divided into air corridors 574. Air corridors 574 may be horizontal air corridors 574-1 and 574-2, or vertical air corridors 574-3 and 574-4. Generally, air corridors 574 are designated air highways for UAVs 100. Each horizontal air corridor 574-1 and 574-2 may occupy multiple altitudes, and each vertical air corridor 574-3 and 574-3 may extend between horizontal air corridors 574-1 and 574-2, or extend from the ground or the top of a building to horizontal air corridors 574-1 and 574-2. These air corridors 574 are intended to organize air traffic and prevent potential collisions between UAVs 100 flying within these air corridors.

[0086] As described above, the UAVs 100 can be grouped based on their respective air corridors 574. For example, the first UAV 100-1, the second UAV 100-2, and the third UAV 100-3 may be grouped into the first platoon 572-1 on the basis that these UAVs are located within the first air corridor 574-1, have similar flight paths, and are within a distance threshold from each other, where the distance threshold may be defined by the grouping model 254. In contrast, the fourth UAV 100-4, the fifth UAV 100-5, and the sixth UAV 100-6 may not be grouped into the first platoon 572-1 because these UAVs are within a distance threshold from the UAVs in the first platoon 572-1. In other words, the group module 260 can use a clustering algorithm to form different UAVs 100s into the same group based on their proximity to each other, and in some cases, based on additional information such as the characteristics of the UAVs 100s, air traffic control data, and weather data.

[0087] Similarly, the fourth UAV100-4, the fifth UAV100-5, and the sixth UAV100-6 can be grouped into the second platoon 572-2 because these UAVs are located within the first air corridor 574-1, have similar planned routes, and their distances from each other are within a threshold. Furthermore, the eleventh UAV100-11, the twelfth UAV100-12, and the thirteenth UAV100-13 can be grouped into the third platoon 572-3 based on the fact that each of these UAVs is located within the second air corridor 574-2, has a similar planned route, and is within a distance threshold defined by some indicator included in the grouping model 254.

[0088] In contrast, the 10th UAV100-10, despite being located within the second air corridor 574-2, may not be grouped with these UAVs for various reasons. For example, the 10th UAV100-10 may be of a different type (e.g., passenger and cargo) than the other UAV100s in the third platoon 572-3, may have a dynamic range that does not coincide with the other UAV100s in the third platoon 572-3, or may be located outside the distance threshold of the UAV100s that make up the third platoon 572-3. While specific references are made to certain criteria for determining that the 10th UAV100-10 is not included in the third platoon 572-3, the 10th UAV100-10 may not be included for various reasons.

[0089] In one example, the seventh UAV 100-7 may not be included in platoon 572 for various reasons. In one example, platoon 572 may be defined, at least in part, based on the air corridor in which the UAV 100 is located. In this example, the seventh UAV 100-7 is in transit between air corridors 574-1 and 574-2 and is therefore not located within a given air corridor. For at least this reason, the seventh UAV 100-7 may not be included in any platoon.

[0090] As described above, the air corridors that serve as the basis for forming Platoon 572 may be vertical air corridors such as the third air corridor 574-3 and the fourth air corridor 574-4. For example, it may be desirable to group UAVs 100 that take off from the same location. Therefore, the eighth UAV 100-8 and the ninth UAV 100-9 may be grouped into the fourth Platoon 572-4 based on the fact that (1) they are located within the third air corridor 574-3, which is a vertical air corridor, (2) they have similar planned routes, and (3) they are relatively close to each other. Furthermore, the 14th UAV100-14, the 15th UAV100-15, and the 16th UAV100-16 may be grouped into a fifth platoon 572-5 based on the following criteria: (1) they are located within a fourth air corridor 574-4, (2) they have similar planned routes, and (3) they have relative proximity to one another (as defined by the location data and grouping model 254 in their respective intent messages).

[0091] While specific characteristics are listed as criteria for inclusion or exclusion from Platoon 572, as mentioned above, one or more of the criteria mentioned above (location data, UAV characteristic data, connection status data with air traffic control, etc.) can be used to group UAV 100 into Platoon 572. In other words, the group module 260 can use various multifactorial criteria to group UAV 100.

[0092] Additional aspects of the formation and management of the UAV platoon 572 are described in reference to Figure 6. Figure 6 shows a flowchart of Method 600 associated with forming and managing the UAV platoon 572 based on intent messages 370 shared between UAVs 100 or between UAVs 100 and a remote server 368. Method 600 is described in reference to the UAV platoon system 146 in Figures 1, 2, 3, and 4. Although Method 600 is described in conjunction with the UAV platoon system 146, it should be understood that Method 600 is not limited to being implemented within the UAV platoon system 146, but is merely an example of a system in which Method 600 may be implemented.

[0093] In step 610, the UAV platoon system 146 on the requesting UAV 100 or the remote server 368 receives intent messages 370 from multiple UAVs 100. As described above, intent messages 370 may be broadcast from the UAVs 100 or received as a response to a broadcast request for such a message. In either case, intent messages 370 include, among other things, the air corridor 574 and planned route for each UAV 100. Intent messages 370 may be received via associated communication systems 148 and 256.

[0094] Furthermore, as described above, the intent message 370 may include other data such as location data, UAV characteristics data, and connection status data with air traffic control. As described above, each of these data, which may be included in the packaged intent message 370 shared between entities, can serve as the basis for grouping UAV 100 into platoon 572.

[0095] In step 620, additional information, specifically air traffic control data, weather data, and operational indicators, may be received. That is, in addition to the information contained in the intent message 370, the group module 260 may rely on information gathered from other sources when determining how to group the UAVs 100s / which UAVs 100s to group. As a specific example, the UAV platoon system 146 may include an instruction to the processor 256 to receive air traffic control data from air traffic control. That is, the UAV platoon system 146 may communicate with air traffic control, for example, via communication systems 148 and 266. Through this channel, air traffic control may transmit specific information on which the group module 260 relies when grouping UAVs. That is, the group module 260 includes an instruction to the processor 256 to group a group of UAVs 100s into a platoon 572 based on air traffic control data.

[0096] Air traffic control data can be of various types. For example, air traffic control data may indicate temporal constraints on platooning, such as prohibiting platooning during certain times of the day. As another example, different air corridors 574 may restrict the types of UAVs permitted within that air corridor. For example, a high-altitude air corridor 574 may be allocated for cargo transport because the winds in this high-altitude air corridor 574 may create uncomfortable conditions for passengers. Other air corridors 574 may be demarcated exclusively for passenger transport. In other examples, an air corridor 574 may be partitioned for both passenger and cargo transport. Air traffic control data may transmit packets indicating these and other constraints to the UAV platooning system 146.

[0097] As yet another example, air traffic control data may indicate a malfunctioning, unusable, or faulty device (e.g., a communications device) that could adversely affect the safety and performance of Platoon 572. In another example, air traffic control data may establish a specific boundary around a stationary object. For example, if Platoon 572 is too close to a building, air traffic control may prevent the formation of Platoon 572 because its proximity to the building could adversely affect the safety of the building and the UAV100.

[0098] In this example, air traffic control may transmit this information to the UAV platoon system 146. While specific air traffic control data is mentioned, other air traffic control data may also be shared, and when grouping UAV 100 into platoon 572, the UAV platoon system 146, more specifically the group module 260, may rely on this data.

[0099] Furthermore, in step 620, the UAV platoon system 146 may include an instruction to the processor 256 to receive weather data from a weather station, and the group module 260 may include an instruction to the processor 256 to group the UAVs 100 into platoons 572 based on that weather data. For example, severe weather may prevent the formation of platoon 572 because it could pose a significant risk to the UAV 100 and any cargo and / or passengers inside the UAV 100. As another example, weather data may limit the formation and management of platoons 572. For example, when wind speed exceeds a certain value, platoons 572 may be limited to those containing cargo to ensure the safety and comfort of passengers.

[0100] As another example, in step 620, the UAV platoon system 146 may include an instruction to the processor 256 to group a group of UAVs 100 into a platoon 572 based on operational indicators. As described above, the operational indicators may refer to data contained in the grouping model 254, which is used to evaluate the information contained in the intent message 370 when grouping the UAVs 100. Examples include safety indicators, energy indicators, comfort indicators, air corridor capacity indicators, and cargo indicators. Thus, the group module 260 may take these operational indicators into consideration and group the UAVs 100 accordingly.

[0101] Therefore, in step 630, the group module 260 may group a group of UAVs 100 into a platoon 572 based on the air corridors 574 and planned paths in a plurality of intent messages 370. That is, the group module 260 receives a plurality of intent messages 370, each containing an identified air corridor 574 and planned path corresponding to each UAV 100. The group module 260 then groups the UAVs 100 based on the measured similarity between the air corridors and planned paths, which may be determined based on the multi-factor clustering operation described above. In one example, a plurality of UAVs 100 that are in the same air corridor and traveling in the same direction for a period of time, for example, several seconds or several minutes, may be grouped. That is, the UAVs 100 in a platoon 572 may have different destinations. However, along the paths to these destinations, the UAVs 100 may follow similar trajectories for at least a portion of their travel time. These UAVs 100 can be grouped based on shared similarities when their similarities match (i.e., while traveling along a shared planned route). At any point when the information in the intent message 370 differs, for example, when different UAVs are traveling in different directions toward their respective intended destinations, the platoon 572 may be disbanded, or the branching UAVs 100 may be controlled or instructed to detach from the platoon 572.

[0102] In step 640, the flight information module 262 generates a coordinated flight path and a coordinated flight pattern for Platoon 572. As described above, the coordinated flight path may indicate a series of waypoints along which Platoon 572 will fly. The flight path may also include clothoid curves between waypoints to provide a smooth flight path. The flight information module 262 may also generate flight parameters for Platoon 572 (e.g., speed, deceleration / acceleration rate and deceleration / acceleration threshold, as well as maneuver rate and maneuver threshold), as described above.

[0103] In step 650, the control module 264 may fly a group of UAVs 100 based on the coordinated flight path and coordinated flight parameters. That is, the control module 264 may establish a communication link with each UAV 100 in the platoon 572 and transmit control signals to each UAV 100, which are received by the flight systems 118 and / or autonomous flight modules 144 of the UAVs 100 and used to control the operation of different flight systems. In other words, these control signals modify the operation of various flight systems 118 so that the UAVs 100 follow a coordinated flight path that matches the coordinated flight parameters.

[0104] In another example, the control module 264 transmits a coordinated flight path and coordinated flight parameters to the UAV 100. The UAV systems, such as the autonomous flight module 144 and various flight systems 118, use the parameters transmitted by the control module 264 to control the UAV 100 along the flight path. In the example illustrated in Figure 7, the transmission of the coordinated flight path and coordinated flight parameters may be done via a modified intent message 370. That is, the intent message 370 may contain control signals that control the UAV's flight systems and other systems to perform autonomous flight in a particular manner. In this example, by modifying the intent message 370, the control module 264 modifies the set of instructions that define autonomous flight, thereby enabling the UAV 100 to follow the coordinated flight path using the parameters established by the flight information module 262.

[0105] Figure 7 is a schematic diagram of a UAV platoon system 146 that forms and manages a platoon 572 of UAVs 100. As described above, the UAV platoon system 146 can group UAVs based on various data. For example, as shown in Figure 7, the UAV platoon system 146 may receive air traffic control data from air traffic control 776, meteorological data from weather station 778, and intent messages 370 from multiple UAVs 100-1, 100-2, 100-3, and 100-4, which are candidates to form platoon 572.

[0106] The group module 260 determines whether a UAV 100 is located within a specific air corridor 574. This determination may be based on an intent message 370 received from the UAV 100. That is, the UAV's intent message 370 may indicate the air corridor 574 in which each UAV 100 is located. In this way, the group module 260 can extract this information and determine whether a UAV 100 is located within a specific air corridor 574.

[0107] If none exist, the group module 260 continues to monitor whether multiple UAVs 100s are present in a particular air corridor 574. If multiple UAVs 100s are present in an air corridor 574, the group module 260 considers certain operational indicators 780 when determining whether to (1) group the UAVs 100s as a platoon 572, and (2) which UAVs 100s to group into a platoon 572. As described above, examples of operational indicators 780 include safety indicators (e.g., whether the formation of a platoon 572 under current environmental conditions is safe for cargo and / or passengers), energy indicators (e.g., whether the formation of a platoon 572 is energy efficient), air corridor capacity indicators (e.g., whether air corridor 574 can accommodate additional UAVs 100s and / or platoons 572 of UAVs 100s), and cargo indicators (e.g., whether a particular type of cargo is permissible and whether the conditions are appropriate for a particular type of cargo). Examples of each indicator are described herein.

[0108] As an example of safety indicators, group module 260 may determine whether it is safe to form platoon 572 by considering weather conditions, data contained in intent messages 370, and air traffic control data. For example, under certain wind conditions, the wind conditions may not be safe for passengers, so it may be permissible to allow cargo-based UAV platoon 572 while preventing passenger platoon 572. The safety indicators illustrated in Figure 7 include weights, algorithms, biases, criteria, etc., used to evaluate various situations in order to determine whether platooning is safe. As described above, these safety indicators may be included in grouping model 254.

[0109] As another example, while platoon flight may reduce energy consumption in some aspects, UAV100 may consume more energy adjusting speed and / or altitude to maintain flight formation with other UAV100s. Therefore, there is a trade-off between the energy saved by flying within Platon 572 and the energy consumed by flying within Platon 572. Group module 260 may take this trade-off into consideration when deciding whether to form Platon 572. Thus, the energy indicators illustrated in Figure 7 include weights, algorithms, biases, criteria, etc., used to evaluate various situations in order to determine whether platoon flight is energy efficient. As described above, these energy indicators may be included in grouping model 254.

[0110] As another example, as mentioned above, air corridor 574 has a certain capacity, and when this capacity is exceeded, it creates an undesirable level of danger to the UAV100, cargo, and passengers. The capacity index illustrated in Figure 7 includes weights, algorithms, biases, criteria, etc., used to evaluate various situations to determine whether platooning flight poses a risk of pressuring the capacity of air corridor 574. As mentioned above, these capacity indexes may be included in grouping model 254.

[0111] As another example, when deciding whether to group UAV100 as Platon 572, indicators regarding cargo (e.g., cargo or passengers) may be considered. For example, during platoon flight, more positional and / or maneuvering adjustments may be made to a particular UAV100 than when flying alone. These periodic adjustments may be uncomfortable for passengers. The cargo indicators illustrated in Figure 7 include weights, algorithms, biases, criteria, etc., used to evaluate various situations in order to determine whether platoon flight should be promoted based on the cargo of the UAV100. As mentioned above, these cargo indicators may be included in the grouping model 254.

[0112] By considering various data (i.e., data from intent message 370, air traffic control data, and weather data) in light of the operational indicator 780 described above, group module 260 may initiate platoon formation. Otherwise, group module 260 may return to monitoring whether multiple UAVs 100 are present within air corridor 574.

[0113] In one example, the flight information module 262 may then generate a coordinated flight path and coordinated flight parameters for Platoon 572. That is, the flight information module 262 may determine a planned path and specific parameters (e.g., speed, deceleration and acceleration ranges, maneuver thresholds, etc.) for Platoon 572. In some examples, the flight information module 262 includes instructions to the processor 256 to generate a coordinated flight path and coordinated flight parameters for Platoon 572 based on operational indicators 780. As a specific example, the flight information module 262 may be a model predictive controller (MPC) that includes a cost function and a predictive model that optimizes the coordinated flight path and coordinated flight parameters based on operational indicators 780.

[0114] In other words, conforming to specific operational indicators 780 may have associated costs. For example, a few large platoons of 572 may be safer than many small platoons of 572. However, large platoons of 572 may be less energy efficient. As another example, energy efficiency may require platoons of 572 to fly at higher speeds, while safety may require platoons of 572 to fly at lower speeds. As yet another example, it may be desirable for UAVs to maintain a certain distance from each other to ensure safety. However, doing so may reduce the energy efficiency that can be obtained through formation flight.

[0115] Therefore, the MPC's flight information module 262 can simultaneously optimize flight paths and flight parameters based on different or other operational indicators 780. In other words, there may be multiple flight paths and multiple flight parameters that can be used during platooned flight, each having different costs (e.g., energy consumption, passenger dissatisfaction, etc.). The flight information module 262 can simultaneously evaluate these different costs and select a desired flight path and parameters that are expected to satisfy the operational indicators 780. In one example, a flight path and flight parameters that optimize the operational indicators 780 may be selected and transmitted to the control module 264 for transmission and / or control of the platoon UAV 100. In this way, the operational indicators 780 function as (1) a reference indicator that defines grouping the UAV 100 as a platoon 572, and (2) are optimized to ensure efficient, safe, and reliable flight of the platoon 572.

[0116] As described above, the control module 264 then controls each component to fly the UAVs 100 within Platoon 572. Specifically, the control module 264 may generate an updated intent message 370 containing content (i.e., updated position data, updated planned flight path data, updated dynamics data, etc.). The updated intent message 370 is then transmitted to each different UAV 100. In one example, this may be done iteratively through the UAVs 100 within Platoon 572. That is, the transmission of the coordinated flight path and coordinated flight parameters may first be sent to a first UAV 100-1, updated based on the intent message from the first UAV 100-1, and then sent to a second UAV 100-2. This may be done sequentially until all UAVs 100 within Platoon 572 have received and processed the updated flight controls.

[0117] Next, with reference to Figure 1, exemplary environments in which the systems and methods disclosed herein may operate will be described in detail. In some examples, the UAV100 is configured to selectively switch between autonomous mode, one or more semi-autonomous modes, and / or manual mode. "Manual mode" means that all or most of the control and / or maneuvering of the UAV100 is performed in accordance with inputs received via a manual human-machine interface (HMI) of the UAV100 (e.g., a control stick, pedals, directional pad, buttons, etc.) operated by a user (e.g., a pilot).

[0118] In one or more configurations, the UAV100 implements a certain degree of autonomy to operate autonomously or semi-autonomously. Generally, autonomous control requires a computing system to control and / or pilot the UAV100 along its trajectory with minimal or no input from the pilot. In contrast, semi-autonomous mode provides some control and / or piloting of the UAV100 along its trajectory via a computing system, with a pilot (not on board the UAV100) providing at least some control and / or piloting of the UAV100.

[0119] Continuing to refer to the various components shown in Figure 1, the UAV100 includes one or more processors 102. In one or more configurations, processor 102 may be the primary / centralized processor of the UAV100, or it may represent multiple distributed processing units. For example, processor 102 may be an electronic control unit (ECU). Alternatively or additionally, the processor may include a central processing unit (CPU), graphics processing unit (GPU), ASIC, microcontroller, system-on-a-chip (SoC), and / or other electronic processing units that support the operation of the UAV100.

[0120] The UAV 100 may include one or more datastores 130 for storing one or more types of data. The datastores 130 may consist of volatile memory and / or non-volatile memory. Examples of memory that may constitute the datastores 130 include RAM (random access memory), flash memory, ROM (read-only memory), PROM (programmable read-only memory), EPROM (erasable programmable read-only memory), EEPROM (electrically erasable programmable read-only memory), registers, magnetic disks, optical disks, hard drives, solid-state drives (SSDs), and / or other non-temporary electronic storage media. In one configuration, the datastores 130 may be components of one or more processors 102. Generally, the datastores 130 are operatively connected to the processors 102 for use by the processors 102. The term “operatively connected” as used throughout this specification may include direct or indirect connections, including connections that do not involve direct physical contact.

[0121] In one or more configurations, one or more data stores 130 contain various data elements to support the functions of the UAV 100, such as semi-autonomous functions and / or autonomous functions. Thus, the data store 130 may store map data 132 and / or sensor data 138. The map data 132 includes maps of one or more geographical regions in at least one method. In some examples, the map data 132 may include information about air corridors 574, structures, features, and / or landmarks in one or more geographical regions. The map data 132 may be characterized as a high-resolution map that provides information about autonomous functions and / or semi-autonomous functions in at least one method.

[0122] In one or more configurations, map data 132 may include one or more terrain maps 134. A terrain map 134 may include information about the ground, terrain, surface, topology, and / or other features in one or more geographical regions. A terrain map 134 may include elevation data in one or more geographical regions. In one or more configurations, map data 132 may include one or more static obstacle maps 136. A static obstacle map 136 may include information about one or more static obstacles located within one or more geographical regions. A "static obstacle" is a physical object whose location and general attributes do not change substantially over a period of time. Examples of static obstacles include trees and buildings.

[0123] Sensor data 138 is data provided from one or more sensors of the sensor system 104. Therefore, sensor data 138 may include observations of the surrounding environment of the UAV 100 and / or information about the UAV 100 itself. In some examples, one or more data stores 130 located on the vehicle-mounted UAV 100 store map data 132 and / or at least a portion of sensor data 138. Alternatively or additionally, at least a portion of map data 132 and / or sensor data 138 may be stored in one or more data stores 130 located away from the UAV 100.

[0124] As described above, the UAV 100 may include a sensor system 104. The sensor system 104 may include one or more sensors. As used herein, “sensor” means an electronic and / or mechanical device that generates an output (e.g., an electrical signal) in response to a physical phenomenon such as electromagnetic radiation (EMR) or sound. The sensor system 104 and / or one or more sensors may be operably connected to the processor 102, the data store 130, and / or other elements of the UAV 100.

[0125] Here, various examples of different types of sensors are described. However, it should be understood that this embodiment is not limited to the specific sensors described. In various configurations, the sensor system 104 may include one or more aircraft sensors 106 and / or one or more environmental sensors 108. The aircraft sensors 106 have the function of detecting information about the UAV 100 itself. In one or more configurations, the aircraft sensors 106 may include one or more accelerometers, one or more altimeters, one or more gyroscopes, an inertial measurement unit (IMU), a dead reckoning system, a global navigation satellite system (GNSS), a global positioning system (GPS), an airspeed sensor, and / or other sensors for monitoring aspects of the UAV 100.

[0126] The sensor system 104 may include one or more environmental sensors 108 that detect the surrounding environment of the UAV 100 (e.g., the external environment). For example, one or more environmental sensors 108 may detect objects in the surrounding environment of the UAV 100. Such obstacles may be stationary and / or moving objects. Hereinafter, examples of various sensors that may be included in the sensor system 104 are described. Exemplary sensors may be part of one or more environmental sensors 108 and / or one or more aircraft sensors 106. However, it should be understood that this embodiment is not limited to the specific sensors described. As an example, in one or more configurations, the sensor system 104 may include one or more radar sensors 110, one or more LiDAR sensors 112, one or more sonar sensors 114 (e.g., ultrasonic sensors), and / or one or more cameras 116 (e.g., monocular, stereo, RGB, infrared, etc.).

[0127] Continuing the explanation of the elements in Figure 1, the UAV 100 may include an input system 140. The input system 140 generally comprises one or more devices that enable a machine, such as an operator, to acquire information from an external information source. The input system 140 may receive input from the UAV's occupants (e.g., pilot / operator and / or passengers). In addition, in at least one configuration, the UAV 100 includes an output system 142. The output system 142 comprises one or more devices that enable the provision of information or data to an external object (e.g., a person, the UAV's occupants, another UAV, another electronic device, etc.).

[0128] Furthermore, the UAV100 may include one or more flight systems 118 in various configurations. Various examples of one or more flight systems 118 are shown in Figure 1. However, the UAV100 may include flight systems of different configurations. Even if a particular flight system is defined separately, it should be understood that each system or part of that system may be otherwise coupled or separated via hardware and / or software within the UAV100. As shown, the UAV100 includes a propulsion system 120, a steering system 122, a throttle system 124, and a navigation system 126.

[0129] The navigation system 126 may include one or more devices, applications, and / or combinations thereof for determining the geographical location of the UAV 100 and / or determining the travel path of the UAV 100. The navigation system 126 may include one or more mapping applications for determining the travel path of the UAV 100 according to, for example, map data 132. The navigation system 126 may include, or provide at least a connection to, a global positioning system, a local positioning system, or a geolocation system.

[0130] In one or more configurations, the flight system 118 functions in coordination with other components of the UAV 100. For example, one or more processors 102, UAV platoon systems 146, and / or autonomous flight modules 144 may be operablely connected to communicate with various flight systems 118 and / or their individual components. For example, the processors 102 and / or autonomous flight modules 144 may communicate to and / or receive information from various flight systems 118 in order to control the navigation and / or maneuvering of the UAV 100. The processors 102, UAV platoon systems 146, and / or autonomous flight modules 144 may control some or all of these flight systems 118.

[0131] For example, when operating in autonomous mode, the processor 102, the UAV platoon system 146, and / or the autonomous flight module 144 control the heading, altitude, and speed of the UAV 100. The processor 102, the UAV platoon system 146, and / or the autonomous flight module 144 cause the UAV 100 to accelerate (for example, by increasing the amount of energy and / or fuel supplied to the motors), decelerate, and / or change direction or altitude. As used herein, “cause” or “causing” means to bring about, force, compel, direct, command, order, and / or enable an event or action in a direct or indirect manner.

[0132] As shown, the UAV 100 includes one or more actuators 128 in at least one configuration. The actuators 128 are elements capable of moving and / or controlling mechanisms, such as one or more flight systems 118 or one or more of its components, in response to electronic signals or other inputs from the processor 102 and / or the autonomous flight module 144. The one or more actuators 128 may include motors, pneumatic actuators, hydraulic pistons, relays, solenoids, piezoelectric actuators, and / or other forms of actuators that generate the desired control.

[0133] As described above, the UAV100 may include one or more modules, at least a portion of which are described herein. In at least one configuration, a module is implemented as non-transient computer-readable instructions that, when executed by the processor 102, perform one or more of the various functions described herein. In various configurations, one or more of the modules may be components of the processor 102, or one or more of the modules may run on and / or be distributed among other processing systems to which the processor 102 is operablely connected. Alternatively or additionally, one or more modules may be implemented in hardware, at least in part. For example, one or more modules may consist of combinations of logic gates arranged to achieve the described functions (e.g., metal-oxide-semiconductor field-effect transistors (MOSFETs)), application-specific integrated circuits (ASICs), programmable logic arrays (PLAs), field-programmable gate arrays (FPGAs), and / or other electronic hardware-based implementations for implementing the described functions. Furthermore, in one or more configurations, one or more modules may be distributed among multiple modules described herein. In one or more configurations, two or more modules described herein may be combined into a single module.

[0134] Furthermore, the UAV100 may include one or more autonomous flight modules 144. The autonomous flight modules 144 receive data from the sensor system 104 and / or other systems associated with the UAV100 in at least one manner. In one or more configurations, the autonomous flight modules 144 use such data to perceive the environment surrounding the UAV100. The autonomous flight modules 144 determine the position of the UAV100 within the surrounding environment and map the characteristics of the surrounding environment. For example, the autonomous flight modules 144 determine the location of obstacles or other environmental features, including trees, buildings, adjacent UAVs, etc.

[0135] The autonomous flight module 144 may be configured alone or in combination with the UAV platoon system 146 to determine the UAV 100's trajectory, current autonomous maneuvers, future autonomous maneuvers, and / or modifications to current autonomous maneuvers based on data acquired from the sensor system 104 and / or other information sources. Generally, the autonomous flight module 144 has the capability to implement different levels of autonomy, including semi-autonomous and fully autonomous functions, as described above.

[0136] Detailed embodiments are disclosed herein. However, it should be understood that the disclosed embodiments are intended to be illustrative only. Accordingly, the specific structural and functional details disclosed herein should not be construed as limiting, but merely as representative grounds for teaching those skilled in the art various uses of the embodiments herein in substantially arbitrary and detailed configurations. Furthermore, the terms and expressions used herein are not intended to be limiting, but rather to provide an understandable description of possible embodiments. Various embodiments are shown in Figures 1–7, but the embodiments are not limited to the structures or uses shown.

[0137] The flowcharts and block diagrams in the drawings illustrate the architecture, functions, and operation of possible embodiments of systems, methods, and computer program products according to various embodiments. In this regard, each block in a flowchart or block diagram represents a module, segment, or part of code, each of which may contain one or more executable instructions for performing a specific logical function. In some alternative embodiments, the functions described in the blocks may not be performed in the order shown in the drawings. For example, two consecutively shown blocks may be executed substantially simultaneously, depending on the associated functions, or the blocks may sometimes be executed in reverse order.

[0138] The systems, components, and / or processes described herein can be implemented in hardware or in combination of hardware and software, and may be implemented in a concentrated manner within a single processing system or in a distributed manner where different elements are spread across several interconnected processing systems. The systems, components, and / or processes can be incorporated into computer-readable storage such as computer program products or other data program storage devices, which are machine-readable and tangibly embody machine-executable program instructions for performing the methods and processes described herein. These elements may also be incorporated into application products that have all the features enabling embodiments of the methods described herein and can perform these methods when loaded into a processing system.

[0139] Furthermore, the configurations described herein may take the form of a computer program product in which computer-readable program code is embodied, for example, in one or more stored computer-readable media. Any combination of one or more computer-readable media may be used. The expression “computer-readable storage medium” means a non-temporary storage medium. A computer-readable storage medium may be, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or any suitable combination thereof. Non-exclusive examples of computer-readable storage media include, for example, portable computer diskettes, hard disk drives (HDDs), solid-state drives (SSDs), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), portable compact disc read-only memory (CD-ROM), digital multipurpose discs (DVDs), optical storage devices, magnetic storage devices, or any combination thereof. In the context of this document, a computer-readable storage medium may be any tangible medium on which a program can be stored for use by or in connection with an instruction execution system, device, or apparatus.

[0140] The program code, embodied in a computer-readable medium, may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, cable, RF, or any combination thereof. The computer program code for performing the operations for each aspect of this embodiment may be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java®, Smalltalk, and C++, as well as conventional procedural programming languages ​​such as the "C" programming language. The program code may be fully executed on the user's computer, partially executed on the user's computer, executed as a standalone software package, partially executed on the user's computer and partially executed on a remote computer, or fully executed on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or the connection to the external computer may be made via the Internet, for example, using an Internet service provider.

[0141] The terms "a" and "an" are defined as, when used herein, one or more, not one. The term "plural" is defined as, when used herein, two or more, not two. The term "another" is defined as, when used herein, at least the second. The terms "containing" and / or "having" are defined as containing (i.e., open language) when used herein. The expression "at least one of ... and ..." is used herein to mean and encompass any and all possible combinations of one or more of the enumerated items associated. For example, the expression "at least one of A, B, and C" includes A only, B only, C only, and any combination thereof (e.g., AB, AC, BC, ABC).

[0142] The embodiments described herein may be embodied in other forms without departing from their spirit or essential features. Therefore, the scope of this specification should be understood by referring to the claims described below, rather than the foregoing specification.

Claims

1. It is a system, Processor and Memory for storing machine-readable instructions, The machine-readable instruction, when executed by the processor, Receiving intent messages from multiple unmanned aerial vehicles (UAVs) containing air corridors and planned routes for each UAV, Grouping a group of UAVs into a platoon based on the air corridor and planned path within multiple intent messages, To generate a coordinated flight path and coordinated flight parameters for the aforementioned platoon, To fly the group of UAVs based on the aforementioned coordinated flight path and the aforementioned coordinated flight parameters, A system that causes the aforementioned processor to execute the following.

2. A system according to claim 1, wherein the machine-readable instruction that causes the processor to fly the group of UAVs based on the coordinated flight path and the coordinated flight parameters includes a machine-readable instruction that causes the processor to transmit the coordinated flight path and the coordinated flight parameters to the group of UAVs in order to achieve coordinated flight.

3. The system according to claim 1, The intended message is, The position data for each of the aforementioned UAVs, UAV characteristic data for each of the aforementioned UAVs, The connection status data with air traffic control for each of the aforementioned UAVs, It further includes at least one of the following: The machine-readable instruction that causes the processor to group the group of UAVs includes a machine-readable instruction that causes the processor to group the group of UAVs based on at least one of the location data, the UAV characteristic data, or the connection status data with air traffic control. system.

4. The system according to claim 1, wherein the machine-readable instructions causing the processor to fly the group of UAVs based on the coordinated flight path and the coordinated flight parameters further include machine-readable instructions causing the processor to control at least one of the following: flight plan, flight parameters, flight formation, flight speed, duration of the platoon, acceleration range, deceleration range, or maneuver execution rate.

5. The system according to claim 1, wherein the machine-readable instructions causing the processor to generate the coordinated flight path and the coordinated flight parameters for the platoon and to fly the group of UAVs based on the coordinated flight path and the coordinated flight parameters are executed iteratively via the group of following UAVs.

6. The system according to claim 1, The machine-readable instruction that causes the processor to group the group of UAVs into the platoon includes a machine-readable instruction that causes the processor to group the group of UAVs into the platoon based on operational indicators. The machine-readable instructions that cause the processor to generate the coordinated flight path and coordinated flight parameters for the platoon include machine-readable instructions that cause the processor to generate the coordinated flight path and coordinated flight parameters for the platoon based on the operational indicators. system.

7. The system according to claim 6, wherein the machine-readable instruction causing the processor to group the group of UAVs into a platoon based on the operational indicators is, Safety indicators and Energy indicators and Air corridor capacity index, Cargo indicators and A machine-readable instruction for grouping the group of UAVs based on at least one of the following: system.

8. The system according to claim 1, The machine-readable instruction, when executed by the processor, further includes a machine-readable instruction that causes the processor to receive air traffic control data from air traffic control, and The machine-readable instruction that causes the processor to group the group of UAVs into the platoon includes a machine-readable instruction that causes the processor to group the group of UAVs into the platoon based on the air traffic control data. system.

9. The system according to claim 1, The machine-readable instruction, when executed by the processor, further includes a machine-readable instruction that causes the processor to receive weather data from a weather station, and The machine-readable instruction that causes the processor to group the group of UAVs into the platoon includes a machine-readable instruction that causes the processor to group the group of UAVs into the platoon based on the weather data. system.

10. A non-temporary machine-readable recording medium comprising instructions, wherein the instructions, when executed by a processor, Receiving intent messages from multiple unmanned aerial vehicles (UAVs) containing air corridors and planned routes for each UAV, Grouping a group of UAVs into a platoon based on the air corridor and planned path within multiple intent messages, To generate a coordinated flight path and coordinated flight parameters for the aforementioned platoon, To fly the group of UAVs based on the aforementioned coordinated flight path and the aforementioned coordinated flight parameters, A non-temporary machine-readable recording medium that causes the processor to execute the above.

11. A non-temporary machine-readable recording medium according to claim 10, The instruction to the processor to fly the group of UAVs based on the coordinated flight path and the coordinated flight parameters includes an instruction to the processor to transmit the coordinated flight path and the coordinated flight parameters to the group of UAVs in order to achieve coordinated flight, and is a non-temporary machine-readable recording medium.

12. A non-temporary machine-readable recording medium according to claim 10, The intended message is, The position data for each of the aforementioned UAVs, UAV characteristic data for each of the aforementioned UAVs, The connection status data with air traffic control for each of the aforementioned UAVs, It further includes at least one of the following: The instruction that causes the processor to group the group of UAVs includes an instruction that causes the processor to group the group of UAVs based on at least one of the location data, the UAV characteristics data, or the connection status data with air traffic control. A non-temporary machine-readable recording medium.

13. A non-temporary machine-readable recording medium according to claim 10, The instruction that causes the processor to group the group of UAVs into the platoon includes an instruction that causes the processor to group the group of UAVs into the platoon based on operational indicators, The instruction causing the processor to generate the coordinated flight path and coordinated flight parameters for the platoon includes an instruction causing the processor to generate the coordinated flight path and coordinated flight parameters for the platoon based on the operational indicators. A non-temporary machine-readable recording medium.

14. A non-temporary machine-readable recording medium according to claim 10, The machine-readable medium, when executed by the processor, includes an instruction that causes the processor to receive at least one of air traffic control data or weather data, The instruction that causes the processor to group the group of UAVs into the platoon comprises an instruction that causes the processor to group the group of UAVs into the platoon based on at least one of the air traffic control data or the weather data. A non-temporary machine-readable recording medium.

15. It is a method, Receiving intent messages from multiple unmanned aerial vehicles (UAVs) containing air corridors and planned routes for each UAV, Grouping a group of UAVs into a platoon based on the air corridor and planned path within multiple intent messages, To generate a coordinated flight path and coordinated flight parameters for the aforementioned platoon, To fly the group of UAVs based on the aforementioned coordinated flight path and the aforementioned coordinated flight parameters, Methods that include...

16. A method according to claim 15, wherein flying the group of UAVs based on the coordinated flight path and the coordinated flight parameters includes transmitting the coordinated flight path and the coordinated flight parameters to the group of UAVs in order to achieve coordinated flight.

17. A method according to claim 15, wherein flying the group of UAVs based on the coordinated flight path and the coordinated flight parameters further comprises controlling at least one of the following: flight plan, flight parameters, flight formation, flight speed, duration of the platoon, acceleration range, deceleration range, or maneuver execution rate.

18. A method according to claim 15, wherein generating the coordinated flight path and the coordinated flight parameters for the platoon, and flying the group of UAVs based on the coordinated flight path and the coordinated flight parameters, is performed iteratively via a group of following UAVs.

19. The method according to claim 15, Grouping the aforementioned group of UAVs into the platoon includes grouping the aforementioned group of UAVs into the platoon based on operational indicators, Generating the coordinated flight path and coordinated flight parameters for the platoon includes generating the coordinated flight path and coordinated flight parameters for the platoon based on the operational indicators. method.

20. The method according to claim 15, The method further includes receiving at least one of air traffic control data or meteorological data. This includes grouping the group of UAVs into a platoon based on at least one of the air traffic control data or the weather data. method.