Computer-implemented method, computer system, and computer program (queue-based safety determination of drone parcel delivery)

The method addresses the challenge of ensuring safe drone flight routes by using a safety matrix and AI to recommend safer routes, enhancing delivery safety and reducing costs.

JP2025048756APending Publication Date: 2025-04-03INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024144020
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-21
Filing Date
2024-08-26
Publication Date
2025-04-03

AI Technical Summary

Technical Problem

Existing drone delivery systems face challenges in ensuring safe flight routes, particularly due to obstacles such as bird attacks, road traffic, and environmental hazards, which can lead to damage or loss of packages and increased maintenance costs.

Method used

A computer-implemented method that generates safer drone flight routes by using a safety matrix to analyze geographical areas and identify potential hazards, incorporating sensor information and artificial intelligence to recommend alternative routes that avoid dangerous areas.

Benefits of technology

The solution effectively enhances delivery safety by automatically identifying safer routes, reducing the risk of package damage and drone accidents, and lowering maintenance and repair costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025048756000001_ABST
    Figure 2025048756000001_ABST
Patent Text Reader

Abstract

To provide a computer-implemented method, a computer system, and a computer program product.SOLUTION: A first computer receives a message indicating a destination location for a drone's flight. The first computer generates a first recommendation of a route from a departure location to the destination location for the drone flight. The generating step includes a step that depends on a first safety queue, which represents a geographical area including the departure location and the destination location. The first safety queue includes rows and columns of numbers. Each number represents a first safety factor for a respective portion of a map showing the geographical area. The generating step also includes a step that depends on a first analysis of a direct route between the departure location and the destination location. The first analysis includes analyzing the value of the first safety queue along the portion representing the direct route.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates generally to the fields of aerial drones, package delivery performed via drones, automated map generation, and automated environmental sensing. [Background technology]

[0002] Aerial drones are generally unmanned aerial vehicles, and may in some cases be referred to as unmanned aerial vehicles. Aerial drones are capable of piloting and flying without a human pilot on board. Aerial drones may be controlled using on-board computers and pre-programmed instructions so that the drone operates autonomously. Aerial drones may alternatively or additionally be remotely piloted aircraft, piloted by a person who controls the drone but is located remotely from the drone. Maps and environmental sensing are used to help the drone generate aerial routes to perform flights such as package delivery flights. Consumer goods have recently been delivered via drone delivery. Summary of the Invention [Problem to be solved by the invention]

[0003] Enhances drone and package delivery safety by automatically identifying safer routes for drone flights. [Means for solving the problem]

[0004] A computer-implemented method is provided. A first computer receives a message indicating a destination location for flight of a drone. The first computer generates a first recommendation of a route from a departure location to the destination location for flight of the drone. The generating includes relying on a first safety matrix representing a geographic area including the departure location and the destination location. The first safety matrix includes rows and columns of numbers. Each number represents a first safety factor for a respective portion of a map representing the geographic area. The generating also includes relying on a first analysis of a direct route between the departure location and the destination location. The first analysis includes analyzing values ​​of the first safety matrix along portions representing the direct route. A computer system and computer program product corresponding to the method are also provided herein. [Brief description of the drawings]

[0005] These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings. The illustrations are for clarity in facilitating understanding of the invention by those skilled in the art in conjunction with the detailed description, and various features of the drawings are not drawn to scale. Shown in the drawings are:

[0006] [Figure 1] 1 is an operational flow diagram illustrating a process for performing map-to-matrix adjustments for safety conditions in accordance with at least one embodiment. [Diagram 2] 2 is an operational flowchart illustrating a process for generating a route for a drone using one or more matrices generated according to the process illustrated in FIG. 1 in accordance with at least one embodiment. [Diagram 3] 3 illustrates a latitude and longitude grid map that may accompany the process of FIGS. 1 and 2 in accordance with at least one embodiment.

[0007] [Figure 4A]3 illustrates at least one embodiment of a safety matrix combined with one another according to at least one embodiment that may be generated in the process of FIG. 1 and used in the process of FIG. 2.

[0008] [Figure 4B] 3 illustrates another set of interlocking safety matrices according to at least one embodiment that may be generated in the process of FIG. 1 and used in the process of FIG. 2;

[0009] [Figure 4C] 4C illustrates an output safety matrix according to at least one embodiment that may be generated via a combination of the two safety matrices illustrated in FIG. 4B.

[0010] [Diagram 5] 1 illustrates an embodiment implementing matrix combination and analysis, showing a tensor with peaks indicating risk areas.

[0011] [Figure 6] 4 illustrates the grid map of FIG. 3 with the drone route added, including highlighting of the map area traversed via the drone route, generated in accordance with at least one embodiment using various processes and features illustrated in the other figures.

[0012] [Figure 7A] A direct route (FIG. 7A) is shown compared to an alternative drone route (FIG. 7B) generated in accordance with at least one embodiment using various processes and features illustrated in other figures, which provides for enhanced drone safety during flight along the route. [Figure 7B] A direct route (FIG. 7A) is shown compared to an alternative drone route (FIG. 7B) generated in accordance with at least one embodiment using various processes and features illustrated in other figures, which provides for enhanced drone safety during flight along the route.

[0013] [Figure 8] 1 illustrates a networked computing environment in which drone safety routes using map-to-matrix coordination are implemented in accordance with at least one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] Although detailed embodiments of the structures and methods in the claims are disclosed herein, it can be understood that the disclosed embodiments are merely examples of the structures and methods in the claims that can be embodied in various forms. The present invention can be embodied in many different forms and should not be construed as being limited to the exemplary embodiments described herein. Rather, these exemplary embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. In the description, details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the presented embodiments.

[0015] Exemplary embodiments described below provide a method, computer system, and computer program product for generating improved drone flight routes in an automated manner to enhance the safety of the drone and any parcels transported and delivered via the drone flight. For example, delivery of an item after an online purchase of the item is increasingly being performed via a drone that carries the item and flies to deliver the item to the buyer's drop-off or pick-up location. Consumers appreciate obtaining the item without having to appear in person at a public location. Consumers appreciate the convenience and privacy of contactless delivery. Currently, a variety of items are delivered via drone delivery, including, but not limited to, medicines, food, groceries, electronic products, construction equipment, and the like. Drone delivery has unique safety concerns, such as attacks by birds that feel threatened and defend what they consider their territory. Damage to the drone itself and / or to parcels carried and delivered by the drone is at least a nuisance and often a costly problem for the drone owner and / or operator, the item provider, and the person receiving the item. Also, if a drone inadvertently drops a parcel on a roadway, the parcel is likely to be damaged by vehicles moving along the roadway. Parcels dropped on roads may also endanger drivers and result in traffic accidents. For non-floating parcels, dropping the parcel in water is likely to lead to the parcel sinking and loss. Dropping the parcel on safer, softer ground such as grass will lead to a lower chance of the parcel being damaged and a higher chance of the parcel being retrieved. In addition to roads / traffic and birds / wildlife, other safety factors may also affect drone delivery. The present embodiment enhances drone and package delivery safety by automatically identifying safer routes for drone flight. The identification incorporates sensor information and artificial intelligence to generate route recommendations. Route recommendations are sent to the drone to guide its delivery flights and / or other flights.

[0016] The present embodiment combines features such as automated collection of data with location information, transfer of the data to one or more matrices representing a map at the relevant location, and analysis of the matrices to determine a safe route for a drone to fly from a departure location to a destination location, such as a delivery destination location. This use of map-to-matrix coordination and application of artificial intelligence using the matrices to find a safe, safer, or safest flight route for a drone results in a higher completion rate of deliveries and also a higher recovery rate for any drone accidents that occur. Thus, the present embodiment can reduce drone maintenance costs, drone repair costs, and drone replacement costs, as well as parcel repair and / or replacement costs.

[0017] 1 shows an operational flow diagram illustrating at least one embodiment of a first process 100 for performing map-to-matrix adjustment for drone safety conditions. The first process 100 may be implemented using one or more portions of the map-to-matrix adjustment and drone safety route determination program 816 of the computer 801 shown in FIG. 8. The automated route determination program 816 may include and / or access various modules, user interfaces, services, machine learning models, databases, and natural language processing tools, and may use data storage when performing the first process 100. The first process 100 represents a preparation stage in which safety information for a geographical area is collected and processed to be stored in one or more matrices so that the map-to-matrix adjustment and drone safety route determination program 816 can then access the one or more matrices to identify the best route for a drone to make a delivery between two identified points.

