Method for determining unmanned aerial vehicle path and other related methods
The method optimizes UAV flight paths using a graph-based model that considers environmental and user-defined constraints, enabling autonomous and adaptive flight planning in complex environments.
Patent Information
- Application Number
- JP2025124411
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-07-01
- Filing Date
- 2025-07-25
- Publication Date
- 2025-10-15
AI Technical Summary
Current technologies lack the ability to automatically generate flight programs for unmanned aerial vehicles (UAVs) that consider both environmental and user-defined constraints, requiring human intervention and the presence of a safety pilot to handle unexpected issues.
A method for modeling a three-dimensional environment to optimize UAV paths using a graph-based approach, incorporating constraints such as distance, time, energy, and risk, with dynamic updates and adjustments based on real-time data and environmental changes.
Enables autonomous UAV flight planning that minimizes human intervention, ensures safety, and adapts to dynamic conditions, allowing UAVs to navigate complex environments efficiently and safely.
Smart Images

Figure 2025157526000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates generally to unmanned aerial vehicles or drones, and more particularly to determining paths for drones in constrained environments.
[0002] prior art Surveillance drones are increasingly being used for surveillance, especially of structures, sensitive sites, etc.
[0003] In addition, solutions are known in the literature for describing the path imposed on a drone.
[0004] In the field of manned flight, a flight plan is a series of waypoints without vertical dimensions pre-selected by a user according to environmental and material constraints (see, for example, EP1614086A2).
[0005] This paper describes a technique for tracking a theoretical trajectory, taking as input a list of coordinates of waypoints and data from different sensors (lidar, laser, etc.) and processing them to dynamically modify said trajectory.
[0006] The current state of the art does not propose any technology that allows automatically establishing a flight program under environmental and material constraints on the one hand, and under higher level constraints determined by the user on the other hand.
[0007] Therefore, with current technology, it is the UAV user who is responsible for constructing a list of waypoints that will allow the aircraft to reach its destination. The user must construct this path by taking into account the uncertainty in the UAV's positioning, avoiding obstacles, etc., and ensuring that the UAV has the energy available to cover the path.
[0008] Still, with current technology, a safety pilot must be present during the UAV's automated mission so that they can take over if a problem occurs. The pilot is then responsible for making the right decisions about the trajectory that will allow the UAV to reach a safe area. Summary of the Invention
[0009] The present invention proposes to improve the generation of automatic flight programs by limiting the need for human intervention during flight and by providing very flexible flight path determination.
[0010] According to a first aspect, a method for modeling a three-dimensional environment by digital processing is proposed in order to establish a path for an unmanned aerial vehicle optimized according to different priorities, the method comprising the following digital processing steps: (a) providing a three-dimensional model of the prohibited volume (PEXi); (b) breaking down the model into individual elements (PVk); (c) determining the center (Pk) for each individual element; (d) establishing and storing a graph whose nodes (Pk, Ik) are formed by at least one portion of said center and whose branches are weighted by the distance between the nodes and by at least one weighting associated with a given priority.
[0011] The method advantageously but optionally comprises the following additional features, taken individually or in any combination, that a person skilled in the art would consider technically compatible: The priorities include at least two of an absolute distance priority, a travel time priority, an energy consumption priority, and a risk priority. *At least one of the weightings depends on a constraint that affects all branches. *The above constraints include a constraint vector that affects all branches. *The constraint vector is the wind vector, and each branch has a pair of weights associated with each direction of movement, each weight being explicitly affected by the wind vector. *The weighting above allows different weights to be assigned to the same branch depending on the direction of movement to generate a preferred direction of movement. *The weighting is based on a mapping that defines different levels of constraint depending on the location in the flight space. *The constraint level is included in a group that includes a maximum allowable speed constraint and a danger constraint. *Constraints can take on values such that the corresponding area becomes a no-fly zone. *Step (a) involves providing a three-dimensional model with physically unflyable volumes (PEXi) and reprocessing this model with static safety margin data. *Step (a) involves subdividing the three-dimensional model into horizontal slices (Txy), projecting the volume onto a horizontal plane that is the same through the thickness of each slice, and implementing the subdivision into individual elements within each horizontal plane. *Subdivision is done by triangulation. *The triangulation is Delaunay triangulation. *Step (d) involves establishing graph branches between nodes located in adjacent horizontal planes using a distance minimization approach.
[0012] According to a second aspect, a method is proposed for determining, by an unmanned aerial vehicle, a path between two points in a three-dimensional space modeled by a graph obtained by the modeling method defined above, said method comprising the following steps: determining a priority of the route; - considering or establishing a given graph corresponding to the determined priority; - defining a route on the aircraft by calculating a best path within the given graph.
[0013] The method advantageously but optionally comprises the following additional features, taken individually or in any combination, that a person skilled in the art would consider technically compatible: The step of weighting the branches of the graph is implemented by remotely receiving a starting graph with unweighted branches and weighting said branches on board the aircraft according to priority. The method includes updating, during flight, weights of at least some of the branches of the graph and recalculating the best path through the graph. *Updating the weights of the graph branches is performed according to the priority changes. * Updating the branch weights of at least a portion of the graph is performed based on receiving revised weighting data for the weightings corresponding to the current priorities. *Updating the weights of the graph branches includes generating forbidden branches based on dynamically occurring forbidden areas. *The prohibited area is determined by the aircraft's remote communication with other equipment whose position determines the prohibited area. *Other devices are other unmanned aerial vehicles. *Forbidden areas are altitude levels where flying is prohibited. *Other equipment is associated with temporary interventions at the premises. *The best route calculation is performed subject to the aircraft agility constraints.
[0014] According to a third aspect, there is provided a method for piloting an unmanned aerial vehicle, the method comprising the steps of: - determining a route according to the determination method defined above; applying at least one trajectory relaxation factor; - determining the allowable trajectory deviation as a function of the relaxation factor; applying the orbit correction command only if the actual measured orbit deviation exceeds the allowable orbit deviation.
[0015] Advantageously, but optionally, the relaxation factor is determined from at least one data item representing one of several pieces of information: the current accuracy of a GPS unit on board the aircraft, wind, the response of the aircraft to control commands, the size of the aircraft, the type of aircraft.
[0016] According to a fourth aspect, there is provided a method for piloting an unmanned aerial vehicle, the method comprising the steps of: - determining a route according to the determination method defined above; - measuring the dynamic characteristics of the aircraft during flight; - dynamically determining new paths according to the evolution of said dynamic characteristics.
[0017] The method advantageously but optionally comprises the following additional features, taken individually or in any combination, that a person skilled in the art would consider technically compatible: The dynamic characteristics include at least one of the following: available energy on board and behavioral abnormalities. The graph includes nodes that specify landing stations or areas, and the step of dynamically determining new routes takes into account the location of the nodes of the landing stations or areas. * The step of dynamically determining a new route also takes into account the status (vacant, occupied) of the station or landing area node. *The method includes modifying priorities in case of behavioral abnormalities.
[0018] It is further proposed an unmanned aerial vehicle comprising digital processing circuitry and wireless communication circuitry designed to implement all or part of any of the above methods, and a computer program suitable for being loaded onto the unmanned aerial vehicle, the computer program comprising instructions suitable for implementing all or part of any of the above methods. [Brief explanation of the drawings]
[0019] Other aspects, objects and advantages of the present invention will become more apparent from the following detailed description of preferred embodiments, given by way of non-limiting example and made with reference to the accompanying drawings, in which: [Figure 1] A simplified plan view of the site where the UAV must operate. [Figure 2] FIG. 2 is an elevation view of the simplified site of FIG. 1. [Figure 3] FIG. 3 is a perspective view of the simplified site of FIGS. 1 and 2. [Figure 4] 1 is a diagram similar to FIG. 1 showing a safety zone surrounding a no-fly zone. [Figure 5] 3 is a diagram similar to FIG. 2 showing a safety zone surrounding a no-fly zone. [Figure 6] A plan view at a first elevation showing a possible spatial decomposition of a simplified site at this elevation. [Figure 7] A plan view at a second elevation showing a possible spatial decomposition of the simplified site at this elevation. [Figure 8] A plan view at a third elevation showing a possible spatial decomposition of the simplified site at this elevation. [Figure 9] A plan view at the fourth elevation showing a possible spatial decomposition of the simplified site at this elevation. [Figure 10] Illustrates the theoretical path through the points of spatial decomposition in FIG. 6. [Figure 11] The correction path established from the point of FIG. 10 is shown. [Figure 12] 1 illustrates the overall architecture of a drone system suitable for implementing the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0020] Introduction In the following, the term "drone" (or UAV - Unmanned Aerial Vehicle) is used to refer to an unmanned, remotely controlled and / or self-piloted aircraft, preferably equipped with rotors, including drones with elevators.
[0021] This paper describes different aspects of dynamic and safe path calculation and tracking in a complex and potentially dangerous three-dimensional flight space. It then describes an architecture in which these functions can be implemented, particularly in terms of the distribution of tasks associated with these functions between the flight vehicle and the ground.
[0022] The system to which the present invention is applied includes one or more drones capable of flying in a given space and one or more ground charging stations. The present invention focuses in particular on finding paths under constraints in this space, observing calculated trajectories, and reevaluating trajectories and destinations.
[0023] More specifically, the present invention aims to enable drones to navigate with maximum safety in a three-dimensional space whose topology is partially known in advance. This knowledge allows for establishing a representation of the flight space, taking into account both the dynamic changes in this space and changes in the aircraft's state, such as battery level or the appearance of abnormal behavior, as well as priorities given to the flight by the user or automatically depending on the given situation (shortest path, maximum energy efficiency, etc.).
[0024] According to one feature, the processing unit uses mission data, including in particular the coordinates of the starting point and the coordinates of the point to be reached, to build a list of waypoints optimized in terms of several criteria, including flight safety.
[0025] This list of waypoints is recalculated over time whenever the topology of the terrain changes, new information becomes available, or previously available information becomes unavailable.
[0026] The method aims to automatically take into account various influences in real time, such as a decrease in network quality in a certain area of space, one-way traffic restrictions in a certain area, the coordinates of available charging stations, or the presence of other drones in the vicinity of the trajectory.
[0027] The three-dimensional flight space provided as input data is a finite volume that can contain volumes where flight is prohibited. To prevent positioning uncertainties, a static safety margin is taken into account, and the volume of the flight space is reduced by decreasing the spatial extension of its outer boundary and increasing the spatial extension of the boundary of the prohibited volume it contains.
[0028] The allowed flight space, defined as the total volume excluding the volume representing illegal flight areas, is then subdivided into the set of all elements contained within the allowed flight space. For each of these elements, a characteristic point is selected. A graph is constructed by connecting the nearest neighboring points. Advantageously, a weighting is associated with each branch and depends on the constraints imposed on the system, as explained below. This weighting can be oriented depending on the direction in which it should be traversed, i.e., two different points can be associated with a branch. The user indicates a destination and the graph is traversed to find the optimal route according to the constraints.
[0029] Once a path is calculated, i.e., a flight plan is established, the path is followed by the UAV. To ensure observation of the calculated trajectory, a volume encompassing the trajectory is calculated depending on environmental conditions and flight parameters (speed, acceleration, etc.). This volume is derived by applying an anisotropic relaxation factor to the trajectory and corresponds to the required flight volume for the UAV to follow the trajectory. The relaxation factor is calculated periodically, and the required flight volume is modified accordingly to take into account dynamic changes in the relaxation factor's modification conditions. The weights associated with the graph branches are periodically recalculated, and a path between the current position and the destination that minimizes the path's "cost" according to one or more criteria is recalculated. The concept of path cost is determined by high-level priorities selected by the user: shortest path time, highest average path speed, and improved safety. If a new path exceeds the volume associated with the previous path, the relaxation factor is recalculated, and the required flight volume is recalculated accordingly. The UAV's behavior is monitored and if anomalies are detected, a change of destination may occur, so the UAV will head towards a pre-defined safe area to maximize flight safety.
[0030] Representation of flight space The methods for path detection and path building and tracking are described in detail with reference to FIGS.
[0031]
[0076] First, referring to Figures 1-3, a representation of the flight space E can be provided in three dimensions by considering the so-called "encompassing" polyhedron PEG (typically a cylinder of vertical director leaning against the site limit, here a fence CL) as completely encompassing a set of other so-called "excluded" polyhedrons, here, for simplicity, rectangular parallelepipeds PEX1, PEX2, and PEX3, whose volumes are prohibited from flight. These polyhedrons can represent, for example, buildings, industrial facilities, tanks, parking areas, or work areas. To account for both the uncertainty of the positioning instruments and the errors introduced by the three-dimensional model itself, static safety margins for both the encompassing and excluded polyhedrons are calculated by determining a predefined increase in the size of the excluded polyhedron and a predefined decrease in the size of the encompassing polyhedron. The increase or decrease in distance can be selected in different ways, for example, using known errors in the positioning system. They can vary in the two horizontal and vertical dimensions. Typically, they are approximately 5 m.
[0032] Therefore, for the reference PEG' and PEX1', PEX2' and PEX3', these corrected "extended" polyhedra are shown in Figures 4 and 5.
[0033] Referring now to Figures 5 and 6-9, the three-dimensional model of the flight space is considered here as a superposition of horizontal layers at different altitudes. Horizontal slices at fixed altitudes are created between horizontal planes located at the minimum and maximum altitudes of each polyhedron included in the flight space. Here, plane P0 corresponds to the common minimum altitude of the three excluded polyhedrons PEX1, PEX2, and PEX3, and planes P1-P3 correspond to the maximum altitudes in the increasing direction of the excluded polyhedrons, i.e., PEX3, PEX2, and PEX1. The intersections of each plane with each polyhedron form polygons themselves. Here, the polyhedrons are of constant horizontal cross section throughout their entire height. For polyhedrons of variable cross section, the projection of the polyhedron in the plane at the level of the widest cross section of the considered slice is determined by calculation.
[0034] The design of the three-dimensional model may also include a plane P4 (see Figure 5) determined according to the maximum flight altitude of the UAV, which plane would be carried over to nearly infinite altitudes if there were no such limit.
[0035] The flight space is modeled by a 2.5-dimensional space constituted by a series of slices of constant horizontal cross section, here T01, T12, T23, and T34, each delimited by a pair of planes P0-P1, ..., P3-P4, the limits of which are externally the limits of the corrected including polyhedron PEG' and internally the limits of the corrected excluded polyhedrons PEX1' to PEX3', which intersect with them, and each of these slices defines, over its entire height, an authorized flight area.
[0036] 6 to 9 show cross sections of four slices based on the models of FIGS. 1 to 5, respectively.
[0037] In FIG. 9, it can be seen that the maximum elevation slice T34 does not contain any excluded polygons.
[0038] This flight space is entered by one or more UAVs, which interact with one or more charging stations located in accessible areas of the flight area. The definition of the flight space can also take into account emergency landing zones. These correspond to areas that may or may not contain charging stations and are selected areas where a UAV can land safely. Charging stations must always be located in emergency landing zones so that if a problem occurs during the UAV's landing at the station, the UAV has a backup solution that is quickly and safely accessible. In the current description, emergency landing zones can be located above obstacles, but not at the same level.
[0039] The creation of a model of the site to be traversed also includes the positioning of charging stations for the UAV and, if necessary, emergency landing areas separate from the charging station areas, which is carried out with the help of an appropriate user interface.
[0040] Advantageously, this positioning is performed taking into account a safety margin of the prohibited area in order to avoid the UAV having to enter such a prohibited area during an emergency landing.
[0041] Subdividing the flight space into individual elements and constructing a representation of the flight space in the form of a graph In this step, the horizontal surface of the permitted flight area in each of the aforementioned slices is subdivided by the processing system into a set of individual elements or paving stones PVk, which thus constitute the paving of the permitted flight area in that slice. The paving can be performed in various ways. Advantageously, Delaunay triangulation or one of its variants (see in particular https: / / fr.wikipedia.org / wiki / Triangulation_de_Delaunay) is used for this paving, with the paving stones all having a triangular shape.
[0042] Advantageously, constrained Delaunay triangulation is used (see, for example, Christophe Lemaire. Delaunay triangulation and multidimensional trees. Image synthesis and virtual reality [cs.GR]. Ecole Nationale Superieure des Mines de Saint-Etienne; Universite Jean-Monnet-Saint-Etienne, 1997. France. NNT:1997 STET 4021; Tel. 00850521, see chapter 1.5).
[0043] An advantage of Delaunay triangulation is that it is not very demanding in terms of the computational resources needed to perform the triangulation, and therefore the subdivision into tiles can be performed on-board the UAV.
[0044] Furthermore, constrained triangulation allows individual elements of the model to intersect (e.g., in the case of a prohibited flight zone in the middle of an allowed flight zone), thereby ensuring that the triangulation results respect a certain shape in some places.
[0045] Once the triangulation is performed, the processing unit determines the coordinates of the characteristic point Pk for each paving stone. A possible option is to take the center of mass of the paving stone. Indeed, by definition, the center of mass of a triangular paving stone resulting from a Delaunay triangulation is necessarily inside this paving stone and therefore lies within the permitted flight area of the considered horizontal slice Txy.
[0046] The processing unit then constructs a graph whose nodes are each of these characteristic points Pk. Each node has a node identifier Ik and three coordinates Xk, Yk, and Zk in an orthonormal three-dimensional space. The graph's branches include a branch connecting the closest nodes located within the same slice, and a branch connecting the closest nodes in two adjacent slices. Nodes that are considered closest within the same slice are advantageously characteristic points of triangles with one of their adjacent edges (for simplicity of construction). The closest nodes of two adjacent slices are those with the shortest calculated mutual distance. A node in a given slice may have one or more branches connecting it to one or more nodes in the next higher branch (if available) and one or more branches connecting it to one or more nodes in the next lower branch (if available). In principle, the processing unit does not generate branches between nodes in slices that are not directly adjacent, but exceptions may exist for certain site configurations. Also, in each case, a branch can be generated between two nodes only if the inner and outer edges of the slice under consideration do not intersect, and the processing unit checks this condition by applying simple geometric rules to each branch generation.
[0047] Figures 6-9 show the Delaunay triangulation and associated characteristic points at each slice of the simplified model used so far.
[0048] Once the graph is established (or during its construction), the processing unit assigns to each of these branches a base weight proportional to the length of the branch, determined from the coordinates of the two nodes that connect them.
[0049] In a preferred embodiment, this base weight may be influenced by a path direction correction factor (see below) by decreasing the base weight in order to favor paths in one direction over paths in another, and increasing it in the opposite direction, potentially until it becomes so large that paths in that direction cannot be suggested during the processing unit's search for the best path.
[0050] For branches connecting nodes located at different altitudes, the base weight can be corrected by an altitude factor determined by the difference in altitude between the two nodes. The value of this correction factor can be chosen heuristically, with positive values for upward and negative values for downward. Thus, altitude changes favor downward and disadvantage upward.
[0051] Other sources of dynamic variation of branch weights are discussed below.
[0052] Route discovery and updates The processing unit on board the drone can receive as input the coordinates of a desired destination on the site, which destination can be entered by a user and communicated to the drone via available communication means, or can be automatically determined based on other processing operations.The processing unit on board the UAV, based on the current position and destination data, relies on the graph defined above and loaded into the memory of each UAV when it is installed on the site, to construct a route to said destination and execute control commands that allow the route to be followed.
[0053] The route determination is divided into two parts. - The first part is to search the overall path of the entire flight space, The second part is to construct a trajectory that allows following the path found in the previous step.
[0054] Once the destination is received by the drone, the processing unit scans the pavement determined as described above to identify a triangular paving stone that encompasses the destination in an altitude slice directly below the destination altitude. This search can be performed by consulting a table that lists all of the geometric properties of the pavement, as determined by Delaunay triangulation.
[0055] If such a paving stone is found on the table, the destination is indeed contained within the permitted flight zone. In other words, destinations outside the permitted flight zone cannot be reached due to construction.
[0056] Once the destination is verified, the processing unit initiates a graph traversal process of a type known to it to find the shortest path in the graph by minimizing the sum of the weights of the branches traversed. This process may be based on known algorithms such as A* or Dikjstra (see, for example, https: / / dzone.com / articles / from-dijkstra-to-a-star-a-part-2-the-a-star-a-algo).
[0057] FIG. 10 shows the obtained basic path CHB, which is a dashed line whose midpoints or crossing points are characteristic points of the graph where the sum of the weights is minimized.
[0058] The main objective of this elementary route CHB is to determine the optimal route between the forbidden areas in terms of this weight minimization in a complex environment.
[0059] Based on this elementary path, the processing unit establishes a valid path CHE, an example of which is shown in FIG. 11, by performing several operations on the elementary path, in particular the following operations: - Eliminate certain intersections using an alignment test (if the three intersections PPn-1, PPn, PPn+1 are approximately on the same line, the intermediate intersection PPn is eliminated). -A particular intersection is eliminated by calculating a line connecting intersections PPn-1 and PPn+1 located on either side of intersection PPn, determining whether this line intersects with one or more extension prohibition zones, and eliminating intersection Pn if this test is negative. - Narrowing down the path by removing some unnecessary intermediate points through a weight sum reduction approach. This process involves, for example, bisection. Considering a section of the path consisting of three intersections PPn-1, PPn, and PPn+1, point PPn is replaced by point PPn' of the segment PPn-1-PPn, so that the weight associated with branch PPn'-PPn+1 is lower than the weight associated with branch PPn-PPn+1. The search for this point PPn' is performed by bisection. Thus, an effective path CHE is generated with the minimum total weight of the branches.
[0060] At the end of these steps, the processing unit uses the data of the effective path CHE to construct a flight volume or corridor that the UAV must respect. This volume is constructed taking into account relaxation factors around the path CHE.
[0061] This relaxation factor is determined from the maximum wingspan of the UAV and is increased by a factor that can either be uniform and dependent on the nature of the site, or that varies depending on the location of the route CHE, in particular its distance from the no-fly zone (after expansion), or that can be the sum of a uniform factor and a variable factor.
[0062] In a basic embodiment, taking this relaxation factor into account in calculating the required flight path involves calculating a set of truncated cones arranged end-to-end around the path CHE, with the radius of the base of each truncated cone equal to the relaxation factor. The flight volume is built in stages around the path followed by the CHE.
[0063] This flight path can be calculated after the path CHE is established for the entire route, or it can be calculated dynamically during the flight of the UAV, recalculated every time the UAV determines a new path CHE after fluctuations in the weights of the graph branches.
[0064] The UAV periodically compares its actual current position with the flight path geometric data. If this comparison detects a deviation from the flight path (especially due to external factors such as high winds or temporary GPS positioning issues), the autopilot applies corrective flight commands based on the measured position deviation.
[0065] Other factors include the static or dynamic determination of permitted flight paths, in particular: -UAV agility coefficients (wing type, minimum speed in the case of fixed wings, maximum speed, maximum acceleration, etc.), -Characteristics of the installed sensors (lidar, laser, etc.) In particular, it should be noted that these factors may affect the UAV's ability to dynamically detect and avoid collisions. Generally, the narrower the flight corridor, the weaker these capabilities are.
[0066] Furthermore, once the dimensions of the flight path are established, it can be predicted that the UAV will adopt different trajectories within this path, whether dynamic or static, according to these or other parameters. The determination of the trajectory can therefore be influenced by the values of various parameters that have the effect of choosing the shortest possible trajectory, or that allow the execution time to be reduced to the maximum, or that leave the greatest possible distance from obstacles.
[0067] According to another feature, an exit from a flight path can be expected to trigger a new calculation of the route and associated flight path, rather than a corrective action of the autopilot aimed at restoring the UAV to that path.
[0068] In practice, when a mission command containing destination data is received by the UAV, the on-board processing unit initiates a first global path search. Then, during flight, communication channels between the UAV and other equipment (ground equipment, sensors, other UAVs, etc.) allow the processing unit to update the weights of the graph branches.
[0069] At the same time, at a given frequency (e.g., once per second) or each time the weights are changed, the processing unit of the UAV performs a new path search between its current position and the destination indicated at the start.
[0070] During flight, it is also possible that the UAV receives or determines a new destination, in which case a new path between its current position and the new destination is calculated and updated as described above.
[0071] Once a route is found, the flight path is calculated and stored for access by the local trajectory planner.
[0072] If the on-board processing unit has information about the autonomy of one or more batteries of the UAV, this information is compared with the sum of the weights of the route CHE to determine whether the UAV has sufficient autonomy to reach the destination with an appropriate margin of error.
[0073] If flight is possible, the local trajectory planner applies flight commands to the autopilot to move the UAV within the corridor at a determined frequency, e.g., 50 times per second. As noted above, the planner also tests for possible lane departures, preferably at the same frequency, and applies appropriate correction commands to the autopilot.
[0074] It should also be noted that the trajectory planner can consider the maximum allowed speed within the corridor either statically or dynamically.
[0075] Adjusting graph branch weights In the above description, the base weight associated with a branch of the graph representing the flight space is calculated to be proportional to the distance between the nodes that the branch connects.
[0076] Each UAV that may fly on the site contains in its memory the data of this graph with its basic weights, and as we have already seen, its on-board processing unit determines the flight path to follow to reach a given destination.
[0077] At the same time, communication between the UAV and the ground, or with other UAVs flying over the same site, or even with sources on the site (such as sensors) or external sources (such as weather data), allows the UAV to collect data that may influence the weight values.
[0078] At the mathematical level, these data can be of the scalar field type or of the vector field type.
[0079] The scalar field corresponds to variables such as, for example, the quality rating of the communication network between the UAV and the ground, temperature, humidity, etc.
[0080] These data are scalar in the sense that they are unoriented and affect all weights in the graph equally.
[0081] For example, particularly low temperatures may lead to increasing the weight of the base by a given multiplier to address the fact that UAV autonomy decreases at low temperatures due to loss of battery efficiency.
[0082] Wind, on the other hand, can be represented as a vector field, where each point or region in the flight space is associated with a vector whose orientation represents its direction and whose norm represents its strength. Upon receiving the vector field (or any vector applicable to the drone's current position), a scalar product function makes it possible to recalculate the weights of the branches of the graph, where the branches are also considered as vectors whose orientation corresponds to their direction and whose norm represents the base weight.
[0083] If the value of the wind vector along a given branch varies depending on the position within the branch, the processing unit determines the average of the vector products at different points on the branch.
[0084] Note that the granularity of the vector fields that can influence the weights can vary greatly: for example, in the case of wind, a single wind vector can be used for the entire site, accessible from connected anemometers or external weather information sources, or different wind vectors can be used depending on the area of the site, whether the "local" wind is measured by a sensor or derived from a simulation.
[0085] Note that the branch weight components obtained by this calculation are oriented such that wind forces that are not perpendicular to the branch reduce the basic weight in one direction (wind on the route) and increase the basic weight in the other direction (wind due to the route).
[0086] The module that updates the weights of the graph branches changes priorities whenever new data from external constraints becomes available. To minimize the risk of errors, new path computation requests during a weight update operation are made based on the current graph before the update, a copy of which is kept for this purpose.
[0087] Rerouting according to the priority given to the flight - different weight types When setting up a mission by a user or in an automated manner, the mission data may advantageously include the type of priority for reaching the destination set by the mission.
[0088] For example, the following four types of priorities can be provided: -minimizing the absolute distance covered, -Minimizing travel time, -Minimizing energy consumption, -Minimization of risk, possible subcategories according to the type of risk (to people, goods, etc.).
[0089] In general, the current value of the branch weight for a given direction of movement is obtained by combining the basic weight (branch length) with various corrections made by one or more scalar fields and / or one or more vector fields, as described above.
[0090] Priority management refers to the ability to give each branch a different quality or weight value.
[0091] If the priority is minimizing absolute distance, then pathfinding is performed on a weighted graph with base weights, or base weights corrected by, for example, wind vectors.
[0092] To take into account travel time minimization type priorities, the distance weights assigned to each branch (base weights, corrected or not) can be corrected by a factor related to the maximum speed allowed on this branch.
[0093] Advantageously, this correction is performed by including in the data of the site to be modeled a mapping of permitted speeds (depending in particular on the type of nearby or overhead equipment, hazards related to people, etc.). Then, once the structure of the graph has been established, the processing unit assigns maximum permitted speed information to each branch according to the position of this branch in the speed map. From the base weight (branch length) and this maximum speed information, the processing unit calculates the minimum travel time weight (obtained for the maximum permitted speed) by multiplying the base weight, which may be corrected by a scalar or vector field, by a coefficient that is smaller the higher the permitted speed, or vice versa.
[0094] When a mission includes this priority of minimizing travel time, the search for the best route is no longer based on distance weights, but on these travel time weights.
[0095] Another mapping that the system can advantageously use is a mapping that defines areas with different levels of risk. This risk mapping can take into account, for example, the presence or traffic areas of personnel, the risk of different equipment, etc. Similar to the mapping of permitted speeds, the processing unit can modify the weight of each branch according to the risk assessment of the area in which the branch is located, ultimately avoiding routes that cross high risk areas compared to routes that cross low risk areas.
[0096] If the mission priority is to minimize energy consumption, one possible approach is to determine the density of waypoints. In this regard, the greater the number of waypoints, the more frequent the UAV's direction and speed changes, which are important factors for energy consumption.
[0097] Route determination can then be achieved by determining the set of possible routes that all have a sum of time or distance weights less than a threshold, and selecting the route with the smallest number of intersections, rather than searching for the shortest route in distance or time.
[0098] Finally, if flight safety is a priority, each branch can be assigned a risk factor derived from its proximity to the equipment that constitutes the prohibited zone. The higher the proximity, the higher the risk factor. Once the graph structure is obtained, this "risk" weight is determined by calculating the distance of each generated branch from the nearest prohibited zone and assigning to the distance weight (possibly the base weight after being corrected by a scalar or vector field) a multiplier factor (usually equal to 1 for all branches whose distance from the prohibited zone is greater than a given threshold) that increases the shorter this distance.
[0099] The best route from the perspective of flight safety is the route that minimizes the total weight of risks.
[0100] To further refine this priority management, it is possible to combine the basic weights (possibly corrected by scalar and / or vector fields) with the aforementioned speed, energy consumption and risk factors in different ways in order to adapt the importance of each change to the mission priority.
[0101] For example, it is possible to set an order of priorities (eg, safety, then speed, then energy) and modulate the influence of the corresponding weight correction factors accordingly.
[0102] We now describe an example for calculating the weights of the branches of a graph.
[0103] The general formula for calculating this weight is: is given by wAB;j=SUMi(i;jGi(A,B)), During the ceremony, A and B are nodes of the graph that can be connected by a straight line without intersecting the interior of the forbidden zone (and, if necessary, without touching its edge), j is the priority coefficient, Gi(A,B) is a function that represents the contribution to the weight calculation, ·Υi;j are the coefficients associated with the contributions.
[0104] In the particular example, three contributions to the weight calculation are considered, namely three functions G1, G2, and G3: G1(A, B) represents the distance between point A and point B, G2(A, B) represents the average quality of the GPS positioning signal between point A and point B, ·G3(A,B) represents the consideration of hazardous areas.
[0105] The mathematical formulation of these three functions can accommodate different approaches that do not need to be detailed here.
[0106] Next, consider two priorities. ·j=1: Shortest travel distance j=2: Hazardous area considerations
[0107] For each of these two priorities, the system selects the contribution of the three functions G1, G2, G3 to the branch weights by changing the value of the corresponding parameter Υi;j.
[0108] Therefore, in the above case where priority was given only to the shortest travel distance (j=1), the following can be used: -Υi=1=1 -Υi=2,3=0
[0109] If only hazardous area (j=2) considerations are prioritized, the following can be used: -Υi=1,2=0 -Υi=3=1
[0110] Of course, coefficients Υi;j with values other than 0 and 1 can be used so that different priority considerations are combined.
[0111] Changes in flight space due to forced traffic direction At any time, the user or an external factor can enforce a traffic zone, especially between two prohibited zones, in which case a certain traffic direction is mandated.
[0112] In this case, the weights associated with branches of the graph that extend at least partially into this area are modified so as to leave the weights associated with branches in a direction that respects this flow direction intact, and to make the weights in the opposite direction infinite or quasi-infinite (giving the weights very high values in terms of graph mathematics).
[0113] Note that, in principle, a UAV should be able to return to its starting area. However, depending on the topology of the enforced flight direction, the one-way criterion may not allow this. To ensure that the UAV can return to its starting point even in a one-way situation, the presence of a high but non-infinite weight for routes in the prohibited direction nevertheless allows the UAV to travel through the one-way area in the prohibited direction when no other options are available.
[0114] Flight plan modification according to UAV dynamic characteristics From the moment the UAV is powered on, a module for estimating the available flight time is activated and determines this flight time according to the battery's state of charge, recent measurements of power consumption during the flight, the ambient temperature, etc.
[0115] When the UAV is on a mission, the processing unit calculates, at a given rate, e.g., once per second, a so-called "emergency" route between its current location and the location of the nearest available charging station (or other landing area). As long as the time required to cover this route is shorter than the remaining time estimate indicated by the module, the UAV continues its mission.
[0116] When the estimated available flight time equals the flight time to reach the nearest charging station (within a safety margin, if possible), the UAV processing unit will abort the mission by replacing the path currently being traveled on the mission with an emergency path calculated from the current position and the nearest landing location, and return and land there.
[0117] According to another approach, the emergency route is imposed in response to technical anomalies observed by the UAV during the mission. Thus, the autopilot can generally provide various data on the drone's health, such as the accuracy of the positioning circuit (the so-called "Extended Kalman Filter" EKF circuit), vibration levels, etc.
[0118] From the moment the UAV is powered on, an anomaly detection module connected to the EKF circuit and vibration sensors (usually part of its inertial unit) is activated. For every type of data analyzed, this module estimates whether the received value is within a range of acceptable values. One possible implementation is to calculate a simple average over a given time window for each type of received data and compare it with a stored range of acceptable values. If the average value is outside this range, an emergency route is automatically calculated, loaded, and followed.
[0119] Changes in flight space: prohibited altitudes, presence of other UAVs It is known that several UAVs can fly on the same site, so according to this feature, it is expected that the presence of other UAVs flying over the site will be taken into account in establishing a path or in its dynamic modification.
[0120] This capability is advantageously implemented in addition to collision avoidance devices that UAVs can be equipped with, such as lasers or lidar, the effectiveness of which implies direct visibility of obstacles and, furthermore, may require significant digital processing resources.
[0121] More precisely, rather than treating the drone as a mobile no-fly zone and recalculating the graph structure, the solution is to receive, at the UAV level, the current position of other UAVs flying in the vicinity, identify branches of the graph that are at a distance lower than a threshold for this position, and assign a very high multiplier to the weight of the identified branch so that the recalculated path after updating the weight avoids the problematic branch.
[0122] This aspect makes it possible to significantly improve flight safety when a fleet of UAVs can operate on the same site.
[0123] architecture FIG. 12 shows an architecture that allows the implementation of the different aspects described above.
[0124] The first processing unit 100 receives the site model data and the associated maps, from which it performs the expansion of the no-fly zones, determines the permitted no-fly zones at different altitudes, performs subdivision, for example by Delaunay triangulation at each altitude, generates graph points from the coordinates of the individual paving stones, and interconnects these points on the one hand in each horizontal plane corresponding to the altitude and on the other hand between adjacent horizontal planes.
[0125] For each branch of this graph, its length is calculated from the coordinates of the connecting points, thereby determining the base weight.
[0126] The graph data is transmitted over an adapted communication channel to each of the UAVs 200a, 200b, 200c, etc. likely to be patrolling the site, where said data is stored.
[0127] Every time the site environment changes (e.g., the appearance or disappearance of a no-fly zone), an updated graph is determined and transmitted to each UAV.
[0128] A mission is typically initiated by transmitting mission data from a ground station 300, which may be separate from or part of the processing unit 100, to a given UAV, here 200a.
[0129] The processing unit 210 on board this UAV typically includes: - destination coordinates, - one priority for flights, or several ordered priorities, - Receive mission data including other mission parameters, especially shooting commands while moving and hovering.
[0130] The processing unit 210 on board the UAV also receives scalar and / or vector data likely to affect the branch base weights before the start of the mission or periodically, including during flight.
[0131] Based on the priority data and scalar and / or vector data, as well as any data affecting traffic direction, the processing unit 210 calculates the effective weights of different branches and determines a base route CHB based on the graph data with the effective weights, the current coordinates (starting point) of the UAV, and the received destination data.
[0132] Next, the processing unit 210 determines the valid paths CHE.
[0133] Second, we measure the UAV's ability to perform its mission based on its autonomy.
[0134] With sufficient autonomy, the mission can be launched, and during flight, the onboard processing unit monitors for possible path departures, applies necessary corrective actions to the autopilot, receives dynamic data likely to affect the weights of the graph branches, recalculates the route if necessary, recalculates the mission feasibility according to the updated autonomy, and monitors onboard for possible anomalies that are likely to replace the current mission route with an emergency route.
[0135] Naturally, the invention is in no way limited to the above description, and many variations are possible.
[0136] especially, -Flight data can be collected and assembled for access by a learning process to determine the path to follow by experience rather than calculation when constraints are similar to those previously encountered. Mission data can include not only destination data but also required waypoint data for specifically planned surveillance. The various processes described above, whether performed on the ground or on board, can be implemented with different processing architectures, and in particular, if computing power is suitable, the creation and updating of graphs from the site model can be performed on board each of the UAVs.
Claims
1. 1. A modeling method using digital processing of a three-dimensional environment to establish a path for an unmanned aerial vehicle optimized according to different priorities, comprising the following digital processing steps: (a) providing a three-dimensional model of a prohibited flight volume (PEXi); (b) subdividing the model into individual elements (PVk); (c) determining the center (Pk) for each individual element; (d) establishing and storing a graph whose nodes (Pk, Ik) are formed by at least one portion of said center and whose branches are weighted by the distance between said nodes and by at least one weighting associated with a given priority.
2. The method of claim 1 , wherein the priorities include at least two of an absolute distance priority, a travel time priority, an energy consumption priority, and a risk priority.
3. The method of claim 1 or 2, wherein at least one of the weightings depends on a constraint affecting the set of branches.
4. The method of claim 3 , wherein the constraints include a constraint vector that affects all branches.
5. The method of claim 4 , wherein the constraint vector is a wind vector, and each branch has a pair of weights associated with the direction of movement, each weight being distinctly influenced by the wind vector.
6. 3. The method of claim 1, wherein the weighting is such that different weights are assigned to the same branch depending on the direction of movement to generate a preferred direction of movement.
7. The method of claim 1 or 2, wherein the weighting is based on a mapping that defines different levels of constraint depending on location in the flight space.
8. The method of claim 7 , wherein the constraint level is included in a group that includes a maximum allowed speed constraint and a risk constraint.
9. The method of claim 8 , wherein the constraints can take values such that the corresponding zones are no-fly zones.
10. 10. The method of any one of claims 1 to 9, wherein step (a) comprises providing a three-dimensional model having a physically unflyable volume (PEXi) and reprocessing this model with static safety margin data.
11. 11. The method of claim 10, wherein step (a) comprises subdividing the three-dimensional model into horizontal slices (Txy), projecting the volume onto a horizontal plane that is the same through the thickness of each slice, and implementing the subdivision into individual elements within each horizontal plane.
12. The method of claim 11 , wherein the subdivision is performed by triangulation.
13. The method of claim 12 , wherein the triangulation is a Delaunay triangulation.
14. The method according to any one of claims 11 to 13, wherein step (d) comprises establishing branches of the graph between nodes located in adjacent horizontal planes by a distance minimization approach.
15. 15. A method for determining, by an unmanned aerial vehicle, a path between two points in a three-dimensional space modeled by a graph obtained by a method according to any one of claims 1 to 14, comprising the following steps: - determining the priority of the routes; - considering or establishing a given graph corresponding to said determined priority; - defining said route within said aircraft by calculating a best path within said given graph.
16. 16. The method of claim 15, wherein weighting the branches of the graph is implemented by remotely receiving a starting graph with unweighted branches and weighting the branches on board the aircraft according to priority.
17. 17. The method of claim 15 or 16, comprising updating the branch weights of at least a portion of the graph during flight and recalculating the best path through the graph.
18. The method of claim 17 , wherein the updating of the weights of the branches of the graph is performed according to changing priorities.
19. 19. The method of claim 17 or 18, wherein the updating of the weights of the branches of at least some of the graph is based on receiving revised weighting data for the weights corresponding to the current priority.
20. The method of any one of claims 15 to 19, wherein the step of updating the weights of the branches of the graph comprises generating forbidden branches based on dynamically generated forbidden areas.
21. 21. The method of claim 20, wherein the prohibited zones are determined by remote communication of the aircraft with other equipment whose positions determine the prohibited zones.
22. The method of claim 21 , wherein the other device is another unmanned aerial vehicle.
23. 23. The method of claim 22, wherein the prohibited area is a prohibited altitude landing.
24. The method of claim 23 , wherein the other equipment is associated with a temporary site intervention.
25. The method of any one of claims 15 to 24, wherein the calculation of the best path is performed according to agility constraints of the aircraft.
26. 1. A method for piloting an unmanned aerial vehicle, comprising the steps of: - determining a route according to the method of any one of claims 15 to 25, applying at least one trajectory relaxation factor; - determining the allowable trajectory deviation as a function of said relaxation factor; applying an orbit correction command only if the actual measured orbit deviation exceeds said allowable orbit deviation.
27. 27. The method of claim 26, wherein the relaxation factor is determined from at least one data representative of one of the following pieces of information: a current accuracy of a GPS unit onboard the aircraft, wind, the aircraft's response to pilot commands, the size of the aircraft, and the type of the aircraft.
28. 1. A method for piloting an unmanned aerial vehicle, comprising the steps of: - determining a route according to the method of any one of claims 15 to 25, - measuring the dynamic characteristics of said aircraft during flight; - dynamically determining new paths according to the evolution of said dynamic characteristics.
29. 30. The method of claim 28, wherein the dynamic characteristics include at least one characteristic from on-board available energy and behavioral abnormalities.
30. 30. A method according to claim 28 or 29, wherein the graph includes nodes that specify landing stations or areas, and wherein the step of dynamically determining new routes takes into account the positions of the nodes of the landing stations or areas.
31. 31. The method of claim 30, wherein the step of dynamically determining the new route also takes into account the status (vacant, occupied) of the nodes of the station or landing area.
32. 30. The method of claim 29, including modifying priorities in the event of behavioral abnormalities.
33. An unmanned aerial vehicle, characterized in that it comprises a digital processing circuit and a wireless communication circuit designed for the implementation of all or part of the method according to any one of claims 1 to 32.
34. A computer program suitable for being on board an unmanned aerial vehicle, characterized in that it contains instructions suitable for implementing all or part of the method according to any one of claims 1 to 32.