Security determination based on drone parcel delivery matrix

By generating and analyzing the safety matrix to determine the safety route of the drone, the safety problems faced by the drone during flight are solved, the flight safety and delivery success rate are improved, and the related costs are reduced.

CN119668275APending Publication Date: 2025-03-21INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411318270.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-09-21
Filing Date
2024-09-20
Publication Date
2025-03-21

AI Technical Summary

Technical Problem

The prior art is difficult to effectively solve the safety problems faced by drones during flight, such as bird attacks and environmental hazards, which affect the safety of drones and package delivery.

Method used

By generating a security matrix that represents the geographical area of ​​the drone’s flight, and using artificial intelligence to analyze the matrix to determine the safe route of the drone from its departure location to its destination location.

Benefits of technology

It improves the safety of drone flight and the success rate of parcel delivery, and reduces the cost of drone maintenance and parcel repair.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119668275A_ABST
    Figure CN119668275A_ABST
Patent Text Reader

Abstract

A computer-implemented method, a computer system, and a computer program product are provided. The first computer receives a message indicating a destination location at which the drone flies. The first computer generates a first recommendation for a route from a departure location to a destination location for flight of the drone. The generating includes relying on a first security matrix representing a geographic area including the departure location and the destination location. The first security matrix includes rows and columns of numbers. Each number represents a first security coefficient for showing a respective portion of the map of the geographic area. The generating further includes a first analysis dependent on a direct route between the departure location and the destination location. The first analysis includes analyzing values of a first security matrix along a portion representing a direct route.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] The present invention generally relates to the fields of aerial drones, package deliveries performed via drones, automated map generation, and automated environmental sensing. Aerial drones are typically unmanned aircraft, and may sometimes be referred to as unmanned aerial vehicles. Aerial drones are capable of being piloted and flown without an onboard human pilot. An aerial drone may be controlled using an onboard computer and pre-programmed instructions so that the drone operates autonomously. Aerial drones may alternatively or additionally be piloted as remotely piloted aircraft by a person controlling the drone but remotely located from the drone. Maps and environmental sensing are used to help generate aerial routes that drones take in flights such as package delivery flights. Today, consumer goods are delivered via drone deliveries. Summary of the invention

[0002] A computer-implemented method is implemented. A first computer receives a message indicating a destination location for a drone flight. The first computer generates a first recommendation for a route from a departure location to a destination location for the drone flight. The generating includes relying on a first safety matrix, the 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 corresponding portion of a map showing the geographic area. The generating also includes relying on a first analysis regarding a direct route between the departure location and the destination location. The first analysis includes analyzing values ​​of the first safety matrix along a portion representing the direct route. A computer system and a computer program product corresponding to the method are also provided herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0003] These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof read in conjunction with the accompanying drawings. The various features of the drawings are not to scale because the drawings are for the sake of clarity and to facilitate understanding of the present invention by those skilled in the art in conjunction with the detailed description. In the drawings:

[0004] Figure 1 is an operational flow diagram illustrating a process for performing map-to-matrix coordination for a security situation in accordance with at least one embodiment;

[0005] Figure 2 is an operational flow diagram illustrating a method for using a Figure 1 The process shown generates one or more matrices to generate a UAV route;

[0006] Figure 3 It is shown that according to at least one embodiment, Figure 1 and Figure 2 A grid map of latitude and longitude involved in the process;

[0007] Figure 4A It is shown that according to at least one embodiment, Figure 1 is generated in the process of Figure 2 security matrices used in the process and combined with one another according to at least one embodiment;

[0008] Figure 4B Another set of security matrices is shown, which according to at least one embodiment may be used in Figure 1 is generated in the process of Figure 2 used in the process of, and combined with each other according to at least one embodiment;

[0009] Figure 4C An output security matrix according to at least one embodiment is shown, which can be output via Figure 4B It is generated by combining the two security matrices shown in;

[0010] Figure 5 An embodiment implementing matrix combination and analysis is shown, and a tensor with peaks indicating hazardous areas is shown;

[0011] Figure 6 Shows the addition of a drone route Figure 3 A grid map of the invention, the grid map being generated according to at least one embodiment using the various processes and features shown in the other figures and including a highlighting of the map area traversed by the drone route;

[0012] Fig. 7A and Figure 7B An alternative drone route generated using the various processes and features shown in the other figures according to at least one embodiment is shown. Figure 7B ) compared to the direct route ( Fig. 7A ), wherein the alternative drone route enables enhanced safety for the drone during flight along the route; and

[0013] Figure 8 A networked computer environment is shown in which drone safe routing with map-to-matrix coordination is performed according to at least one embodiment. DETAILED DESCRIPTION

[0014] Detailed embodiments of the claimed structures and methods are disclosed herein; however, it is understood that the disclosed embodiments are merely illustrative of the claimed structures and methods that may be embodied in various forms. The present invention may be implemented in many different forms and should not be construed as limited to the exemplary embodiments set forth 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] The exemplary embodiments described below provide a method, a computer system, and a computer program product for generating an improved route for drone flights in an automatic manner to enhance the safety of drones and the safety of any packages transported and delivered via drones via flight. For example, after purchasing items online, the delivery of goods is increasingly performed via drones that carry the items and fly to deliver the items to the purchaser's drop-off or pickup location. Consumers like to get goods without having to appear in public places in person. Consumers like the convenience and privacy of contactless delivery. Various goods are now delivered via drone delivery, including but not limited to medicines, food, groceries, electronic items, building materials, etc. Drone delivery has unique safety issues, such as being attacked by birds that feel threatened and seek to protect what they believe to be their territory. Damage to the drone itself and / or the packages carried and delivered by the drone is at least troublesome, and in many cases, it is an expensive problem for drone owners and / or operators, item providers, and item recipients. In addition, when a drone inadvertently drops a package in a road, the package is likely to be damaged via a vehicle traveling along the road. Packages dropped on the road may also endanger drivers and cause traffic accidents. For packages that do not float, dropping a package in water may cause the package to sink and be lost. Dropping a package on safer, softer ground (such as grass) will result in less chance of package damage and a higher chance of package recovery. Other safety factors besides roads / traffic and birds / wildlife may also affect drone delivery. The present embodiment enhances drone and package delivery safety by automatically identifying safer routes for drone flights. The identification uses 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 the following features: automatically collecting data with location information, transmitting the data to one or more matrices representing a map with associated locations, and analyzing 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). The use of this map-to-matrix coordination and the application of artificial intelligence using the matrix to find a safe, safer, or safest flight path for the drone results in a higher completion percentage of deliveries, and also results in a higher recovery percentage for any drone accidents that occur. Therefore, the present embodiment can reduce drone maintenance costs, drone repair costs, and drone replacement costs, as well as package repair and / or replacement costs.