[0018] In step 102 of the first process 100, map information is received. In some embodiments, the map information is received via data transmission from an external computer to the computer 801 via a wide area network 802 shown in FIG. 8. In the computer 801, the map information flows to the drone route determination program 816 for map and matrix adjustment. In some embodiments, the map information is obtained from another entity, for example, via purchase from another entity using various means, such as image collection, to generate one or more maps showing various geographic areas. In some embodiments, step 102 includes actively capturing images of the geographic areas and using those images to generate maps showing various geographic areas. In some embodiments, the images are captured via satellites, such as low-earth orbiting (LEO) satellites orbiting the Earth. In some embodiments, the images are captured via airplanes and / or via automotive vehicles equipped with cameras. The image information is associated with latitude and longitude information such that a representation of the Earth's features is generated on a two-dimensional or three-dimensional map of the geographic area. The map information includes features such as physical structures, e.g., buildings, houses, monuments, etc., at a particular longitude-latitude combination. The map information includes features such as roads throughout a geographic area. The map information includes information such as vegetation and types of vegetation throughout a particular geographic area. In some embodiments, the map information is used to generate a visual map that is stored in computer memory, such as persistent storage 813, and / or in additional computer memory storage, such as remote server 804. In some embodiments, the map information is used to generate a combination of textual information that describes the physical area, with the textual information organized into areas of the map. Thus, in this example, the map information together serves to provide information about the stored geographic area to approximate the location of the physical area without actually providing a visual map.In some embodiments, the map owners already own map information for various geographic areas and therefore perform step 102 by accessing this map information from their data storage, such as from data storage in one or more remote servers 804.

[0019] In some embodiments, the received map information is sufficient to form a two-dimensional map of the geographic area, whereby a drone route is generated (part of the second process 200 shown in FIG. 2) and ultimately transmitted to the drone to guide the drone, including latitude and longitude information.<x,y> In this example, the direct route is interpreted as recommending a standard altitude for the drone's height during flight, which may be based on drone industry-wide standards or the specific experience of a particular drone operator.

[0020] In some embodiments, the received map information is sufficient to form a three-dimensional map of the geographic area, whereby the drone route that is generated (part of the second process 200 shown in FIG. 2) and ultimately transmitted to the drone to guide the drone includes an altitude component in addition to latitude and longitude information.<x,y,z> Based on this, the generated alternative route can include deviations in latitude and longitude as well as in altitude, avoiding one or more dangerous areas.

[0021] In step 104 of the first process 100, first safety factor information is received. In some embodiments, the first safety factor information is received via data transmission from an external computer to the computer 801 via the wide area network 802 shown in FIG. 8. In the computer 801, the first safety factor information flows to the map and matrix adjustment of the drone route determination program 816. The first safety factor information is related to first safety conditions such as the orientation of roads / streets in a geographic area, the presence of birds in the area that represent a physical hazard to a drone of a particular size, the type of surface material of the Earth's surface in the geographic area such as water (lakes, rivers, ponds, streams, oceans, etc.), vegetation, rocks, etc., and wind patterns across the particular geographic area. The road information can be collected via image capture and / or legal access to a road map generated by another entity. In some embodiments, the road information includes traffic volume information and patterns indicating the number of cars using a particular road over a particular time interval. In some cases, the presence of birds is identified via images captured from satellites orbiting the Earth.

[0022] The first safety factor includes information relating various factors with a particular geographic segment. For example, the geographic area depicted by the first map 300 depicted in FIG. 3 is divided into map areas, such as a first map area 302, via a combination of latitudes and longitudes. FIG. 3 illustrates a first latitude 304 among other latitudes and a first meridian 306 among other meridians. The first safety factor information is captured and stored per grid / segment / region of area. So, when some areas contain roads, bodies of water, and / or have a high frequency of attacking birds, but not other areas, this information is stored in association with that particular map area. For example, the safety factor information is stored in association with a map area label indicating which areas of the map have that safety impacting feature and / or an intensity level of that safety impacting feature. The map area label in some embodiments includes latitude and longitude coordinates and / or a range of latitude and longitude coordinates. For those areas without a safety factor, segments of information are stored in association with these areas indicating the absence or reduction of safety threat therefrom from a particular hazard.

[0023] The first safety information in some embodiments also includes different information depending on a particular time of day, day of week, and / or season of year associated with the time of capture of the safety information, for example some information for a particular map sub-region may indicate high threats in the morning or winter and low threats in the evening or summer.

[0024] In step 106 of the first process 100, one or more first safety matrices are created based on the map information and the first safety factor information. The map information refers to the map information received in step 102. The first safety factor information refers to the information received in step 104. The map and matrix adjustment for the drone route determination program 816 applies one or more pre-stored rules and / or policies to the information for performing step 106 to generate one or more safety matrices. In some embodiments, a user selects weights to help adjust the map and matrix for the drone route determination program 816 to determine a numerical value for the safety factor information to apply to a particular map area.

[0025] The first safety matrix generated in step 106 includes rows and columns of numbers. Each number represents a first safety factor value for a respective portion of the map showing a geographic area. The first map 300 shown in FIG. 3 includes a first map area 302 shown in that map portion which is the fourth map area from the left and is in the top (e.g., first) row of map areas. To perform step 106, the first safety factor value for the first map area 302 is inserted into the first safety matrix in the first row, which is the fourth column position of the first safety matrix. The number represents the safety rating of that area with respect to a particular safety challenge within that portion of the terrain. This number is placed in the first row, which is the fourth column position of the first safety matrix. Although the first map area 302 is only numerically identified in FIG. 3, numbers may be generated for other (all or some) positions in the matrix. Those other positions in the matrix correspond to the various map areas shown in the first map 300 shown. For example, this specific example shows a first map 300 divided into 144 square map areas in 12 rows and 12 columns of map area. The safety matrix generated in step 106 for this shown division of the first map 300 includes 144 numbers arranged in 12 rows and 12 columns. Since the matrix is ​​generated based on a safety analysis for a particular feature, each number in the single matrix relates to a safety concern for a particular feature of the respective map sub-area. In other words, the first safety matrix in some embodiments is filled with numbers each indicating a threat of bird attack across various sub-areas of the map. In another embodiment, the first safety matrix is ​​filled with numbers each indicating whether the respective map sub-area passes through a road or a busy road. Other embodiments include sets of numbers that refer to other safety conditions that may affect the flight of the drone.

[0026] In at least some embodiments, the numerical values ​​of the safety matrix are selected from a range extending from a minimum value to a maximum value. For example, in some embodiments, the range extends from 0 to 10, where 0 is an indication of no concern for the safety factor in a particular map area, and 10 is an indication of maximum concern for the safety factor in a particular map area. In some embodiments, the concern is only indicated as being present or absent in a particular area in that either a value of 1 or a value of 0 is entered for each matrix position (to represent either a concern ("1") or no concern ("0") for a particular safety factor in a particular map area). In some embodiments, the user is prompted to select a range of values ​​for the particular safety factor. Thus, the user is permitted to select how the received safety information is scaled to the particular number inserted in the matrix. The map and matrix adjustment for the drone route determination program 816 prompts the user to capture this user selection via a user interface, such as a graphical user interface displayed on the display screen of the computer 801. In other embodiments, the program 816 provides a default selection of the range of values. Selecting a larger range allows each matrix to capture more specific and fine-grained safety information. In some embodiments, the program 816 applies an algorithm to generate the appropriate range and scale based on the received safety information. For example, to track the presence of bird attacks, the number of birds identified in a particular geographic area within a particular time frame is provided as input to the algorithm for various areas. In response, the algorithm automatically identifies the maximum number of bird sightings and the range of differences between the various areas, and then converts those numbers into appropriate ranges. In some embodiments for road information, the number of vehicles driving through a road area within a particular time frame is captured via sensor information to determine a traffic rating, for example, a number between 0 and 10, for that road area.

[0027] FIG. 4A shows two example matrices that can be formed by the execution of step 106. FIG. 4A shows a first example matrix 402 and a second example matrix 404. These first and second example matrices 402, 404 have 12 rows and 12 columns of values, because they match the size for the map division shown for the first map 300 shown in FIG. 3. The first example matrix 402 has a range of 0 to 10 for the different matrix elements and therefore the safety factor values ​​for different parts of the map. The second example matrix 404 has a binary range of 0 and 1, meaning that only this matrix indicates the presence or absence of a safety factor for each matrix element and therefore for different parts of the map instead of indicating the severity level of the hazard. The second example matrix 404 indicates safety concerns for different safety factors than the safety concerns indicated by the first example matrix 402. The matrices shown in FIG. 4A correspond to a two-dimensional map. In the case of a 3D map with different vertical layers of sub-regions, a separate matrix exists / is generated for each vertical layer of the 3D map.

[0028] 4B shows two example matrices that can be formed by execution of step 106. FIG. 4B shows a first example matrix 402 (also shown in FIG. 4A), but also a third example matrix 414. Like the first and second example matrices 402, 404, the third example matrix 414 has 12 rows and 12 columns of values, because this matrix matches the size for the map division shown for the first map 300 shown in FIG. 3. Like the first example matrix 402, the third example matrix 414 also has a range of 0 to 10 for different matrix elements and therefore its safety factor values ​​for different parts of the map. The third example matrix 414 shows safety concerns for different safety factors than the safety concerns shown by the first example matrix 402 and shown by the second example matrix 404.

[0029] In some embodiments, different matrices for each single safety factor are generated based on different temporal factors, such as time of day, day of week, and / or season of year. Thus, in this embodiment, for a single geographical area, multiple matrices for the same safety factor are generated. In some areas, the presence of birds is more in certain seasons (e.g., summer) and less in other seasons (e.g., winter). Thus, the matrices for a single geographical map area have different safety factor values ​​depending on the temporal conditions. For example, for a bird condition, one geographical area has seasonal matrices depending on the season, such as a summer matrix, an autumn matrix, a winter matrix, a spring matrix, etc. In some areas, the volume of vehicle traffic is higher at certain times of the day. Thus, for a single geographical area, a set of matrices is created, including a morning rush hour matrix, a midday matrix, an evening rush hour matrix, a late night matrix, a night matrix, etc.

[0030] In step 108 of the first process 100, one or more matrix data are stored. This information is stored in computer data storage, such as persistent storage 813 of the computer 801, and / or additional storage accessed via the cloud, such as one or more remote servers 804. The matrix information is stored in a manner that makes it accessible to a program 816 when executing the second process 200 shown in FIG. 2 to determine the best and safest route for the drone to travel in the geographic area represented by the matrix.

[0031] In step 110 of the first process 100, a determination is made as to whether there are additional safety factors to be added. In response to a positive determination in step 110 that there are additional safety factors to be added, the first process 100 proceeds to step 112 to begin the loop of steps 112, 114, 116, and 118. In response to a negative determination in step 110 that there are no additional safety factors to add, the first process 100 proceeds to end the first process 100. To perform the determination of step 110, in some embodiments, the program 816 checks a data queue in the computer memory to evaluate whether there are any more indicators in the queue of any set of additional safety information available in the data storage. In some embodiments, the user pre-sets the number of safety factors that the user wants to include in the safety analysis through interaction with a user interface of the program 816. In these embodiments, the determination of step 110 includes accessing a user selection and comparing the number of analyzed safety factors to the number of users selected. Choosing to include a greater number of safety factors may improve the accuracy of program 816 in determining a safe route for flying the drone, but may also increase the cost of collecting and / or accessing and / or analyzing one or more additional sets of safety information.

[0032] In step 112 of the first process 100 along a loop of steps 112, 114, 116, 118, additional safety factor information is received. The receiving in step 112 is similar to the receiving of the first safety factor information in step 104. In some embodiments, the additional safety factor information is received via data transmission from an external computer to the computer 801 over a wide area network 802 shown in FIG. 8. In the computer 801, the additional safety factor information flows to the drone route determination program 816 for map and matrix adjustments.

[0033] In step 114 of the first process 100 along a loop of steps 112, 114, 116, 118, one or more additional safety matrices based on the map and additional safety factor information are created. The matrix creation in step 114 is similar to the matrix creation in step 106. Figure 4A shows two matrices and Figure 4B shows a different set of two matrices. While any of these matrices may be generated via step 114, another of the matrices may be generated via step 106.

[0034] In step 116 of the first process 100, the additional security matrix is ​​combined with one or more other matrices. These one or more other matrices refer to one or more other matrices created in step 106 or in a previous iteration of the loop of steps 112, 114, 116, 118. In at least some embodiments, the combining includes adding matrix elements of the first matrix to corresponding matrix elements of the second matrix to generate a new combined matrix. In other words, a numerical value that is a matrix element and has a particular row number and column number in the first matrix is ​​added and / or combined with a numerical value that is a matrix element and has the same particular row number and column number in the second matrix. The same particular row number and column number are referred to as corresponding positions. This combination of various matrix elements generates a combined matrix. In some embodiments, the combination of a 12×12 matrix with another 12×12 matrix generates a combined matrix that is also a 12×12 matrix. In some embodiments, matrices of different sizes are combined with each other. For three-dimensional maps, the values ​​in a single vertical layer are added to the corresponding values ​​in the corresponding vertical layer of the other matrix.

[0035] In some embodiments, the smaller matrix of a matrix pair or group is expanded to equalize the dimensions of the second matrix from the pair before the two matrices are combined with each other. This expansion in some embodiments involves replicating constant values ​​to fill other positions of the expanded matrix. For example, a 6x6 matrix is ​​expanded by generating four matrix elements from each original matrix element of the 6x6 matrix. The four new matrix elements fill the same (expanded and divided) segment of the map area that the original matrix elements represented. This process results in a 12x12 matrix. Program 816 performs this expansion in an automated manner.

[0036] In some embodiments, the larger matrix of a matrix pair or group is reduced in size to equalize the dimensions of the second matrix from the pair before the two matrices are combined with each other. This size reduction in some embodiments involves averaging constant values ​​to create a single value for the reduced size matrix. For example, a 12x12 matrix is ​​reduced in size by averaging four original matrix elements to produce a single matrix element (which is the result of the averaging). The new single matrix element fills the same (reduced and combined) segment of the map area that was previously for the original four matrix elements. This process results in a 6x6 matrix. Program 816 performs this size reduction in an automated manner.

[0037] Thus, in at least some embodiments, program 816 and matrices added or accessed by program 816 that have different dimensions produce an output matrix with the same dimensions as the larger or smaller matrix, respectively, with the values ​​of the smaller or larger matrix adjusted appropriately. In at least some embodiments, program 816 performs this combination by equally weighting the two matrices in the combination, without giving preference to the values ​​of either the smaller or larger matrix.

[0038] In at least some embodiments, the program 816 also effectively combines, e.g., adds, matrices of different dimensions or the same dimensions when the safety factor values ​​have different ranges). In this example, based on the size of the ranges, the values ​​in the first matrix may have seemingly distorted values ​​compared to the values ​​in the second matrix. A value of "3" in the range of 0 to 3 has a different safety meaning than a value of "3" in the range of 0 to 10. The program 816 automatically calibrates the different ranges so that these different matrices can nevertheless effectively combine with each other, e.g., be added to each other without overwhelming distortion. For example, the first matrix 402 in FIG. 4A has values ​​ranging from 0 to 10, and the second matrix 404 in FIG. 4B has binary values ​​of "0" or "1", which may result in distortion when attempting to perform a direct addition of the values ​​of the first matrix 402 to the values ​​of the second matrix 404. In some embodiments, the program 816 compensates for these different ranges by calibrating one set of values ​​to another set of values. In one mode of calibration, the program 816 considers all “1” values ​​in the second example matrix 404 as “5” values ​​to be added to the values ​​in the first example matrix 402 .

[0039] In at least some embodiments, a user can preselect the weights to have one safety factor have a higher value than other safety factors for combination. For example, when a user is more concerned about bird attacks than flying on roads, the user preselects via the user interface of program 816 to have bird presence safety information weighted higher than road information. Program 816 then adjusts the bird safety value upwards, adjusts the road safety value downwards, or performs both of these adjustments as precursors to the matrix combination.

[0040] In step 118 of the first process 100, one or more matrix data are stored. This information is stored in computer data storage, such as persistent storage 813 of the computer 801, and / or additional storage accessed via the cloud, such as one or more remote servers 804. The matrix information is stored in a manner that makes it accessible to the program 816 when executing the second process 200 shown in FIG. 2 to determine the best safe route for the drone to travel in the geographic area represented by the matrix. This data includes the new one or more additional matrices formed, as well as the new one or more combined matrices formed via combination in step 116, which combines the various matrices with each other.

[0041] After step 118, the first process 100 proceeds to repeat the determination of step 110. In step 110, another determination is made to determine whether there is an additional safety factor to add. In response to a positive determination in step 110 that there is an additional safety factor to add, the first process 100 proceeds to step 112 to repeat the loop 112, 114, 116, 118 for the additional additional safety factor. Additional safety matrices are formed in further iterations of the loop, and additional matrix combinations are performed and stored in further iterations. In response to a negative determination in step 110 that there is no additional safety factor to add, the first process 100 proceeds to the end of the first process 100. Although Figures 4A and 4B show a combination of two sets of matrices, in other embodiments, more than two matrices are combined to create a new combination of matrices. For example, step 116 may combine three matrices, four matrices, five matrices, etc.

[0042] 2 illustrates an operational flow diagram according to at least one embodiment illustrating a second process 200 for generating a route for a drone using one or more matrices generated according to the first process 100 shown in FIG. 1 and described above. The second process 200 may be implemented using the map-to-matrix coordination shown in FIG. 8 and one or more portions of the drone safe route determination program 816. The automated route determination program 816 may include and / or access various modules, user interfaces, services, machine learning models, databases, and natural language processing tools, and may use data storage when executing the second process 200.

[0043] In step 202 of the second process 200, a request for safe route generation is received. In some embodiments, the request is received via data transmission from an external computer to computer 801 via wide area network 802 shown in FIG. 8. In computer 801, the request is passed to the map and matrix adjustment of drone route determination program 816. In some embodiments, the request is sent by an entity controlling a drone that has a pending flight route to take, e.g., a pending delivery to make. In some embodiments, the drone operator has an instance of the map and matrix adjustment for drone route determination program 816 on a computer that they own, e.g., owns computer 801, such that the request of step 202 occurs via accessing a user interface of program 816 and initiates second process 200 to receive the drone route generation via the user interface.