[0017] Figure 1 A flowchart illustrating the operation of a first process 100 for performing map-to-matrix coordination for drone safety conditions is shown. The first process 100 may use Figure 8 The first process 100 may be implemented as one or more portions of a map-to-matrix coordination and drone safety route determination program 816 of the computer 801 shown. The automatic 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 devices when performing the first process 100. The first process 100 represents a preparation phase, in which safety information for a geographic area is collected and processed to be stored in one or more matrices, so that the map-to-matrix coordination 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 an external computer. Figure 8801 to receive map information. At computer 801, the map information flows to the map and matrix coordination for drone route determination program 816. In some embodiments, map information is obtained from another entity, for example, by purchasing from another entity that has used various means (such as image collection) to generate one or more maps depicting various geographic areas. In some embodiments, step 102 includes actively capturing images of geographic areas and using these images to generate maps depicting various geographic areas. In some embodiments, images are captured via satellites orbiting the earth (e.g., low earth orbit (LEO) satellites). In some embodiments, images are captured via aircraft and / or via automotive vehicles with cameras attached. Image information is associated with latitude and longitude information so that a depiction of earth features is generated on a two-dimensional or three-dimensional map of the geographic area. Map information includes features such as physical structures (e.g., buildings, houses, monuments, etc.) at specific longitude-latitude combinations. Map information includes features such as roads throughout the geographic area. Map information includes information such as vegetation and vegetation types on a specific geographic area. In some embodiments, the map information is used to generate a visual map that is stored in a computer memory, such as a permanent storage device 813 and / or an additional computer memory storage device, such as a storage device in a remote server 804. In some embodiments, the map information is used to generate a combination of text information describing the physical area, where the text information is organized into regions of the map. Thus, in this case, the map information together helps provide information about the geographic area stored in a manner that approximates the arrangement of the physical area without actually providing a visual map. In some embodiments, the map owner already has map information for various geographic areas and therefore performs step 102 by accessing the map information from its data storage device (such as a data storage device from 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. Figure 2 The UAV route that is ultimately sent to the UAV to guide the UAV includes latitude and longitude information for guiding the UAV. The mapping is based on<x,y> Axis information. In this case, the direct route is interpreted as a standard altitude that recommends the drone altitude during drone flight. The standard altitude is based on the drone industry's 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. Figure 2The drone route that is ultimately sent to the drone to guide the drone includes an altitude component in addition to the latitude and longitude information used to guide the drone. The mapping is based on<x,y,z> Based on this, the generated alternative route can include not only deviations in latitude and longitude, but also deviations in altitude to avoid one or more danger zones.

[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 an external computer via Figure 8 The first safety factor information is received by transmitting data from the wide area network 802 to the computer 801 as shown. At the computer 801, the first safety factor information flows to the map and matrix coordination for the drone route determination program 816. The first safety factor information relates to a first safety condition, such as the orientation of roads / streets in the geographic area, the presence of birds in the area that represent a physical hazard for drones of a specific size, the type of surface material on the earth's surface in the geographic area (such as water (for lakes, rivers, ponds, streams, oceans, etc.), vegetation, rocks, etc.), wind patterns over a specific geographic area, etc. Road information can be collected via image capture and / or via legal access to a road map generated by another entity. In some embodiments, the road information includes traffic information and patterns indicating the number of cars using a specific road within a specific time interval. In some cases, the presence of birds is identified via images captured from satellites orbiting the earth.

[0022] The first security factor includes information that associates various factors with a specific geographic segment. Figure 3 The first map 300 shown in FIG. 5 depicts a geographic area divided into map regions, such as a first map region 302 , via a combination of latitude and longitude lines. Figure 3 A first latitude line 304 among other latitude lines and a first longitude line 306 among other longitude lines are shown. First safety factor information is captured and stored per area grid / segment / region. Thus, if some areas, but not other areas, include roads, bodies of water, and / or a large presence of attacking birds, etc., then this information is stored as being associated with that particular map area. For example, the safety factor information is stored in association with a map area tag that indicates which area of ​​the map has the safety impact feature and / or the level of intensity of the safety impact feature. In some embodiments, the map area tag includes latitude and longitude coordinates and / or a range of latitude and longitude coordinates. For those areas that do not have a safety factor, information segments associated with those areas are stored and indicate the lack or reduced safety threat from a particular hazard.

[0023] In some embodiments, the first safety information also includes different information depending on a specific time of day, day of the week, and / or season of the year associated with the time the safety information was captured. For example, some information for a specific map sub-area indicates a high threat in the morning or during winter and a low threat in the evening or during summer.

[0024] In step 106 of the first process 100, one or more first safety matrices based on the map information and the first safety factor information are created. 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 coordination program 816 for drone routing determination applies one or more pre-stored rules and / or strategies to the information in order to perform step 106 to generate one or more safety matrices. In some embodiments, the user selects weights to help the map and matrix coordination program 816 for drone routing determination determine the value of the safety factor information to be applied to a particular map area.

[0025] The first safety matrix generated in step 106 comprises rows and columns of numbers. Each number represents a first safety factor value for a corresponding portion of the map showing the geographical area. Figure 3 The first map 300 shown in includes a first map area 302, which is shown on the map portion as the fourth map area from the left and in the top (e.g., first) row of map areas. To perform step 106, a first safety factor value for the first map area 302 will be inserted into the first safety matrix in the first row, fourth column position of the first safety matrix. The value represents a safety assessment of the area relative to a particular safety issue within that portion of the geographic location. The value will be placed in the first row, fourth column position of the first safety matrix. Although in Figure 3Only the first map area 302 is numerically identified in the matrix, but numerical values ​​may be generated for other (all or some) positions of the matrix. Those other positions of the matrix correspond to the various map areas shown in the depicted first map 300. For example, this particular example shows a first map 300 divided into one hundred and forty-four square map areas in twelve rows of map areas and twelve columns of map areas. The safety matrix generated in step 106 for this depicted division of the first map 300 will include one hundred and forty-four numerical values ​​arranged in twelve rows and twelve columns. Because the matrix is ​​generated based on a safety analysis of a specific feature, each number in a single matrix is ​​related to a safety issue for that specific feature of the corresponding map sub-area. In other words, in some embodiments, the first safety matrix is ​​filled with numbers, each number indicating the threat of bird attack on a respective sub-area of ​​the map. In another embodiment, the first safety matrix is ​​filled with numbers, each number indicating whether the corresponding map sub-area is a passing road or a busy road. Other embodiments include a set of numbers referring to other safety conditions that may affect the flight of the drone.

[0026] In at least some embodiments, the 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 zero to ten, where zero is an indication of no concern for the safety factor in a particular map area, and ten is an indication of maximum concern for the safety factor in a particular map area. In some embodiments, concern is indicated as present or absent only for a particular area, because a value or a zero value is entered for each matrix position (to indicate 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 a particular safety factor. Thus, the user is allowed to select how to scale the received safety information to a particular number inserted into the matrix. The map and matrix coordination program 816 for drone route determination prompts the user to capture the user selection via a user interface such as a graphical user interface displayed on a display screen of the computer 801. In other embodiments, the program 816 provides a default selection of a range of values. The selected larger range allows each matrix to capture more specific fine-grained safety information. In some embodiments, the program 816 applies an algorithm to generate an appropriate range and scale based on the received safety information. For example, to track the presence of attacking birds, the number of birds identified in a particular geographic area within a specific time frame is provided as an input to the algorithm for each area. In response, the algorithm automatically identifies the maximum number of bird sightings and the range of differences between the various areas, and then converts these numbers to the appropriate ranges. In some embodiments of road information, the number of vehicles traveling through a road area in a specific time frame is captured via sensor information to determine a traffic rating for the road area, for example, a numerical value between zero and ten.

[0027] Figure 4A Two exemplary matrices that may be formed by performing step 106 are depicted. Figure 4A A first example matrix 402 and a second example matrix 404 are shown. These first example matrix 402 and second example matrix 404 have twelve rows and twelve columns of values, because these matrices are for Figure 3 4. The first example matrix 402 has a range of zero to ten for the safety factor values ​​of the different matrix elements, and thus has a range of zero to ten for the different parts of the map. The second example matrix 404 has a binary range of zero and one, which means that the matrix only indicates the presence or absence of safety factors for the corresponding matrix elements, and thus indicates the presence or absence of safety factors for different parts of the map, rather than indicating the severity of the hazard. The second example matrix 404 indicates a safety issue with respect to the safety factor, which is different from the safety issue indicated by the first example matrix 402. Figure 4A The matrix shown in corresponds to a two-dimensional map. For a three-dimensional map with different vertical layers of sub-areas, a separate matrix exists / is generated for each vertical layer of the three-dimensional map.

[0028] Figure 4B Two exemplary matrices that may be formed by performing step 106 are depicted. Figure 4B A first example matrix 402 is shown (which is also Figure 4A ), but a third example matrix 414 is also shown. Like the first example matrix 402 and the second example matrix 404, the third example matrix 414 has twelve rows and twelve columns of values, because the matrix is ​​for Figure 3 4. The third example matrix 414 also has a range of zero to ten for the safety factor values ​​of different matrix elements, and thus also has a range of zero to ten for different parts of the map. The third example matrix 414 indicates safety issues with respect to safety factors that are different from the safety issues indicated by the first example matrix 402 and different from the safety issues indicated by the second example matrix 404.

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

[0030] In step 108 of the first process 100, the matrix / matrix data is stored. The information is stored in a computer data storage device, such as a permanent storage device 813 of the computer 801 and / or in an additional storage device accessed via the cloud, such as one or more remote servers 804. The matrix information is stored in a manner so that the program 816 can be executed Figure 2 The second process 200 shown is accessible to determine the best safe route for a drone to travel within the geographic area represented by the matrix.

[0031] In step 110 of the first process 100, it is determined whether there is an additional safety factor to be added. In response to a positive determination in step 110 that there is an additional safety factor to be added, the first process 100 proceeds to step 112 to begin a loop of steps 112, 114, 116, and 118. In response to a negative determination in step 110 that there is no additional safety factor to be added, the first process 100 proceeds to the end of the first process 100. To perform the determination of step 110, in some embodiments, the program 816 checks the computer memory data queue to evaluate whether there are any more indicators of any additional safety information groups available in the data storage device in the queue. In some embodiments, the user presets a number of safety factors that the user wants to be included for safety analysis via interaction with the user interface of the program 816. In these embodiments, the determination of step 110 includes accessing the user selection and comparing the number of safety factors that have been analyzed with the number of user selected. Selecting a larger number of safety factors to include increases the accuracy of the program 816 in determining a safe route for the drone to fly, but may also increase the cost of collecting and / or accessing and / or analyzing one or more sets of additional safety information.

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

[0033] In step 114 of the first process 100 along the loop of steps 112, 114, 116, 118, one or more additional safety matrices based on the map and the additional safety factor information are created. The matrix creation of step 114 is similar to the matrix creation of step 106. Figure 4A Two matrices are shown, and Figure 4B Two different sets of matrices are shown. Either of these matrices can be generated via step 114 while the other matrix is ​​generated via step 106.

[0034] In the step 116 of the first method 100, another 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 the previous iteration of the loop of step 112,114,116,118. In at least some embodiments, the combination includes adding the matrix elements of the first matrix to the corresponding matrix elements of the second matrix to produce a new combined matrix. In other words, as a matrix element and with a specific row number and column number in the first matrix, the numerical value is added and / or combined to as a matrix element and with the same specific row number and column number in the second matrix. The same specific row number and column number are referred to as corresponding positions. This combination of each matrix element produces a combined matrix. In some embodiments, the combination of twelve multiplying twelve matrices and another twelve multiplying twelve matrices produces a combined matrix that is also twelve multiplying twelve matrices. In some embodiments, matrices of different sizes are combined with each other. For a three-dimensional map, the value in a single vertical layer is added to the corresponding value of the corresponding vertical layer of another matrix.

[0035] In some embodiments, before the two matrices are combined with each other, the smaller matrix of the matrix pair or group is enlarged to a dimension equal to the second matrix from the pair. In some embodiments, the enlargement includes copying certain values ​​to fill other positions of the enlarged matrix. For example, a six-by-six matrix is ​​enlarged by generating four matrix elements from each original matrix element of the six-by-six matrix. The new four matrix elements fill the same (enlarged and divided) section of the map area represented by the original matrix elements. This process produces a twelve-by-twelve matrix. Program 816 performs this enlargement in an automatic manner.

[0036] In some embodiments, before two matrices are combined with each other, the larger matrix in the matrix pair or matrix group is reduced in size to equal the dimension of the second matrix from the pair. In some embodiments, this size reduction includes averaging certain values ​​to create a single value of the matrix with reduced size. For example, the size of a twelve-by-twelve matrix is ​​reduced by averaging four original matrix elements to produce a single matrix element (i.e., average result). The new single matrix element fills the same (contracted and combined) section of the map area previously for the original four matrix elements. This process produces a six-by-six matrix. Program 816 performs this size reduction in an automatic manner.

[0037] Thus, in at least some embodiments, matrices having different dimensions are added to or accessed by program 816, and program 816 appropriately adjusts the values ​​of the smaller or larger matrix to produce an output matrix having the same dimensions as the larger or smaller matrix, respectively. In at least some embodiments, program 816 performs the combination without favoring the values ​​of the smaller or larger matrix, but rather equally weights the two matrices for combination.

[0038] In at least some embodiments, program 816 also efficiently combines (e.g., adds) matrices of different dimensions or the same dimensions when the safety factor values ​​have different ranges. In this case, based on the range size, the values ​​in the first matrix can have seemingly distorted values ​​compared to the values ​​in the second matrix. A "3" value in the range of zero to three has a different safety meaning than a "3" value in the range of zero to ten. Program 816 automatically calibrates the different ranges so that these different matrices can still be effectively combined with each other, such as added to each other, without overwhelming distortion. For example, in Figure 4A The first matrix 402 in has values ​​ranging from zero to ten and Figure 4B In the case where the second matrix 404 in the example matrix has binary values ​​of "0" or "1", distortion may occur when attempting to perform a direct addition of the values ​​of the first matrix 402 and 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 calibration mode, the program 816 treats all "1" values ​​of the second example matrix 404 as values ​​of "5" for addition to the values ​​of the first example matrix 402.

[0039] In at least some embodiments, the user can pre-select weights to weight one safety factor higher than the other safety factors for combination. For example, if the user is more concerned about bird strikes than flying over roads, the user pre-selects via the user interface of program 816 to weight bird presence safety information higher than road information. Program 816 then adjusts the bird safety value upward, adjusts the road safety value downward, or performs both adjustments as a precursor to matrix combination.

[0040] In step 118 of the first process 100, the matrix / matrix data is stored. The information is stored in a computer data storage device, such as a permanent storage device 813 of the computer 801 and / or in an additional storage device accessed via the cloud, such as one or more remote servers 804. The matrix information is stored in a manner so that the program 816 can be executed Figure 2 The second process 200 shown is accessible to determine the best safe route for a drone to travel in a geographic area represented by a matrix. The data includes new one or more additional matrices formed and new one or more combined matrices formed via the combination of step 116 combining the various matrices with each other.

[0041] After step 118, the first process 100 continues with a repetition of the determination of step 110. At step 110, another determination is made as to whether there is an additional safety factor to be added. In response to a positive determination in step 110 that there is an additional safety factor to be added, the first process 100 proceeds to step 112 to repeat the loop 112, 114, 116, 118 to obtain another 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 be added, the first process 100 proceeds to the end of the first process 100. Although Figure 4A and 4B The combination of two sets of matrices is shown, but in other embodiments, more than two matrices are combined to form a new matrix combination. For example, step 116 can combine three matrices, four matrices, five matrices, etc.

[0042] Figure 2 An operational flow chart is shown according to at least one embodiment, which illustrates a method for using a Figure 1 The second process 200 of generating a drone route can be performed using one or more matrices generated by the first process 100 shown and described above. Figure 8 One or more portions of the illustrated map-to-matrix coordination and drone safe route determination program 816 may implement the second process 200. The automatic 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 second process 200.

[0043] In step 202 of the second process 200, a request for secure route generation is received. In some embodiments, the secure route generation is performed via a computer from an external computer. Figure 8The request is received by transmitting data from the wide area network 802 to the computer 801 as shown. At the computer 801, the request flows to the map and matrix coordination for 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, for example, a pending delivery to make. In some embodiments, the drone operator has an instance of the map and matrix coordination for drone route determination program 816 at his own computer, for example, owning the computer 801, so that the request of step 202 occurs by accessing the user interface of the program 816 and initiating the second process 200 through the user interface to receive the drone route generation.

[0044] In some embodiments, program 816 is implemented at a drone delivery station. In some embodiments, program 816 is implemented in a general purpose framework that can be accessed upon incoming requests to a drone route finder. A drone operator saves an instance of the program on their computer and requests data from a central instance of program 816 (e.g., in the cloud). The service requests resources and loads a metadata repository about the drone and geographic information.

[0045] In step 204 of the second process 200, packaging material information is received. In some embodiments, the packaging material information is received via an external computer. Figure 8 The package material information is received by transmitting data from the wide area network 802 to the computer 801 as shown. At the computer 801, the package material information flows to the map and matrix coordination for the drone route determination program 816. In some embodiments, the package material information includes the size information of the package carried by the drone during the drone flight. In some embodiments, the package will be carried and then dropped off at the destination location to deliver the package. In some embodiments, the package material information includes a description of the contents of the package. In some embodiments, the fragility level of the package material is indicated by the package material information. In other embodiments, the program 816 determines the fragility level based on the indicator of the contents of the package. The program 816 applies one or more preset strategies and / or rules to perform the fragility determination. In some embodiments, the package information indicates whether the package and / or its contents are able to float on water. In some embodiments, the package information includes whether the package contains any materials that make the delivery time sensitive, such as frozen materials that need to be returned to the freezer soon. In some embodiments of the drone operator control program 816, the drone operator can enter the package material information by engaging with the user interface of the program 816. In some embodiments, the data packet contains the package material information, and the data packet is forwarded to the program 816 for analysis.

[0046] In at least some embodiments, program 816 initiates an in-band data collector application programming interface (API) that will connect to the drone delivery initiator function to request package information so that distribution can be made. Information from the initiator service requesting the drone route safety check will be released to the drone station along with the details of the package. This information is presented in metadata. Tags of the metadata are classified at the service to understand the details. For example, a tag indicates one or more of fragile, large, small, medium size, heavy, etc. In order to facilitate avoiding downloading new modules and / or avoiding installing new hardware in order to perform the methods described herein, the present embodiment prefers in-band communication between computers rather than out-of-band communication.

[0047] In some embodiments, computer 801 (see Figure 8 ) represents the central controller, and the end user device 803 (see Figure 8 ) includes an application programming interface for communicating 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 can be, for example, via the wide area network 802 (see Figure 8 ) occurs between a program instance on an end-user device 803 and a central program 816 to perform various tasks, such as user registration and safety checks based on the drone route matrix as described herein.

[0048] For example, in some embodiments of the user registration and subscription validator, a central controller having program 816 stores user ID information in a table such as shown in Table 1 below:

[0049]

[0050]

[0051] Table 1

[0052] For example, in some embodiments for checking the accuracy of user data, a central controller having program 816 stores user location information in a table such as shown below in Table 2. In some embodiments, the X and Y information refer to latitude and longitude coordinates, respectively.

[0053]

[0054] Table 2

[0055] For example, in some embodiments of a currency for user subscriptions to inspect a drone route safety inspection program, a central controller having program 816 stores user subscription information in a table such as shown in Table 3 below:

[0056] User ID subscription 0x1102345 Subscribed 0x1102357 Not Subscribed 0x1102397 Subscribed 0x1103456 Subscribed 0x1102399 Subscribed

[0057] Table 3

[0058] In step 206 of the second process 200, the drone departure location information is received. In some embodiments, the drone departure location information is received via an external computer. Figure 8 The data transmission from the wide area network 802 shown in FIG. 8 to the computer 801 is used to receive the drone departure position information. At the computer 801, the drone departure position information flows to the map and matrix coordination for the drone route determination program 816. Figure 6 A drone route map 600 is shown that includes a drone departure location 602. The drone departure location 602 indicates a location that the drone is expected to depart from to perform a drone flight (e.g., to deliver a package). In some embodiments, the drone departure location 602 includes latitude and longitude coordinates of the departure location. In some embodiments where a drone operator has an instance of program 816 and repeatedly sends drones from the same departure location, the drone departure location information is stored in a memory of computer 801 or in a memory accessible to computer 801, for example, in persistent storage 813. In such embodiments, the receiving of step 206 includes an in-computer transmission within computer 801 such that the stored data is sent to program 816.

[0059] 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 an external computer. Figure 8 The drone delivery location information is received by transmitting data from the wide area network 802 shown in FIG. 8 to the computer 801. At the computer 801, the drone delivery location information flows to the map and matrix coordination for the drone route determination program 816. Figure 6 The drone route map 600 includes a drone delivery location 604. The drone delivery location 604 indicates the location to which the drone is expected to travel to complete the drone flight (e.g., to make a package delivery). In some embodiments, the drone delivery location 604 includes the latitude and longitude coordinates of the delivery location. In some embodiments where a consumer orders a product and requests that the product be delivered via drone delivery, the consumer provides a delivery address as part of the transaction, and the delivery address is provided as the drone delivery location information of step 208. The drone operator may already have access to the address, or may receive the address from the package provider.

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

[0061] In step 210 of the second process 200, a determination is made as to whether a route safety check has been performed for the departure / destination combination. The departure / destination combination refers to (1) the departure location of the drone for which information was received in step 206, and (2) the delivery location of the drone for which information was received in step 208. If the determination of step 210 is affirmative, because a route safety check has been performed for the departure / destination combination, the second process 200 proceeds to step 212. If the determination of step 210 is negative, because a route safety check has not yet been performed for the departure / destination combination, the second process 200 proceeds to step 214. If the program 816 has previously analyzed a particular departure / destination combination to find an acceptable direct route and / or an improved safety route for the drone to travel from the departure location to the destination, then step 210 is affirmative and the program 816 does not need to perform the analysis again. Instead, the program 816 relies on the previous analysis. The program 816 accesses and / or stores in its internal data storage a list of departure / destination combinations that have been analyzed. A table listing all departure / destination combinations that have been analyzed may be generated. By using the already determined route determined by a previous iteration of the steps of the second process 200, routine 816 relies on the analysis of the safety matrix and the direct route without having to re-perform the analysis.

[0062] In some cases, the departure / destination combination does not exactly match a stored and previously analyzed combination, but is in the vicinity of a stored and previously analyzed combination. In some embodiments, program 816 also performs a comparison to a predetermined threshold as part of step 210. A distance between the departure locations of the new and previously analyzed combinations in the vicinity and another distance between the destination locations of the new and previously analyzed combinations in the vicinity are determined and compared to a predetermined threshold. In some cases, the distance is deemed small enough and below the threshold such that the delivery route of the previously analyzed combination is available for the new combination. In some cases, the distance is deemed equal to or exceeds the threshold such that the delivery route of the previously analyzed combination is not available for the new combination and a new analysis should be performed. The threshold is based on a user selection or based on a determination via program 816 based on previous success of drone deliveries that relied on previously determined routes to nearby locations.

[0063] In step 214 of the second process 200, one or more safety matrices are analyzed to check for hazards along the direct route. The one or more safety matrices are those matrices generated in step 106 and stored in step 108 and / or combinations of those matrices generated in step 116 and stored in step 118. To perform step 214, the program 816 uses the classification information of the departure / destination combination to search the matrix library to find one or more matrices that match the current departure / destination combination to be analyzed.

[0064] In at least some embodiments, the analysis of step 214 includes (a) identifying all map sub-regions over which the direct route runs / passes, and (B) examining matrix values ​​of matrix elements corresponding respectively to those sub-regions. Fig. 7A An example map 702 is shown including an example direct route 720 between an example departure location 704 and an example destination location 706. The example direct route 720 represents a straight line and / or an approximately straight line between the departure location 704 and the destination location 706. To perform step 214, safety information for each map region that the example direct route 720 passes through / travels over is identified and analyzed. Fig. 7A , a plurality of map sub-regions shown as cross-hatched squares are identified as those sub-regions through which the example direct route 720 passes. Fig. 7A An example transfer sub-region 708 is marked in FIG. Fig. 7A In the example of , the example direct route 720 crosses / passes over eleven such square sub-areas, including the example passed sub-area 708. The number of intersecting sub-areas and identification indicators of each square sub-area are determined and stored for analysis in step 214. In at least some embodiments, these identification indicators refer to locations within the map segment based on the total number of sub-areas within the map segment. For example, the example passing sub-area 708 is identified as being in the ninth row and fifth column of various sub-areas within the example map 702. These identifiers are used to find corresponding matrix elements within one or more security matrices representing the example map 702. For example, for the example passed sub-area 708, the values ​​of the matrix elements in the ninth row and fifth column of the matrix representing the example 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 crossed / passed by the example direct route 720.

[0065] This embodiment is based on the use of a vertex weighted graph. The edge weights between sub-regions are counted as zero so that the vertex weights rather than the edge weights affect the summed score of the path. Sub-regions with low risk scores are used and injected into an adaptive machine learning model to generate alternative routes. The generated alternative routes are provided to the drone station and real-time progress is tracked.

[0066] In some embodiments, the sub-regions are two-dimensional, for example in a repeating shape, such as a square. Other shapes, such as rectangles, may also be used, as long as the selected shape is consistent throughout the map and can be arranged in rows and columns. In other embodiments with a three-dimensional map system, the sub-regions are three-dimensional, such as in the form of a cube. For simplicity, the figures herein depict two-dimensional square sub-regions.

[0067] In some embodiments, the start and end locations of the drone route are injected into the safety mapper class. A matrix-based weight calculation is applied to the latitude and longitude information. The generally defined routes are fed into the matrix-based safety routing engine to identify risk elements. A ground truth matrix for the safety routing engine is generated based on areas, properties, intersections, etc. Base values ​​are added to the two-dimensional structure. Once the baseline is generated and depending on the identified road intersections, the received<x,y> The axis information and initial map are injected into the safe routing engine of program 816.

[0068] In step 216 of the second process 200, it is determined whether a hazard is identified along the direct route. The direct route refers to the direct route generated in step 214. If the determination of step 216 is positive, because a hazard is identified along the direct route, the second process 200 proceeds to step 218. If the determination of step 216 is negative, because no hazard is identified along the direct route, the second process 200 proceeds directly to step 220 and skips step 218.

[0069] This determination of step 216 occurs as a natural consequence of step 214 of analyzing the safety matrix / multiple safety matrices to check for hazards. In some embodiments, the determination of step 216 occurs by comparing the matrix value (in the matrix element position corresponding to the drone route path) alone to a threshold level. The threshold is based on a user selection, for example, a predetermined user selection via a user interface of program 816, or based on an automatic and / or default determination via program 816 based on previous success of drone deliveries that relied on previously determined routes to nearby locations.

[0070] In at least some embodiments, the threshold value is also based on the number of matrices that are combined together (e.g., added together) in one or more iterations of step 116, wherein the threshold value / quantity increases as the number of matrices combined together increases. For example, if the matrix analyzed is based on a single matrix from a single safety factor, the threshold value is a starting value. If the matrix analyzed is based on a combined matrix formed by a combination of two matrices, the threshold value is a second value higher than the starting value. If the matrix analyzed is based on a combined matrix formed by a combination of three matrices, the threshold value is a third value higher than the second value. This pattern for threshold determination is repeatable for matrices formed by various numbers of matrices. This reliance on the number of matrices helps to calibrate the higher values ​​that are generated due to more matrix elements being connected together.

[0071] In some embodiments, the analysis of step 214 and the determination of step 216 also consider the distance that the direct route is used to pass through a specific map sub-area. For example, if the direct route passes through a small corner of a sub-area, the safety factor value of the sub-area is weighted downward for calculation. If the direct route passes through the maximum length of the area, the safety factor value of the sub-area is given the full weight of the direct route. For example, if the weighting occurs on a scale from 0 to 1, the safety factor value of the direct route passing through a small section at the corner of the sub-area is weighted with a weight of 0.1, but if the direct route passes through the largest section (e.g., corner to corner of a square), the safety factor value receives a weight of 1.0. In another embodiment, a direct route passing from corner to corner of a square receives a weight greater than 1.0 (e.g., a weight of 1.41), a direct route passing from side to side of a square receives a weight of 1.0, and a direct route passing only a small corner portion of a square receives a weight of 0.1. In this embodiment, the safety factor value is adjusted via a distance adjustment weight before the safety factor value is compared with the threshold.

[0072] The comparison with the threshold is done iteratively for each sub-area traversed by the direct route.

[0073] In some embodiments, the program 816 considers the determination of step 216 to be positive if the threshold is exceeded for a single sub-region. In some embodiments, an additional threshold is set for a minimum number of sub-regions greater than one of the first thresholds that need to be crossed before the program 816 considers the determination of step 216 to be positive. For example, the user may select that two sub-regions must cross the factor threshold to trigger the positive determination of step 216. In this case, the user may decide that they can live with a higher risk level (in favor of using the fastest route) and set the number of sub-regions for that danger threshold higher (e.g., greater than 1).

[0074] In step 218 of the second process 200, one or more matrices are used to identify alternative routes with increased safety. The same one or more matrices analyzed in steps 214 and 216 are also used to identify alternative routes in step 218. In at least some embodiments, the identification is based on finding one or more alternative routes that have correspondingly reduced scores compared to the scores of the over-threshold sub-regions of the direct route and / or compared to the score of the entire direct route.

[0075] For embodiments where the entire direct route safety score is used to compare to the alternative routes in step 218, the individual matrix safety value scores for the various sub-areas traversed by the direct route are summed using a summation algorithm. For each map sub-area traversed by the direct route, a corresponding safety factor value from the matrix is ​​retrieved and added to the direct route total score. Thus, for an "i" number of map sub-areas traversed / passed by the direct route, the summation occurs from 0 to i. The corresponding safety factor values ​​may be taken directly from the matrix elements from the determination of the raw safety data, or from the matrix elements adjusted by weights based on the amount of sub-areas traversed.

[0076] The program 816 automatically tries alternative routes through the vicinity and calculates the total route sum score of these alternative routes. In some embodiments, the program selects the alternative route with the lowest total route sum score as the alternative route for suggesting the drone for drone flight / package delivery.

[0077] In some embodiments, program 816 performs a hill climbing algorithm as part of step 218 to find an alternative route with a total safety score that is lower than the total safety score of the direct route. In some embodiments, the direct route is relied upon and the hill climbing algorithm is stopped until the first sub-region that exceeds the safety threshold is reached. In response to reaching this first "dangerous" sub-region, the hill climbing algorithm is applied. At this point, the route can try alternative routes that work forward (or backward) from that particular sub-region. For three-dimensional systems, hill climbing also applies changes in altitude to find alternative paths with reduced safety scores.

[0078] In some embodiments, the identified alternate route must also not have a safety factor value for any sub-region (through which the alternate route passes) that exceeds the individual sub-region safety thresholds used for steps 214 and 216. In some embodiments, the alternate route must not exceed any particular threshold used in steps 214 and 216.

[0079] Figure 7B An example of an alternative route 740 is shown in response to the direct route 720 being considered dangerous via the first analysis (of steps 214 and 216). Fig. 7A and Figure 7BThe map sub-region is not shown in the entire map 702, 732 shown in FIG, but an 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 travel from the same departure location 704 to the same destination location 706. The alternative path 740 curves around some portions of the original path (i.e., the direct route 720) and avoids some portions of the original path that are considered dangerous.

[0080] In step 220 of the second process 200, a message indicating the determined route is sent to the drone. In some embodiments, the transmission is via a computer 801 having a program 816. Figure 8 The data transmission occurs via the wide area network 802 shown to an external computer associated with the drone (e.g., an external computer that is part of the drone's control system). In some cases, the 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 executes and completes the flight and updates the program 816 with confirmation of the success or any unexpected difficulties along the path, which then uses the confirmation to update the safety matrix in an automated manner.

[0081] In step 222 of the second process 200, the program memory is updated with the route information of the new departure / destination combination. This information is stored in a computer data storage device, such as a permanent storage device 813 of the computer 801 and / or in an additional storage device accessed via the cloud, such as one or more remote servers 804. The new combination information is stored in a manner so that the program 816 can be executed Figure 2 Additional iterations of the second process 200 shown may be accessed to determine the best safe route for another drone flight. The data includes the determined new route. The data may also include actual flight results and success / failure of the intended delivery.

[0082] In step 212 of the second process 200, a route stored in memory for this departure / destination combination is accessed. This step 212 occurs after the affirmative determination of step 210 that the departure / destination combination has been checked. Because the combination has already been checked, faster results are achieved by accessing a previously determined route rather than performing a new security check. The route accessed is a direct route or an alternate route, depending on the results of the previous security check performed, and in some cases, on the current time information and / or package information received. This access of the data of step 212 occurs via retrieval from computer memory (such as permanent storage 813 of computer 801) and / or additional storage accessed via the cloud (such as in one or more remote servers 804).

[0083] After step 212, this branch of the second process 200 proceeds directly to step 220 for sending the determined route to the drone. Then, after executing step 220, step 222 can be skipped because no new combined route information is determined in this iteration. Actual flight and / or delivery results are also collected and used to update the stored matrix and program 816.

[0084] Can be targeted Figure 1 and Figure 2 The various steps of the drone safety inspection procedure shown implement a machine learning model. Such machine learning models may include naive Bayes models, random decision tree models, linear statistical query models, logistic regression models, neural network models, such as convolutional neural networks, multilayer perceptrons, residual networks, long short-term memory architectures, algorithms, deep learning models, deep learning generative models, and other models. The training data includes past departure / destination location combinations with safety information, and direct route inspection and alternative route comparison results for these location combinations. When training the machine learning model in question, the learning algorithm finds patterns in the input data to map the input data attributes to the target. The trained machine learning model contains or otherwise utilizes these patterns so that recommendations and identifications can be predicted for similar future inputs. The machine learning model can be used to perform safety checks on direct routes and alternative routes. The machine learning model uses the identified patterns to determine appropriate route recommendation decisions for future data to be received and analyzed. When samples are provided, the training of one or more machine learning models may include supervised learning by submitting a previous data set to an untrained or previously trained machine learning model. In some cases, unsupervised and / or semi-supervised learning for one or more machine learning models may also be implemented.

[0085] Understandably, Figure 1 and Figure 2An illustration of some embodiments is provided and does not imply any limitations on how different embodiments may be implemented. Many modifications may be made to the depicted implementations (eg, to the depicted sequence of steps) based on design and embodiment requirements.

[0086] Figure 3 A first map 300 is shown which is a latitude and longitude grid map and may relate to Figure 1 and Figure 2 process. Figure 3 The first map 300 shown in FIG. 5 depicts a geographic area divided into map regions, such as a first map region 302 , via a combination of latitude and longitude lines. Figure 3 A first latitude line 304 among other latitude lines and a first longitude line 306 among other longitude lines are shown. The first map 300 depicts 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 depicts various human structures, such as barns, high-rise buildings, and warehouses. In some intersections, the road intersection is weighted in the matrix element because it is a particularly dangerous area for a drone (above air) to traverse due to its high traffic. Dropping a package in this intersection area is considered particularly dangerous and undesirable.

[0087] Figure 4A Safety matrices are shown, namely a first example matrix 402 and a second example matrix 404. The two matrices 402, 404 represent different safety factors for a single geographic area and are Figure 4A The combined action 406 is shown as part of a matrix-based drone route safety check. The first example matrix 402 has a different range of safety factor values ​​(zero to ten) than the binary range of safety factor values ​​(zero or one) of the second example matrix 404.

[0088] Figure 4B Another set of security matrices is shown, namely Figure 4A 402 and the third example matrix 414 shown in . The third example matrix 414 has the same dimensions as the first example matrix 402 and the second example matrix 404, and also has the same range of safety factor values ​​(zero to ten) as the first example matrix 402. Therefore, the third example matrix 414 represents a different safety factor value than the safety factor represented by the first example matrix 402, or represents the same safety factor as the first example matrix 402 but for a different time condition (e.g., time of day, season, etc.). In at least some embodiments, the first example matrix 402 and the third example matrix 414 are combined in the second combination action 416 (with Figure 4AThe other combination actions 406 shown in FIG. 4 are compared to the second combination. Thus, based on the expected time / date of the flight, updated safety checks are performed and alternative routes are identified if necessary.

[0089] Figure 4C An output security matrix 430 is shown according to at least one embodiment, which is Figure 4B 4 and 5. Thus, the output security matrix 430 is generated via a second combining action 416. For each matrix position, the value of the first example matrix 402 is added to the correspondingly positioned value of the third example matrix 414 to generate the correspondingly positioned value of the output security matrix 430.

[0090] Figure 5 Another matrix combination and analysis process 500 is shown. Left matrix 502 represents a first safety factor value for a particular area (e.g., the presence of birds). Right matrix 504 represents a second safety factor value for the same particular geographic area (e.g., the presence of roads). Left matrix 502 and right matrix 504 are combined with each other in a multi-matrix combination act 506. These aspects are similar to Figures 4A-4C As shown in and for Figure 2 those aspects described.

[0091] Figure 5 Also shown is a three-dimensional tensor map 508 of a combined matrix formed via the combination of left matrix 502 and right matrix 504 in multi-matrix combination act 506. As part of three-dimensional map 508, a hazard peak 510 is present and identified, indicating a high score for a particular area of ​​the combined matrix representing a particular portion of a geographic area. In at least some embodiments, hazard peak 510 is above a threshold and triggers the automatic generation of an alternative route that will avoid that sub-area of ​​the geographic area. Figure 5 A three-dimensional graph 508 generated from a combined safety matrix is ​​shown, but in other embodiments, a three-dimensional graph is also generated for a single safety matrix to analyze its results. Intersections with high weight scores are identified as points of attraction. The number of attractions is located from the calculation. If the number of attractions is greater than a threshold, the route change engine of program 816 is activated to navigate the baseline map to minimize the risk of drone flight.

[0092] Understandably, Figure 3 , Figure 4A , Figure 4B , Figure 4C and Figure 5 An illustration of some embodiments is provided and does not imply any limitations on how different embodiments may be implemented. Many modifications may be made to the depicted implementations (eg, the visual features shown) based on design and embodiment requirements.

[0093] Figure 6 Shown based on Figure 3 The drone route map 600 is a first map of a drone route map. The drone route map 600 includes a first alternative route 606 generated in place of a direct route between a drone departure location 602 and a drone destination location 604. The first alternative route 606 is generated due to safety issues with the 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 the direct route between the locations 602, 604. The risk score of the first alternative route 606 is determined using the sum of the risk values ​​for each square sub-area that the alternative route 606 passes through. Figure 6 6. The alternate route 606 spans a total of eleven square sub-regions of the drone route map 600. In some implementations of various embodiments, the sub-regions are each of equal size for consistency in score evaluation. The alternate route 606 avoids flying over the first intersection 312 to increase the safety of the drone route. The alternate route 606 curves around the area of ​​the first intersection 312, for example, due to concerns about the danger of dropping a package into such a busy intersection area with high vehicle traffic.

[0094] Fig. 7A and Figure 7B A comparison of a direct route and an alternative route generated via the matrix-based safety check discussed and used to increase the safety of drone flights is shown. Fig. 7A An example map 702 is shown including an example direct route 720 between an example departure location 704 and an example destination location 706. The direct route 720 represents a straight line and / or an approximately straight line between the departure location 704 and the destination location 706. Safety information for each map sub-area over which the drone will fly along the example direct route 720 is identified and analyzed. Fig. 7A In , a plurality of such intersecting / passing-over map sub-regions are shown as identified cross-hatched squares. Direct route 720 flies over each of these identified sub-regions. Fig. 7A An exemplary sub-region 708 is marked in FIG. Fig. 7A In the example of , the example direct route 720 passes through / 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 the east-west road 708. The example map 702 also shows a river 712 indicated by a double line.

[0095] Figure 7B The alternative route map shown in 732 is based on Fig. 7A702, but depicts an alternate route 740. The alternate route 740 is identified in response to the direct route 720 being deemed hazardous via the first analysis of steps 214, 216. Figure 7B The map sub-areas are not shown in the illustrated overall alternative route map 732, but are described using the same techniques as described above with respect to other figures and Figure 1 and Figure 2 One or more of the various techniques described herein are used to identify an alternative route 740. Both direct route 720 and alternative route 740 travel from the same departure location 704 to the same destination location 706. Alternative route 740 curves around portions of the original route (i.e., direct route 720) and avoids portions of the original route that are considered hazardous.

[0096] Understandably, Figure 6 , Fig. 7A and Figure 7B An illustration of some embodiments is provided and does not imply any limitations on how different embodiments may be implemented. Many modifications may be made to the depicted implementations (eg, the visual features shown) based on design and embodiment requirements.

[0097] 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 technology involved, the operations may be performed in an order different from the order shown in a given flow chart. For example, again depending on the technology involved, two operations shown in consecutive 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.

[0098] Computer program product embodiments ("CPP embodiments" or "CPP") are terms used in this disclosure to describe any collection of one or more storage media (also referred to as "media") collectively included in a collection of one or more storage devices that collectively include machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can retain and store instructions for use by a computer processor. Without limitation, a computer-readable storage medium may be 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: magnetic disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROM or flash memory), static random access memories (SRAM), compact disk read-only memories (CD-ROM), digital versatile disks (DVD), memory sticks, floppy disks, mechanical encoding devices (such as punch cards or pits / ridges formed in a major surface of a disk), or any suitable combination of the foregoing. As the term is used in this disclosure, computer-readable storage media should not be construed as storage in the form of transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses through fiber-optic cables, electrical signals transmitted through wires, and / or other transmission media. As will be appreciated by those skilled in the art, data is typically moved at some occasional point in time during the normal operation of the storage device, such as during access, defragmentation, or garbage collection, but this does not make the storage device transient because the data is not transient when stored.

[0099] Figure 8The computing environment 800 shown in FIG. 8 includes an example of an environment for executing at least some of the computer codes involved in executing the method of the present invention, such as a map and matrix coordination program 816 for drone route safety determination. In addition to the drone matrix-based safety check 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 group 810 (including a processing circuit 820 and a cache 821), a communication structure 811, a volatile memory 812, a persistent storage device 813 (including an operating system 822 and a drone matrix-based safety check program 816, as described above), a peripheral device group 814 (including a user interface (UI) device group 823, a storage device 824, and an Internet of Things (IoT) sensor group 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 host physical machine group 842 , a virtual machine group 843 , and a container group 844 .

[0100] Computer 801 may take the form of a desktop computer, laptop computer, tablet computer, smart phone, smart watch 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 running programs, accessing a network, or querying a database (such as remote database 830). As is well understood in the field of computer technology, and depending on the technology, the execution of the computer-implemented method may be distributed among multiple computers and / or among multiple locations. On the other hand, in this presentation of computing environment 800, the detailed discussion focuses on a single computer (specifically, computer 801) to keep the presentation as simple as possible. Computer 801 may be located in the cloud, even if it is not in the cloud. Figure 5 On the other hand, except to the extent that can be indicated with certainty, computer 801 need not be in the cloud.

[0101] Processor group 810 includes one or more computer processors of any type known now or developed in the future. Processing circuit 820 can be distributed on multiple packages (e.g., multiple coordinated integrated circuit chips). Processing circuit 820 can implement multiple processor threads and / or multiple processor cores. Cache 821 is a memory located in (one or more) processor chip packages, and is generally used for data or code that should be available for fast access by threads or cores running on processor group 810. Cache memory is generally organized into multiple levels according to relative proximity to processing circuits. Alternatively, some or all of the caches for processor groups can be located "off-chip". In some computing environments, processor group 810 can be designed to work with quantum bits and perform quantum computing.

[0102] Computer readable program instructions are typically loaded onto the computer 801 to cause the processor group 810 of the computer 801 to perform a series of operating steps to implement the computer-implemented method, such that the instructions executed thereby will instantiate the method specified in the flowchart and / or narrative description of the computer-implemented method included in this document (collectively referred to as the "inventive method"). These computer readable program instructions are stored in various types of computer readable storage media, such as cache 821 and other storage media discussed below. The program instructions and associated data are accessed by the processor group 810 to control and direct the execution of the inventive method. In the computing environment 800, at least some of the instructions for performing the inventive method can be stored in the drone matrix-based safety inspection program 816 in the persistent storage device 813.

[0103] The communication fabric 811 is the signal conduction routing that allows the various components of the computer 801 to communicate with each other. Typically, this fabric is made of switches and conductive routes, such as those that make up a bus, a bridge, physical input / output ports, etc. Other types of signal communication routing may be used, such as fiber optic communication routing and / or wireless communication routing.

[0104] The volatile memory 812 is any type of volatile memory now known or developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, the volatile memory 812 is characterized by random access, but this is not required unless explicitly indicated. In the computer 801, the volatile memory 812 is located in a single package and is internal to the computer 801, but alternatively or additionally, the volatile memory can be distributed over multiple packages and / or located externally relative to the computer 801.

[0105] The persistent storage device 813 is any form of non-volatile storage device for a computer known now or to be developed in the future. The non-volatility of the storage device means that the stored data is maintained regardless of whether power is supplied to the computer 801 and / or directly to the permanent storage device 813. The persistent storage device 813 can be a read-only memory (ROM), but typically at least a portion of the persistent storage device allows the writing of data, the deletion of data, and the rewriting of data. Some common forms of persistent storage devices include magnetic disks and solid-state storage devices. The operating system 822 can take several forms, such as various known proprietary operating systems or open source portable operating system interface type operating systems using a kernel. The code included in the drone matrix-based security inspection program 816 typically includes at least some of the computer code involved in performing the method of the present invention.

[0106] The peripheral device group 814 includes a peripheral device group of the computer 801. The data communication connection between the peripheral device and other components of the computer 801 can be implemented in various ways, such as a Bluetooth connection, a near field communication (NFC) connection, a connection by a cable (such as a universal serial bus (USB) type cable), a plug-in type connection (e.g., a secure digital (SD) card), a connection through a local area network, and even a connection through a wide area network such as the Internet. In various embodiments, the UI device set 823 may include components such as display screens, speakers, microphones, wearable devices (such as goggles and smart watches), keyboards, mice, printers, touchpads, game controllers, and tactile devices. Storage 824 is external storage (such as an external hard drive) or pluggable storage (such as an SD card). Storage 824 can be persistent and / or volatile. In some embodiments, the storage device 824 can take the form of a quantum computing storage device for storing data in the form of quantum bits. In embodiments where computer 801 needs to have a large amount of storage (e.g., computer 801 locally stores and manages a large database), the 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 IoT applications. For example, one sensor may be a thermometer, while another sensor may be a motion detector.

[0107] The network module 815 is a collection of computer software, hardware, and firmware that allows the computer 801 to communicate with other computers via the WAN 802. The network module 815 may include hardware (such as a modem or a Wi-Fi signal transceiver), software for packetizing and / or depacketizing data for transmission over a communication network, and / or web browser software for communicating data over the Internet. In some embodiments, the network control function and the network forwarding function of the network module 815 are executed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software defined networks (SDN)), the control function and the forwarding function of the network module 815 are executed on physically separated devices, so that the control function manages several different network hardware devices. Computer-readable program instructions for executing the method of the present invention can typically be downloaded to the computer 801 from an external computer or an external storage device via a network adapter card or a network interface included in the network module 815.

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

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

[0110] 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(s) that collects and stores helpful and useful data 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, then that historical data may be provided to computer 801 from remote database 830 of remote server 804.

[0111] The public cloud 805 is any computer system that can be used by multiple entities, which provides on-demand availability of computer system resources and / or other computer capabilities, especially data storage (cloud storage) and computing capabilities, without the need for direct active management by users. Cloud computing generally uses the sharing of resources to achieve consistency and economies of scale. The direct and active management of the computing resources of the public cloud 805 is performed by the computer hardware and / or software of the cloud orchestration module 841. The computing resources provided by the public cloud 805 are generally implemented by virtual computing environments running on various computers that constitute the host physical machine set 842, which is the totality of physical computers in and / or available for the public cloud 805. Virtual computing environments (VCEs) generally take the form of virtual machines from a virtual machine group 843 and / or containers from a container group 844. It should be understood that these VCEs can be stored as images and can be transmitted between various physical machine hosts as images or after instantiation of the VCE. Cloud orchestration module 841 manages the transfer and storage of images, deploys new instantiations of VCEs, and manages active instantiations of VCE deployments. Gateway 840 is a collection of computer software, hardware, and firmware that allows public cloud 805 to communicate over WAN 802 .

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

[0113] Private cloud 806 is similar to public cloud 805, except that the computing resources are only available to a single enterprise. Although private cloud 806 is depicted as communicating with WAN 802, in other embodiments, the private cloud can be completely disconnected from the Internet and accessible only through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types), typically implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is tied together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between multiple constituent clouds. In this embodiment, both public cloud 805 and private cloud 806 are part of a larger hybrid cloud.

[0114] The terms used herein are only used for the purpose of describing specific embodiments and are not intended to limit the present invention. As used herein, the singular forms "a", "an" and "the" are intended to also include plural forms, unless the context clearly indicates otherwise. It will be further understood that when used in this specification, the terms "comprises", "comprising", "includes", "including", "has", "have", "having", "with", etc. specify the presence of the features, integers, steps, operations, elements and / or parts, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, parts and / or groups thereof.

[0115] The description of various embodiments of the present invention has been presented for the purpose of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terminology used herein is selected to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found in the marketplace, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.

[0116] A computer system with a drone safety check program operates as a dedicated computer system, wherein the drone safety check process facilitates the execution of safe drone flights. Specifically, the drone safety check program converts the computer system into a dedicated computer system compared to currently available general-purpose computer systems without a drone safety check program. The system can employ hardware and / or software to solve problems that are highly technical in nature, are not abstract, and cannot be performed by humans as a set of mental actions. To simplify the description, the method implemented by a dedicated computer is depicted and described as a series of actions. It should be understood and appreciated that the present invention is not limited by the actions and / or order of actions shown. That is, for example, the actions may occur in various orders and / or simultaneously, and with other actions not presented and described herein. In addition, all explicitly disclosed actions may not be required to implement the computer-implemented method according to the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that the computer-implemented method can alternatively be represented as a series of interrelated states via a state diagram or event. In addition, it should also be understood that the computer-implemented method disclosed below and throughout the specification can be stored on an article of manufacture to facilitate the transmission and transfer of such a computer-implemented method 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.

[0117] The system may employ hardware and / or software to solve problems that are highly technical in nature, are not abstract, and cannot be performed by humans as a set of mental actions. The speed required to perform route safety checks and alternate route generation for practical use requires that the described method be implemented on a dedicated computer with a program 816 as described herein.

Claims

1. A computer-implemented method comprising: receiving, via the first computer, a message indicating a destination location for the drone flight; as well as Generating, via the first computer, a first recommendation for a route from a departure location to the destination location for the drone flight, wherein the generating comprises: relying on a first safety matrix, the first safety matrix representing a geographical area including the departure location and the destination location, the first safety matrix comprising rows and columns of numbers, each number representing a first safety factor for a respective portion of a map showing the geographical area; and Relying on a first analysis of a direct route between the departure location and the destination location, the first analysis comprises analyzing values ​​of the first safety matrix along a portion representing the direct route.

2. The computer-implemented method of claim 1 , further comprising: responsive to the first analysis indicating that the direct route has a safety risk exceeding a threshold, relying on an alternate route comparison using respective sums of values ​​of the first safety matrix respectively along additional portions representing alternate routes; as well as The first recommendation is selected from among the alternative routes based on the alternative route comparison. 3 . The computer-implemented method of claim 2 , wherein the alternative route comparison comprises applying a hill climbing algorithm to the first safety matrix.

4. The computer-implemented method of claim 2, wherein the alternative route comparison weights the respective matrix values ​​based on respective lengths that the respective alternative routes traverse the map sub-region corresponding to the matrix position of the respective matrix value. 5 . The computer-implemented method of claim 1 , wherein the first safety matrix is ​​based on bird presence in the geographic area or roads in the geographic area.

6. The computer-implemented method of claim 5, wherein the first safety matrix is ​​based on bird sensing 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. The computer-implemented method of claim 1 , further comprising: relying on a combined security matrix representing the geographical area, the combined security matrix being formed by combining the first security matrix and a second security matrix, the second security matrix comprising rows and columns of numbers, each number representing a second security factor for a corresponding portion of the map, the second security factor being different from the first security factor; Wherein said first analysis comprises analyzing values ​​of said combined safety matrix along said portion representing said direct route.

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

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

11. The computer-implemented method of claim 8, wherein the first analysis weights the respective matrix values ​​based on respective lengths of the direct routes through a map sub-region corresponding to a matrix position of the respective matrix value.

12. The computer-implemented method of claim 1 , further comprising: receiving time information regarding an expected time for the drone to fly; as well as The first security matrix is ​​selected from a stored security matrix library based on the time information.

13. The computer-implemented method of claim 1 , further comprising: receiving package information regarding a package to be delivered via the drone flight; as well as The first analysis is further performed based on the package information.

14. The computer-implemented method of claim 1, wherein the number of rows of the first safety matrix is ​​equal to the number of latitude 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. The computer-implemented method of claim 1, wherein the first analysis weights the respective matrix values ​​based on respective lengths of the direct routes through a map sub-region corresponding to a matrix position of the respective matrix value.

16. A computer system comprising: 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, the program instructions being for execution by at least one of the one or more processors to cause the computer system to perform a computer-implemented method according to any one of claims 1-15.

17. A computer program product comprising a computer-readable storage medium having program instructions embodied therewith, the program instructions being executable by a computer to cause the computer to perform the computer-implemented method according to any one of claims 1-15.

18. A computer system comprising modules respectively configured to perform the steps of the computer-implemented method according to any one of claims 1-15.

Citation Information

Cited By

  • Drone parcel delivery matrix-based safety determination

    US12656124B2