[0044] In some embodiments, the program 816 is implemented in a drone delivery station. In some embodiments, the program 816 is implemented in a commonality framework that can be accessed in response to incoming requests to the drone route finder. The drone operator maintains a program instance on their computer and requests data from a central location of the program 816, for example in the cloud. The service requests resources and loads metadata repositories about the drone and terrain information.

[0045] In step 204 of the second process 200, parcel material information is received. In some embodiments, the parcel material information is received via data transmission from an external computer to the computer 801 via the wide area network 802 shown in FIG. 8. In the computer 801, the parcel material information is fed into the map and matrix adjustment of the drone route determination program 816. In some embodiments, the parcel material information includes size information of the parcel to be carried by the drone in the drone flight. In some embodiments, the parcel is to be carried and then dropped off at a destination location for delivery of the parcel. In some embodiments, the parcel material information includes a description of the contents of the parcel. In some embodiments, the fragility level of the parcel material is shown along with the parcel material information. In other embodiments, the program 816 determines the fragility level based on the indicators of the contents of the parcel. The program 816 applies one or more pre-defined policies and / or rules to perform this fragility determination. In some embodiments, the parcel information indicates whether the parcel and / or its contents are water floatable. In some embodiments, the parcel information includes whether the parcel contains any materials that are sensitive to delivery time, for example, whether the parcel contains frozen materials that will need to be returned to the freezer soon. In some embodiments where the drone operator controls the program 816, the drone operator can input the parcel material information via engaging with a user interface of the program 816. In some embodiments, a data packet contains the parcel material information, and this data packet is forwarded to the program 816 for analysis.

[0046] In at least some embodiments, the program 816 initiates an in-band data collector application program interface (API) that connects to the drone delivery initiator function to request parcel information so that allocation can be made. Information from the initiator service requesting route safety confirmation from the drone is released to the drone station along with the parcel details. This information is presented in metadata. Tags in the metadata are categorized in the service to understand the details. For example, the tags indicate one or more of fragile, large, small, medium size, heavy, etc. In this embodiment, in-band communication between computers is preferred instead of out-of-band communication for convenience to avoid downloading new modules and / or installing new hardware to perform the methods described herein.

[0047] In some embodiments, the program 816 on the computer 801 (see FIG. 8) represents a central control device, and the end user device 803 (see FIG. 8) includes an application program interface to communicate with the central program 816. The end user device 803 includes one or more of a map application, a global positioning system (GPS) location collector, a device integrator, and a drone delivery service. The end user device 803 includes a centralized controller. The central program 816 includes one or more of an initialization engine, a subscription validator, a generator, and a matrix combiner / analyzer. Communication may occur between the program instances on the end user device 803 and the central program 816, for example, via a wide area network 802 (see FIG. 8), to perform various tasks, such as the user registry and drone route matrix-based safety verification described herein.

[0048] For example, in some embodiments for a user registration and subscription validator, a central controller having program 816 stores user ID information in a table such as that shown in Table 1 below. [Table 1] (Table 1)

[0049] For example, in some embodiments for validation of user data accuracy, a central controller having program 816 stores user location information in a table such as that shown below in Table 2. The X and Y information in some embodiments refers to latitude and longitude coordinates, respectively. [Table 2] (Table 2)

[0050] For example, in some embodiments for checking the accuracy of user subscriptions to a drone route safety confirmation program, a central control device having program 816 stores user subscription information in a table such as that shown in Table 3 below. [Table 3] (Table 3)

[0051] In step 206 of the second process 200, drone departure location information is received. In some embodiments, the drone departure location information is received via data transmission from an external computer to the computer 801 via the wide area network 802 shown in FIG. 8. In the computer 801, the drone departure location information is fed into the map and matrix adjustments of the drone route determination program 816. FIG. 6 shows a drone route map 600 including a drone departure location 602. The drone departure location 602 indicates a location from which a drone is expected to depart to perform a drone flight, e.g., to perform a package delivery. In some embodiments, the drone departure location 602 includes latitude and longitude coordinates of the departure location. In some embodiments where a drone operator owns an instance of the program 816 and repeatedly sends drones from the same departure location, this drone departure location information is stored in memory of the computer 801 or accessible to the computer 801, e.g., stored in persistent storage 813. In such embodiments, the receiving in step 206 includes an intra-computer transmission within the computer 801 such that the stored data is transmitted to the program 816.

[0052] In step 208 of the second process 200, drone delivery location information is received. In some embodiments, the drone delivery location information is received via data transmission from an external computer to the computer 801 via the wide area network 802 shown in FIG. 8. In the computer 801, the drone delivery location information is fed into the map and matrix adjustments of the drone route determination program 816. The drone route map 600 of FIG. 6 includes a drone delivery location 604. The drone delivery location 604 indicates a location to which the drone is expected to travel to complete the drone flight, e.g., to make a parcel delivery. In some embodiments, the drone delivery location 604 includes latitude and longitude coordinates of the delivery location. In some embodiments, where a consumer orders a product and requests delivery of the product via drone delivery, the consumer provides a delivery address as part of the transaction, and this delivery address is provided as the drone delivery location information in step 208. The drone operator may already have access to this address or may receive this address from the parcel provider.

[0053] In at least some embodiments, the program 816 having initiator functionality requests delivery location information from the call service and in response receives latitude and longitude tuple information for the delivery location.

[0054] In step 210 of the second process 200, a determination is made as to whether a route safety check has already been performed for this departure / destination combination. The departure / destination combination refers to (1) the drone departure location for which information was received in step 206, and (2) the drone delivery location for which information was received in step 208. When the determination in step 210 is positive in that a route safety check has already been performed for this departure / destination combination, the second process 200 proceeds to step 212. When the determination in step 210 is negative in that a route safety check has not already been performed for this departure / destination combination, the second process 200 proceeds to step 214. When the program 816 has previously analyzed a particular departure / destination combination and found an acceptable direct route and / or an improved safe route for the drone to travel from the departure location to the destination, step 210 is positive and the program 816 does not need to perform the analysis again. Instead, the program 816 relies on the previous analysis. Program 816 has access to and / or stores in its internal data storage a list of origin / destination combinations for which analysis has already been performed. A table can be generated listing all origin / destination combinations for which analysis has already been performed. By using already determined routes determined by previous iterations of the steps of second process 200, program 816 relies on the safety queue and direct route analysis without having to rerun the analysis.

[0055] In some cases, the start / destination combination is not an exact match to the stored and previously analyzed combination, but is in the vicinity of the stored and previously analyzed combination. In some embodiments, the program 816 also performs a comparison against a pre-determined threshold as part of step 210. A distance between the start locations of the nearby new combination and the previously analyzed combination, and another distance between the destination locations of the nearby new combination and the previously analyzed combination, is determined and compared to a pre-determined threshold. In some cases, the distance is deemed short enough and below the threshold such that the delivery route of the previously analyzed combination is usable for the new combination. In some cases, the distance is deemed equal to or above the threshold such that the delivery route of the previously analyzed combination is not usable for the new combination and a new analysis should be performed. The threshold is based on user selection or determination via the program 816 based on previous success of drone deliveries relying on previously determined routes for nearby locations.

[0056] In step 214 of the second process 200, one or more safety matrices are analyzed to identify hazards along the direct route. The one or more safety matrices may refer to those matrices created in step 106 and stored in step 108 and / or those matrix combinations created in step 116 and stored in step 118. To perform step 214, the program 816 searches a library of matrices using the classification information of the origin / destination combination to find one or more matrices that match the current origin / destination combination to be analyzed.

[0057] In at least some embodiments, the analysis of stage 214 includes (A) identifying all map sub-areas through which the direct route runs / passes over, and (B) ascertaining matrix values ​​of matrix elements that correspond to each of those sub-areas. FIG. 7A shows an example map 702 including an example direct route 720 between an example start location 704 and an example destination location 706. The example direct route 720 represents a straight line and / or a near-straight line between the start location 704 and the destination location 706. To perform stage 214, each map area that the example direct route 720 crosses / passes over is identified and analyzed for safety information. A number of map sub-areas shown in FIG. 7A as squares with cross-hatching are identified as those sub-areas over which the example direct route 720 passes. An example through-sub-area 708 is labeled in FIG. 7A. In the example of FIG. 7A , the exemplary direct route 720 runs through / passes over eleven such square sub-areas, including the exemplary through-pass sub-area 708. The number of intersected sub-areas and identifying indicators for each square sub-area are determined and stored and used for analysis in step 214. In at least some embodiments, these identifying indicators refer to a location within a map section based on the overall number of sub-areas within the map section. For example, the exemplary through-pass sub-area 708 has been identified as being in the ninth row and fifth column of various sub-areas within the exemplary map 702. These identifiers are used to find corresponding matrix elements in one or more safety matrices representing this exemplary map 702. For example, in the case of the exemplary through-pass sub-area 708, the numerical values ​​of the matrix elements in the ninth row and fifth column of the matrix representing this exemplary map 702 are copied and retrieved and used for analysis in step 214. Similar steps are taken to retrieve values ​​from the other ten sub-areas intersected / passed by the exemplary direct route 720.

[0058] This embodiment is based on the use of a vertex-weighted graph. Edge weights between sub-regions are counted as 0, so that vertex weights, but not edge weights, affect the total score of the path. Sub-regions with low risk scores are used and introduced into an adaptive machine learning model to generate alternative routes. The generated alternative routes are fed to the drone station and tracked for real-time progress.

[0059] In some embodiments, the subregions are two-dimensional, e.g., of repeating shapes such as squares. Other shapes, such as rectangles, can also be used, as long as the selected shape is consistent across the map and can be arranged in rows and columns. In other embodiments using a three-dimensional map system, the subregions are three-dimensional, such as in the form of a cube. The figures herein show square subregions that are two-dimensional for simplicity.

[0060] In some embodiments, the start and end locations of the drone's route are introduced into a safety mapper class. A matrix-based weighting calculation is applied to the latitude and longitude information. The generically defined route is fed into the same matrix-based routing engine to identify risk factors. Ground truth matrices of the same routing engine are generated according to area, nature, intersections, etc. Basis values ​​are added to the two-dimensional structure. The received<x,y> The axis information and initial map are then fed into the same routing engine of program 816 according to the identified road junctions once the baseline has been generated.

[0061] In step 216 of the second process 200, a determination is made as to whether a hazard has been identified along the direct route. Direct route refers to the direct route generated in step 214. When the determination in step 216 is positive in that a hazard has been identified along the direct route, the second process 200 proceeds to step 218. When the determination in step 216 is negative in that a hazard has not been identified along the direct route, the second process 200 proceeds directly to step 220 and skips step 218.

[0062] This determination in step 216 occurs as a natural consequence of step 214 analyzing the safety matrix / matrix for risk identification. In some embodiments, the determination in step 216 occurs by individually comparing the matrix values ​​(positions of matrix elements corresponding to the drone's route path) to a threshold level. The threshold is based on a user selection, e.g., a user selection previously determined via a user interface of program 816, or based on an automated and / or default determination via program 816 based on previous success of drone deliveries relying on previously determined routes for nearby locations.

[0063] In at least some embodiments, the threshold value is also based on the number of matrices combined, e.g., added together, in one or more iterations of step 116, where the amount / number of threshold values ​​increases as the number of matrices combined together increases. For example, when the analyzed matrix is ​​based on a single matrix from a single safety factor, the threshold value is a start value. When the analyzed matrix is ​​based on a combined matrix formed from a combination of two matrices, the threshold value is a second value higher than the start value. When the analyzed matrix is ​​based on a combined matrix formed from a combination of three matrices, the threshold value is a third value higher than the second value. This pattern for threshold value determination can be repeated for matrices formed from a varying number of matrices. This dependence on the number of matrices helps calibrate against higher values ​​that result from more matrix elements being combined together.

[0064] In some embodiments, the analysis of step 214 and the determination of step 216 also take into account how much distance a direct route uses to pass through a particular map sub-area. For example, when a direct route passes through a small corner of a sub-area, the safety factor value of that sub-area is weighted downwards for the calculation. When a direct route passes through the maximum length of a region, the safety factor value of that sub-area is fully weighted for that direct route. For example, when the weighting occurs from a scale of 0 to 1, the safety factor value of a direct route that runs through a small section at the corner of a sub-area is weighted with a 0.1 weight, but when the direct route runs through the maximum section (e.g., corner to corner of a square), the safety factor value receives a 1.0 weight. In another embodiment, a direct route that runs from corner to corner of a square receives a weight greater than 1.0 (e.g., a weight of 1.41), a direct route that runs to the left or right of a square receives a weight of 1.0, and a direct route that runs only through a small corner section of a square receives a weight of 0.1. In this embodiment, the safety factor value is adjusted via a distance adjustment weight before being compared against the threshold value.

[0065] The comparison against the threshold is performed iteratively for each sub-region intersected by the direct route.

[0066] In some embodiments, when the threshold is exceeded for a single sub-area, the determination of stage 216 is considered positive by program 816. In some embodiments, an additional threshold is set for a minimum number of sub-areas, greater than one, that must cross the first threshold before the determination of stage 216 is considered positive by program 816. For example, a user may select that two sub-areas must cross a factor threshold to trigger a positive determination of stage 216. In that instance, the user may decide that they can live with a higher level of risk (prioritizing using the quickest route) and set this number of sub-areas that are at risk threshold higher (e.g., greater than one).

[0067] In step 218 of the second process 200, the one or more matrices are used to identify alternative routes with improved safety. The same one or more matrices analyzed in steps 214 and 216 are also used in step 218 to identify alternative routes. In at least some embodiments, this identification is based on finding one or more alternative routes with respective reduced scores by comparing the scores of threshold intersection sub-areas of the direct route and / or by comparing the overall route score of the direct route.

[0068] For embodiments using the safety score of the entire direct route in step 218 for comparison with alternative routes, a summation algorithm is used to sum the individual matrix safety value scores of the various sub-areas intersected by the direct route. For each map sub-area intersected by the direct route, the respective safety factor value from the matrix is ​​retrieved and added to the total score of the direct route. Thus, the summation occurs from 0 to i for number "i" of the map sub-area intersected / passed over by the direct route. The respective safety factor values ​​can be obtained directly from the matrix elements from the determination on the original safety data or from the matrix elements adjusted by a weight based on the amount of intersected sub-area.

[0069] The program 816 automatically tries alternative routes through the vicinity and calculates an overall route total score for these alternative routes. The program in some embodiments selects the alternative route with the lowest overall route total score as the alternative route to suggest to the drone to take for the drone flight / package delivery.

[0070] In some embodiments, program 816 executes a climbing algorithm as part of step 218 to find an alternative route with a lower overall safety score than the overall safety score of the direct route. In some embodiments, relying on a direct route, the climbing algorithm is suspended until a first sub-area is reached that exceeds a safety threshold. In response to reaching a first "dangerous" sub-area, the climbing algorithm is applied. At that point, the route can be attempted to an alternative route working forward (or backward) from that particular sub-area. In the case of a three-dimensional system, the climbing also applies changes in elevation to find an alternative path with a reduced safety score.

[0071] In some embodiments, the identified alternate route also must not have a safety factor value of any sub-region (that the alternate route crosses / passes over) that exceeds the individual sub-region safety thresholds used for stages 214 and 216. In some embodiments, the alternate route must not exceed any particular threshold used in stages 214 and 216.

[0072] Figure 7B shows an example of an alternative route 740 identified in response to a direct route 720 deemed unsafe via the first analysis (of steps 214 and 216). Although sub-regions of the map are not shown throughout the overall maps 702, 732 shown in Figures 7A and 7B, respectively, the alternative route 740 is identified using one or more of the various techniques described above for step 218. Both the direct route 720 and the alternative route 740 proceed from the same start location 704 and the same destination location 706. The alternative route 740 turns and avoids some portions of the original route that were deemed unsafe, i.e., near the direct route 720.

[0073] In step 220 of the second process 200, a message indicating the determined route is transmitted to the drone. This transmission occurs in some embodiments via data transmission from computer 801 having program 816, via wide area network 802 shown in FIG. 8, to an external computer associated with the drone, for example an external computer that is part of the drone's control system. In some cases, this external computer is located directly on the drone. The drone can then use the route to guide its flight from the departure location to the destination location. In some embodiments, the drone performs and completes the flight, updating program 816 with confirmation of success or any unsuspected difficulties along the route, which are then used by program 816 to update the safety queue in an automated manner.

[0074] In step 222 of the second process 200, the program storage is updated with route information for the new origin / destination combination. This information is stored in computer data storage, such as persistent storage 813 of the computer 801, and / or additional storage accessed via the cloud, such as one or more remote servers 804. The new combination information is stored in a manner that is accessible to the program 816 when performing additional iterations of the second process 200 shown in FIG. 2 to determine the best safe route for another drone flight. This data includes the new route that was determined. This data can also include the results of the actual flight and the success / failure of the intended delivery.

[0075] In step 212 of the second process 200, a route stored in memory for this origin / destination combination is accessed. This step 212 occurs after a positive determination in step 210 that this origin / destination combination has already been confirmed. Because this combination has already been confirmed, a faster result is achieved by accessing a previously determined route instead of performing a new safety check. The accessed route is a direct route or an alternate route depending on the outcome of the previous safety check performed, and in some cases depending on the current time information and / or received parcel information. This access of data in step 212 occurs via retrieval from computer memory, such as persistent storage 813 of computer 801 and / or additional storage accessed via the cloud, such as one or more remote servers 804.

[0076] After step 212, this branch of the second process 200 proceeds directly to step 220 to transmit the determined route to the drone. Then, after execution of step 220, step 222 can be skipped since no new combined route information has been determined for this iteration. Actual flight and / or delivery results are also collected and used to update the stored matrices and programs 816.

[0077] Machine learning models may be implemented for the various stages of the drone safety check program shown in Figures 1 and 2. Such machine learning models may include naive Bayes models, random decision tree models, linear statistical query models, logistic regression n models, neural network models such as convolutional neural networks, multi-layer perceptrons, residual networks, long short-term memory architectures, algorithms, deep learning models, deep learning generative models, and other models. The training data includes past start / destination location combinations with safety information and direct route check and alternative route comparison results for those location combinations. The learning algorithm finds patterns in the input data to map input data attributes to targets during training of the machine learning model. The trained machine learning model includes or otherwise utilizes these patterns so that recommendations and recognitions can be predicted for similar future inputs. The machine learning model may be used to perform safety checks for direct and alternative routes. The machine learning model uses the identified patterns to determine what route recommendation decisions are appropriate for future data of interest that is received and analyzed. As samples are provided, training of the one or more machine learning models may include supervised learning by submitting previous datasets to an untrained or previously trained machine learning model. In some cases, unsupervised and / or semi-supervised learning may also be implemented for the one or more machine learning models.

[0078] 1 and 2 provide illustrations of some embodiments and do not imply any limitations as to how different embodiments may be implemented. Many modifications to the illustrated embodiments, e.g., the sequence of steps shown, may be made based on design and implementation requirements.

[0079] FIG. 3 illustrates a first map 300, which is a latitude and longitude grid map that may accompany the process of FIG. 1 and FIG. 2. The geographic area illustrated by the first map 300 illustrated in FIG. 3 is divided into map areas, such as a first map area 302, via a combination of parallels and meridians. FIG. 3 illustrates a first parallel 304 among other parallels and a first meridian 306 among other meridians. The first map 300 illustrates a body of water 310, various roads, such as a first highway 308, and road intersections, such as a first intersection 312. The first map 300 also illustrates various human structures, such as barns, high-rise buildings, and warehouses. At some intersections, the road intersections are weighted in the matrix elements as areas that are particularly dangerous for a drone to cross (in the air) due to their high traffic volume. Dropping a package in the intersection area is considered particularly dangerous and undesirable.

[0080] 4A illustrates safety matrices, a first exemplary matrix 402 and a second exemplary matrix 404. These two matrices 402, 404 represent different safety factors for a single geographic area and are combined as part of a matrix-based drone route safety check in a combination operation 406 illustrated in FIG 4A. The first exemplary matrix 402 has a different range of safety factor values ​​(0 to 10) than the binary range of safety factor values ​​(0 or 1) of the second exemplary matrix 404.

[0081] FIG. 4B also shows another set of safety matrices shown in FIG. 4A, namely, a first exemplary matrix 402 and a third exemplary matrix 414. The third exemplary matrix 414 has the same dimensions as the first and second exemplary matrices 402, 404, and also has the same range of safety factor values ​​(0 to 10) as the first exemplary matrix 402. As such, the third exemplary matrix 414 represents different safety factor values ​​represented by the first exemplary matrix 402, or represents the same safety factor values ​​represented by the first exemplary matrix 402, but for different temporal conditions (e.g., time of day, season, etc.). In at least some embodiments, the first exemplary matrix 402 and the third exemplary matrix 414 are combined in a second combining operation 416 (secondary compared to the other combining operation 406 shown in FIG. 4A). As such, an updated safety check is performed based on the time / day required for flight, and an alternative route is identified, if necessary.

[0082] 4C illustrates an output safety matrix 430 according to at least one embodiment generated via a combination of the first and third example matrices 402, 414 shown in FIG. 4B. Thus, the output safety matrix 430 is generated via a second combining operation 416. For each matrix position, respectively, the value of the first example matrix 402 is added to the correspondingly located value of the third example matrix 414 to generate the correspondingly located value of the output safety matrix 430.

[0083] 5 shows another matrix combination and analysis procedure 500. The left matrix 502 represents a first safety factor value (e.g., bird presence) for a particular area. The right matrix 504 represents a second safety factor value (e.g., road presence) for the same particular geographic area. The left matrix 502 and the right matrix 504 are combined with each other in a multi-matrix combination operation 506. These aspects are similar to those shown in FIGS. 4A-4C and described in FIG. 2.

[0084] FIG. 5 also shows a 3D tensor map 508 of the combined matrix formed through the combination of the left matrix 502 and the right matrix 504 in the multiple matrix combination operation 506. As part of the 3D map 508, a danger peak 510 is present and identified as indicating a high score of a particular region of the combined matrix representing a particular portion of the geographic area. The danger peak 510 in at least some embodiments is higher than a threshold and triggers automated generation of an alternative route that would avoid this sub-area of ​​the geographic area. While FIG. 5 shows the 3D map 508 generated from the combined safety matrix, 3D maps in other embodiments are also generated for single safety matrices to analyze their results. The intersections of high weighted scores are identified as attraction points. The number of attraction points is located from the calculation. When the number of attraction points is higher than a threshold, a route change engine of the program 816 is activated to navigate the baseline map and minimize the risk of the drone flight.

[0085] It can be understood that Figures 3, 4A, 4B, 4C, and 5 provide illustrations of some embodiments and do not imply any limitations as to how different embodiments may be implemented. Many modifications to the illustrated embodiments, for example the visual characteristics shown, can be made based on design and implementation requirements.

[0086] FIG. 6 shows a drone route map 600 based on the first map of FIG. 3. The drone route map 600 includes a first alternative route 606 generated instead of a direct route between the drone departure location 602 and the drone destination location 604. The first alternative route 606 is generated due to safety concerns about a direct route between the drone departure location 602 and the drone destination location 604. The first alternative route 606 includes a lower, e.g., better, risk score compared to the risk score of a direct route between the locations 602 and 604. The risk score of the first alternative route 606 is determined using a sum of the risk values ​​of each square sub-area through which the alternative route 606 intersects. The first square sub-area 608 is labeled in FIG. 6. The alternative route 606 intersects a total of eleven square sub-areas of the drone route map 600. In some implementations of various embodiments, the sub-areas each have an equal size for consistency of score evaluation. The alternate route 606 avoids flying over the first node 312 to improve the safety of the drone's route. The alternate route 606 curves around the area of ​​this first node 312 due to concerns about the risk of dropping a package in such a busy node area with high vehicular traffic, for example.

[0087] 7A and 7B illustrate comparing direct routes and alternative routes generated via the described matrix-based safety checks and improving drone flight safety. FIG. 7A illustrates an example map 702 including an example direct route 720 between an example start location 704 and an example destination location 706. The direct route 720 represents a straight line and / or a near-straight line between the start location 704 and the destination location 706. Each map sub-area over which the drone will fly along the example direct route 720 is identified and analyzed for safety information. In FIG. 7A, multiple such crossed / passed over map sub-areas are identified as squares with cross-hatching. The direct route 720 flies over each of these identified sub-areas. The example sub-areas 708 are labeled in FIG. 7A. In the example of FIG. 7A, the example direct route 720 runs through / passes over eleven such square sub-areas including the example sub-area 708. The example map 702 also shows various roads indicated by single lines, such as east-west road 708. The example map 702 also shows a river 712 indicated by a double line.

[0088] The alternative route map 732 shown in Figure 7B is based on the example map 702 of Figure 7A, but shows an alternative route 740. This alternative route 740 is identified in response to the direct route 720 being deemed unsafe via the first analysis of steps 214, 216. Although sub-areas of the map are not illustrated throughout the entire alternative route map 732 shown in Figure 7B, the alternative route 740 is identified using one or more of the various techniques described above with respect to other figures and Figures 1 and 2. Both the direct route 720 and the alternative route 740 proceed from the same start location 704 and the same destination location 706. The alternative route 740 turns and avoids some portions of the original route that were deemed unsafe, i.e., near the direct route 720.

[0089] It can be understood that Figures 6, 7A, and 7B provide illustrations of some embodiments and do not imply any limitations as to how different embodiments may be implemented. Many modifications to the illustrated embodiments, for example the visual characteristics shown, can be made based on design and implementation requirements.

[0090] Various aspects of the present disclosure are described by narrative text, flow charts, block diagrams of computer systems, and / or block diagrams of machine logic included in computer program product (CPP) embodiments. With respect to any flow chart, depending on the relevant technology, operations may be performed in a different order than that shown in a given flow chart. For example, again depending on the relevant technology, two operations shown in successive flow chart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that at least partially overlaps in time.

[0091] A computer program product embodiment ("CPP embodiment" or "CPP") is a term used in this disclosure to describe any set of one or more storage media (also referred to as "media") collectively included in a set of one or more storage devices that collectively contain machine-readable code corresponding to instructions and / or data for performing a computer operation specified in a given CPP claim. A "storage device" is any tangible device that can hold and store instructions for use by a computer processor. A computer-readable storage medium may be, but is not limited to, an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices (such as punch cards or pits / lands formed on the major surface of a disk), or any suitable combination of the above. The term computer-readable storage medium as used in this disclosure should not be construed as storage in the form of a transitory signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses passing through fiber optic cables, electrical signals communicated by wires, and / or other transmission media. As will be appreciated by those skilled in the art, data typically moves at some infrequent time during the normal operation of a storage device, such as during access, defragmentation, or garbage collection, but this does not make the storage device transitory since data is not transitory while it is stored.

[0092] The computing environment 800 shown in FIG. 8 includes an example of an environment for executing at least a portion of the computer code involved in performing the method of the invention, such as adjusting maps and matrices for a drone route safety determination program 816. In addition to the drone matrix-based safety verification program 816, the computing environment 800 includes, for example, a computer 801, a wide area network (WAN) 802, an end user device (EUD) 803, a remote server 804, a public cloud 805, and a private cloud 806. In this embodiment, the computer 801 includes a processor set 810 (including processing circuitry 820 and cache 821), a communication fabric 811, a volatile memory 812, a persistent storage 813 (including an operating system 822 and the drone matrix-based safety verification program 816, as identified above), a peripheral device set 814 (including a user interface (UI) device set 823, a storage 824, and an Internet of Things (IoT) sensor set 825), and a network module 815. The remote server 804 includes a remote database 830. The public cloud 805 includes a gateway 840, a cloud orchestration module 841, a set of host physical machines 842, a set of virtual machines 843, and a set of containers 844.

[0093] Computer 801 may take the form of a desktop computer, laptop computer, tablet computer, smartphone, smartwatch or other wearable computer, mainframe computer, quantum computer, or any other form of computer or mobile device now known or to be developed in the future that is capable of executing a program, accessing a network, or querying a database such as remote database 830. As is well understood and in accordance with the art of computer technology, execution of a computer-implemented method may be distributed among multiple computers and / or among multiple locations. However, in this presentation of computing environment 800, the detailed description focuses on a single computer, specifically computer 801, to keep the presentation as simple as possible. Computer 801 may be located within a cloud, even if not illustrated in the cloud of FIG. 5. However, computer 801 is not required for a cloud, except to any extent that may be indicated in the affirmative.

[0094] The processor set 810 includes one or more computer processors of any type now known or to be developed in the future. The processing circuitry 820 may be distributed across multiple packages, e.g., multiple coordinated integrated circuit chips. The processing circuitry 820 may implement multiple processor threads and / or multiple processor cores. The cache 821 is memory located within the processor chip package and is typically used for data or code that should be available for quick access by the threads or cores executing on the processor set 810. Cache memory is typically organized into multiple levels depending on the relative proximity to the processing circuitry. Alternatively, some or all of the cache of the processor set may be located "off-chip." In some computing environments, the processor set 810 may be designed for working with qubits and performing quantum computing.

[0095] Computer-readable program instructions are typically loaded into the computer 801 and cause a sequence of operational steps to be executed by the processor set 810 of the computer 801, thereby enabling a computer-implemented method, such that the instructions so executed instantiate the method specified in the computer-implemented method flowcharts and / or narrative descriptions contained herein (collectively, the "methods of the invention"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as a cache 821 and other storage media described below. The program instructions and associated data are accessed by the processor set 810 to control and direct the execution of the methods of the invention. In the computing environment 800, at least a portion of the instructions for executing the methods of the invention may be stored in a drone matrix-based safety verification program 816 in persistent storage 813.

[0096] Communications fabric 811 is a signal conducting route that allows various components of computer 801 to communicate with one another. Typically, this fabric is made up of switches and conductive routes, such as switches and conductive routes that make up buses, bridges, physical input / output ports, etc. Other types of signal communication routes may be used, such as fiber optic communication routes and / or wireless communication routes.

[0097] Volatile memory 812 is any type of volatile memory now known or to be developed in the future. Examples include dynamic random access memory (RAM) or static RAM. Typically, volatile memory 812 is characterized by random access, although this is not required unless affirmatively indicated. In computer 801, volatile memory 812 is located in a single package and is internal to computer 801, although alternatively or additionally, volatile memory may be distributed across multiple packages and / or located external to computer 801.

[0098] Persistent storage 813 is any form of non-volatile storage for a computer, now known or to be developed in the future. The non-volatility of this storage means that the stored data is maintained regardless of whether power is provided to computer 801 and / or directly to persistent storage 813. Persistent storage 813 may be read-only memory (ROM), but is typically at least a portion of persistent storage that allows data to be written, data to be deleted, and data to be re-written. Some well-known forms of persistent storage include magnetic disks and solid-state storage devices. Operating system 822 may take several forms, such as various known proprietary operating systems employing a kernel or an open source portable operating system interface type operating system. The code included in drone matrix-based safety verification program 816 typically includes at least a portion of computer code associated with carrying out the method of the invention.

[0099] Peripheral device set 814 includes a set of peripheral devices of computer 801. Data communication connections between the peripheral devices and other components of computer 801 may be implemented in various ways, such as Bluetooth connections, Near Field Communication (NFC) connections, connections made by cables (such as Universal Serial Bus (USB) type cables), insertable connections (e.g., Secure Digital (SD) cards), connections made by local area communication networks, and even connections made by wide area networks such as the Internet. In various embodiments, UI device set 823 may include components such as display screens, speakers, microphones, wearable devices (such as goggles and smart watches), keyboards, mice, printers, touch pads, game controllers, and haptic devices. Storage 824 is external storage, such as an external hard drive, or insertable storage, such as an SD card. Storage 824 may be persistent and / or volatile. In some embodiments, storage 824 may take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where computer 801 is required to have a large amount of storage (e.g., computer 801 stores and manages a large database locally), this storage may be provided by a peripheral storage device designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. IoT sensor set 825 consists of sensors that can be used in Internet of Things applications. For example, one sensor may be a thermometer and another sensor may be a motion detector.

[0100] The network module 815 is a collection of computer software, hardware, and firmware that enables the computer 801 to communicate with other computers over the WAN 802. The network module 815 may include hardware such as a modem or Wi-Fi® signal transceiver, software for packetizing and / or depacketizing data for communication network transmission, and / or web browser software for communicating data over the Internet. In some embodiments, the network control functions and network forwarding functions of the network module 815 are performed on the same physical hardware device. In other embodiments (e.g., those utilizing software-defined networking (SDN)), the control functions and forwarding functions of the network module 815 are performed on physically separate devices, such that the control functions manage several different network hardware devices. Computer readable program instructions for carrying out the methods of the invention can be downloaded to the computer 801 from an external computer or external storage device, typically via a network adapter card or network interface included in the network module 815.

[0101] WAN 802 is any wide area network (e.g., the Internet) capable of communicating computer data over non-local distances by any technology for communicating computer data now known or to be developed in the future. In some embodiments, WAN 802 may be replaced and / or supplemented by a local area network (LAN) designed to communicate data between devices located in a local area, such as a Wi-Fi® network. WAN 802 and / or LAN typically include computer hardware such as copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers.

[0102] An end-user device (EUD) 803 is any computer system used and controlled by an end user (e.g., a customer of the enterprise operating computer 801) and may take any of the forms described above in connection with computer 801. The EUD 803 typically receives useful data from the operation of computer 801. For example, in the hypothetical case where computer 801 is designed to provide recommendations to the end user, the recommendations are typically communicated from a network module 815 of computer 801 over WAN 802 to the EUD 803. In this manner, the EUD 803 can display or otherwise present the recommendations to the end user. In some embodiments, the EUD 803 may be a client device, such as a thin client, a heavy client, a mainframe computer, a desktop computer, or the like.

[0103] Remote server 804 is any computer system that provides at least some data and / or functionality to computer 801. Remote server 804 may be controlled and used by the same entity that operates computer 801. Remote server 804 represents a machine that collects and stores useful data that is useful for use by other computers, such as computer 801. For example, in the hypothetical case where computer 801 is designed and programmed to provide recommendations based on historical data, this historical data may be provided to computer 801 from a remote database 830 of remote server 804.

[0104] A public cloud 805 is any computer system available for use by multiple entities that provides on-demand availability of computer system resources and / or other computer functionality, especially data storage (cloud storage) and computing power, without direct active management by users. Cloud computing typically leverages the sharing of resources to achieve coherence and economies of scale. The direct and active management of the computing resources of the public cloud 805 is performed by computer hardware and / or software of a cloud orchestration module 841. The computing resources provided by the public cloud 805 are typically implemented by virtual computing environments running on various computers that make up the computers of the host physical machine set 842, which is a population of physical computers within and / or available to the public cloud 805. The virtual computing environments (VCEs) typically take the form of virtual machines from the virtual machine set 843 and / or containers from the container set 844. It is understood that these VCEs can be stored as images and can be transferred among and between various physical machine hosts, either as images or after instantiation of the VCEs. The cloud orchestration module 841 manages the transfer and storage of images, deploys new instantiations of the VCE, and manages the active instantiation of the VCE deployment. The gateway 840 is a collection of computer software, hardware, and firmware that enables communication over the WAN 802 to the public cloud 805.

[0105] Some further description of virtualized computing environments (VCEs) is now provided. A VCE can be stored as an "image." A new active instance of a VCE can be instantiated from the image. Two well-known types of VCEs are virtual machines and containers. A container is a VCE that uses operating system level virtualization. This refers to a feature of an operating system where the kernel allows the existence of multiple isolated user space instances called containers. These isolated user space instances typically behave as real computers from the perspective of the programs running within them. A computer program running on a normal operating system may utilize all of the resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, a program running inside a container can only use the contents of the container and the devices assigned to the container, a feature known as containerization.

[0106] A private cloud 806 is similar to a public cloud 805, except that the computing resources are available only for use by a single enterprise. While a private cloud 806 is shown in communication with a WAN 802, in other embodiments, a private cloud may be entirely disconnected from the Internet and accessible only through a local / private network. A hybrid cloud is a composition of multiple clouds of different types (e.g., private, community, or public cloud types), often each implemented by a different vendor. While each of the multiple clouds remains a separate and discrete entity, the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the multiple constituent clouds. In this embodiment, both the public cloud 805 and the private cloud 806 are part of a larger hybrid cloud.

[0107] The terms used herein are merely for the purpose of describing particular embodiments and are not intended to be limiting of the present invention. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that terms such as "comprises", "comprising", "includes", "including", "has", "have", "having", "with", and the like, when used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0108] The description of various embodiments of the present invention has been presented for illustrative purposes and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will become apparent to those skilled in the art without departing from the scope of the described embodiments. The terms used in this specification have been selected to best explain the principles of the embodiments, practical applications, or technical improvements over the art found in the market, or to enable other skilled in the art to understand the embodiments disclosed herein.

[0109] The computer system having the drone safety check program operates as a dedicated computer system where the drone safety check process assists in performing a safe drone flight. Specifically, compared to currently available general computer systems that do not have the drone safety check program, the drone safety check program transforms the computer system into a dedicated computer system. The above system can employ hardware and / or software to solve problems that are highly technical in nature, not abstract, and cannot be performed as a set of mental activities by a human. For simplicity of explanation, the dedicated computer-implemented method is shown and described as a series of operations. It is understood and appreciated that the subject innovation is not limited by the operations and / or order of operations shown. That is, for example, operations can occur in various orders and / or simultaneously with other operations not presented and described herein. Furthermore, not all operations expressly disclosed may be required to implement a computer-implemented method in accordance with the disclosed subject matter. Furthermore, those skilled in the art will understand and appreciate that the computer-implemented methodology can alternatively be represented as a series of interrelated states via a state diagram or events. It should further be appreciated that the computer-implemented methods disclosed below and throughout this specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such methods to a computer. The term article of manufacture, as used herein, is intended to encompass a computer program accessible from a computer-readable device or storage medium.

[0110] The system may employ hardware and / or software to solve problems that are highly technical in nature, not abstract, and cannot be implemented as a set of mental activities by a human. The speed required to perform route safety checking and alternative route generation for practical use requires implementing the described methods on a dedicated computer having a program 816 as described herein.

Claims

1. receiving, via the first computer, a message indicating a destination location for flight of the drone; and generating, via the first computer, a first recommendation of a route from a departure location to the destination location for flying the drone; wherein the generating step comprises: relying on a first safety matrix representing a geographic area including the start location and the destination location, where the first safety matrix includes rows and columns of numbers, each number representing a first safety factor for a respective portion of a map representing the geographic area; and relying on a first analysis of a direct route between the start location and the destination location, where the first analysis includes analyzing values ​​of the first safety matrix along a portion representing the direct route.

13. A computer-implemented method comprising:

2. in response to the first analysis indicating that the direct route has a safety risk exceeding a threshold, relying on an alternative route comparison using respective sums of values ​​of the first safety matrix along each additional portion representing an alternative route; and selecting the first recommendation from the alternative routes based on the alternative route comparison. The computer-implemented method of claim 1 , further comprising:

3. The computer-implemented method of claim 2 , wherein the comparing alternative routes comprises applying a hill-climbing algorithm to the first safety matrix.

4. 3. The computer-implemented method of claim 2, wherein the alternative route comparison weights each matrix value based on a respective length that each alternative route passes through a sub-region of the map corresponding to a matrix position of each matrix value.

5. The computer-implemented method of claim 1 , wherein the first safety matrix is ​​based on a presence of birds in the geographic area or roads within the geographic area.

6. The computer-implemented method of claim 5 , wherein the first safety matrix is ​​based on bird detection performed via one or more satellites.

7. The computer-implemented method of claim 5 , wherein the first safety matrix is ​​based on a road and traffic conditions along the road.

8. relying on a combined safety matrix representing the geographic area, where the combined safety matrix is ​​formed by combining the first safety matrix and a second safety matrix, the second safety matrix comprising rows and columns of numbers, each number representing a second safety factor of the respective portion of the map, the second safety factor being different from the first safety factor; Further equipped with wherein the first analysis includes analyzing values ​​of the combined safety matrix along the portion representing the direct route.

10. The computer-implemented method of claim 1.

9. The computer-implemented method of claim 8 , wherein the combining adds the values ​​of the second safety matrix to values ​​in corresponding positions of the first safety matrix in each respective portion of the map.

10. 9. The computer-implemented method of claim 8, wherein the first safety matrix is ​​based on a presence of birds in the geographic area and the second safety matrix is ​​based on roads in the geographic area.

11. 9. The computer-implemented method of claim 8, wherein the first analysis weights each matrix value based on a respective length that the direct route passes through a sub-region of the map corresponding to the matrix position of the each matrix value.

12. receiving time information about the time required for the flight of the drone; and selecting the first safety matrix from a stored library of safety matrices based on the time information. The computer-implemented method of claim 1 , further comprising:

13. receiving package information for a package to be delivered via the flight of the drone; and performing the first analysis further based on the parcel information. The computer-implemented method of claim 1 , further comprising:

14. 12. The computer-implemented method of claim 1, wherein the number of rows of the first safety matrix is ​​equal to the number of latitudinal divisions on the map and the number of columns of the first safety matrix is ​​equal to the number of longitude divisions on the map.

15. 12. The computer-implemented method of claim 1, wherein the first analysis weights each matrix value based on a respective length that the direct route passes through a sub-region of the map corresponding to the matrix position of the respective matrix value.

16. 1. A computer system comprising: a computer system including one or more processors, one or more computer-readable tangible storage media, and program instructions stored on at least one of the one or more computer-readable tangible storage media for execution by at least one of the one or more processors, thereby providing the computer system with: Receiving a message indicating a destination location for the drone flight; and generating a first recommendation of a route from a departure location to the destination location for flying the drone; wherein said generating comprises: relying on a first safety matrix representing a geographic area including the start location and the destination location, where the first safety matrix includes rows and columns of numbers, each number representing a first safety factor for a respective portion of a map representing the geographic area; and relying on a first analysis of a direct route between the start location and the destination location, wherein the first analysis includes analyzing values ​​of the first safety matrix along a portion representing the direct route; A computer system comprising:

17. The program instructions further configure the computer system to: relying on an alternative route comparison using respective sums of values ​​of the first safety matrix along respective additional portions representing alternative routes in response to the first analysis indicating that the direct route has a safety risk exceeding a threshold; and selecting the first recommendation from the alternative routes based on the alternative route comparison; 20. The computer system of claim 16 for execution to cause execution of:

18. 20. The computer system of claim 17, wherein the comparing alternative routes comprises applying a hill climbing algorithm to the first safety matrix.

19. A computer program comprising embodied program instructions, the program instructions causing a computer to: Receiving a message indicating a destination location for the drone flight; and generating a first recommendation of a route from a departure location to the destination location for flying the drone; wherein said generating is executable by the computer to: relying on a first safety matrix representing a geographic area including the start location and the destination location, where the first safety matrix includes rows and columns of numbers, each number representing a first safety factor for a respective portion of a map representing the geographic area; and relying on a first analysis of a direct route between the start location and the destination location, where the first analysis includes analyzing values ​​of the first safety matrix along a portion representing the direct route.

1. A computer program comprising:

20. The program instructions cause the computer to: relying on an alternative route comparison using respective sums of values ​​of the first safety matrix along respective additional portions representing alternative routes in response to the first analysis indicating that the direct route has a safety risk exceeding a threshold; and selecting the first recommendation from the alternative routes based on the alternative route comparison; 20. The computer program of claim 19, further executable by the computer to cause the computer to execute: